{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":595806094,"defaultBranch":"main","name":"floem","ownerLogin":"lapce","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-01-31T21:05:12.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/43668847?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717873909.0","currentOid":""},"activityList":{"items":[{"before":"cb62f933c7866c576c542fa615040376d54eb48a","after":"0b299f7b578409f32e5a27b9f31e6eca889cc2da","ref":"refs/heads/main","pushedAt":"2024-07-16T13:51:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"inspector: Add a search box and select up and down (#510)\n\n* inspector: Add a search box and select up and down\r\n\r\n* fmt code","shortMessageHtmlLink":"inspector: Add a search box and select up and down (#510)"}},{"before":"9ca15b90cc40d2e268582bbf810d0af5d2fc3576","after":"cb62f933c7866c576c542fa615040376d54eb48a","ref":"refs/heads/main","pushedAt":"2024-07-05T12:43:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Changed draggable example to something more real world (#504)","shortMessageHtmlLink":"Changed draggable example to something more real world (#504)"}},{"before":"02205d851df89e82ef297e3ceb305551f37ee944","after":"9ca15b90cc40d2e268582bbf810d0af5d2fc3576","ref":"refs/heads/main","pushedAt":"2024-07-01T14:56:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Fix typos. (#502)","shortMessageHtmlLink":"Fix typos. (#502)"}},{"before":"80f3a3a2d27777136a0018caf79fa0c479ff844f","after":"02205d851df89e82ef297e3ceb305551f37ee944","ref":"refs/heads/main","pushedAt":"2024-06-26T16:24:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"tooltip improvements (#499)","shortMessageHtmlLink":"tooltip improvements (#499)"}},{"before":"9a9e6c21834ce2f30db2c36d9aadfeb98f899277","after":"80f3a3a2d27777136a0018caf79fa0c479ff844f","ref":"refs/heads/main","pushedAt":"2024-06-20T07:29:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Scroll top, middle, and bottom (#497)\n\n* Center editor\r\n\r\n* support scroll to center, top, bottom","shortMessageHtmlLink":"Scroll top, middle, and bottom (#497)"}},{"before":"0e1cb1d3b4afc04a52b16c7245f502d2dea7b73f","after":"9a9e6c21834ce2f30db2c36d9aadfeb98f899277","ref":"refs/heads/main","pushedAt":"2024-06-13T21:19:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"still update focus if pointerdown was processed","shortMessageHtmlLink":"still update focus if pointerdown was processed"}},{"before":"83a0384033edd2bbfd5888dd8c6586ca22ae0246","after":"0e1cb1d3b4afc04a52b16c7245f502d2dea7b73f","ref":"refs/heads/main","pushedAt":"2024-06-11T18:06:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"fix clear_focus","shortMessageHtmlLink":"fix clear_focus"}},{"before":"7198f0fcf4166e9b2517502417df0d8d40f76be9","after":null,"ref":"refs/heads/tinyskia_emoji_fix","pushedAt":"2024-06-08T19:11:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"}},{"before":"a974e2e1ff30340ee53d08344693218468a5d1bf","after":"83a0384033edd2bbfd5888dd8c6586ca22ae0246","ref":"refs/heads/main","pushedAt":"2024-06-08T19:11:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Tinyskia emoji fix (#496)\n\n* set surface size when creating window\r\n\r\n* image content can be color for emojis","shortMessageHtmlLink":"Tinyskia emoji fix (#496)"}},{"before":null,"after":"7198f0fcf4166e9b2517502417df0d8d40f76be9","ref":"refs/heads/tinyskia_emoji_fix","pushedAt":"2024-06-08T18:58:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"image content can be color for emojis","shortMessageHtmlLink":"image content can be color for emojis"}},{"before":"cf876131f937c99ee159f7af574de8afb7aa5b98","after":"a974e2e1ff30340ee53d08344693218468a5d1bf","ref":"refs/heads/main","pushedAt":"2024-06-08T15:10:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Add selectable to the default style (#495)","shortMessageHtmlLink":"Add selectable to the default style (#495)"}},{"before":"e5d2ded9b7c35d0ef357d966bc688b3904da2770","after":"cf876131f937c99ee159f7af574de8afb7aa5b98","ref":"refs/heads/main","pushedAt":"2024-06-07T18:46:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"paint cursor caret after indent guide","shortMessageHtmlLink":"paint cursor caret after indent guide"}},{"before":"e647fa442332735aca782d21ce13a3deabad20d5","after":"e5d2ded9b7c35d0ef357d966bc688b3904da2770","ref":"refs/heads/main","pushedAt":"2024-06-06T20:59:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"editor cursor paiting fix","shortMessageHtmlLink":"editor cursor paiting fix"}},{"before":"f93acbb0a623e4e82e8c1f031487f93f52034088","after":"e647fa442332735aca782d21ce13a3deabad20d5","ref":"refs/heads/main","pushedAt":"2024-06-06T07:26:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Addition to documentation and other minor improvements (#491)\n\n* Add to and revise the existing documentation for WindowConfig and its methods.\r\n\r\n* Establish \"Floem window\" as the standard window title and permit the default window dimensions to adjust according to the platform.\r\n\r\n* If the layout location isn’t specified, directly use the layout’s default value instead of creating a copy during the painting process of `Label`.","shortMessageHtmlLink":"Addition to documentation and other minor improvements (#491)"}},{"before":"7d502485cbe602fa7349f4f8943d44c3cb5fe6a9","after":"f93acbb0a623e4e82e8c1f031487f93f52034088","ref":"refs/heads/main","pushedAt":"2024-06-06T07:25:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"remove debug log, always paint text selection (#493)\n\n* remove debug log, paint selection even when 'available'\r\n\r\n* fix incorrect start cursor logic\r\n\r\n* Wait to request focus until selecting","shortMessageHtmlLink":"remove debug log, always paint text selection (#493)"}},{"before":"f178d220309dbaa74ebb7447c78a8b2b7660053c","after":"7d502485cbe602fa7349f4f8943d44c3cb5fe6a9","ref":"refs/heads/main","pushedAt":"2024-06-05T18:37:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Label select (#488)\n\n* Add text selection for label\r\n\r\n* finish select with copy\r\n\r\n* Fix label select\r\n\r\n* rebase\r\n\r\n* change selectable default to true\r\n\r\n* get selection style from local extractor\r\n\r\n* draw selection with padding offset\r\n\r\n* Add class to label, default button not selectable","shortMessageHtmlLink":"Label select (#488)"}},{"before":"134263c402f3cb344700721f31d24a60855c2819","after":"f178d220309dbaa74ebb7447c78a8b2b7660053c","ref":"refs/heads/main","pushedAt":"2024-06-03T15:18:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"panekj","name":"Jakub Panek","path":"/panekj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50457605?s=80&v=4"},"commit":{"message":"re-export KeyLocation from winit","shortMessageHtmlLink":"re-export KeyLocation from winit"}},{"before":"aa80194e60aa090cd32c76e179bd28b3495107ac","after":"134263c402f3cb344700721f31d24a60855c2819","ref":"refs/heads/main","pushedAt":"2024-06-03T08:32:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Refactor window creation. (#485)\n\n* Refactor window creation to enhance comprehensibility.\r\n\r\n# Note\r\n\r\nThe modification does not impact public API, only affects internal inteactions.\r\n\r\n* Remove unnecessary assert.","shortMessageHtmlLink":"Refactor window creation. (#485)"}},{"before":"dde5a1b1a9432cf0803e5d1595bdce74c40ac88b","after":"aa80194e60aa090cd32c76e179bd28b3495107ac","ref":"refs/heads/main","pushedAt":"2024-06-02T15:56:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Fix typos in code / identifiers. (#484)","shortMessageHtmlLink":"Fix typos in code / identifiers. (#484)"}},{"before":"959e292bd51bbf6df1b667ee0921a93cba117cbb","after":"dde5a1b1a9432cf0803e5d1595bdce74c40ac88b","ref":"refs/heads/main","pushedAt":"2024-05-31T15:31:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Window management (#480)\n\n* Add methods to show and hide a window\r\n\r\n* Fix #463 - broken inter-window update messages\r\n\r\nThis addresses a couple of issues:\r\n\r\n * Messages (including repaints) not getting processed when delivered a `View` in a window which is inactive\r\n * Ability to retrieve the window id of a view without the application having to pass that information down\r\n to whatever code needs it\r\n\r\nand addresses a related issue - obtaining a `WindowId` for a realized `View` and its bounds on screen, in order\r\nto convert view-relative locations into screen locations for purposes such as positioning windows relative\r\nto a `View`.\r\n\r\nThis patch adds a tracking data structure, and a convenience data structure which contains sufficient\r\ninformation to convert view-relative positions to screen-positions and back.\r\n\r\n * A static mapping of `root-id:WindowId`:`Arc` which is populated on window creation and cleared on destruction,\r\n which makes it possible to access `Window.request_redraw()` to force a redraw. It is guarded by a read-write\r\n lock (but written to only during window creation and destruction).\r\n * `ScreenLayout` contains a snapshot of the window id, the window's content and framed bounds, the view's\r\n origin within the window and the monitor scaling.\r\n\r\nSo, a ViewId that wants its window-id looks up its root view's id, and looks up the WindowId associated\r\nwith that root.\r\n\r\nWe extend `WindowId` with methods to get the window bounds on screen with and without decorations and similar -\r\nthese methods could be added to `ViewId` instead, but it seems more intuitive that you ask a window id for\r\nthe window's bounds the same way you ask a view id for the view's bounds - that seems like what users will\r\nexpect.\r\n\r\nGiven the usage patterns (the mapping will only be locked for writing when a window is being created or destroyed, and will\r\nnot be read-locked except in the case of forcing a repaint or looking up window coordinates), it is not touched\r\nin the critical path of rendering - unless the application and destroying many windows at the same time on\r\ndifferent threads, I would not expect the read-write lock to be contended at all in practice (famous last\r\nwords, I know).\r\n\r\nA thread-local for the mapping, as is done in `update.rs` might work (or look like it works), but we would be\r\nassuming no platform floem will ever support uses different event threads for different windows' event\r\nloops. I know of two that do - BeOS and Java AWT (with its stack of event threads to allow modal dialogs\r\nthat work when their parent is disabled or blocked, which was a source of \"interesting\" deadlocks).\r\n\r\nIf there was some path that I missed that would let a `ViewId` reach down to the `WindowHandle` that\r\nowns it without doing this sort of tracking, I would love to know about it - `PaintCx` has this information,\r\nbut it is the only thing that does, and the `ViewId` has no access to it.\r\n\r\n* Move WindowIdExt to its own file; eliminate force-paint hack - better fix available\r\n\r\n* Implement a number of window management features\r\n\r\n * Window show/hide (particularly needed for repeatedly shown popups where you don't want to allocate a native window on every call,\r\n but just reposition and reveal)\r\n * Window location / size / bounds management\r\n * Fetching the bounds of the monitor a window is on (needed for relative positioning of windows so they don't go offscreen)\r\n * Minimized / maximized management\r\n * Edited status management (MacOS only)\r\n\r\nTested on Mac OS Ventura 13.6.6 / Intel and Gentoo Linux 6.7.6 w/ Openbox WM. Attempted to test on Wayland, but ran into\r\nwgpu crashes with the OpenGL back-end and I don't have the DRM back-end built.","shortMessageHtmlLink":"Window management (#480)"}},{"before":"1674b0476c4a857322877f765bc8489c0d61d01b","after":"959e292bd51bbf6df1b667ee0921a93cba117cbb","ref":"refs/heads/main","pushedAt":"2024-05-31T09:28:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Add tokio channel behind flag (#483)","shortMessageHtmlLink":"Add tokio channel behind flag (#483)"}},{"before":"fa49640ef08cb62ea27a2f1016e2aee865cc51ac","after":"1674b0476c4a857322877f765bc8489c0d61d01b","ref":"refs/heads/main","pushedAt":"2024-05-30T18:22:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Ability for a view to resign from active state (#481)\n\nFixes #470 - \"No way to resign `active`\"","shortMessageHtmlLink":"Ability for a view to resign from active state (#481)"}},{"before":"5255ee15b37b3935bd9a7c5d07f52fae0123b8f4","after":"fa49640ef08cb62ea27a2f1016e2aee865cc51ac","ref":"refs/heads/main","pushedAt":"2024-05-30T18:22:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"rename gap to row/col to match web (#479)","shortMessageHtmlLink":"rename gap to row/col to match web (#479)"}},{"before":"f91ce6f1746d53e05e903aed5da6a6922f1cfa38","after":"5255ee15b37b3935bd9a7c5d07f52fae0123b8f4","ref":"refs/heads/main","pushedAt":"2024-05-30T18:16:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"add update to child_id (#482)","shortMessageHtmlLink":"add update to child_id (#482)"}},{"before":"5b6916a2c933956e95fc790fd20fc4d0e71f8fd8","after":"f91ce6f1746d53e05e903aed5da6a6922f1cfa38","ref":"refs/heads/main","pushedAt":"2024-05-30T09:58:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"rename view style method to style_pass. (#478)\n\nThis is to avoid confusion with the style method on the Decorators trait.\r\nThis rename makes it so that when you want to call the style method on a view,\r\nbut the Decorators trait isn't yet in scope, rust analyzer will suggest the\r\ncorrect method name.","shortMessageHtmlLink":"rename view style method to style_pass. (#478)"}},{"before":"b741cd408177703d98fe51bd59d59f6e3972e408","after":"5b6916a2c933956e95fc790fd20fc4d0e71f8fd8","ref":"refs/heads/main","pushedAt":"2024-05-30T08:13:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"make default gap style one arg (#477)\n\n* make default gap style one arg\r\n\r\n* clippy and examples\r\n\r\n* fix test","shortMessageHtmlLink":"make default gap style one arg (#477)"}},{"before":"20cbfdbb13b4eb1156e0d54a570167856145e992","after":"b741cd408177703d98fe51bd59d59f6e3972e408","ref":"refs/heads/main","pushedAt":"2024-05-30T08:11:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"send theme updates (#476)","shortMessageHtmlLink":"send theme updates (#476)"}},{"before":"6fe51db5d0acd8a256ce24abeecaf57a62c3fdf3","after":"20cbfdbb13b4eb1156e0d54a570167856145e992","ref":"refs/heads/main","pushedAt":"2024-05-30T08:10:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Allow the toggle style outside of just the toggle (#475)\n\n* Allow the toggle style outside of just the toggle\r\n\r\n* clippy","shortMessageHtmlLink":"Allow the toggle style outside of just the toggle (#475)"}},{"before":"d171f22d92b913b7494a48ba4b8723156e100c2f","after":"6fe51db5d0acd8a256ce24abeecaf57a62c3fdf3","ref":"refs/heads/main","pushedAt":"2024-05-29T08:36:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"The most minimal fix possible for inter-window messages not being processed (#473)\n\nAddresses #463 in the absolutely most minimal way possible - just loop over all\r\nwindows and process any pending events at the end of event processing for any\r\nwindow.","shortMessageHtmlLink":"The most minimal fix possible for inter-window messages not being pro…"}},{"before":"796255a1242f98ed75d2eef8643b88ba1b93c4ce","after":"d171f22d92b913b7494a48ba4b8723156e100c2f","ref":"refs/heads/main","pushedAt":"2024-05-29T08:12:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dzhou121","name":"Dongdong Zhou","path":"/dzhou121","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1169480?s=80&v=4"},"commit":{"message":"Remove `&mut self` from `View.get_content_rect()` (#472)\n\nIt is the only method in `ViewId` that takes `&mut self`, doesn't need it (and since\r\nthey are `Copy`, all `ViewId`s are `mut` if you want them to be. Probably it was\r\naccidental? Doesn't seem like it can possibly accomplish anything, so it just makes\r\nthe API inconsistent.","shortMessageHtmlLink":"Remove &mut self from View.get_content_rect() (#472)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEgNaQdAA","startCursor":null,"endCursor":null}},"title":"Activity · lapce/floem"}