[metacity] window: ensure that popup window types propagate their focus appearance



commit 058095944c87e54083ac8d989c8b1422b3a3730c
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon Oct 6 16:55:01 2014 -0700

    window: ensure that popup window types propagate their focus appearance

 src/core/window.c |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index a49e86f..ff94f13 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -5829,6 +5829,25 @@ meta_window_appears_focused_changed (MetaWindow *window)
     meta_frame_queue_draw (window->frame);
 }
 
+static gboolean
+should_propagate_focus_appearance (MetaWindow *window)
+{
+  if (meta_window_is_attached_dialog (window))
+    return TRUE;
+
+  switch (window->type)
+    {
+    case META_WINDOW_DROPDOWN_MENU:
+    case META_WINDOW_POPUP_MENU:
+    case META_WINDOW_COMBO:
+      return TRUE;
+    default:
+      break;
+    }
+
+  return FALSE;
+}
+
 /**
  * meta_window_propagate_focus_appearance:
  * @window: the window to start propagating from
@@ -5852,7 +5871,7 @@ meta_window_propagate_focus_appearance (MetaWindow *window,
 
   child = window;
   parent = meta_window_get_transient_for (child);
-  while (parent && (!focused || meta_window_is_attached_dialog (child)))
+  while (parent && (!focused || should_propagate_focus_appearance (child)))
     {
       gboolean child_focus_state_changed;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]