Skip to content

Commit 058deaf

Browse files
committed
expo: Use unique pointer trackers for motion tracking.
This was causing issues with motion events to change window highlighting and overview triggering. Each set of event handlers need to be tracked separately, so hasMoved can be correct for that set.
1 parent a34e71d commit 058deaf

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

js/ui/expoThumbnail.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const Main = imports.ui.main;
1212
const Tweener = imports.ui.tweener;
1313
const ModalDialog = imports.ui.modalDialog;
1414
const Tooltips = imports.ui.tooltips;
15+
const PointerTracker = imports.misc.pointerTracker;
1516
const SignalManager = imports.misc.signalManager;
1617
const GridNavigator = imports.misc.gridNavigator;
1718
const WindowUtils = imports.misc.windowUtils;
@@ -72,14 +73,16 @@ ExpoWindowClone.prototype = {
7273
return true;
7374
}));
7475

76+
let pointerTracker = new PointerTracker.PointerTracker();
77+
7578
this.actor.connect('motion-event', Lang.bind(this, function (actor, event) {
76-
if (Main.pointerTracker.hasMoved()) {
79+
if (pointerTracker.hasMoved()) {
7780
this.emit('hovering', true);
7881
}
7982
return false;
8083
}));
8184
this.actor.connect('leave-event', Lang.bind(this, function (actor, event) {
82-
if (Main.pointerTracker.hasMoved()) {
85+
if (pointerTracker.hasMoved()) {
8386
this.emit('hovering', false);
8487
}
8588
return false;
@@ -1290,8 +1293,9 @@ ExpoThumbnailsBox.prototype = {
12901293

12911294
// We want to ignore spurious events caused by animations
12921295
// (when the contents are moving and not the pointer).
1296+
let pointerTracker = new PointerTracker.PointerTracker();
12931297
thumbnail.actor.connect('motion-event', Lang.bind(this, function (actor, event) {
1294-
if (!Main.pointerTracker.hasMoved()) {return;}
1298+
if (!pointerTracker.hasMoved()) {return;}
12951299
if (!thumbnail.hovering) {
12961300
thumbnail.hovering = true;
12971301
this.lastHovered = thumbnail;
@@ -1307,7 +1311,7 @@ ExpoThumbnailsBox.prototype = {
13071311
}));
13081312

13091313
thumbnail.actor.connect('leave-event', Lang.bind(this, function (actor, event) {
1310-
if (!Main.pointerTracker.hasMoved()) {return;}
1314+
if (!pointerTracker.hasMoved()) {return;}
13111315
if (this.isShowingModalDialog()) {return;}
13121316
if (thumbnail.hovering && !isInternalEvent(thumbnail, actor, event)) {
13131317
thumbnail.hovering = false;

js/ui/main.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ var tracker = null;
168168
var settingsManager = null;
169169
var systrayManager = null;
170170
var wmSettings = null;
171-
var pointerTracker = null;
172171

173172
var workspace_names = [];
174173

@@ -398,7 +397,7 @@ function start() {
398397
layoutManager._prepareStartupAnimation();
399398
}
400399

401-
pointerTracker = new PointerTracker.PointerTracker();
400+
let pointerTracker = new PointerTracker.PointerTracker();
402401
pointerTracker.setPosition(layoutManager.primaryMonitor.x + layoutManager.primaryMonitor.width/2,
403402
layoutManager.primaryMonitor.y + layoutManager.primaryMonitor.height/2);
404403

0 commit comments

Comments
 (0)