aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mgl/mgl.h1
-rw-r--r--src/mgl.c1
-rw-r--r--src/window/window.c7
3 files changed, 9 insertions, 0 deletions
diff --git a/include/mgl/mgl.h b/include/mgl/mgl.h
index 7b02ceb..4cbc8d5 100644
--- a/include/mgl/mgl.h
+++ b/include/mgl/mgl.h
@@ -13,6 +13,7 @@ struct mgl_context {
_XVisualInfo *visual_info;
unsigned long wm_delete_window_atom;
unsigned long net_wm_ping_atom;
+ unsigned long net_wm_pid_atom;
};
/*
diff --git a/src/mgl.c b/src/mgl.c
index f93704e..dd5cccd 100644
--- a/src/mgl.c
+++ b/src/mgl.c
@@ -77,6 +77,7 @@ int mgl_init(void) {
}
context.net_wm_ping_atom = XInternAtom(context.connection, "_NET_WM_PING", True);
+ context.net_wm_pid_atom = XInternAtom(context.connection, "_NET_WM_PID", True);
if(mgl_gl_load(&context.gl) != 0) {
mgl_deinit();
diff --git a/src/window/window.c b/src/window/window.c
index 08c4585..c03d681 100644
--- a/src/window/window.c
+++ b/src/window/window.c
@@ -331,6 +331,13 @@ static int mgl_window_init(mgl_window *self, const char *title, const mgl_window
context->net_wm_ping_atom
};
XSetWMProtocols(context->connection, self->window, wm_protocol_atoms, 2);
+
+ if(context->net_wm_pid_atom) {
+ const long pid = getpid();
+ XChangeProperty(context->connection, self->window, context->net_wm_pid_atom, XA_CARDINAL,
+ 32, PropModeReplace, (const unsigned char*)&pid, 1);
+ }
+
XFlush(context->connection);
/* TODO: Check for failure? */