summaryrefslogtreecommitdiff
path: root/src/core/workspace.c
AgeCommit message (Collapse)AuthorFilesLines
2024-02-14workspace: ignore not_this_one if not in current workspaceLars R. Damerow1-2/+3
When the active workspace is changed, marco figures out which window should get focus by calling `focus_ancestor_or_top_window`. In some cases that call might include a window that should not get focus as `not_this_one`. When `not_this_one` refers to a window, the function will check to see if it has a parent, and if it does, it will ignore the new workspace's `mru_list` and will focus that parent window. However, it doesn't check to see if the parent window is actually on the new workspace. If the parent isn't on the new workspace, focusing it will drag it over, including the transient window that was supposed to be ignored. This isn't the result a user would likely expect, and is made more confusing by the parent window being minimized, stuck that way until the user switches to another workspace and back. This change makes `focus_ancestor_or_top_window` ignore the `not_this_one` window if it isn't on the new workspace's `mru_list`. Instead it will just search the new workspace's `mru_list` for a window to focus.
2021-06-07window: add support for _GNOME_WM_STRUT_AREAraveit651-2/+4
In addition to existing properties use also new _GNOME_WM_STRUT_AREA property that allows creating struts between monitors. https://mail.gnome.org/archives/wm-spec-list/2018-December/msg00000.html https://gitlab.freedesktop.org/xdg/xdg-specs/merge_requests/22 origin commit: https://gitlab.gnome.org/GNOME/metacity/commit/922de13
2020-08-04Remove multiple empty linesrbuj1-1/+0
find . \( -name '*.h' -o -name '*.c' \) -exec sed -i 'N;/^\n$/D;P;D;' {} \;
2020-08-04Remove trailing spaces/tabsrbuj1-1/+1
find . \( -name '*.h' -o -name '*.c' \) -exec sed -i 's/[[:space:]]*$//' {} \; find . \( -name '*.h' -o -name '*.c' \) -exec sed -i 's/\t*$//' {} \;
2020-05-27workspace: Don't try to use per-workspace MRU lists as a hint for focusingrcaridade1451-36/+6
A prior commit switched from focusing the topmost window as the default window to focusing the MRU window. This was done in alignment with the introduction of per-workspace MRU lists to avoid problems where the window stack was inadvertently changed when focusing windows during window switches. Now that focusing windows don't have as big an impact on the stacking order, we can revert back to focusing the top window, which is less confusing to the user. For now, leave per-workspace MRU lists, as they're a pretty good approximation of a global MRU list, and it works well enough. https://bugzilla.gnome.org/show_bug.cgi?id=620744 Based on commit https://gitlab.gnome.org/GNOME/metacity/-/commit/f628d8f8901f46fa9e00707ae9d7ccfd1e85f427
2019-04-11Replace meta_rectangle_free_list_and_elements with g_list_free_fullrbuj1-8/+8
Use g_list_free_full
2017-01-30workspace: switch wrapping behavior for 'classic' and 'toroidal'Kevin S.C. Decker1-10/+10
2015-09-25Merge pull request #168 from robertek/swith_to_workspace_prevNo_name1-0/+9
Possible keybinding to switch to previous workspace.
2015-08-20Fix crash when struts change during grab operationOwen W. Taylor1-0/+9
Since meta_workspace_invalidate_work_area() frees the edges workspace->screen_edges and workspace->monitor_edges, we must clean up our cached edge resistance data when the invalidate_work_area() is called on the active workspace, or when the workspace changes. Make the computation of the edge resistance data lazy so that it will be recomputed the next time we try to access it. meta_display_compute_resistance_and_snapping_edges() is made private to edge-resistance.c Invaliding the data when active workspace changes also will improve correctness for edge resistance when the current workspace changes during a grab operation. (Even with this fix we still don't try to handle window positions changing during a grab operation; that can't cause a crash since, unlike screen and monitor edges, the window edges are freshly allocated, it will just cause slight oddness in that corner case.) Root cause tracked down due to much effort by Jon Nettleton. https://bugzilla.gnome.org/show_bug.cgi?id=608800
2015-01-23Possible keybinding to switch to previous workspace.Robert David1-0/+9
Disabled at default.
2014-11-07Revert "Possible keybinding to switch to previous workspace."infirit1-3/+0
This reverts commit 69b7a0ad9277f21ad761c84ac1bae5455a2f879e. It has the unintended side-effect that it reverses the alt+tab behaviour.
2014-10-27Rework tiling code based off Consortiuminfirit1-2/+1
Taken from https://github.com/SolusOS-discontinued/consortium/commit/b463e03f5bdeab307ceee6b969c681f29537c76d
2014-06-26Remove all trailing whitespaces in the code treeJoaquín Ignacio Aramendía1-40/+40
Just run: $ find -name '*.c' -print0 | xargs -r0 sed -e 's/[[:blank:]]\+$//' -i $ find -name '*.h' -print0 | xargs -r0 sed -e 's/[[:blank:]]\+$//' -i
2014-06-24Possible keybinding to switch to previous workspace.Robert David1-0/+3
Disabled at default.
2012-11-18fixed incorrect fsf addresses.Steve Zesch1-2/+2
2012-03-16implement option for classic and toroidal workspace switching, based on ↵Benjamin Valentin1-9/+78
https://bugzilla.gnome.org/show_bug.cgi?id=89315
2011-12-01moving from https://github.com/perberos/mate-desktop-environmentPerberos1-0/+1038