@@ -89,6 +89,15 @@ Item {
8989 topLevelSurfaceList: topSurfaceList
9090 }
9191 }
92+
93+ MouseArea {
94+ id: fakeMouseArea
95+ anchors.fill: desktopStageLoader.item
96+ enabled: desktopStageLoader.status === Loader.Ready && testCase.running
97+ visible: enabled
98+ acceptedButtons: Qt.AllButtons
99+ hoverEnabled: true
100+ }
92101 }
93102
94103 Rectangle {
@@ -140,6 +149,11 @@ Item {
140149 }
141150 }
142151
152+ SignalSpy {
153+ id: mouseEaterSpy
154+ target: fakeMouseArea
155+ }
156+
143157 UnityTestCase {
144158 id: testCase
145159 name: "DesktopStage"
@@ -179,6 +193,7 @@ Item {
179193 desktopStageLoader.active = true;
180194 tryCompare(desktopStageLoader, "status", Loader.Ready);
181195
196+ mouseEaterSpy.clear();
182197 }
183198
184199 function waitUntilAppSurfaceShowsUp(surfaceId) {
@@ -654,5 +669,31 @@ Item {
654669 var closeButton = findChild(dashAppDelegate, "closeWindowButton");
655670 tryCompare(closeButton, "visible", false);
656671 }
672+
673+ function test_eatWindowDecorationMouseEvents_data() {
674+ return [
675+ {tag: "left mouse press", signalName: "clicked", button: Qt.LeftButton },
676+ {tag: "right mouse press", signalName: "clicked", button: Qt.RightButton },
677+ {tag: "middle mouse press", signalName: "clicked", button: Qt.MiddleButton },
678+ {tag: "mouse wheel", signalName: "wheel", button: Qt.MiddleButton }
679+ ]
680+ }
681+
682+ function test_eatWindowDecorationMouseEvents(data) {
683+ var dialerAppDelegate = startApplication("dialer-app");
684+ verify(dialerAppDelegate);
685+ var decoration = findChild(dialerAppDelegate, "appWindowDecoration");
686+ verify(decoration);
687+
688+ fakeMouseArea.enabled = true;
689+ mouseEaterSpy.signalName = data.signalName;
690+ if (data.signalName === "wheel") {
691+ mouseWheel(decoration, decoration.width/2, decoration.height/2, 20, 20);
692+ } else {
693+ mouseClick(decoration, decoration.width/2, decoration.height/2, data.button);
694+ }
695+ tryCompare(mouseEaterSpy, "count", 0);
696+ fakeMouseArea.enabled = false;
697+ }
657698 }
658699}