keyboard: Keep tray after clicking summary item

Currently if a summary item signals that it has handled a click
itself, the tray hides itself. This behavior is wrong for the
On-Screen-Keyboard, which appears as a unit with the tray, so add
a property to opt-out of the default behavior.

https://bugzilla.gnome.org/show_bug.cgi?id=683546
This commit is contained in:
Florian Müllner 2012-09-21 17:21:25 +02:00
parent 2e63709450
commit 2ed7ee8f71
2 changed files with 6 additions and 1 deletions

View File

@ -565,6 +565,7 @@ const KeyboardSource = new Lang.Class({
_init: function(keyboard) { _init: function(keyboard) {
this._keyboard = keyboard; this._keyboard = keyboard;
this.parent(_("Keyboard"), 'input-keyboard-symbolic'); this.parent(_("Keyboard"), 'input-keyboard-symbolic');
this.keepTrayOnSummaryClick = true;
}, },
handleSummaryClick: function() { handleSummaryClick: function() {

View File

@ -1052,6 +1052,7 @@ const Source = new Lang.Class({
this.isChat = false; this.isChat = false;
this.isMuted = false; this.isMuted = false;
this.showInLockScreen = true; this.showInLockScreen = true;
this.keepTrayOnSummaryClick = false;
this.notifications = []; this.notifications = [];
}, },
@ -1776,7 +1777,10 @@ const MessageTray = new Lang.Class({
_onSummaryItemClicked: function(summaryItem, button) { _onSummaryItemClicked: function(summaryItem, button) {
if (summaryItem.source.handleSummaryClick()) { if (summaryItem.source.handleSummaryClick()) {
this._escapeTray(); if (summaryItem.source.keepTrayOnSummaryClick)
this._setClickedSummaryItem(null);
else
this._escapeTray();
} else { } else {
if (!this._setClickedSummaryItem(summaryItem, button)) if (!this._setClickedSummaryItem(summaryItem, button))
this._setClickedSummaryItem(null); this._setClickedSummaryItem(null);