1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 | === modified file 'src/platforms/mirserver/qteventfeeder.cpp'
--- src/platforms/mirserver/qteventfeeder.cpp 2015-10-14 13:36:25 +0000
+++ src/platforms/mirserver/qteventfeeder.cpp 2015-10-16 13:21:30 +0000
@@ -390,11 +390,6 @@
return QGuiApplication::focusWindow();
}
- QWindow* getWindowForTouchPoint(const QPoint &point) override //FIXME: not efficient, not updating focused window
- {
- return m_screenController->getWindowForPoint(point);
- }
-
void registerTouchDevice(QTouchDevice *device) override
{
QWindowSystemInterface::registerTouchDevice(device);
@@ -439,19 +434,19 @@
QPoint pixelDelta, QPoint angleDelta,
Qt::KeyboardModifiers mods, Qt::ScrollPhase phase) override
{
- QWindowSystemInterface::handleWheelEvent(m_screenController->getWindowForPoint(localPoint.toPoint()),
+ QWindowSystemInterface::handleWheelEvent(qGuiApp->topLevelAt(localPoint.toPoint()),
timestamp, localPoint, globalPoint,
pixelDelta, angleDelta, mods, phase);
}
void handleEnterEvent(const QPointF &localPoint, const QPointF &globalPoint) override
{
- QWindowSystemInterface::handleEnterEvent(m_screenController->getWindowForPoint(localPoint.toPoint()), localPoint, globalPoint);
+ QWindowSystemInterface::handleEnterEvent(qGuiApp->topLevelAt(localPoint.toPoint()), localPoint, globalPoint);
}
void handleLeaveEvent(const QPointF &localPoint) override
{
- QWindowSystemInterface::handleLeaveEvent(m_screenController->getWindowForPoint(localPoint.toPoint()));
+ QWindowSystemInterface::handleLeaveEvent(qGuiApp->topLevelAt(localPoint.toPoint()));
}
private:
@@ -669,7 +664,7 @@
QWindow *window = nullptr;
if (kPointerCount > 0) {
- window = mQtWindowSystem->getWindowForTouchPoint(
+ window = qGuiApp->topLevelAt(
QPoint(mir_touch_event_axis_value(tev, 0, mir_touch_axis_x),
mir_touch_event_axis_value(tev, 0, mir_touch_axis_y)));
=== modified file 'src/platforms/mirserver/qteventfeeder.h'
--- src/platforms/mirserver/qteventfeeder.h 2015-10-14 13:36:25 +0000
+++ src/platforms/mirserver/qteventfeeder.h 2015-10-16 13:20:27 +0000
@@ -38,7 +38,6 @@
public:
virtual ~QtWindowSystemInterface() {}
virtual void setScreenController(const QSharedPointer<ScreenController> &sc) = 0;
- virtual QWindow* getWindowForTouchPoint(const QPoint &point) = 0;
virtual QWindow* focusedWindow() = 0;
virtual void registerTouchDevice(QTouchDevice *device) = 0;
virtual void handleExtendedKeyEvent(QWindow *window, ulong timestamp, QEvent::Type type, int key,
=== modified file 'src/platforms/mirserver/screencontroller.cpp'
--- src/platforms/mirserver/screencontroller.cpp 2015-10-02 22:05:27 +0000
+++ src/platforms/mirserver/screencontroller.cpp 2015-10-16 13:20:01 +0000
@@ -199,13 +199,3 @@
}
return nullptr;
}
-
-QWindow* ScreenController::getWindowForPoint(const QPoint &point) //FIXME - not thread safe & not efficient
-{
- for (Screen *screen : m_screenList) {
- if (screen->window() && screen->geometry().contains(point)) {
- return screen->window()->window();
- }
- }
- return nullptr;
-}
=== modified file 'src/platforms/mirserver/screencontroller.h'
--- src/platforms/mirserver/screencontroller.h 2015-10-02 22:05:27 +0000
+++ src/platforms/mirserver/screencontroller.h 2015-10-16 13:19:56 +0000
@@ -62,8 +62,6 @@
QList<Screen*> screens() const { return m_screenList; }
bool compositing() const { return m_compositing; }
- QWindow* getWindowForPoint(const QPoint &point);
-
Q_SIGNALS:
void screenAdded(Screen *screen);
=== modified file 'tests/mirserver/QtEventFeeder/mock_qtwindowsystem.h'
--- tests/mirserver/QtEventFeeder/mock_qtwindowsystem.h 2015-10-14 13:36:25 +0000
+++ tests/mirserver/QtEventFeeder/mock_qtwindowsystem.h 2015-10-16 13:25:19 +0000
@@ -25,7 +25,6 @@
public:
MOCK_CONST_METHOD0(ready, bool());
MOCK_METHOD1(setScreenController, void(const QSharedPointer<ScreenController> &));
- MOCK_METHOD1(getWindowForTouchPoint, QWindow*(const QPoint &point));
MOCK_METHOD0(lastWindow, QWindow*());
MOCK_METHOD0(focusedWindow, QWindow*());
MOCK_METHOD1(registerTouchDevice, void(QTouchDevice* device));
=== modified file 'tests/mirserver/QtEventFeeder/qteventfeeder_test.cpp'
--- tests/mirserver/QtEventFeeder/qteventfeeder_test.cpp 2015-09-28 09:57:18 +0000
+++ tests/mirserver/QtEventFeeder/qteventfeeder_test.cpp 2015-10-16 13:25:47 +0000
@@ -101,9 +101,6 @@
void QtEventFeederTest::setIrrelevantMockWindowSystemExpectations()
{
- EXPECT_CALL(*mockWindowSystem, getWindowForTouchPoint(_))
- .Times(AnyNumber())
- .WillRepeatedly(Return(window));
EXPECT_CALL(*mockWindowSystem, focusedWindow())
.Times(AnyNumber())
.WillRepeatedly(Return(window));
|