diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 6b19d2004..2e400dc82 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1369,6 +1369,18 @@ const MessageTray = new Lang.Class({ this._onStatusChanged(status); })); + global.stage.connect('enter-event', Lang.bind(this, + function(a, ev) { + // HACK: St uses ClutterInputDevice for hover tracking, which + // misses relevant X11 events when untracked actors are + // involved (read: the notification banner in normal mode), + // so fix up Clutter's view of the pointer position in + // that case. + let related = ev.get_related(); + if (!related || this.actor.contains(related)) + global.sync_pointer(); + })); + this.actor = new St.Widget({ name: 'notification-container', reactive: true, track_hover: true,