~ Fix widgets / events not working after the window defocused then focused again (#144)

This commit is contained in:
REMqb 2017-11-23 00:01:55 +01:00 committed by Jérôme Leclercq
parent aa623a4933
commit 4d195e0e08
1 changed files with 21 additions and 3 deletions

View File

@ -1034,7 +1034,16 @@ namespace Nz
case XCB_FOCUS_IN: case XCB_FOCUS_IN:
{ {
const uint32_t value_list[] = { eventMask }; 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; WindowEvent event;
event.type = Nz::WindowEventType_GainedFocus; event.type = Nz::WindowEventType_GainedFocus;
@ -1051,8 +1060,17 @@ namespace Nz
m_parent->PushEvent(event); m_parent->PushEvent(event);
const uint32_t values[] = { XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_FOCUS_CHANGE }; 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; break;
} }