From 8c32102e994d0f81c82483124a99e72bf9793d81 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Wed, 13 Mar 2013 16:15:28 -0400 Subject: [PATCH] messageTray: Move the notification actor out of the tray Putting the notification actor in the tray actor has caused a lot of various bugs and glitches over the years related to syncing the two, fizzling out events, and so on. It's a much simpler model if we consider the notification actor and tray to be separate widgets. As a side effect, this makes the context menu not pop up when we right-click on notifications. https://bugzilla.gnome.org/show_bug.cgi?id=695800 --- js/ui/messageTray.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 543389435..49c8037ab 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1573,7 +1573,6 @@ const MessageTray = new Lang.Class({ layout_manager: new Clutter.BinLayout() }); this._notificationWidget.connect('key-release-event', Lang.bind(this, this._onNotificationKeyRelease)); this._notificationWidget.connect('notify::hover', Lang.bind(this, this._onNotificationHoverChanged)); - this.actor.add_actor(this._notificationWidget); this._notificationBin = new St.Bin({ y_expand: true }); this._notificationBin.set_y_align(Clutter.ActorAlign.START); @@ -1628,6 +1627,7 @@ const MessageTray = new Lang.Class({ { keybindingMode: Shell.KeyBindingMode.MESSAGE_TRAY }); this._grabHelper.addActor(this._summaryBoxPointer.actor); this._grabHelper.addActor(this.actor); + this._grabHelper.addActor(this._notificationWidget); Main.layoutManager.connect('keyboard-visible-changed', Lang.bind(this, this._onKeyboardVisibleChanged)); @@ -1669,6 +1669,7 @@ const MessageTray = new Lang.Class({ }); Main.layoutManager.trayBox.add_actor(this.actor); + Main.layoutManager.trayBox.add_actor(this._notificationWidget); Main.layoutManager.trackChrome(this.actor); Main.layoutManager.trackChrome(this._notificationWidget); Main.layoutManager.trackChrome(this._closeButton);