windowManager: Take over <super>m keybinding to toggle calendar

It's where all the fun is happening nowadays ...

https://bugzilla.gnome.org/show_bug.cgi?id=744850
This commit is contained in:
Florian Müllner 2015-02-18 02:52:07 +01:00
parent 06586eb95d
commit 08d2e617e1
4 changed files with 22 additions and 11 deletions

View File

@ -6,7 +6,7 @@
package="gnome-shell">
<KeyListEntry name="toggle-message-tray"
_description="Show the message tray"/>
_description="Show the message list"/>
<KeyListEntry name="focus-active-notification"
_description="Focus the active notification"/>

View File

@ -1703,13 +1703,6 @@ const MessageTray = new Lang.Class({
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
Main.wm.addKeybinding('toggle-message-tray',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.NORMAL |
Shell.ActionMode.MESSAGE_TRAY |
Shell.ActionMode.OVERVIEW,
Lang.bind(this, this.toggleAndNavigate));
Main.wm.addKeybinding('focus-active-notification',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,

View File

@ -877,9 +877,8 @@ const Panel = new Lang.Class({
return Clutter.EVENT_STOP;
},
toggleAppMenu: function() {
let indicator = this.statusArea.appMenu;
if (!indicator) // appMenu not supported by current session mode
_toggleMenu: function(indicator) {
if (!indicator) // menu not supported by current session mode
return;
let menu = indicator.menu;
@ -891,6 +890,14 @@ const Panel = new Lang.Class({
menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
},
toggleAppMenu: function() {
this._toggleMenu(this.statusArea.appMenu);
},
toggleCalendar: function() {
this._toggleMenu(this.statusArea.dateMenu);
},
closeCalendar: function() {
let indicator = this.statusArea.dateMenu;
if (!indicator) // calendar not supported by current session mode

View File

@ -834,6 +834,13 @@ const WindowManager = new Lang.Class({
Shell.ActionMode.TOPBAR_POPUP,
Lang.bind(this, this._toggleAppMenu));
this.addKeybinding('toggle-message-tray',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.NORMAL |
Shell.ActionMode.TOPBAR_POPUP,
Lang.bind(this, this._toggleCalendar));
global.display.connect('show-resize-popup', Lang.bind(this, this._showResizePopup));
Main.overview.connect('showing', Lang.bind(this, function() {
@ -1514,6 +1521,10 @@ const WindowManager = new Lang.Class({
Main.panel.toggleAppMenu();
},
_toggleCalendar: function(display, screen, window, event, binding) {
Main.panel.toggleCalendar();
},
_toggleTweens: function() {
this._tweensPaused = !this._tweensPaused;
const OrigTweener = imports.tweener.tweener;