Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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 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.