aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2007-09-28 20:07:54 +0000
committerStefan Monnier2007-09-28 20:07:54 +0000
commit4ce5ab773b96bcef00e412e08b84c8b374a949fe (patch)
tree94e81ba9b79ae44eeb96bb1196d8c1268241798c /src
parent6178ce5e8b701c44d7c31ed54fa8021f049784d1 (diff)
downloademacs-4ce5ab773b96bcef00e412e08b84c8b374a949fe.tar.gz
emacs-4ce5ab773b96bcef00e412e08b84c8b374a949fe.zip
(Fgpm_mouse_start): Don't signal an error if already activated on this tty.
(Fgpm_mouse_stop): Only deactivate if it was activated on this tty.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/term.c14
2 files changed, 16 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index f7698a2cfc3..7ed8e48a4cc 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,9 @@
12007-09-28 Stefan Monnier <monnier@iro.umontreal.ca> 12007-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * term.c (Fgpm_mouse_start): Don't signal an error if already activated
4 on this tty.
5 (Fgpm_mouse_stop): Only deactivate if it was activated on this tty.
6
3 * term.c (mouse_face_window): Rename from Qmouse_face_window. 7 * term.c (mouse_face_window): Rename from Qmouse_face_window.
4 Update all users. 8 Update all users.
5 (handle_one_term_event): Use Gpm_DrawPointer. 9 (handle_one_term_event): Use Gpm_DrawPointer.
diff --git a/src/term.c b/src/term.c
index 6dbfb5daee8..f00f7b2fb75 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2952,10 +2952,12 @@ Gpm-mouse can only be activated for one tty at a time. */)
2952 ? (f)->terminal->display_info.tty : NULL); 2952 ? (f)->terminal->display_info.tty : NULL);
2953 Gpm_Connect connection; 2953 Gpm_Connect connection;
2954 2954
2955 if (gpm_tty)
2956 error ("Gpm-mouse can only be activated for one tty at a time");
2957 if (!tty) 2955 if (!tty)
2958 error ("Gpm-mouse only works in the GNU/Linux console"); 2956 error ("Gpm-mouse only works in the GNU/Linux console");
2957 if (gpm_tty == tty)
2958 return Qnil; /* Already activated, nothing to do. */
2959 if (gpm_tty)
2960 error ("Gpm-mouse can only be activated for one tty at a time");
2959 2961
2960 connection.eventMask = ~0; 2962 connection.eventMask = ~0;
2961 connection.defaultMask = ~GPM_HARD; 2963 connection.defaultMask = ~GPM_HARD;
@@ -2983,6 +2985,14 @@ DEFUN ("gpm-mouse-stop", Fgpm_mouse_stop, Sgpm_mouse_stop,
2983 doc: /* Close a connection to Gpm. */) 2985 doc: /* Close a connection to Gpm. */)
2984 () 2986 ()
2985{ 2987{
2988 struct frame *f = SELECTED_FRAME ();
2989 struct tty_display_info *tty
2990 = ((f)->output_method == output_termcap
2991 ? (f)->terminal->display_info.tty : NULL);
2992
2993 if (!tty || gpm_tty != tty)
2994 return Qnil; /* Not activated on this terminal, nothing to do. */
2995
2986 if (gpm_fd >= 0) 2996 if (gpm_fd >= 0)
2987 delete_gpm_wait_descriptor (gpm_fd); 2997 delete_gpm_wait_descriptor (gpm_fd);
2988 while (Gpm_Close()); /* close all the stack */ 2998 while (Gpm_Close()); /* close all the stack */