Skip to content
Permalink
Browse files

x11: Put a matching window_group wmhint on every window created.

This is useful to the Window Manager, so it can know to associate multiple SDL
windows with a single app.
  • Loading branch information
icculus committed Jan 5, 2016
1 parent 8e855f2 commit f9af0c03766d0570e3a6e32771d09258b7c0d41e
Showing with 6 additions and 1 deletion.
  1. +3 −0 src/video/x11/SDL_x11video.c
  2. +1 −0 src/video/x11/SDL_x11video.h
  3. +2 −1 src/video/x11/SDL_x11window.c
@@ -376,6 +376,9 @@ X11_VideoInit(_THIS)
/* Get the process PID to be associated to the window */
data->pid = getpid();

/* I have no idea how random this actually is, or has to be. */
data->window_group = (XID) (((size_t) data->pid) ^ ((size_t) _this));

/* Open a connection to the X input manager */
#ifdef X_HAVE_UTF8_STRING
if (SDL_X11_HAVE_UTF8) {
@@ -81,6 +81,7 @@ typedef struct SDL_VideoData
int numwindows;
SDL_WindowData **windowlist;
int windowlistlength;
XID window_group;

/* This is true for ICCCM2.0-compliant window managers */
SDL_bool net_wm;
@@ -524,7 +524,8 @@ X11_CreateWindow(_THIS, SDL_Window * window)
/* Setup the input hints so we get keyboard input */
wmhints = X11_XAllocWMHints();
wmhints->input = True;
wmhints->flags = InputHint;
wmhints->window_group = data->window_group;
wmhints->flags = InputHint | WindowGroupHint;

/* Setup the class hints so we can get an icon (AfterStep) */
classhints = X11_XAllocClassHint();

0 comments on commit f9af0c0

Please sign in to comment.