]> git.wh0rd.org Git - nano.git/commitdiff
disable mouse support while suspended
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Fri, 9 Jun 2006 18:24:37 +0000 (18:24 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Fri, 9 Jun 2006 18:24:37 +0000 (18:24 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3655 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c
src/proto.h

index fb0eab9f2203e2ea330533f445cccdd9c7539ee6..8b67a2f8f1e89be672e8e379edd4469c56d5c9c1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -149,8 +149,10 @@ CVS code -
          parse_rcfile(), nano.1, nano.texi, and nanorc.sample.in.
          (Benno Schulenberg, minor tweaks by DLR and Nick Warne)
        - Make suspension clear the screen and put the cursor on the
-         last line before displaying anything, as Pico does.  Changes
-         to do_suspend(), do_continue(), and terminal_init(). (DLR)
+         last line before displaying anything, as Pico does.  New
+         functions disable_mouse_support() and enable_mouse_support();
+         changes to do_mouse(), do_suspend(), do_continue(), and
+         terminal_init(). (DLR)
 - browser.c:
   do_browser()
        - Reference NANO_GOTODIR_(ALT|F)?KEY instead of
index c3d2d91b99c47d714fe742a3aeec58f39aebf895..fbaa891875067d89bf9edf4941133ac106b07c15 100644 (file)
@@ -665,16 +665,29 @@ void window_init(void)
 }
 
 #ifndef DISABLE_MOUSE
-/* Initialize mouse support. */
+/* Disable mouse support. */
+void disable_mouse_support(void)
+{
+    mousemask(0, NULL);
+}
+
+/* Enable mouse support. */
+void enable_mouse_support(void)
+{
+    mousemask(BUTTON1_RELEASED, NULL);
+    mouseinterval(50);
+}
+
+/* Initialize mouse support.  Enable it if the USE_MOUSE flag is set,
+ * and disable it otherwise. */
 void mouse_init(void)
 {
-    if (ISSET(USE_MOUSE)) {
-       mousemask(BUTTON1_RELEASED, NULL);
-       mouseinterval(50);
-    } else
-       mousemask(0, NULL);
+    if (ISSET(USE_MOUSE))
+       enable_mouse_support();
+    else
+       disable_mouse_support();
 }
-#endif
+#endif /* !DISABLE_MOUSE */
 
 #ifdef HAVE_GETOPT_LONG
 #define print_opt(shortflag, longflag, desc) print_opt_full(shortflag, longflag, desc)
@@ -993,6 +1006,11 @@ RETSIGTYPE handle_hupterm(int signal)
 /* Handler for SIGTSTP (suspend). */
 RETSIGTYPE do_suspend(int signal)
 {
+#ifndef DISABLE_MOUSE
+    /* Turn mouse support off. */
+    disable_mouse_support();
+#endif
+
     /* Blank the screen, and move the cursor to the last line of it. */
     erase();
     move(LINES - 1, 0);
@@ -1018,6 +1036,12 @@ RETSIGTYPE do_suspend(int signal)
 /* Handler for SIGCONT (continue after suspend). */
 RETSIGTYPE do_continue(int signal)
 {
+#ifndef DISABLE_MOUSE
+    /* Turn mouse support back on if it was on before. */
+    if (ISSET(USE_MOUSE))
+       enable_mouse_support();
+#endif
+
 #ifndef NANO_TINY
     /* Perhaps the user resized the window while we slept.  Handle it,
      * and restore the terminal to its previous state and update the
@@ -2107,6 +2131,7 @@ int main(int argc, char **argv)
     shortcut_init(FALSE);
 
 #ifndef DISABLE_MOUSE
+    /* Initialize mouse support. */
     mouse_init();
 #endif
 
index ed4ccaba88479c68983bfe5e726f97cb62f9fddf..1bc0f1432462d6fb6675726ccf562f1d0aad3032 100644 (file)
@@ -429,6 +429,8 @@ void die(const char *msg, ...);
 void die_save_file(const char *die_filename);
 void window_init(void);
 #ifndef DISABLE_MOUSE
+void disable_mouse_support(void);
+void enable_mouse_support(void);
 void mouse_init(void);
 #endif
 void print_opt_full(const char *shortflag