mirror of
https://github.com/SFML/SFML.git
synced 2024-11-29 06:41:05 +08:00
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_atomClose (0),
|
||||||
m_oldVideoMode(-1),
|
m_oldVideoMode(-1),
|
||||||
m_hiddenCursor(0),
|
m_hiddenCursor(0),
|
||||||
m_keyRepeat (true)
|
m_keyRepeat (true),
|
||||||
|
m_previousSize(-1, -1)
|
||||||
{
|
{
|
||||||
// Open a connection with the X server
|
// Open a connection with the X server
|
||||||
m_display = OpenDisplay();
|
m_display = OpenDisplay();
|
||||||
@ -101,7 +102,8 @@ m_isExternal (false),
|
|||||||
m_atomClose (0),
|
m_atomClose (0),
|
||||||
m_oldVideoMode(-1),
|
m_oldVideoMode(-1),
|
||||||
m_hiddenCursor(0),
|
m_hiddenCursor(0),
|
||||||
m_keyRepeat (true)
|
m_keyRepeat (true),
|
||||||
|
m_previousSize(-1, -1)
|
||||||
{
|
{
|
||||||
// Open a connection with the X server
|
// Open a connection with the X server
|
||||||
m_display = OpenDisplay();
|
m_display = OpenDisplay();
|
||||||
@ -647,11 +649,18 @@ bool WindowImplX11::processEvent(XEvent windowEvent)
|
|||||||
// Resize event
|
// Resize event
|
||||||
case ConfigureNotify :
|
case ConfigureNotify :
|
||||||
{
|
{
|
||||||
Event event;
|
// ConfigureNotify can be triggered for other reasons, check if the size has acutally changed
|
||||||
event.type = Event::Resized;
|
if ((windowEvent.xconfigure.width != m_previousSize.x) || (windowEvent.xconfigure.height != m_previousSize.y))
|
||||||
event.size.width = windowEvent.xconfigure.width;
|
{
|
||||||
event.size.height = windowEvent.xconfigure.height;
|
Event event;
|
||||||
pushEvent(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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,6 +223,7 @@ private :
|
|||||||
Cursor m_hiddenCursor; ///< As X11 doesn't provide cursor hidding, we must create a transparent one
|
Cursor m_hiddenCursor; ///< As X11 doesn't provide cursor hidding, we must create a transparent one
|
||||||
bool m_keyRepeat; ///< Is the KeyRepeat feature enabled ?
|
bool m_keyRepeat; ///< Is the KeyRepeat feature enabled ?
|
||||||
XEvent m_lastKeyReleaseEvent; ///< Last key release event we received (needed for discarding repeated key events)
|
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
|
} // namespace priv
|
||||||
|
Loading…
Reference in New Issue
Block a user