X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTApplication.java;fp=src%2Fjexer%2FTApplication.java;h=0f50457a9b66f77ee38f05fff4ffa51da318317f;hb=80b1b7b5fb2d8caed97ea9a98b8a844beb00927d;hp=8cbce90008643cb622928322cab03ae2741fec35;hpb=8ab60a33f89f656b71751a45967c79179415f652;p=fanfix.git diff --git a/src/jexer/TApplication.java b/src/jexer/TApplication.java index 8cbce90..0f50457 100644 --- a/src/jexer/TApplication.java +++ b/src/jexer/TApplication.java @@ -289,6 +289,22 @@ public class TApplication implements Runnable { */ private boolean focusFollowsMouse = false; + /** + * If true, display a text-based mouse cursor. + */ + private boolean textMouse = true; + + /** + * If true, hide the mouse after typing a keystroke. + */ + private boolean hideMouseWhenTyping = false; + + /** + * If true, the mouse should not be displayed because a keystroke was + * typed. + */ + private boolean typingHidMouse = false; + /** * The list of commands to run before the next I/O check. */ @@ -722,6 +738,19 @@ public class TApplication implements Runnable { ); } } + + // Text block mouse option + if (System.getProperty("jexer.textMouse", "true").equals("false")) { + textMouse = false; + } + + // Hide mouse when typing option + if (System.getProperty("jexer.hideMouseWhenTyping", + "false").equals("true")) { + + hideMouseWhenTyping = true; + } + } // ------------------------------------------------------------------------ @@ -1086,8 +1115,16 @@ public class TApplication implements Runnable { // Special application-wide events ----------------------------------- + if (event instanceof TKeypressEvent) { + if (hideMouseWhenTyping) { + typingHidMouse = true; + } + } + // Peek at the mouse position if (event instanceof TMouseEvent) { + typingHidMouse = false; + TMouseEvent mouse = (TMouseEvent) event; if ((mouseX != mouse.getX()) || (mouseY != mouse.getY())) { oldMouseX = mouseX; @@ -1273,6 +1310,8 @@ public class TApplication implements Runnable { // Peek at the mouse position if (event instanceof TMouseEvent) { + typingHidMouse = false; + TMouseEvent mouse = (TMouseEvent) event; if ((mouseX != mouse.getX()) || (mouseY != mouse.getY())) { oldMouseX = mouseX; @@ -1789,8 +1828,10 @@ public class TApplication implements Runnable { } } - // Draw mouse at the new position. - invertCell(mouseX, mouseY); + if ((textMouse == true) && (typingHidMouse == false)) { + // Draw mouse at the new position. + invertCell(mouseX, mouseY); + } oldDrawnMouseX = mouseX; oldDrawnMouseY = mouseY; @@ -1916,7 +1957,9 @@ public class TApplication implements Runnable { getScreen().unsetImageRow(mouseY); } } - invertCell(mouseX, mouseY); + if ((textMouse == true) && (typingHidMouse == false)) { + invertCell(mouseX, mouseY); + } oldDrawnMouseX = mouseX; oldDrawnMouseY = mouseY;