From: James Bunton Date: Sat, 10 Apr 2021 06:04:00 +0000 (+1000) Subject: gnome-shell 40 compatibility X-Git-Url: https://code.delx.au/show-app-menu-on-key-press/commitdiff_plain/361cce786d16a45c64b57d3c17763566ef6bd3b9 gnome-shell 40 compatibility --- diff --git a/PKGBUILD b/PKGBUILD index fe2e134..adeae55 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,13 +1,13 @@ # Maintainer: James Bunton pkgname=gnome-shell-extension-show-app-menu-on-key-press -pkgver=4 +pkgver=5 pkgrel=1 pkgdesc="Gnome shell extension to show app menu on key press" arch=('any') source=("extension.js" "metadata.json") -sha512sums=('d37606c62e27de94e6da2deebc4c632a77243c4bb820e4582a01b1f0305cb0e0e99f699e4b468d9bca86133bd0dfbd280c2cf9f08f29f313fe80647965f28d29' - 'b356481db946a42f4ab92823ad29aa568696a52bb286f219605878535f2e353e0f3f118636c9a66046c4130f6e094205dea666833c6b63b0950a339e4b468a02') +sha512sums=('9a2c5a611a4e7053aee91ab3969367b2098a512eae6b2f8651e08cb17d8b023afeaf04371ed082808863928d123bbfbe25728bba72b73410deff00888869e880' + 'be121818c871436d8218f27b73976f550e42f1e442df38c6b6f17fc722271774ea6bb3ee1972b2089ad4c06968e2bf68f495520bfafd9e62fb0553d5fda9ef11') package() { for i in "${source[@]}"; do diff --git a/extension.js b/extension.js index 96fcac8..9fcc55d 100644 --- a/extension.js +++ b/extension.js @@ -1,41 +1,34 @@ const St = imports.gi.St; const Main = imports.ui.main; -const Views = imports.ui.appDisplay.Views; - -let signalId = null; function init() { } function enable() { - signalId = global.stage.connect('key-press-event', onStageKeyPress); -} + // show apps on startup + Main.layoutManager.connect('startup-complete', () => { + Main.overview._overview._controls._toggleAppsPage(); + }); + + // show apps on key press when there are no windows + global.stage.connect('key-press-event', () => { + if (!hasVisibleWindows() && !Main.overview.visible) { + Main.overview.showApps(); + } + }); -function disable() { - if (signalId) { - global.stage.disconnect('key-press-event'); - signalId = null; - } + // keyboard focus for apps view + Main.overview.connect('shown', () => { + if (Main.overview._overview.dash.showAppsButton.checked) { + Main.overview._overview._controls.appDisplay.navigate_focus(null, St.DirectionType.TAB_FORWARD, false) + } + }); + Main.overview._overview.controls.appDisplay.connect('view-loaded', () => { + Main.overview._overview._controls.appDisplay.navigate_focus(null, St.DirectionType.TAB_FORWARD, false) + }); } -function onStageKeyPress() { - if (!hasVisibleWindows() && !Main.overview.visible) { - Main.overview.viewSelector.showApps(); - const appDisplay = Main.overview.viewSelector.appDisplay; - let view = appDisplay; - if (appDisplay._views) { // Gnome 3.36 or older - - view = appDisplay._views[Views.FREQUENT].view; - } - view._grid.remove_all_children() - view._items = new Map(); - view._orderedItems = []; - view._redisplay(); - if (appDisplay._showView) { // Gnome 3.36 or older - appDisplay._showView(Views.FREQUENT); - } - Main.overview.viewSelector._activePage.navigate_focus(null, St.DirectionType.TAB_FORWARD, false); - } +function disable() { } function hasVisibleWindows() { diff --git a/metadata.json b/metadata.json index 116122e..cf180ca 100644 --- a/metadata.json +++ b/metadata.json @@ -1 +1,6 @@ -{"name": "Show App Menu on Key Press", "description": "Show the app menu when any key is pressed and all windows are closed or hidden", "uuid": "show-app-menu-on-key-press@delx.net.au", "shell-version": ["3.34.1"]} +{ + "name": "Show App Menu on Key Press", + "description": "Show the app menu when any key is pressed and all windows are closed or hidden", + "uuid": "show-app-menu-on-key-press@delx.net.au", + "shell-version": ["40.0"] +}