X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fmenu%2FTMenu.java;h=99add703c18fe2d9e59d241bb325b549c16638f1;hb=8582f35a3ffb8212463076217eb89278f42331d4;hp=56cbad5be6661425575ea9039f2392f785b03405;hpb=cf9af8df455c0ea5390e4c0ed2555506a051a379;p=fanfix.git diff --git a/src/jexer/menu/TMenu.java b/src/jexer/menu/TMenu.java index 56cbad5..99add70 100644 --- a/src/jexer/menu/TMenu.java +++ b/src/jexer/menu/TMenu.java @@ -1,4 +1,4 @@ -/** +/* * Jexer - Java Text User Interface * * License: LGPLv3 or later @@ -128,7 +128,7 @@ public final class TMenu extends TWindow { public void draw() { CellAttributes background = getTheme().getColor("tmenu"); - assert (getAbsoluteActive()); + assert (isAbsoluteActive()); // Fill in the interior background for (int i = 0; i < getHeight(); i++) { @@ -221,7 +221,7 @@ public final class TMenu extends TWindow { // See if we should activate a different menu item for (TWidget widget: getChildren()) { - if ((mouse.getMouse1()) + if ((mouse.isMouse1()) && (widget.mouseWouldHit(mouse)) ) { // Activate this menu item @@ -241,8 +241,16 @@ public final class TMenu extends TWindow { */ @Override public void onKeypress(final TKeypressEvent keypress) { - if (getActiveChild() != null) { - if (getActiveChild() instanceof TSubMenu) { + + /* + System.err.printf("keypress: %s active child: %s\n", keypress, + getActiveChild()); + */ + + if (getActiveChild() != this) { + if ((getActiveChild() instanceof TSubMenu) + || (getActiveChild() instanceof TMenu) + ) { getActiveChild().onKeypress(keypress); return; } @@ -261,9 +269,7 @@ public final class TMenu extends TWindow { return; } if (keypress.equals(kbRight)) { - if (!isSubMenu) { - getApplication().switchMenu(true); - } + getApplication().switchMenu(true); return; } if (keypress.equals(kbLeft)) { @@ -276,14 +282,14 @@ public final class TMenu extends TWindow { } // Switch to a menuItem if it has an mnemonic - if (!keypress.getKey().getIsKey() - && !keypress.getKey().getAlt() - && !keypress.getKey().getCtrl()) { + if (!keypress.getKey().isFnKey() + && !keypress.getKey().isAlt() + && !keypress.getKey().isCtrl()) { for (TWidget widget: getChildren()) { TMenuItem item = (TMenuItem) widget; if ((item.getMnemonic() != null) && (Character.toLowerCase(item.getMnemonic().getShortcut()) - == Character.toLowerCase(keypress.getKey().getCh())) + == Character.toLowerCase(keypress.getKey().getChar())) ) { // Send an enter keystroke to it activate(item); @@ -295,7 +301,7 @@ public final class TMenu extends TWindow { // Dispatch the keypress to an active widget for (TWidget widget: getChildren()) { - if (widget.getActive()) { + if (widget.isActive()) { widget.handleEvent(keypress); return; }