Skip to content
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
merged 13 commits into from Apr 13, 2019
Merged

compositor: Fix workspace switching, improve window dragging smoothness #465

merged 13 commits into from Apr 13, 2019

Conversation

jaszhix
Copy link
Contributor

@jaszhix jaszhix commented Apr 7, 2019

  • 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 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 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 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.
@clefebvre clefebvre merged commit 7b97e77 into linuxmint:master Apr 13, 2019
clefebvre added a commit that referenced this pull request Jun 5, 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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants