aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGeoff Voelker1997-09-03 00:30:51 +0000
committerGeoff Voelker1997-09-03 00:30:51 +0000
commit0969b893b01477765bf5589f8695b52805506bb1 (patch)
tree9058ef44665f6e609cd28faab7c1062767db50c7 /src
parentbb1ff1f449fd50faf8a5d259b180d6e0f552af81 (diff)
downloademacs-0969b893b01477765bf5589f8695b52805506bb1.tar.gz
emacs-0969b893b01477765bf5589f8695b52805506bb1.zip
(FRAME_OBSCURED_P): New macro.
(FRAME_SAMPLE_VISIBILITY): Distinguish between invisible and obscured.
Diffstat (limited to 'src')
-rw-r--r--src/frame.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/frame.h b/src/frame.h
index 532e1f2b85b..1fd6ddeb4a7 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -214,6 +214,14 @@ struct frame
214 frame becomes visible again, it must be marked as garbaged. The 214 frame becomes visible again, it must be marked as garbaged. The
215 FRAME_SAMPLE_VISIBILITY macro takes care of this. 215 FRAME_SAMPLE_VISIBILITY macro takes care of this.
216 216
217 On Windows NT/9X, to avoid wasting effort updating visible frames
218 that are actually completely obscured by other windows on the
219 display, we bend the meaning of visible slightly: if greater than
220 1, then the frame is obscured - we still consider it to be
221 "visible" as seen from lisp, but we don't bother updating it. We
222 must take care to garbage the frame when it ceaces to be obscured
223 though. Note that these semantics are only used on NT/9X.
224
217 iconified is nonzero if the frame is currently iconified. 225 iconified is nonzero if the frame is currently iconified.
218 226
219 Asynchronous input handlers should NOT change these directly; 227 Asynchronous input handlers should NOT change these directly;
@@ -353,6 +361,7 @@ typedef struct frame *FRAME_PTR;
353#define FRAME_CURSOR_X(f) (f)->cursor_x 361#define FRAME_CURSOR_X(f) (f)->cursor_x
354#define FRAME_CURSOR_Y(f) (f)->cursor_y 362#define FRAME_CURSOR_Y(f) (f)->cursor_y
355#define FRAME_VISIBLE_P(f) ((f)->visible != 0) 363#define FRAME_VISIBLE_P(f) ((f)->visible != 0)
364#define FRAME_OBSCURED_P(f) ((f)->visible > 1)
356#define FRAME_SET_VISIBLE(f,p) \ 365#define FRAME_SET_VISIBLE(f,p) \
357 ((f)->async_visible = (p), FRAME_SAMPLE_VISIBILITY (f)) 366 ((f)->async_visible = (p), FRAME_SAMPLE_VISIBILITY (f))
358#define SET_FRAME_GARBAGED(f) (frame_garbaged = 1, f->garbaged = 1) 367#define SET_FRAME_GARBAGED(f) (frame_garbaged = 1, f->garbaged = 1)
@@ -429,7 +438,8 @@ typedef struct frame *FRAME_PTR;
429 it must be marked as garbaged, since redisplay hasn't been keeping 438 it must be marked as garbaged, since redisplay hasn't been keeping
430 up its contents. */ 439 up its contents. */
431#define FRAME_SAMPLE_VISIBILITY(f) \ 440#define FRAME_SAMPLE_VISIBILITY(f) \
432 (((f)->async_visible && ! (f)->visible) ? SET_FRAME_GARBAGED (f) : 0, \ 441 (((f)->async_visible && (f)->visible != (f)->async_visible) ? \
442 SET_FRAME_GARBAGED (f) : 0, \
433 (f)->visible = (f)->async_visible, \ 443 (f)->visible = (f)->async_visible, \
434 (f)->iconified = (f)->async_iconified) 444 (f)->iconified = (f)->async_iconified)
435 445