Changeset 3465 for trunk/Ohana/src/kapa/event/EventLoop.c
- Timestamp:
- Mar 18, 2005, 4:42:27 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/kapa/event/EventLoop.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/kapa/event/EventLoop.c
r2473 r3465 1 1 # include "Ximage.h" 2 # define EventMask (long) (KeyPressMask | ExposureMask | StructureNotifyMask) 3 # define EMask (long) (KeyPressMask | ExposureMask | StructureNotifyMask | PointerMotionMask) 2 3 int LastEvent (Display *display, int type, XEvent *event) { 4 5 int found; 6 7 found = FALSE; 8 while (XCheckTypedEvent (display, type, event)) { 9 found = TRUE; 10 } 11 return (found); 12 } 4 13 5 14 int EventLoop () { 6 15 7 XEvent event , reconfig_event;8 int status , Ne;9 int NeedRefresh, NeedReconfig;16 XEvent event; 17 int status; 18 Display *display; 10 19 11 20 Refresh (1); 12 21 13 NeedReconfig = FALSE;14 NeedRefresh = FALSE;15 22 status = TRUE; 16 23 while (status) { 17 24 18 25 if (!CheckPipe ()) return (FALSE); 19 26 20 27 if (XEventsQueued (graphic.display, QueuedAfterFlush) < 1) { 21 if (NeedReconfig) status = Reconfig (&reconfig_event);22 if (NeedRefresh && !NeedReconfig) Refresh (1);23 NeedRefresh = FALSE;24 NeedReconfig = FALSE;25 28 usleep (10000); 26 29 continue; 27 30 } 28 31 29 if (XCheckMaskEvent (graphic.display, EVENT_MASK, &event)) {32 display = graphic.display; 30 33 31 switch (event.type) { 32 33 case MotionNotify: 34 break; 35 36 case Expose: 37 if (HAVE_BACKING) continue; 38 NeedRefresh = TRUE; 39 break; 40 41 case ConfigureNotify: 42 /* Ne = XEventsQueued (graphic.display, QueuedAlready); */ 43 reconfig_event = event; 44 NeedReconfig = TRUE; 45 break; 46 47 case KeyPress: 48 status = InterpretKeys (&event); 49 break; 50 51 case MappingNotify: 52 if (XEventsQueued (graphic.display, QueuedAlready) < 2) { 53 XRefreshKeyboardMapping ((XMappingEvent *) &event); 54 } 55 break; 56 57 } 58 } 34 /* only do the last entry for these events */ 35 /* this ignores the return status from these functions */ 36 if (LastEvent (display, ConfigureNotify, &event)) Reconfig (&event); 37 if (LastEvent (display, Expose, &event)) Refresh (1); 38 if (LastEvent (display, MappingNotify, &event)) XRefreshKeyboardMapping ((XMappingEvent *) &event); 59 39 } 60 40 return (status); 61 41 } 62
Note:
See TracChangeset
for help on using the changeset viewer.
