X-Git-Url: http://git.tdb.fi/?p=libs%2Fgui.git;a=blobdiff_plain;f=source%2Fgraphics%2Fx11%2Fwindow.cpp;h=52f37a35137e986e81fcf840e32b64e4b33a01e0;hp=9b46e4e16593cfe4abe1e760d2cdf832a4593d26;hb=9c7ae47da64904c2aa9a9969870ca8befebe7d02;hpb=f6ca714e2258f4cad433801c88264947d4c2d14c diff --git a/source/graphics/x11/window.cpp b/source/graphics/x11/window.cpp index 9b46e4e..52f37a3 100644 --- a/source/graphics/x11/window.cpp +++ b/source/graphics/x11/window.cpp @@ -36,7 +36,7 @@ void Window::platform_init() priv->window = XCreateWindow(dpy, display.get_private().root_window, - 0, 0, + 0, 0, // User position is set when the window is mapped options.width, options.height, 0, CopyFromParent, @@ -112,6 +112,8 @@ void Window::platform_reconfigure(bool fullscreen_changed) if(options.fullscreen) XMoveResizeWindow(dpy, priv->window, 0, 0, options.width, options.height); + else if(options.user_position) + XMoveResizeWindow(dpy, priv->window, options.x, options.y, options.width, options.height); else XResizeWindow(dpy, priv->window, options.width, options.height); @@ -160,7 +162,10 @@ void Window::platform_set_touch_input() void Window::platform_show() { - XMapRaised(display.get_private().display, priv->window); + DisplayHandle dpy = display.get_private().display; + XMapRaised(dpy, priv->window); + if(options.user_position) + XMoveWindow(dpy, priv->window, options.x, options.y); } void Window::platform_hide() @@ -212,10 +217,11 @@ bool Window::event(const Event &evnt) y -= priv->rel_y; } - if(x!=options.x || y!=options.y) + if((x==options.x && y==options.y) == moving) { options.x = x; options.y = y; + moving = false; signal_move.emit(options.x, options.y); } }