1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 13:10:57 -08:00

(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.
This commit is contained in:
Stefan Monnier 2007-09-28 20:07:54 +00:00
parent 6178ce5e8b
commit 4ce5ab773b
2 changed files with 16 additions and 2 deletions

View file

@ -1,5 +1,9 @@
2007-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
* term.c (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.
* term.c (mouse_face_window): Rename from Qmouse_face_window.
Update all users.
(handle_one_term_event): Use Gpm_DrawPointer.

View file

@ -2952,10 +2952,12 @@ Gpm-mouse can only be activated for one tty at a time. */)
? (f)->terminal->display_info.tty : NULL);
Gpm_Connect connection;
if (gpm_tty)
error ("Gpm-mouse can only be activated for one tty at a time");
if (!tty)
error ("Gpm-mouse only works in the GNU/Linux console");
if (gpm_tty == tty)
return Qnil; /* Already activated, nothing to do. */
if (gpm_tty)
error ("Gpm-mouse can only be activated for one tty at a time");
connection.eventMask = ~0;
connection.defaultMask = ~GPM_HARD;
@ -2983,6 +2985,14 @@ DEFUN ("gpm-mouse-stop", Fgpm_mouse_stop, Sgpm_mouse_stop,
doc: /* Close a connection to Gpm. */)
()
{
struct frame *f = SELECTED_FRAME ();
struct tty_display_info *tty
= ((f)->output_method == output_termcap
? (f)->terminal->display_info.tty : NULL);
if (!tty || gpm_tty != tty)
return Qnil; /* Not activated on this terminal, nothing to do. */
if (gpm_fd >= 0)
delete_gpm_wait_descriptor (gpm_fd);
while (Gpm_Close()); /* close all the stack */