Fix menu
* Populate 'Open' and 'Save' submenu on opening. It prevents the 'jump'. * By removing the previous trick, it now give the key-focus to the first item when opening the menu with 'Menu' key.
This commit is contained in:
parent
10384c06e6
commit
64507ba483
37
draw.js
37
draw.js
|
|
@ -1965,7 +1965,7 @@ const DrawingMenu = new Lang.Class({
|
||||||
disable: function() {
|
disable: function() {
|
||||||
this.menuManager.removeMenu(this.menu);
|
this.menuManager.removeMenu(this.menu);
|
||||||
Main.layoutManager.uiGroup.remove_actor(this.menu.actor);
|
Main.layoutManager.uiGroup.remove_actor(this.menu.actor);
|
||||||
this.menu.actor.destroy();
|
this.menu.destroy();
|
||||||
},
|
},
|
||||||
|
|
||||||
_onMenuOpenStateChanged: function(menu, open) {
|
_onMenuOpenStateChanged: function(menu, open) {
|
||||||
|
|
@ -2238,13 +2238,13 @@ const DrawingMenu = new Lang.Class({
|
||||||
item.menu.close();
|
item.menu.close();
|
||||||
};
|
};
|
||||||
|
|
||||||
GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
|
item.menu.openOld = item.menu.open;
|
||||||
this._populateOpenDrawingSubMenu();
|
item.menu.open = (animate) => {
|
||||||
// small trick to prevent the menu from "jumping" on first opening
|
if (!item.menu.isOpen)
|
||||||
item.menu.open();
|
this._populateOpenDrawingSubMenu();
|
||||||
item.menu.close();
|
item.menu.openOld();
|
||||||
return GLib.SOURCE_REMOVE;
|
}
|
||||||
});
|
|
||||||
menu.addMenuItem(item);
|
menu.addMenuItem(item);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -2273,7 +2273,7 @@ const DrawingMenu = new Lang.Class({
|
||||||
|
|
||||||
deleteButton.connect('clicked', () => {
|
deleteButton.connect('clicked', () => {
|
||||||
file.delete();
|
file.delete();
|
||||||
this._populateOpenDrawingSubMenu();
|
item.destroy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2291,13 +2291,12 @@ const DrawingMenu = new Lang.Class({
|
||||||
item.menu.close();
|
item.menu.close();
|
||||||
};
|
};
|
||||||
|
|
||||||
GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
|
item.menu.openOld = item.menu.open;
|
||||||
this._populateSaveDrawingSubMenu();
|
item.menu.open = (animate) => {
|
||||||
// small trick to prevent the menu from "jumping" on first opening
|
if (!item.menu.isOpen)
|
||||||
item.menu.open();
|
this._populateSaveDrawingSubMenu();
|
||||||
item.menu.close();
|
item.menu.openOld();
|
||||||
return GLib.SOURCE_REMOVE;
|
}
|
||||||
});
|
|
||||||
menu.addMenuItem(item);
|
menu.addMenuItem(item);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -2306,16 +2305,16 @@ const DrawingMenu = new Lang.Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
_populateSaveDrawingSubMenu: function() {
|
_populateSaveDrawingSubMenu: function() {
|
||||||
this.saveEntry = new DrawingMenuEntry({ initialTextGetter: getDateString,
|
this.saveDrawingSubMenu.removeAll();
|
||||||
|
let saveEntry = new DrawingMenuEntry({ initialTextGetter: getDateString,
|
||||||
entryActivateCallback: (text) => {
|
entryActivateCallback: (text) => {
|
||||||
this.area.saveAsJsonWithName(text);
|
this.area.saveAsJsonWithName(text);
|
||||||
this.saveDrawingSubMenu.toggle();
|
this.saveDrawingSubMenu.toggle();
|
||||||
this._updateDrawingNameMenuItem();
|
this._updateDrawingNameMenuItem();
|
||||||
this._populateOpenDrawingSubMenu();
|
|
||||||
},
|
},
|
||||||
invalidStrings: [Me.metadata['persistent-file-name'], '/'],
|
invalidStrings: [Me.metadata['persistent-file-name'], '/'],
|
||||||
primaryIconName: 'insert-text' });
|
primaryIconName: 'insert-text' });
|
||||||
this.saveDrawingSubMenu.addMenuItem(this.saveEntry.item);
|
this.saveDrawingSubMenu.addMenuItem(saveEntry.item);
|
||||||
},
|
},
|
||||||
|
|
||||||
_addSeparator: function(menu) {
|
_addSeparator: function(menu) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue