disable mouse support while suspended


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3655 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
diff --git a/ChangeLog b/ChangeLog
index fb0eab9..8b67a2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -149,8 +149,10 @@
 	  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
diff --git a/src/nano.c b/src/nano.c
index c3d2d91..fbaa891 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -665,16 +665,29 @@
 }
 
 #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 @@
 /* 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 @@
 /* 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 @@
     shortcut_init(FALSE);
 
 #ifndef DISABLE_MOUSE
+    /* Initialize mouse support. */
     mouse_init();
 #endif
 
diff --git a/src/proto.h b/src/proto.h
index ed4ccab..1bc0f14 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -429,6 +429,8 @@
 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