From ea6883e9ba851db5e6557b1d71d1268f6ab25c64 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Fri, 2 Dec 2016 19:24:57 +0100 Subject: Make resize events fdo the right thing. Add move event. --- plugingui/nativewindow_x11.cc | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'plugingui/nativewindow_x11.cc') diff --git a/plugingui/nativewindow_x11.cc b/plugingui/nativewindow_x11.cc index 8a86c80..1ca7d00 100644 --- a/plugingui/nativewindow_x11.cc +++ b/plugingui/nativewindow_x11.cc @@ -414,13 +414,25 @@ std::shared_ptr NativeWindowX11::translateXMessage(XEvent& xevent, case ConfigureNotify: { - auto resizeEvent = std::make_shared(); - resizeEvent->window_id = xevent.xconfigure.window; - //resizeEvent->x = xevent.xconfigure.x; - //resizeEvent->y = xevent.xconfigure.y; - resizeEvent->width = xevent.xconfigure.width; - resizeEvent->height = xevent.xconfigure.height; - event = resizeEvent; + if((window.width() != (std::size_t)xevent.xconfigure.width) || + (window.height() != (std::size_t)xevent.xconfigure.height)) + { + auto resizeEvent = std::make_shared(); + resizeEvent->window_id = xevent.xconfigure.window; + resizeEvent->width = xevent.xconfigure.width; + resizeEvent->height = xevent.xconfigure.height; + event = resizeEvent; + } + + if((window.windowX() != (std::size_t)xevent.xconfigure.x) || + (window.windowY() != (std::size_t)xevent.xconfigure.y)) + { + auto moveEvent = std::make_shared(); + moveEvent->window_id = xevent.xconfigure.window; + moveEvent->x = xevent.xconfigure.x; + moveEvent->y = xevent.xconfigure.y; + event = moveEvent; + } } break; -- cgit v1.2.3