[mutter/configurable-shadows: 4/13] Export meta_window_appears_focused()



commit 8825ded1ca54a142ee540067bb2acab0bced2555
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Thu Nov 11 16:04:31 2010 -0500

    Export meta_window_appears_focused()
    
    Move meta_window_appears_focused() into the public window.h so
    we can use it to change the shadow type.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=592382

 src/core/window-private.h |    2 --
 src/core/window.c         |   13 +++++++++++++
 src/include/window.h      |    1 +
 3 files changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/src/core/window-private.h b/src/core/window-private.h
index 485a683..67fe4d1 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -461,8 +461,6 @@ void        meta_window_update_fullscreen_monitors (MetaWindow    *window,
                                                     unsigned long  left,
                                                     unsigned long  right);
 
-gboolean meta_window_appears_focused (MetaWindow *window);
-
 /* args to move are window pos, not frame pos */
 void        meta_window_move               (MetaWindow  *window,
                                             gboolean     user_op,
diff --git a/src/core/window.c b/src/core/window.c
index 8fd342c..30bdeda 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -9275,9 +9275,22 @@ transient_has_focus (MetaWindow *window,
   return FALSE;
 }
 
+/**
+ * meta_window_appears_focused:
+ * @window: a #MetaWindow
+ *
+ * Determines if the window should be drawn with a focused appearance. This is
+ * true for focused windows but also true for windows with a focused modal
+ * dialog attached.
+ *
+ * Return value: %TRUE if the window should be drawn with a focused frame
+ */
 gboolean
 meta_window_appears_focused (MetaWindow *window)
 {
+  /* FIXME: meta_window_foreach_transient() iterates over all windows; we
+   *  should eat the complexity to cache a bit for this.
+   */
   if (!window->has_focus && meta_prefs_get_attach_modal_dialogs ())
     {
       gboolean focus = FALSE;
diff --git a/src/include/window.h b/src/include/window.h
index 8cdcd18..b3d3c4c 100644
--- a/src/include/window.h
+++ b/src/include/window.h
@@ -69,6 +69,7 @@ GType meta_window_get_type (void);
 
 MetaFrame *meta_window_get_frame (MetaWindow *window);
 gboolean meta_window_has_focus (MetaWindow *window);
+gboolean meta_window_appears_focused (MetaWindow *window);
 gboolean meta_window_is_shaded (MetaWindow *window);
 gboolean meta_window_is_override_redirect (MetaWindow *window);
 gboolean meta_window_is_skip_taskbar (MetaWindow *window);



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