Skip to content

Commit

Permalink
x11: Put a matching window_group wmhint on every window created.
Browse files Browse the repository at this point in the history
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 f9af0c0
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/video/x11/SDL_x11video.c
Expand Up @@ -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) {
Expand Down
1 change: 1 addition & 0 deletions src/video/x11/SDL_x11video.h
Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion src/video/x11/SDL_x11window.c
Expand Up @@ -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();
Expand Down

0 comments on commit f9af0c0

Please sign in to comment.