Fake resize events are no longer sent when the window is moved, on Linux
This commit is contained in:
parent
83ffe11709
commit
68b51734a9
@ -72,7 +72,8 @@ m_isExternal (true),
|
||||
m_atomClose (0),
|
||||
m_oldVideoMode(-1),
|
||||
m_hiddenCursor(0),
|
||||
m_keyRepeat (true)
|
||||
m_keyRepeat (true),
|
||||
m_previousSize(-1, -1)
|
||||
{
|
||||
// Open a connection with the X server
|
||||
m_display = OpenDisplay();
|
||||
@ -101,7 +102,8 @@ m_isExternal (false),
|
||||
m_atomClose (0),
|
||||
m_oldVideoMode(-1),
|
||||
m_hiddenCursor(0),
|
||||
m_keyRepeat (true)
|
||||
m_keyRepeat (true),
|
||||
m_previousSize(-1, -1)
|
||||
{
|
||||
// Open a connection with the X server
|
||||
m_display = OpenDisplay();
|
||||
@ -646,12 +648,19 @@ bool WindowImplX11::processEvent(XEvent windowEvent)
|
||||
|
||||
// Resize event
|
||||
case ConfigureNotify :
|
||||
{
|
||||
// ConfigureNotify can be triggered for other reasons, check if the size has acutally changed
|
||||
if ((windowEvent.xconfigure.width != m_previousSize.x) || (windowEvent.xconfigure.height != m_previousSize.y))
|
||||
{
|
||||
Event event;
|
||||
event.type = Event::Resized;
|
||||
event.size.width = windowEvent.xconfigure.width;
|
||||
event.size.height = windowEvent.xconfigure.height;
|
||||
pushEvent(event);
|
||||
|
||||
m_previousSize.x = windowEvent.xconfigure.width;
|
||||
m_previousSize.y = windowEvent.xconfigure.height;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -223,6 +223,7 @@ private :
|
||||
Cursor m_hiddenCursor; ///< As X11 doesn't provide cursor hidding, we must create a transparent one
|
||||
bool m_keyRepeat; ///< Is the KeyRepeat feature enabled ?
|
||||
XEvent m_lastKeyReleaseEvent; ///< Last key release event we received (needed for discarding repeated key events)
|
||||
Vector2i m_previousSize; ///< Previous size of the window, to find if a ConfigureNotify event is a resize event (could be a move event only)
|
||||
};
|
||||
|
||||
} // namespace priv
|
||||
|
Loading…
Reference in New Issue
Block a user