diff options
Diffstat (limited to 'Apply-new_windows_always_on_top-to-newly-raised-acti.patch')
-rw-r--r-- | Apply-new_windows_always_on_top-to-newly-raised-acti.patch | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/Apply-new_windows_always_on_top-to-newly-raised-acti.patch b/Apply-new_windows_always_on_top-to-newly-raised-acti.patch deleted file mode 100644 index 93378bf..0000000 --- a/Apply-new_windows_always_on_top-to-newly-raised-acti.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 2bd938c957b27c1055f7f235939c9b8b338d5cbf Mon Sep 17 00:00:00 2001 -From: "Owen W. Taylor" <otaylor@fishsoup.net> -Date: Wed, 23 Jun 2010 19:45:05 -0400 -Subject: [PATCH] Apply new-windows-always-on-top to newly - raised/activated windows - -A window that raises itself or activates itself is in many ways -like a completely new window. (Once a window is out of the user's -site, they really have no idea if it's mapped or has been withdrawn -by the user.) - -If the user has set the new-windows-always-on-top key to make the -behavior for a focus-stealing-prevented *new* window "raise but not -focus", then they'll want the same behavior in the case of -windows that attempt to raise or activate themselves as well. - -https://bugzilla.gnome.org/show_bug.cgi?id=599261 ---- - src/core/window.c | 35 +++++++++++++++++++++++++++++--- - src/org.gnome.metacity.gschema.xml.in | 6 +++++ - 2 files changed, 37 insertions(+), 4 deletions(-) - -diff --git a/src/core/window.c b/src/core/window.c -index b6a69b0..897161e 100644 ---- a/src/core/window.c -+++ b/src/core/window.c -@@ -2970,6 +2970,8 @@ window_activate (MetaWindow *window, - MetaWorkspace *workspace) - { - gboolean can_ignore_outdated_timestamps; -+ gboolean only_raise = FALSE; -+ - meta_topic (META_DEBUG_FOCUS, - "_NET_ACTIVE_WINDOW message sent for %s at time %u " - "by client type %u.\n", -@@ -2991,8 +2993,28 @@ window_activate (MetaWindow *window, - "last_user_time (%u) is more recent; ignoring " - " _NET_ACTIVE_WINDOW message.\n", - window->display->last_user_time); -- meta_window_set_demands_attention(window); -- return; -+ if (meta_prefs_get_new_windows_always_on_top () && -+ meta_prefs_get_raise_on_click ()) -+ { -+ /* The new_windows_only_on_top preference causes new -+ * focus-denied windows to get raised but not focused -+ * instead of set to demands attention. For consistency, we -+ * do the same here with windows that are "new to the user" -+ * - that self activate and are focus-stealing prevented. We -+ * can't just raise the window and return here because the -+ * window might be on a different workspace, so we need the -+ * handling below. The check for meta_prefs_get_raise_on_click () -+ * is because that preference, if off, somewhat unexpectedl -+ * akes windows not raise on self-activation. If that is changed -+ * than the test should be removed here. -+ */ -+ only_raise = TRUE; -+ } -+ else -+ { -+ meta_window_set_demands_attention (window); -+ return; -+ } - } - - /* For those stupid pagers, get a valid timestamp and show a warning */ -@@ -3041,7 +3063,8 @@ window_activate (MetaWindow *window, - meta_topic (META_DEBUG_FOCUS, - "Focusing window %s due to activation\n", - window->desc); -- meta_window_focus (window, timestamp); -+ if (!only_raise) -+ meta_window_focus (window, timestamp); - } - - /* This function exists since most of the functionality in window_activate -@@ -4759,11 +4782,15 @@ meta_window_configure_request (MetaWindow *window, - "broken behavior and the request is being ignored.\n", - window->desc); - } -+ /* the new_windows_always_on_top check is because a window that -+ * spontaneously restacks itself to the top is a lot like a new -+ * window that doesn't get focus */ - else if (active_window && - !meta_window_same_application (window, active_window) && - !meta_window_same_client (window, active_window) && - XSERVER_TIME_IS_BEFORE (window->net_wm_user_time, -- active_window->net_wm_user_time)) -+ active_window->net_wm_user_time) && -+ !meta_prefs_get_new_windows_always_on_top ()) - { - meta_topic (META_DEBUG_STACK, - "Ignoring xconfigure stacking request from %s (with " -diff --git a/src/org.gnome.metacity.gschema.xml.in b/src/org.gnome.metacity.gschema.xml.in -index d69d525..edc1b70 100644 ---- a/src/org.gnome.metacity.gschema.xml.in -+++ b/src/org.gnome.metacity.gschema.xml.in -@@ -66,6 +66,12 @@ - invariant in the 'click' focus mode that the topmost window always - has focus, so its most suitable for use with the 'mouse' and - 'sloppy' focus modes. -+ -+ This key also affects windows that try to activate or raise themselves -+ themselves but don't succeed in getting the the focus. Without -+ this key being set, such windows are flashed in the taskbar. With -+ this key set they, like entirely new windows, are raised but not -+ focused. - </_description> - </key> - </schema> --- -1.7.9 - |