- //wxLogDebug("Expose: %s", windowClass.c_str());
- win->GetUpdateRegion().Union( XExposeEventGetX(event), XExposeEventGetY(event),
- XExposeEventGetWidth(event), XExposeEventGetHeight(event));
+#if wxUSE_TWO_WINDOWS
+ if (event->xexpose.window != (Window)win->GetClientWindow())
+ {
+ XEvent tmp_event;
+ wxExposeInfo info;
+ info.window = event->xexpose.window;
+ info.found_non_matching = FALSE;
+ while (XCheckIfEvent( wxGlobalDisplay(), &tmp_event, expose_predicate, (XPointer) &info ))
+ {
+ // Don't worry about optimizing redrawing the border etc.
+ }
+ win->NeedUpdateNcAreaInIdle();
+ }
+ else
+#endif
+ {
+ win->GetUpdateRegion().Union( XExposeEventGetX(event), XExposeEventGetY(event),
+ XExposeEventGetWidth(event), XExposeEventGetHeight(event));