[mutter] [MetaDisplay] added "window-marked-urgent" signal
- From: Tomas Frydrych <tomasf src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [mutter] [MetaDisplay] added "window-marked-urgent" signal
- Date: Fri, 20 Nov 2009 09:01:30 +0000 (UTC)
commit 5e2c66e241ce6f9a6e4fe28290ae63b8b1520dce
Author: Tomas Frydrych <tf linux intel com>
Date: Tue Nov 17 10:24:18 2009 +0000
[MetaDisplay] added "window-marked-urgent" signal
Having a MetaDisplay window-marked-urgent signal when a window sets its urgent
hint allows for centralized processing
https://bugzilla.gnome.org/show_bug.cgi?id=600068
src/core/display.c | 11 +++++++++++
src/core/window-props.c | 9 +++++++++
src/core/window.c | 3 +++
3 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/src/core/display.c b/src/core/display.c
index 5b08eac..6995f95 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -131,6 +131,7 @@ enum
FOCUS_WINDOW,
WINDOW_CREATED,
WINDOW_DEMANDS_ATTENTION,
+ WINDOW_MARKED_URGENT,
LAST_SIGNAL
};
@@ -246,6 +247,16 @@ meta_display_class_init (MetaDisplayClass *klass)
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, META_TYPE_WINDOW);
+ display_signals[WINDOW_MARKED_URGENT] =
+ g_signal_new ("window-marked-urgent",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ META_TYPE_WINDOW);
+
g_object_class_install_property (object_class,
PROP_FOCUS_WINDOW,
g_param_spec_object ("focus-window",
diff --git a/src/core/window-props.c b/src/core/window-props.c
index 4e14502..4d95119 100644
--- a/src/core/window-props.c
+++ b/src/core/window-props.c
@@ -1406,6 +1406,15 @@ reload_wm_hints (MetaWindow *window,
if (!initial && (window->wm_hints_urgent != old_urgent))
g_object_notify (G_OBJECT (window), "urgent");
+ /*
+ * Do not emit signal for the initial property load, let the constructor to
+ * take care of it once the MetaWindow is fully constructed.
+ *
+ * Only emit if the property is both changed and set.
+ */
+ if (!initial && window->wm_hints_urgent && !old_urgent)
+ g_signal_emit_by_name (window->display, "window-marked-urgent", window);
+
meta_icon_cache_property_changed (&window->icon_cache,
window->display,
XA_WM_HINTS);
diff --git a/src/core/window.c b/src/core/window.c
index 4b83977..be4cfbc 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -1125,6 +1125,9 @@ meta_window_new_with_attrs (MetaDisplay *display,
if (window->wm_state_demands_attention)
g_signal_emit_by_name (window->display, "window-demands-attention", window);
+ if (window->wm_hints_urgent)
+ g_signal_emit_by_name (window->display, "window-marked-urgent", window);
+
return window;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]