Fix mouse on menu line
authorKevin Lamonte <kevin.lamonte@gmail.com>
Tue, 22 Aug 2017 23:38:18 +0000 (19:38 -0400)
committerKevin Lamonte <kevin.lamonte@gmail.com>
Tue, 22 Aug 2017 23:38:18 +0000 (19:38 -0400)
src/jexer/TApplication.java
src/jexer/menu/TMenu.java

index 3d93e56b3af26e67fe7b3a4899fedf7988948245..abd69ca7cca11e537805dae99cf69ebe3fe47661 100644 (file)
@@ -2009,8 +2009,8 @@ public class TApplication implements Runnable {
 
             // They selected the menu, go activate it
             for (TMenu menu: menus) {
-                if ((mouse.getAbsoluteX() >= menu.getX())
-                    && (mouse.getAbsoluteX() < menu.getX()
+                if ((mouse.getAbsoluteX() >= menu.getTitleX())
+                    && (mouse.getAbsoluteX() < menu.getTitleX()
                         + menu.getTitle().length() + 2)
                 ) {
                     menu.setActive(true);
@@ -2037,8 +2037,8 @@ public class TApplication implements Runnable {
 
             // See if we should switch menus
             for (TMenu menu: menus) {
-                if ((mouse.getAbsoluteX() >= menu.getX())
-                    && (mouse.getAbsoluteX() < menu.getX()
+                if ((mouse.getAbsoluteX() >= menu.getTitleX())
+                    && (mouse.getAbsoluteX() < menu.getTitleX()
                         + menu.getTitle().length() + 2)
                 ) {
                     menu.setActive(true);
@@ -2299,6 +2299,7 @@ public class TApplication implements Runnable {
         int x = 0;
         for (TMenu menu: menus) {
             menu.setX(x);
+            menu.setTitleX(x);
             x += menu.getTitle().length() + 2;
 
             // Don't let the menu window exceed the screen width
index 7cf6eb5d10d0ac2b5676f6bacc649a44c1065c84..b9641e1eab4a31fd0179ffed4cb53e4e040d66e8 100644 (file)
@@ -56,6 +56,29 @@ public final class TMenu extends TWindow {
      */
     boolean isSubMenu = false;
 
+    /**
+     * The X position of the menu's title.
+     */
+    private int titleX;
+
+    /**
+     * Set the menu title X position.
+     *
+     * @param titleX the position
+     */
+    public void setTitleX(final int titleX) {
+        this.titleX = titleX;
+    }
+
+    /**
+     * Get the menu title X position.
+     *
+     * @return the position
+     */
+    public int getTitleX() {
+        return titleX;
+    }
+
     /**
      * The shortcut and title.
      */