bugfixes
[fanfix.git] / src / jexer / menu / TMenu.java
index ee1af554092ad442adb6b87c8318f15cc9ab1af8..ecdb7f7cd03f1bb9e54b3d23f216cdaa71b3e93f 100644 (file)
@@ -126,16 +126,9 @@ public final class TMenu extends TWindow {
      */
     @Override
     public void draw() {
-        CellAttributes menuColor;
         CellAttributes background = getTheme().getColor("tmenu");
 
-        if (getAbsoluteActive()) {
-            menuColor = getTheme().getColor("tmenu.highlighted");
-        } else {
-            menuColor = getTheme().getColor("tmenu");
-        }
-
-        assert (getAbsoluteActive());
+        assert (isAbsoluteActive());
 
         // Fill in the interior background
         for (int i = 0; i < getHeight(); i++) {
@@ -228,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
@@ -248,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;
             }
@@ -268,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)) {
@@ -283,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);
@@ -302,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;
             }
@@ -490,7 +489,9 @@ public final class TMenu extends TWindow {
         int newY = getChildren().size() + 1;
         assert (newY < getHeight());
 
-        TMenuItem menuItem = new TMenuSeparator(this, 1, newY);
+        // We just have to construct it, don't need to hang onto what it
+        // makes.
+        new TMenuSeparator(this, 1, newY);
         setHeight(getHeight() + 1);
     }