X11: open window on its previous position
Signed-off-by: Thomas Bernard <miniupnp@free.fr>
This commit is contained in:
parent
80f2f681b3
commit
1d023c49e2
@ -1368,8 +1368,17 @@ int Get_input(int sleep_time)
|
|||||||
case ConfigureNotify:
|
case ConfigureNotify:
|
||||||
if (event.xconfigure.above == 0)
|
if (event.xconfigure.above == 0)
|
||||||
{
|
{
|
||||||
|
int x_pos, y_pos;
|
||||||
|
unsigned int width, height, border_width, depth;
|
||||||
|
Window root_window;
|
||||||
|
|
||||||
Resize_width = event.xconfigure.width;
|
Resize_width = event.xconfigure.width;
|
||||||
Resize_height = event.xconfigure.height;
|
Resize_height = event.xconfigure.height;
|
||||||
|
if (XGetGeometry(X11_display, X11_window, &root_window, &x_pos, &y_pos, &width, &height, &border_width, &depth))
|
||||||
|
{
|
||||||
|
Config.Window_pos_x = event.xconfigure.x - x_pos;
|
||||||
|
Config.Window_pos_y = event.xconfigure.y - y_pos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ClientMessage:
|
case ClientMessage:
|
||||||
|
|||||||
@ -1092,7 +1092,7 @@ void Program_shutdown(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// Config.Window_pos_x / Config.Window_pos_y are set in win32screen.c
|
// Config.Window_pos_x / Config.Window_pos_y are set in win32screen.c
|
||||||
#else
|
#elif !defined(USE_X11)
|
||||||
// All other targets: irrelevant dimensions.
|
// All other targets: irrelevant dimensions.
|
||||||
// Do not attempt to force them back on next program run.
|
// Do not attempt to force them back on next program run.
|
||||||
Config.Window_pos_x = 9999;
|
Config.Window_pos_x = 9999;
|
||||||
|
|||||||
@ -46,6 +46,7 @@ void GFX2_Set_mode(int *width, int *height, int fullscreen)
|
|||||||
unsigned long white, black;
|
unsigned long white, black;
|
||||||
char * winName[] = { "GrafX2" };
|
char * winName[] = { "GrafX2" };
|
||||||
Visual * visual;
|
Visual * visual;
|
||||||
|
(void)fullscreen;
|
||||||
|
|
||||||
if (X11_display == NULL)
|
if (X11_display == NULL)
|
||||||
X11_display = XOpenDisplay(NULL);// NULL is equivalent to getenv("DISPLAY")
|
X11_display = XOpenDisplay(NULL);// NULL is equivalent to getenv("DISPLAY")
|
||||||
@ -152,6 +153,8 @@ void GFX2_Set_mode(int *width, int *height, int fullscreen)
|
|||||||
XSetWMProtocols(X11_display, X11_window, &wmDelete, 1);
|
XSetWMProtocols(X11_display, X11_window, &wmDelete, 1);
|
||||||
|
|
||||||
XMapWindow(X11_display, X11_window);
|
XMapWindow(X11_display, X11_window);
|
||||||
|
if (Config.Window_pos_x != 9999 && Config.Window_pos_y != 9999)
|
||||||
|
XMoveWindow(X11_display, X11_window, Config.Window_pos_x, Config.Window_pos_y);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (screen == NULL)
|
if (screen == NULL)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user