[gnome-shell] messageTray: Move the notification actor out of the tray



commit 8c32102e994d0f81c82483124a99e72bf9793d81
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Wed Mar 13 16:15:28 2013 -0400

    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 5433894..49c8037 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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]