Changeset View
Changeset View
Standalone View
Standalone View
input.cpp
Show First 20 Lines • Show All 1435 Lines • ▼ Show 20 Line(s) | 1435 | public: | |||
---|---|---|---|---|---|
1436 | bool pointerEvent(QMouseEvent *event, quint32 nativeButton) override { | 1436 | bool pointerEvent(QMouseEvent *event, quint32 nativeButton) override { | ||
1437 | auto seat = waylandServer()->seat(); | 1437 | auto seat = waylandServer()->seat(); | ||
1438 | if (!seat->isDragPointer()) { | 1438 | if (!seat->isDragPointer()) { | ||
1439 | return false; | 1439 | return false; | ||
1440 | } | 1440 | } | ||
1441 | seat->setTimestamp(event->timestamp()); | 1441 | seat->setTimestamp(event->timestamp()); | ||
1442 | switch (event->type()) { | 1442 | switch (event->type()) { | ||
1443 | case QEvent::MouseMove: { | 1443 | case QEvent::MouseMove: { | ||
1444 | if (Toplevel *t = input()->findToplevel(event->globalPos())) { | 1444 | const auto pos = input()->globalPointer(); | ||
1445 | seat->setPointerPos(pos); | ||||
1446 | if (Toplevel *t = input()->findToplevel(pos.toPoint())) { | ||||
1445 | // TODO: consider decorations | 1447 | // TODO: consider decorations | ||
1446 | if (t->surface() != seat->dragSurface()) { | 1448 | if (t->surface() != seat->dragSurface()) { | ||
1447 | if (AbstractClient *c = qobject_cast<AbstractClient*>(t)) { | 1449 | if (AbstractClient *c = qobject_cast<AbstractClient*>(t)) { | ||
1448 | workspace()->activateClient(c); | 1450 | workspace()->activateClient(c); | ||
1449 | } | 1451 | } | ||
1450 | seat->setPointerPos(event->globalPos()); | 1452 | seat->setDragTarget(t->surface(), t->inputTransformation()); | ||
1451 | seat->setDragTarget(t->surface(), event->globalPos(), t->inputTransformation()); | | |||
1452 | } | 1453 | } | ||
1453 | } else { | 1454 | } else { | ||
1454 | // no window at that place, if we have a surface we need to reset | 1455 | // no window at that place, if we have a surface we need to reset | ||
1455 | seat->setDragTarget(nullptr); | 1456 | seat->setDragTarget(nullptr); | ||
1456 | } | 1457 | } | ||
1457 | seat->setPointerPos(event->globalPos()); | | |||
1458 | break; | 1458 | break; | ||
1459 | } | 1459 | } | ||
1460 | case QEvent::MouseButtonPress: | 1460 | case QEvent::MouseButtonPress: | ||
1461 | seat->pointerButtonPressed(nativeButton); | 1461 | seat->pointerButtonPressed(nativeButton); | ||
1462 | break; | 1462 | break; | ||
1463 | case QEvent::MouseButtonRelease: | 1463 | case QEvent::MouseButtonRelease: | ||
1464 | seat->pointerButtonReleased(nativeButton); | 1464 | seat->pointerButtonReleased(nativeButton); | ||
1465 | break; | 1465 | break; | ||
▲ Show 20 Lines • Show All 723 Lines • Show Last 20 Lines |