New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
compositor: Fix workspace switching, improve window dragging smoothness #465
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contributor
jaszhix
commented
Apr 7, 2019
•
edited
edited
- Fixes the workspace switching animation.
- Fixes windows not appearing after workspacing switching.
- Fixes artifacts on CSD Firefox windows.
- Stores the client area rect as a pointer in order to reduce memory allocation.
- Removes some redundant setters in MetaWindowActor, that were used in MetaWindowGroup's paint function.
- Guards against duplicate clip region propagation, so less CPU time is spent on windows with shadows.
jaszhix
changed the title
compositor: Improve window dragging smoothness
[WIP] compositor: Improve window dragging smoothness
Apr 7, 2019
The net effect of having to check this on an interval negates the benefit of the optimization being disabled.
jaszhix
changed the title
[WIP] compositor: Improve window dragging smoothness
compositor: Improve window dragging smoothness
Apr 8, 2019
The client area rect is new since 4.0, and is only used in MetaWindowActor and MetaFrames. The frame size change case covers MetaFrames, and the call to update_client_area_rect covers the case in process_shape_region.
This should result in less allocation.
- Inlines some methods in perf-sensitive areas - Now that we have the top_window_actor cached from the unredirection fix PR, we don't need to call g_list_last on compositor->windows, which wasn't correct. - Removes dead code.
Since the compositor now has access to MetaWindowActorPrivate, we can get rid of some functions calls and add some equality checks before copying regions.
The idea was to check if it was only a move or resize grab, not a compositor grab, but the function call negates the rendering benefit of clutter_paint_volume_set_from_allocation.
jaszhix
changed the title
compositor: Improve window dragging smoothness
compositor: Fix workspace switching, improve window dragging smoothness
Apr 12, 2019
Checking size_changed and position_changed in queue_relayout is wrong because those states do not reset until the next redraw, and Clutter can queue multiple relayouts in the interim. It's this additional window rendering that is breaking the workspace switch animation in some setups.
This was referenced Apr 14, 2019
clefebvre
added a commit
that referenced
this pull request
Jun 7, 2019
* Revert "Fix the current workspace not being selected during startup (#511)" This reverts commit 5774eb2. * Revert "Fix segfault when using cinnamon --replace (#512)" This reverts commit edb3635. * Revert "window-actor: Use source actor for the close, minimize effects (#508)" This reverts commit fb2cb1a. * Revert "Fix screensaver regressions (#489)" This reverts commit c5253b4. * Revert "window: Fix tile HUD color not changing when holding the snap modifier during a drag (#488)" This reverts commit a4cff41. * Revert "window: Call update_outer_rect in update_resize" This reverts commit e75e879. * Revert "window-actor: Update clip_shadow before the redraw" This reverts commit 9157181. * Revert "Unconditionalize meta_window_update_outer_rect (#484)" This reverts commit 5bba546. * Revert "window: Fix edge resistance" This reverts commit ee0af72. * Revert "hidpi: Restore scaling to initial cursor size, tile HUD threshold and" This reverts commit c72054b. * Revert "compositor: Check if priv is NULL before calling meta_window_actor_should_unredirect (#479)" This reverts commit b625cfb. * Revert " Fix cinnamon-screensaver freezing up when activated (#477)" This reverts commit d6f5c40. * Revert " window-actor: Support applying effects on clones (#464)" This reverts commit 75776e7. * Revert "window-actor: Add reference to MetaDisplay (#476)" This reverts commit dae1fe7. * Revert "boxes: Return if the rect pointers are null (#478)" This reverts commit 4ef0065. * Revert "Add MetaPrefsState struct for retrieving the prefs state without function invocation (#466)" This reverts commit 72cf216. * Revert "Make sure windows paint before un-fullscreening (#475)" This reverts commit 355c404. * Revert "Fix unredirected windows not being clipped out of the stage (#474)" This reverts commit 1c45ee3. * Revert "Replace some GLib wrappers (#421)" This reverts commit 317c06f. * Revert "compositor-private: remove a couple of duplicated lines (#472)" This reverts commit 8e3c602. * Revert "Replace some deprecated GDK methods (#443)" This reverts commit 2a06ea9. * Revert "compositor: Fix workspace switching, improve window dragging smoothness (#465)" This reverts commit 7b97e77. * Revert " Expose the sync method to preferences (#452)" This reverts commit 40d073d. * Revert "window: Remove obsolete cast in meta_window_adjust_opacity" This reverts commit 3052914. * Revert "window-actor: Use int for opacity" This reverts commit 8448e69. * Revert "window-actor: Make actor non-reactive (#440)" This reverts commit 462a534. * Revert "Add meta_display_popup_window_visible (#445)" This reverts commit 4184eeb. * Revert "Clean up the pre-paint functions (#460)" This reverts commit 5011f94. * Revert "Fix unredirection for wine games, mpv" This reverts commit 63ddb02. * Revert "Make compositor_private a MetaWindowActor type (#454)" This reverts commit aeb6395. * Revert "window-actor: override Clutter opacity property and method (#449)" This reverts commit 7d4a9da. * Revert "window-actor: Fix squished window textures (#453)" This reverts commit f752fb5. * Revert "Bump version" This reverts commit 907f142. * Revert "Revert two commits from #410 (#448)" This reverts commit b1f346a. * Revert "compositor: Fix tiling placement (#447)" This reverts commit 023a6a4. * Revert "window: Update monitor state before showing the window (#444)" This reverts commit 45498a2. * Revert "screen: Update the rect cache on monitor change (#441)" This reverts commit edfc523. * Revert "screen: Ensure monitors update on monitor change (#439)" This reverts commit ad4dbc7. * Revert "ui: Don't apply CSD window filtering for button events (#435)" This reverts commit df879dc. * Revert "Improve sync between the cursor and frames (#397)" This reverts commit f9d161e. * Revert "Various compositor improvements (#410)" This reverts commit 48f669a. * Revert "window: Cache the outer, client rects (#427)" This reverts commit 009f0f3.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.