summaryrefslogtreecommitdiff
path: root/src/core/stack-tracker.c
Commit message (Collapse)AuthorAgeFilesLines
* stack-tracker: stop using GSliceAlberts Muktupāvels2021-03-141-5/+5
|
* stack-tracker: don't log warnings on race conditionsAlberts Muktupāvels2020-07-111-12/+18
| | | | | Based on mutter commit: https://gitlab.gnome.org/GNOME/mutter/-/commit/53f61f3778a41bb2e316
* stack-tracker: fix cast-function-type warningAlberts Muktupāvels2018-09-021-2/+1
|
* stack-tracker: keep override redirect windows on topRui Matos2017-09-301-0/+37
| | | | | https://git.gnome.org/browse/mutter/commit/?id=e3d5bc07 https://bugzilla.gnome.org/show_bug.cgi?id=780485
* don't restack windows while we are unmanaging themOwen W. Taylor2017-04-011-2/+2
| | | | | | | | | | Restacking the frame for a window while unmanaging the window is harmless, but for undecorated (in particular, client-side-decorated) windows, this causes problems because the window is typically destroyed by the client immediately after withredrawing the window. Skip windows flagged as being unmanaged when assembling the new stack and when comparing the old order to the new stack.
* stack-tracker: fix an off-by-one error in restack_managedJasper St. Pierre2017-04-011-1/+1
| | | | | | | | | When restacking the last window alone, we would trigger this off-by-one error. This would throw us off the end of the array, causing lower_below warnings for nonsensical values. Since the last window already is lowered below everything else, we shouldn't need to lower it.
* stack-tracker: make lower_below / raise_above internal as wellJasper St. Pierre2017-04-011-9/+9
| | | | These are unused elsewhere.
* stack-tracker: make functions used only internally staticOwen W. Taylor2017-04-011-10/+2
| | | | | | | | Now that all actual stack shuffle is handled inside stack-tracker.c, we can make meta_stack_tracker_record_[raise_above/lower_below] internal to that file and remove the unused meta_stack_tracker_record_lower(). https://bugzilla.gnome.org/show_bug.cgi?id=736559
* move logic for syncing the stack to the X server into MetaStackTrackerAlberts Muktupāvels2017-04-011-14/+106
| | | | https://git.gnome.org/browse/mutter/commit/?id=04bc846ef366964505abbb016c383becfb5fca88
* move manipulation of the X stack to MetaStackTrackerAlberts Muktupāvels2017-04-011-25/+78
| | | | https://git.gnome.org/browse/mutter/commit/?id=34573660665ba4134451cc82a596367dbf3989d0
* stack-tracker: eliminate the resynchronization processAlberts Muktupāvels2017-04-011-327/+109
| | | | https://git.gnome.org/browse/mutter/commit/?id=cb66cf6398f4a870ff6e7c0f7acab5b71a3f98ad
* stack-tracker: more small cleanupsJasper St. Pierre2017-04-011-9/+2
|
* stack-tracker: remove unused variableJasper St. Pierre2017-04-011-10/+2
|
* stack-tracker: add some more debug outputJasper St. Pierre2017-04-011-0/+5
|
* stack-tracker: clean up dumpingAlberts Muktupāvels2017-04-011-16/+19
| | | | https://git.gnome.org/browse/mutter/commit/?id=043a201f9088ac73670d7abe0318c4e00813c81c
* stack-tracker: apply some changes from mutterAlberts Muktupāvels2017-04-011-67/+406
| | | | | | | | | | | https://git.gnome.org/browse/mutter/commit/?id=40e820f551e5d02dc8d9eecb55419fe00558c670 https://git.gnome.org/browse/mutter/commit/?id=b53bf0e8c2f84c93acbef5cb9d08fedce80b8013 https://git.gnome.org/browse/mutter/commit/?id=0be4622e14af0625472123dadb0648e25501f764 https://git.gnome.org/browse/mutter/commit/?id=a378faf495351244189ba893e8e7c2733e7311a6 https://git.gnome.org/browse/mutter/commit/?id=098c8908edf01a515d862bff1e8d37cd227370a9 https://git.gnome.org/browse/mutter/commit/?id=9711d95996c9ae3f0ccf5f82d2bb9aa7a5dda00f https://git.gnome.org/browse/mutter/commit/?id=01b6d9bfe2dcb8c806c13877d2816edd7876ceec https://git.gnome.org/browse/mutter/commit/?id=d1a588a94fba75c21a6b26b30a73c2087ad0c4e5
* meta_stack_tracker_free(): fix memory leakPavel Vasin2017-02-271-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=672640
* stack-tracker: avoid queueing resync for obvious no-opsOwen W. Taylor2017-02-271-8/+15
| | | | | | | | | | Since we can't distinguish a ConfigureEvent that indicates a raise from a ConfigureEvent that indicates a move, we get lots of STACK_OP_RAISE_ABOVE events for windows that are already in the right place in the stacking order. Avoid queueing a restack in that case. https://bugzilla.gnome.org/show_bug.cgi?id=634771
* avoid confusion when _NET_WM_USER_TIME_WINDOW is in the window stackOwen W. Taylor2017-02-271-2/+18
| | | | | | | | | | Wine sets _NET_WM_USER_TIME_WINDOW to point to an unmapped toplevel; this was causing much confusion because both the real window and the unmapped window were in the window stack and mapped back to the same MetaWindow. Debugged by Alban Browaeys https://bugzilla.gnome.org/show_bug.cgi?id=593887
* move compositor-stack handling to MetaStackTrackerOwen W. Taylor2017-02-271-16/+112
| | | | | | | | | | | In order to properly track the stacking order for override-redirect windows, move meta_compositor_sync_stack() call into MetaStackTracker. In the new location, we sync the stack as a before-redraw idle function, rather then using the freeze-thaw facilities of MetaStack. This is simpler, and also properly compresses multiple stack changes on notifications received from the X server. http://bugzilla.gnome.org/show_bug.cgi?id=585984
* add better tracking of real stacking orderOwen W. Taylor2017-02-271-0/+632
Wedging override-redirect windows into the constraint code in stack.c results in Mutter getting confused about the stacking order of these windows with respect to other windows, and may also in some cases cause Mutter to restack override-redirect windows. core/stack-tracker.c core/stack-tracker.h: MetaStackTracker - combine events received from the X server with local changes we have made to come up with the best possible idea of what the stacking order is at any one point in time. core/screen.c core/screen-private.h: Create a MetaStackTracker for the screen. core/display.c: Feed relevant events to MetaStackTracker core/frame.c core/screen.c core/stack.c: When we make changes to the stacking order or add windows, record those changes immediatley in MetaStackTracker so we have the information without waiting for a round-trip. include/ui.h ui/ui.c: meta_ui_create_frame_window add a return value for the X request serial used to create the window. http://bugzilla.gnome.org/show_bug.cgi?id=585984