X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/503be82149af57edcba384554e0f268b9a9551e1..57cb2e6f261bb0aad81a9f7e6f3017b54adee068:/src/term.c diff --git a/src/term.c b/src/term.c index 06696c32d1..1fcda1abb7 100644 --- a/src/term.c +++ b/src/term.c @@ -1,6 +1,6 @@ /* Terminal control module for terminals described by TERMCAP Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1998, 2000, 2001, - 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -41,6 +41,7 @@ Boston, MA 02110-1301, USA. */ #include "dispextern.h" #include "window.h" #include "keymap.h" +#include "blockinput.h" /* For now, don't try to include termcap.h. On some systems, configure finds a non-standard termcap.h that the main build @@ -193,6 +194,11 @@ void (*frame_rehighlight_hook) P_ ((FRAME_PTR f)); void (*frame_raise_lower_hook) P_ ((FRAME_PTR f, int raise)); +/* If the value of the frame parameter changed, whis hook is called. + For example, if going from fullscreen to not fullscreen this hook + may do something OS dependent, like extended window manager hints on X11. */ +void (*fullscreen_hook) P_ ((struct frame *f)); + /* Set the vertical scroll bar for WINDOW to have its upper left corner at (TOP, LEFT), and be LENGTH rows high. Set its handle to indicate that we are displaying PORTION characters out of a total @@ -1052,11 +1058,13 @@ write_glyphs (string, len) conversion_buffer = encode_terminal_code (string, n, coding); if (coding->produced > 0) { + BLOCK_INPUT; fwrite (conversion_buffer, 1, coding->produced, stdout); if (ferror (stdout)) clearerr (stdout); if (termscript) fwrite (conversion_buffer, 1, coding->produced, termscript); + UNBLOCK_INPUT; } len -= n; string += n; @@ -1151,11 +1159,13 @@ insert_glyphs (start, len) if (coding->produced > 0) { + BLOCK_INPUT; fwrite (conversion_buffer, 1, coding->produced, stdout); if (ferror (stdout)) clearerr (stdout); if (termscript) fwrite (conversion_buffer, 1, coding->produced, termscript); + UNBLOCK_INPUT; } OUTPUT1_IF (TS_pad_inserted_char); @@ -2876,6 +2886,8 @@ bigger, or it may make it blink, or it may do nothing at all. */); defsubr (&Stty_display_color_p); defsubr (&Stty_display_color_cells); defsubr (&Stty_no_underline); + + fullscreen_hook = NULL; } /* arch-tag: 498e7449-6f2e-45e2-91dd-b7d4ca488193