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
This commit is contained in:
parent
f11307eab0
commit
82ab8e4d2d
1 changed files with 12 additions and 0 deletions
|
@ -870,6 +870,18 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen,
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue