aboutsummaryrefslogtreecommitdiffstats
path: root/src/frame.h
diff options
context:
space:
mode:
authorStefan Monnier2014-03-20 10:09:37 -0400
committerStefan Monnier2014-03-20 10:09:37 -0400
commitcaecb91c581d4ec0fc008a35005d8009f43087ee (patch)
treea1ec19db2c583f3dfea1c53b26c6936f978bbad9 /src/frame.h
parent7b9cb5448748b75a15840b7fba080cdcb341d0f7 (diff)
downloademacs-caecb91c581d4ec0fc008a35005d8009f43087ee.tar.gz
emacs-caecb91c581d4ec0fc008a35005d8009f43087ee.zip
* src/frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date.
* src/xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame. * src/frame.c (frame_garbaged): Make "docstring" more precise.
Diffstat (limited to 'src/frame.h')
-rw-r--r--src/frame.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/frame.h b/src/frame.h
index 1230e97f04d..62dc33511b5 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -439,7 +439,7 @@ struct frame
439 /* The baud rate that was used to calculate costs for this frame. */ 439 /* The baud rate that was used to calculate costs for this frame. */
440 int cost_calculation_baud_rate; 440 int cost_calculation_baud_rate;
441 441
442 /* frame opacity 442 /* Frame opacity
443 alpha[0]: alpha transparency of the active frame 443 alpha[0]: alpha transparency of the active frame
444 alpha[1]: alpha transparency of inactive frames 444 alpha[1]: alpha transparency of inactive frames
445 Negative values mean not to change alpha. */ 445 Negative values mean not to change alpha. */
@@ -453,7 +453,7 @@ struct frame
453 /* Additional space to put between text lines on this frame. */ 453 /* Additional space to put between text lines on this frame. */
454 int extra_line_spacing; 454 int extra_line_spacing;
455 455
456 /* All display backends seem to need these two pixel values. */ 456 /* All display backends seem to need these two pixel values. */
457 unsigned long background_pixel; 457 unsigned long background_pixel;
458 unsigned long foreground_pixel; 458 unsigned long foreground_pixel;
459}; 459};
@@ -946,6 +946,9 @@ default_pixels_per_inch_y (void)
946 } \ 946 } \
947 } while (false) 947 } while (false)
948 948
949/* False means there are no visible garbaged frames. */
950extern bool frame_garbaged;
951
949/* Set visibility of frame F. 952/* Set visibility of frame F.
950 We call redisplay_other_windows to make sure the frame gets redisplayed 953 We call redisplay_other_windows to make sure the frame gets redisplayed
951 if some changes were applied to it while it wasn't visible (and hence 954 if some changes were applied to it while it wasn't visible (and hence
@@ -955,8 +958,13 @@ INLINE void
955SET_FRAME_VISIBLE (struct frame *f, int v) 958SET_FRAME_VISIBLE (struct frame *f, int v)
956{ 959{
957 eassert (0 <= v && v <= 2); 960 eassert (0 <= v && v <= 2);
958 if (v == 1 && f->visible != 1) 961 if (v)
959 redisplay_other_windows (); 962 {
963 if (v == 1 && f->visible != 1)
964 redisplay_other_windows ();
965 if (FRAME_GARBAGED_P (f))
966 frame_garbaged = true;
967 }
960 f->visible = v; 968 f->visible = v;
961} 969}
962 970
@@ -972,9 +980,6 @@ extern Lisp_Object Qtty_color_mode;
972extern Lisp_Object Qterminal; 980extern Lisp_Object Qterminal;
973extern Lisp_Object Qnoelisp; 981extern Lisp_Object Qnoelisp;
974 982
975/* True means there is at least one garbaged frame. */
976extern bool frame_garbaged;
977
978extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); 983extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
979extern struct frame *decode_window_system_frame (Lisp_Object); 984extern struct frame *decode_window_system_frame (Lisp_Object);
980extern struct frame *decode_live_frame (Lisp_Object); 985extern struct frame *decode_live_frame (Lisp_Object);