Changeset View
Changeset View
Standalone View
Standalone View
plugins/platforms/x11/standalone/screenedges_filter.cpp
Show All 34 Lines | |||||
35 | bool ScreenEdgesFilter::event(xcb_generic_event_t *event) | 35 | bool ScreenEdgesFilter::event(xcb_generic_event_t *event) | ||
36 | { | 36 | { | ||
37 | const uint8_t eventType = event->response_type & ~0x80; | 37 | const uint8_t eventType = event->response_type & ~0x80; | ||
38 | switch (eventType) { | 38 | switch (eventType) { | ||
39 | case XCB_MOTION_NOTIFY: { | 39 | case XCB_MOTION_NOTIFY: { | ||
40 | const auto mouseEvent = reinterpret_cast<xcb_motion_notify_event_t*>(event); | 40 | const auto mouseEvent = reinterpret_cast<xcb_motion_notify_event_t*>(event); | ||
41 | const QPoint rootPos(mouseEvent->root_x, mouseEvent->root_y); | 41 | const QPoint rootPos(mouseEvent->root_x, mouseEvent->root_y); | ||
42 | if (QWidget::mouseGrabber()) { | 42 | if (QWidget::mouseGrabber()) { | ||
43 | ScreenEdges::self()->check(rootPos, QDateTime::fromMSecsSinceEpoch(xTime()), true); | 43 | ScreenEdges::self()->check(rootPos, QDateTime::fromMSecsSinceEpoch(xTime(), Qt::UTC), true); | ||
44 | } else { | 44 | } else { | ||
45 | ScreenEdges::self()->check(rootPos, QDateTime::fromMSecsSinceEpoch(mouseEvent->time)); | 45 | ScreenEdges::self()->check(rootPos, QDateTime::fromMSecsSinceEpoch(mouseEvent->time, Qt::UTC)); | ||
46 | } | 46 | } | ||
47 | // not filtered out | 47 | // not filtered out | ||
48 | break; | 48 | break; | ||
49 | } | 49 | } | ||
50 | case XCB_ENTER_NOTIFY: { | 50 | case XCB_ENTER_NOTIFY: { | ||
51 | const auto enter = reinterpret_cast<xcb_enter_notify_event_t*>(event); | 51 | const auto enter = reinterpret_cast<xcb_enter_notify_event_t*>(event); | ||
52 | return ScreenEdges::self()->handleEnterNotifiy(enter->event, QPoint(enter->root_x, enter->root_y), QDateTime::fromMSecsSinceEpoch(enter->time)); | 52 | return ScreenEdges::self()->handleEnterNotifiy(enter->event, QPoint(enter->root_x, enter->root_y), QDateTime::fromMSecsSinceEpoch(enter->time, Qt::UTC)); | ||
53 | } | 53 | } | ||
54 | case XCB_CLIENT_MESSAGE: { | 54 | case XCB_CLIENT_MESSAGE: { | ||
55 | const auto ce = reinterpret_cast<xcb_client_message_event_t*>(event); | 55 | const auto ce = reinterpret_cast<xcb_client_message_event_t*>(event); | ||
56 | if (ce->type != atoms->xdnd_position) { | 56 | if (ce->type != atoms->xdnd_position) { | ||
57 | return false; | 57 | return false; | ||
58 | } | 58 | } | ||
59 | return ScreenEdges::self()->handleDndNotify(ce->window, QPoint(ce->data.data32[2] >> 16, ce->data.data32[2] & 0xffff)); | 59 | return ScreenEdges::self()->handleDndNotify(ce->window, QPoint(ce->data.data32[2] >> 16, ce->data.data32[2] & 0xffff)); | ||
60 | } | 60 | } | ||
61 | } | 61 | } | ||
62 | return false; | 62 | return false; | ||
63 | } | 63 | } | ||
64 | 64 | | |||
65 | } | 65 | } |