Commit 82ab8e4d authored by Sam Lantinga's avatar Sam Lantinga

Date: Sun, 1 Sep 2002 21:27:54 -0400 (EDT)

From: "Ryan C. Gordon"
Subject: [SDL] 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).

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40486
parent f11307ea
...@@ -870,6 +870,18 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen, ...@@ -870,6 +870,18 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
screen->flags |= SDL_FULLSCREEN; screen->flags |= SDL_FULLSCREEN;
X11_EnterFullScreen(this); X11_EnterFullScreen(this);
} else { } 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; screen->flags &= ~SDL_FULLSCREEN;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment