+// Processes an X event.
+void wxApp::ProcessXEvent(WXEvent* _event)
+{
+ XEvent* event = (XEvent*) _event;
+
+ if ((event->type == KeyPress) && CheckForAccelerator(_event))
+ {
+ // Do nothing! We intercepted and processed the event as an accelerator.
+ return;
+ }
+ else if (event->type == PropertyNotify)
+ {
+ HandlePropertyChange(_event);
+ return;
+ }
+ else if (event->type == ResizeRequest)
+ {
+ /* Terry Gitnick <terryg@scientech.com> - 1/21/98
+ * If resize event, don't resize until the last resize event for this
+ * window is recieved. Prevents flicker as windows are resized.
+ */
+
+ Display *disp = XtDisplay((Widget) wxTheApp->GetTopLevelWidget());
+ Window win = event->xany.window;
+ XEvent report;
+
+ // to avoid flicker
+ report = * event;
+ while( XCheckTypedWindowEvent (disp, win, ResizeRequest, &report));
+
+ // TODO: when implementing refresh optimization, we can use
+ // XtAddExposureToRegion to expand the window's paint region.
+
+ XtDispatchEvent(event);
+ }
+ else
+ {
+ XtDispatchEvent(event);
+ }
+}
+