popupMenu: Emit open-state-changed at the start of animating a submenu

Doing it at the end has confusing semantics, especially as there is
this point where isOpen is true, but the corresponding open-state-changed
has not been emitted.

https://bugzilla.gnome.org/show_bug.cgi?id=702539
This commit is contained in:
Jasper St. Pierre 2013-06-11 18:29:36 -04:00
parent 1e781ec78f
commit 263474705b

View File

@ -1155,6 +1155,7 @@ const PopupSubMenu = new Lang.Class({
return; return;
this.isOpen = true; this.isOpen = true;
this.emit('open-state-changed', true);
this.actor.show(); this.actor.show();
@ -1193,12 +1194,10 @@ const PopupSubMenu = new Lang.Class({
onCompleteScope: this, onCompleteScope: this,
onComplete: function() { onComplete: function() {
this.actor.set_height(-1); this.actor.set_height(-1);
this.emit('open-state-changed', true);
} }
}); });
} else { } else {
this._arrow.rotation_angle_z = 90; this._arrow.rotation_angle_z = 90;
this.emit('open-state-changed', true);
} }
}, },
@ -1207,6 +1206,7 @@ const PopupSubMenu = new Lang.Class({
return; return;
this.isOpen = false; this.isOpen = false;
this.emit('open-state-changed', false);
if (this._activeMenuItem) if (this._activeMenuItem)
this._activeMenuItem.setActive(false); this._activeMenuItem.setActive(false);
@ -1224,8 +1224,6 @@ const PopupSubMenu = new Lang.Class({
onComplete: function() { onComplete: function() {
this.actor.hide(); this.actor.hide();
this.actor.set_height(-1); this.actor.set_height(-1);
this.emit('open-state-changed', false);
}, },
onUpdateScope: this, onUpdateScope: this,
onUpdate: function() { onUpdate: function() {
@ -1235,9 +1233,6 @@ const PopupSubMenu = new Lang.Class({
} else { } else {
this._arrow.rotation_angle_z = 0; this._arrow.rotation_angle_z = 0;
this.actor.hide(); this.actor.hide();
this.isOpen = false;
this.emit('open-state-changed', false);
} }
}, },