home *** CD-ROM | disk | FTP | other *** search
/ PC Shareware 1999 March / PCShareware-3-99.iso / IMPLE / DJGPP.RAR / DJGPP2 / XLIB-SR0.ZIP / SRC / XLIBEMU / SENDEVEN.C < prev    next >
C/C++ Source or Header  |  1994-01-14  |  929b  |  46 lines

  1. /* $Id: sendeven.c 1.2 1994/01/15 02:20:06 ulrich Exp $ */
  2. /*
  3.  * sendevent.c
  4.  *
  5.  * X library function XSendEvent.
  6.  */
  7.  
  8. #include "Xlibemu.h"
  9.  
  10. int
  11. XSendEvent
  12. (    Display*    dpy,
  13.     Window        window,
  14.     int        propagate,
  15.     long        event_mask,
  16.     XEvent*        event)
  17. {
  18.   if (window == (Window) PointerWindow) {
  19.     window = _LastMouseWindow;
  20.   }
  21.   if (window == (Window) InputFocus) {
  22.     if (_Focus.window == None ||
  23.     _Focus.window == PointerRoot)
  24.       window = _LastMouseWindow;
  25.     else
  26.       window = _Focus.window;
  27.   }
  28.   
  29.   _WCheckWindow (dpy, window, X_SendEvent);
  30.  
  31.   if (propagate == False || (window->event_mask & event_mask)) {
  32.     event->xany.window = window;
  33.     event->xany.send_event = True;
  34.     _WDispatchEvent (event);
  35.   }
  36.   else {
  37.     window = _WMaskEventWindow (window, event_mask);
  38.     if (window != None) {
  39.       event->xany.window = window;
  40.       event->xany.send_event = True;
  41.       _WDispatchEvent (event);
  42.     }
  43.   }
  44.   return 1;
  45. }
  46.