Mercurial > emacs
changeset 84969:6e58c1c8c0fc
(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.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 28 Sep 2007 20:07:54 +0000 |
parents | 85eb2660cbe3 |
children | 3e6ef5f41da8 |
files | src/ChangeLog src/term.c |
diffstat | 2 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Fri Sep 28 19:47:02 2007 +0000 +++ b/src/ChangeLog Fri Sep 28 20:07:54 2007 +0000 @@ -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.
--- a/src/term.c Fri Sep 28 19:47:02 2007 +0000 +++ b/src/term.c Fri Sep 28 20:07:54 2007 +0000 @@ -2952,10 +2952,12 @@ ? (f)->terminal->display_info.tty : NULL); Gpm_Connect connection; + 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"); - if (!tty) - error ("Gpm-mouse only works in the GNU/Linux console"); connection.eventMask = ~0; connection.defaultMask = ~GPM_HARD; @@ -2983,6 +2985,14 @@ 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 */