summaryrefslogtreecommitdiff
path: root/src/core/window-props.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/window-props.c')
-rw-r--r--src/core/window-props.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/core/window-props.c b/src/core/window-props.c
index 23b10e29..0b42e569 100644
--- a/src/core/window-props.c
+++ b/src/core/window-props.c
@@ -389,6 +389,28 @@ reload_wm_window_role (MetaWindow *window,
}
static void
+reload_net_wm_pid (MetaWindow *window,
+ MetaPropValue *value,
+ gboolean initial)
+{
+ if (value->type != META_PROP_VALUE_INVALID)
+ {
+ gulong cardinal = (int) value->v.cardinal;
+
+ if (cardinal <= 0)
+ {
+ g_warning ("Application set a bogus _NET_WM_PID %lu", cardinal);
+ }
+ else
+ {
+ window->net_wm_pid = cardinal;
+ meta_verbose ("Window has _NET_WM_PID %d\n",
+ window->net_wm_pid);
+ }
+ }
+}
+
+static void
reload_net_wm_user_time (MetaWindow *window,
MetaPropValue *value,
gboolean initial)
@@ -1782,6 +1804,12 @@ meta_display_init_window_prop_hooks (MetaDisplay *display)
LOAD_INIT | INCLUDE_OR
},
{
+ display->atom__NET_WM_PID,
+ META_PROP_VALUE_CARDINAL,
+ reload_net_wm_pid,
+ LOAD_INIT | INCLUDE_OR
+ },
+ {
XA_WM_NAME,
META_PROP_VALUE_TEXT_PROPERTY,
reload_wm_name,