From 4d195e0e0839e2d2d98f3ff6cba25ca052969da6 Mon Sep 17 00:00:00 2001 From: REMqb Date: Thu, 23 Nov 2017 00:01:55 +0100 Subject: [PATCH] ~ Fix widgets / events not working after the window defocused then focused again (#144) --- src/Nazara/Platform/X11/WindowImpl.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/Nazara/Platform/X11/WindowImpl.cpp b/src/Nazara/Platform/X11/WindowImpl.cpp index 5b9061f04..4a5f8208e 100644 --- a/src/Nazara/Platform/X11/WindowImpl.cpp +++ b/src/Nazara/Platform/X11/WindowImpl.cpp @@ -1034,7 +1034,16 @@ namespace Nz case XCB_FOCUS_IN: { const uint32_t value_list[] = { eventMask }; - xcb_change_window_attributes(connection, m_window, XCB_CW_EVENT_MASK, value_list); + if (!X11::CheckCookie( + connection, + xcb_change_window_attributes( + connection, + m_window, + XCB_CW_EVENT_MASK, + value_list + )) + ) + NazaraError("Failed to change event mask"); WindowEvent event; event.type = Nz::WindowEventType_GainedFocus; @@ -1051,8 +1060,17 @@ namespace Nz m_parent->PushEvent(event); const uint32_t values[] = { XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_FOCUS_CHANGE }; - xcb_change_window_attributes(connection, m_window, XCB_CW_EVENT_MASK, values); - + if (!X11::CheckCookie( + connection, + xcb_change_window_attributes( + connection, + m_window, + XCB_CW_EVENT_MASK, + values + )) + ) + NazaraError("Failed to change event mask"); + break; }