[gnome-shell] Press in the Activities button when the overlay is entered
- From: Marina Zhurakhinskaya <marinaz src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-shell] Press in the Activities button when the overlay is entered
- Date: Fri, 8 May 2009 16:29:23 -0400 (EDT)
commit e365a0ba7ab6f5f726d17514caf5dcee2934002e
Author: Marina Zhurakhinskaya <marinaz redhat com>
Date: Fri May 8 16:27:14 2009 -0400
Press in the Activities button when the overlay is entered
In addition to pressing the Activities button, the overlay can be entered
by pressing the System key or Alt+F1. We want the button to look pressed in
in these cases too.
---
js/ui/button.js | 19 ++++++++++++++-----
js/ui/panel.js | 4 ++++
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/js/ui/button.js b/js/ui/button.js
index 7bbf2c0..0bb4146 100644
--- a/js/ui/button.js
+++ b/js/ui/button.js
@@ -25,15 +25,17 @@ Button.prototype = {
if (pressedButtonColor == null)
this._pressedButtonColor = DEFAULT_PRESSED_BUTTON_COLOR;
+ this._staysPressed = staysPressed
if (staysPressed == null)
- staysPressed = false;
+ this._staysPressed = false;
+
if (minWidth == null)
minWidth = 0;
if (minHeight == null)
minHeight = 0;
- // if staysPressed is true, this.active will be true past the first release of a button, untill a subsequent one (the button
- // is unpressed) or untill release() is called explicitly
+ // if this._staysPressed is true, this._active will be true past the first release of a button, until a subsequent one (the button
+ // is unpressed) or until release() is called explicitly
this._active = false;
this._isBetweenPressAndRelease = false;
this._mouseIsOverButton = false;
@@ -66,7 +68,7 @@ Button.prototype = {
this.button.connect('button-release-event',
function(o, event) {
me._isBetweenPressAndRelease = false;
- if (!staysPressed || me._active) {
+ if (!me._staysPressed || me._active) {
me.release();
} else {
me._active = true;
@@ -92,8 +94,15 @@ Button.prototype = {
});
},
+ pressIn : function() {
+ if (!this._isBetweenPressAndRelease && this._staysPressed) {
+ this._active = true;
+ this.button.backgroundColor = this._pressedButtonColor;
+ }
+ },
+
release : function() {
- if (!this._isBetweenPressAndRelease) {
+ if (!this._isBetweenPressAndRelease && this._staysPressed) {
this._active = false;
if (this._mouseIsOverButton) {
this.button.backgroundColor = this._buttonColor;
diff --git a/js/ui/panel.js b/js/ui/panel.js
index 6084a50..cd8d435 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -151,6 +151,10 @@ Panel.prototype = {
// to switch to.
this.button.button.connect('button-press-event',
Lang.bind(Main.overlay, Main.overlay.toggle));
+ // In addition to pressing the button, the overlay can be entered and exited by other means, such as
+ // pressing the System key, Alt+F1 or Esc. We want the button to be pressed in when the overlay is entered
+ // and to be released when it is exited regardless of how it was triggered.
+ Main.overlay.connect('showing', Lang.bind(this.button, this.button.pressIn));
Main.overlay.connect('hiding', Lang.bind(this.button, this.button.release));
this.actor.add_actor(box);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]