Skip to content

Commit 69e5fac

Browse files
authored
added support for using numpad arrows to navigate the menu (#12302)
* added support for using numpad arrows to navigate the menu * account for RTL layouts
1 parent d2d660b commit 69e5fac

File tree

1 file changed

+29
-11
lines changed

1 file changed

+29
-11
lines changed

files/usr/share/cinnamon/applets/[email protected]/applet.js

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1686,7 +1686,7 @@ class CinnamonMenuApplet extends Applet.TextIconApplet {
16861686
}
16871687

16881688
let minIndex = 0;
1689-
let goUp = symbol === Clutter.KEY_Up;
1689+
let goUp = symbol === Clutter.KEY_Up || symbol === Clutter.KEY_KP_Up;
16901690
let nextActive = null;
16911691
let menuItems = this.contextMenu._getMenuItems(); // The context menu items
16921692

@@ -1757,11 +1757,20 @@ class CinnamonMenuApplet extends Applet.TextIconApplet {
17571757
/* Accounts for mirrored RTL layout.
17581758
Switches between left/right key presses */
17591759
if(St.Widget.get_default_direction() === St.TextDirection.RTL) {
1760-
if(symbol === Clutter.KEY_Right) {
1761-
symbol = Clutter.KEY_Left;
1762-
} else if(symbol === Clutter.KEY_Left) {
1763-
symbol = Clutter.KEY_Right;
1764-
}
1760+
switch(symbol) {
1761+
case Clutter.KEY_Right:
1762+
symbol = Clutter.KEY_Left;
1763+
break;
1764+
case Clutter.KEY_KP_Right:
1765+
symbol = Clutter.KEY_RP_Left;
1766+
break;
1767+
case Clutter.KEY_Left:
1768+
symbol = Clutter.KEY_Right;
1769+
break;
1770+
case Clutter.KEY_KP_Left:
1771+
symbol = Clutter.KEY_KP_Right;
1772+
break;
1773+
}
17651774
}
17661775

17671776
/* check for a keybinding and quit early, otherwise we get a double hit
@@ -1780,7 +1789,9 @@ class CinnamonMenuApplet extends Applet.TextIconApplet {
17801789
let continueNavigation = false;
17811790
switch (symbol) {
17821791
case Clutter.KEY_Up:
1792+
case Clutter.KEY_KP_Up:
17831793
case Clutter.KEY_Down:
1794+
case Clutter.KEY_KP_Down:
17841795
case Clutter.KEY_Return:
17851796
case Clutter.KEY_KP_Enter:
17861797
case Clutter.KEY_Menu:
@@ -1790,7 +1801,9 @@ class CinnamonMenuApplet extends Applet.TextIconApplet {
17901801
this._navigateContextMenu(this._activeContextMenuParent, symbol, ctrlKey);
17911802
break;
17921803
case Clutter.KEY_Right:
1804+
case Clutter.KEY_KP_Right:
17931805
case Clutter.KEY_Left:
1806+
case Clutter.KEY_KP_Left:
17941807
case Clutter.KEY_Tab:
17951808
case Clutter.KEY_ISO_Left_Tab:
17961809
continueNavigation = true;
@@ -1808,12 +1821,14 @@ class CinnamonMenuApplet extends Applet.TextIconApplet {
18081821

18091822
switch (symbol) {
18101823
case Clutter.KEY_Up:
1824+
case Clutter.KEY_KP_Up:
18111825
whichWay = "up";
18121826
if (this._activeContainer === this.favoritesBox && ctrlKey &&
18131827
this._activeActor._delegate instanceof FavoritesButton)
18141828
navigationKey = false;
18151829
break;
18161830
case Clutter.KEY_Down:
1831+
case Clutter.KEY_KP_Down:
18171832
whichWay = "down";
18181833
if (this._activeContainer === this.favoritesBox && ctrlKey &&
18191834
this._activeActor._delegate instanceof FavoritesButton)
@@ -1824,6 +1839,7 @@ class CinnamonMenuApplet extends Applet.TextIconApplet {
18241839
case Clutter.KEY_Page_Down:
18251840
whichWay = "bottom"; break;
18261841
case Clutter.KEY_Right:
1842+
case Clutter.KEY_KP_Right:
18271843
if (!this.searchActive)
18281844
whichWay = "right";
18291845
if (this._activeContainer === this.applicationsBox)
@@ -1833,6 +1849,7 @@ class CinnamonMenuApplet extends Applet.TextIconApplet {
18331849
whichWay = "none";
18341850
break;
18351851
case Clutter.KEY_Left:
1852+
case Clutter.KEY_KP_Left:
18361853
if (!this.searchActive)
18371854
whichWay = "left";
18381855
if (this._activeContainer === this.favoritesBox || this._activeContainer === this.systemButtonsBox)
@@ -2036,20 +2053,21 @@ class CinnamonMenuApplet extends Applet.TextIconApplet {
20362053
item_actor = this.favoritesBox.get_child_at_index(selectedItemIndex);
20372054
}
20382055
} else if (this._activeContainer === this.favoritesBox &&
2039-
(symbol === Clutter.KEY_Down || symbol === Clutter.KEY_Up) && ctrlKey &&
2040-
this._activeActor._delegate instanceof FavoritesButton) {
2056+
(symbol === Clutter.KEY_Down || symbol === Clutter.KEY_KP_Down ||
2057+
symbol === Clutter.KEY_Up || symbol === Clutter.KEY_KP_Up) &&
2058+
ctrlKey && this._activeActor._delegate instanceof FavoritesButton) {
20412059
const selectedItemIndex = this._activeContainer._vis_iter.getAbsoluteIndexOfChild(this._activeActor);
20422060
item_actor = this._activeActor;
20432061
let id = item_actor._delegate.app.get_id();
20442062
let appFavorites = AppFavorites.getAppFavorites();
20452063
let favorites = appFavorites.getFavorites();
20462064
let numFavorites = favorites.length;
20472065
let favPos = 0;
2048-
if (selectedItemIndex == (numFavorites-1) && symbol === Clutter.KEY_Down)
2066+
if (selectedItemIndex == (numFavorites-1) && (symbol === Clutter.KEY_Down || symbol === Clutter.KEY_KP_Down))
20492067
favPos = 0;
2050-
else if (selectedItemIndex == 0 && symbol === Clutter.KEY_Up)
2068+
else if (selectedItemIndex == 0 && (symbol === Clutter.KEY_Up || symbol === Clutter.KEY_KP_Up))
20512069
favPos = numFavorites-1;
2052-
else if (symbol === Clutter.KEY_Down)
2070+
else if (symbol === Clutter.KEY_Down || symbol === Clutter.KEY_KP_Down)
20532071
favPos = selectedItemIndex + 1;
20542072
else
20552073
favPos = selectedItemIndex - 1;

0 commit comments

Comments
 (0)