mirror of
https://github.com/brl/mutter.git
synced 2025-08-06 08:34:41 +00:00
Split out on_all_workspaces and on_all_workspaces_requested
Sometimes on_all_workspaces is requested by the client/user, and sometimes its calculated implicitly due to internal state. We split this up so that we know when the user has explicitly asked for sticky window, when e.g. setting wmspec properties or storing session info. on_all_workspaces means this window is visible on all workspaces. on_all_workspaces_requested, means the user explicitly made the window sticky somehow (via imported session, _NET_WM_STATE from another wm, toggled in the window menu, etc). It always implies on_all_workspaces is TRUE. Right now the only time we set on_all_workspaces is for override-redirect windows, but later we can add a "windows on non-primary monitor are not part of the workspace switching" feature. https://bugzilla.gnome.org/show_bug.cgi?id=609258
This commit is contained in:
@@ -161,6 +161,11 @@ struct _MetaWindow
|
||||
*/
|
||||
guint on_all_workspaces : 1;
|
||||
|
||||
/* This is true if the client requested sticky, and implies on_all_workspaces == TRUE,
|
||||
* however on_all_workspaces can be set TRUE for other internal reasons too, such as
|
||||
* being override_redirect or being on the non-primary monitor. */
|
||||
guint on_all_workspaces_requested : 1;
|
||||
|
||||
/* Minimize is the state controlled by the minimize button */
|
||||
guint minimized : 1;
|
||||
guint tab_unminimized : 1;
|
||||
@@ -627,5 +632,6 @@ void meta_window_update_icon_now (MetaWindow *window);
|
||||
void meta_window_update_role (MetaWindow *window);
|
||||
void meta_window_update_net_wm_type (MetaWindow *window);
|
||||
void meta_window_update_monitor (MetaWindow *window);
|
||||
void meta_window_update_on_all_workspaces (MetaWindow *window);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user