diff options
| author | Geoff Voelker | 1997-09-03 00:30:51 +0000 |
|---|---|---|
| committer | Geoff Voelker | 1997-09-03 00:30:51 +0000 |
| commit | 0969b893b01477765bf5589f8695b52805506bb1 (patch) | |
| tree | 9058ef44665f6e609cd28faab7c1062767db50c7 /src | |
| parent | bb1ff1f449fd50faf8a5d259b180d6e0f552af81 (diff) | |
| download | emacs-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.h | 12 |
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 | ||