[metacity] window: merge got_focus/lost_focus to a new function
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] window: merge got_focus/lost_focus to a new function
- Date: Thu, 2 Mar 2017 22:15:24 +0000 (UTC)
commit 2a63c425dcf827430650c7a509bfb1a7a8a47fcb
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Sun Dec 16 21:24:32 2012 -0500
window: merge got_focus/lost_focus to a new function
Make it a static function for now, but this will be a private
function soon, replacing meta_window_lost_focus. This should
contain no functional changes, only cosmetic indentation changes,
so best viewed with ignorews=1 or -w or -b, you know the drill.
https://bugzilla.gnome.org/show_bug.cgi?id=647706
src/core/window.c | 188 ++++++++++++++++++++++++++++-------------------------
1 files changed, 99 insertions(+), 89 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index fbca135..6459042 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -5639,110 +5639,118 @@ check_ancestor_focus_appearance (MetaWindow *window)
}
static void
-meta_window_got_focus (MetaWindow *window)
+meta_window_set_focused_internal (MetaWindow *window,
+ gboolean focused)
{
- if (window != window->display->focus_window)
+ if (focused)
{
- meta_topic (META_DEBUG_FOCUS,
- "* Focus --> %s\n", window->desc);
- window->display->focus_window = window;
- window->has_focus = TRUE;
- meta_compositor_set_active_window (window->display->compositor, window);
-
- /* Move to the front of the focusing workspace's MRU list.
- * We should only be "removing" it from the MRU list if it's
- * not already there. Note that it's possible that we might
- * be processing this FocusIn after we've changed to a
- * different workspace; we should therefore update the MRU
- * list only if the window is actually on the active
- * workspace.
- */
- if (window->screen->active_workspace &&
- meta_window_located_on_workspace (window,
- window->screen->active_workspace))
+ if (window != window->display->focus_window)
{
- GList* link;
- link = g_list_find (window->screen->active_workspace->mru_list,
- window);
- g_assert (link);
-
- window->screen->active_workspace->mru_list =
- g_list_remove_link (window->screen->active_workspace->mru_list,
- link);
- g_list_free (link);
-
- window->screen->active_workspace->mru_list =
- g_list_prepend (window->screen->active_workspace->mru_list,
- window);
- }
+ meta_topic (META_DEBUG_FOCUS,
+ "* Focus --> %s\n", window->desc);
+ window->display->focus_window = window;
+ window->has_focus = TRUE;
+ meta_compositor_set_active_window (window->display->compositor, window);
+
+ /* Move to the front of the focusing workspace's MRU list.
+ * We should only be "removing" it from the MRU list if it's
+ * not already there. Note that it's possible that we might
+ * be processing this FocusIn after we've changed to a
+ * different workspace; we should therefore update the MRU
+ * list only if the window is actually on the active
+ * workspace.
+ */
+ if (window->screen->active_workspace &&
+ meta_window_located_on_workspace (window,
+ window->screen->active_workspace))
+ {
+ GList* link;
+ link = g_list_find (window->screen->active_workspace->mru_list,
+ window);
+ g_assert (link);
+
+ window->screen->active_workspace->mru_list =
+ g_list_remove_link (window->screen->active_workspace->mru_list,
+ link);
+ g_list_free (link);
+
+ window->screen->active_workspace->mru_list =
+ g_list_prepend (window->screen->active_workspace->mru_list,
+ window);
+ }
- meta_window_appears_focused_changed (window);
+ meta_window_appears_focused_changed (window);
- meta_error_trap_push (window->display);
- XInstallColormap (window->display->xdisplay,
- window->colormap);
- meta_error_trap_pop (window->display);
+ meta_error_trap_push (window->display);
+ XInstallColormap (window->display->xdisplay,
+ window->colormap);
+ meta_error_trap_pop (window->display);
- /* move into FOCUSED_WINDOW layer */
- meta_window_update_layer (window);
+ /* move into FOCUSED_WINDOW layer */
+ meta_window_update_layer (window);
- /* Ungrab click to focus button since the sync grab can interfere
- * with some things you might do inside the focused window, by
- * causing the client to get funky enter/leave events.
- *
- * The reason we usually have a passive grab on the window is
- * so that we can intercept clicks and raise the window in
- * response. For click-to-focus we don't need that since the
- * focused window is already raised. When raise_on_click is
- * FALSE we also don't need that since we don't do anything
- * when the window is clicked.
- *
- * There is dicussion in bugs 102209, 115072, and 461577
- */
- if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK ||
- !meta_prefs_get_raise_on_click())
- meta_display_ungrab_focus_window_button (window->display, window);
+ /* Ungrab click to focus button since the sync grab can interfere
+ * with some things you might do inside the focused window, by
+ * causing the client to get funky enter/leave events.
+ *
+ * The reason we usually have a passive grab on the window is
+ * so that we can intercept clicks and raise the window in
+ * response. For click-to-focus we don't need that since the
+ * focused window is already raised. When raise_on_click is
+ * FALSE we also don't need that since we don't do anything
+ * when the window is clicked.
+ *
+ * There is dicussion in bugs 102209, 115072, and 461577
+ */
+ if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK ||
+ !meta_prefs_get_raise_on_click())
+ meta_display_ungrab_focus_window_button (window->display, window);
- /* parent window become active. */
- check_ancestor_focus_appearance (window);
+ /* parent window become active. */
+ check_ancestor_focus_appearance (window);
+ }
}
-}
-
-void
-meta_window_lost_focus (MetaWindow *window)
-{
- if (window == window->display->focus_window)
+ else
{
- meta_topic (META_DEBUG_FOCUS,
- "%s is now the previous focus window due to being focused out or unmapped\n",
- window->desc);
+ if (window == window->display->focus_window)
+ {
+ meta_topic (META_DEBUG_FOCUS,
+ "%s is now the previous focus window due to being focused out or unmapped\n",
+ window->desc);
- meta_topic (META_DEBUG_FOCUS,
- "* Focus --> NULL (was %s)\n", window->desc);
+ meta_topic (META_DEBUG_FOCUS,
+ "* Focus --> NULL (was %s)\n", window->desc);
- window->display->focus_window = NULL;
- window->has_focus = FALSE;
+ window->display->focus_window = NULL;
+ window->has_focus = FALSE;
- /* parent window become active. */
- check_ancestor_focus_appearance (window);
+ /* parent window become active. */
+ check_ancestor_focus_appearance (window);
- meta_window_appears_focused_changed (window);
+ meta_window_appears_focused_changed (window);
- meta_compositor_set_active_window (window->display->compositor, NULL);
+ meta_compositor_set_active_window (window->display->compositor, NULL);
- meta_error_trap_push (window->display);
- XUninstallColormap (window->display->xdisplay,
- window->colormap);
- meta_error_trap_pop (window->display);
+ meta_error_trap_push (window->display);
+ XUninstallColormap (window->display->xdisplay,
+ window->colormap);
+ meta_error_trap_pop (window->display);
- /* move out of FOCUSED_WINDOW layer */
- meta_window_update_layer (window);
+ /* move out of FOCUSED_WINDOW layer */
+ meta_window_update_layer (window);
- /* Re-grab for click to focus and raise-on-click, if necessary */
- if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK ||
- !meta_prefs_get_raise_on_click ())
- meta_display_grab_focus_window_button (window->display, window);
- }
+ /* Re-grab for click to focus and raise-on-click, if necessary */
+ if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK ||
+ !meta_prefs_get_raise_on_click ())
+ meta_display_grab_focus_window_button (window->display, window);
+ }
+ }
+}
+
+void
+meta_window_lost_focus (MetaWindow *window)
+{
+ meta_window_set_focused_internal (window, FALSE);
}
gboolean
@@ -5825,8 +5833,10 @@ meta_window_notify_focus (MetaWindow *window,
return FALSE;
}
-
- meta_window_got_focus (window);
+ else
+ {
+ meta_window_set_focused_internal (window, TRUE);
+ }
}
else if (event->type == FocusOut)
{
@@ -5840,7 +5850,7 @@ meta_window_notify_focus (MetaWindow *window,
}
else
{
- meta_window_lost_focus (window);
+ meta_window_set_focused_internal (window, FALSE);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]