| 123 | } |
| 124 | |
| 125 | IEventQueueBuffer::Type XWindowsEventQueueBuffer::getEvent(Event &event, uint32_t &dataID) |
| 126 | { |
| 127 | std::scoped_lock lock{m_mutex}; |
| 128 | |
| 129 | // push out pending events |
| 130 | flush(); |
| 131 | |
| 132 | // get next event |
| 133 | XNextEvent(m_display, &m_event); |
| 134 | |
| 135 | // process event |
| 136 | if (m_event.xany.type == ClientMessage && m_event.xclient.message_type == m_userEvent) { |
| 137 | dataID = static_cast<uint32_t>(m_event.xclient.data.l[0]); |
| 138 | return IEventQueueBuffer::Type::User; |
| 139 | } else { |
| 140 | event = Event(EventTypes::System, m_events->getSystemTarget(), &m_event); |
| 141 | return IEventQueueBuffer::Type::System; |
| 142 | } |
| 143 | } |
| 144 | |
| 145 | bool XWindowsEventQueueBuffer::addEvent(uint32_t dataID) |
| 146 | { |
nothing calls this directly
no test coverage detected