]>
code.delx.au - show-app-menu-on-key-press/blob - extension.js
1 const St
= imports
.gi
.St
;
2 const Main
= imports
.ui
.main
;
3 const Views
= imports
.ui
.appDisplay
.Views
;
11 signalId
= global
.stage
.connect('key-press-event', onStageKeyPress
);
16 global
.stage
.disconnect('key-press-event');
21 function onStageKeyPress() {
22 if (!hasVisibleWindows() && !Main
.overview
.visible
) {
23 Main
.overview
.viewSelector
.showApps();
24 const appDisplay
= Main
.overview
.viewSelector
.appDisplay
;
25 let view
= appDisplay
;
26 if (appDisplay
._views
) { // Gnome 3.36 or older
28 view
= appDisplay
._views
[Views
.FREQUENT
].view
;
30 view
._grid
.remove_all_children()
31 view
._items
= new Map();
32 view
._orderedItems
= [];
34 if (appDisplay
._showView
) { // Gnome 3.36 or older
35 appDisplay
._showView(Views
.FREQUENT
);
37 Main
.overview
.viewSelector
._activePage
.navigate_focus(null, St
.DirectionType
.TAB_FORWARD
, false);
41 function hasVisibleWindows() {
42 return global
.display
.get_tab_list(0, null).find((w
) => !w
.is_hidden());