Minor X11 hack:

Here’s a patch to center a newly-created, non-fullscreen X11 window.
While this may or may not be suitable for adding to SDL officially, I
didn’t want to put any Xlib dependencies in my code directly.

To use:

  • Apply patch/rebuild.
  • export SDL_WINDOW_POS=center
  • Call SDL_SetVideoMode as needed.

(Ideally, this could be expanded to handle other commands like
SDL_WINDOW_POS=20x190, etc, and could be implemented for other targets,
but this is really a hack to avoid API changes).

–ryan.---------------------------------

diff -u -r1.10 SDL_x11video.c
— src/video/x11/SDL_x11video.c 2002/08/19 03:40:44 1.10
+++ src/video/x11/SDL_x11video.c 2002/09/02 01:20:40
@@ -870,6 +870,18 @@
screen->flags |= SDL_FULLSCREEN;
X11_EnterFullScreen(this);
} else {

  •   	/* Position standalone window based on user request. --ryan. */
    
  •   	const char *envr = getenv("SDL_WINDOW_POS");
    
  •   	if (envr != NULL) {
    
  •   		int xscreen = DefaultScreen(SDL_Display);
    
  •   		if (strcmp(envr, "center") == 0) {
    
  •   			int disw = DisplayWidth(SDL_Display, xscreen);
    
  •   			int dish = DisplayHeight(SDL_Display, xscreen);
    
  •   			int centerx = (disw - current_w) / 2;
    
  •   			int centery = (dish - current_h) / 2;
    
  •   			XMoveWindow(SDL_Display, WMwindow, centerx, centery);
    
  •   		}
    
  •   	}
      	screen->flags &= ~SDL_FULLSCREEN;
      }
    
    }

This is very useful. Sometimes, when you change the size of a
non-fullscreen window, it’ll turn out to be partly out of the screen. As
far as I can see, this patch fixes the problem for me.

cu,
NicolaiOn Monday 02 September 2002 03:27, Ryan C. Gordon wrote:

Here’s a patch to center a newly-created, non-fullscreen X11 window.
While this may or may not be suitable for adding to SDL officially, I
didn’t want to put any Xlib dependencies in my code directly.

Here’s a patch to center a newly-created, non-fullscreen X11 window.
While this may or may not be suitable for adding to SDL officially, I
didn’t want to put any Xlib dependencies in my code directly.

To use:

  • Apply patch/rebuild.
  • export SDL_WINDOW_POS=center
  • Call SDL_SetVideoMode as needed.

(Ideally, this could be expanded to handle other commands like
SDL_WINDOW_POS=20x190, etc, and could be implemented for other targets,
but this is really a hack to avoid API changes).

Cool, it’s in CVS.

See ya!
-Sam Lantinga, Software Engineer, Blizzard Entertainment