- xattributes.override_redirect = False;
-
- Window xwindow = XCreateWindow( xdisplay, xparent, pos.x, pos.y, size.x, size.y,
- 0, DefaultDepth(xdisplay,xscreen), InputOutput, xvisual, xattributes_mask, &xattributes );
-
- XSelectInput( xdisplay, xwindow,
- ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
- ButtonMotionMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask |
- KeymapStateMask | FocusChangeMask | ColormapChangeMask | StructureNotifyMask |
- PropertyChangeMask );
-
- m_mainWindow = (WXWindow) xwindow;
- wxAddWindowToTable( xwindow, (wxWindow*) this );
-
- XSetTransientForHint( xdisplay, xwindow, xparent );
-
- size_hints.flags = PSize;
- size_hints.width = size.x;
- size_hints.height = size.y;
- XSetWMNormalHints( xdisplay, xwindow, &size_hints);
-
+
+ xattributes_mask |= CWOverrideRedirect | CWSaveUnder;
+ xattributes.override_redirect = True;
+ xattributes.save_under = True;
+
+ xattributes_mask |= CWEventMask;
+#endif
+
+ if (need_two_windows)
+ {
+#if !wxUSE_NANOX
+ xattributes.event_mask =
+ ExposureMask | StructureNotifyMask | ColormapChangeMask;
+#endif
+
+ Window xwindow = XCreateWindow( xdisplay, xparent, pos.x, pos.y, size.x, size.y,
+ 0, DefaultDepth(xdisplay,xscreen), InputOutput, xvisual, xattributes_mask, &xattributes );
+
+#if wxUSE_NANOX
+ XSelectInput( xdisplay, xwindow,
+ ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
+ ButtonMotionMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask |
+ KeymapStateMask | FocusChangeMask | ColormapChangeMask | StructureNotifyMask |
+ PropertyChangeMask );
+#endif
+
+ // Set background to None which will prevent X11 from clearing the
+ // background comletely.
+ XSetWindowBackgroundPixmap( xdisplay, xwindow, None );
+
+ m_mainWindow = (WXWindow) xwindow;
+ wxAddWindowToTable( xwindow, (wxWindow*) this );
+
+ // XMapWindow( xdisplay, xwindow );
+#if !wxUSE_NANOX
+ xattributes.event_mask =
+ ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
+ ButtonMotionMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask |
+ KeymapStateMask | FocusChangeMask | ColormapChangeMask | StructureNotifyMask |
+ PropertyChangeMask | VisibilityChangeMask ;
+#endif
+
+ if (HasFlag( wxSUNKEN_BORDER) || HasFlag( wxRAISED_BORDER))
+ {
+ pos2.x = 2;
+ pos2.y = 2;
+ size2.x -= 4;
+ size2.y -= 4;
+ } else
+ if (HasFlag( wxSIMPLE_BORDER ))
+ {
+ pos2.x = 1;
+ pos2.y = 1;
+ size2.x -= 2;
+ size2.y -= 2;
+ } else
+ {
+ pos2.x = 0;
+ pos2.y = 0;
+ }
+
+ xwindow = XCreateWindow( xdisplay, xwindow, pos2.x, pos2.y, size2.x, size2.y,
+ 0, DefaultDepth(xdisplay,xscreen), InputOutput, xvisual, xattributes_mask, &xattributes );
+
+ // Set background to None which will prevent X11 from clearing the
+ // background comletely.
+ XSetWindowBackgroundPixmap( xdisplay, xwindow, None );
+
+#if wxUSE_NANOX
+ XSelectInput( xdisplay, xwindow,
+ ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
+ ButtonMotionMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask |
+ KeymapStateMask | FocusChangeMask | ColormapChangeMask | StructureNotifyMask |
+ PropertyChangeMask );
+#endif
+
+ m_clientWindow = (WXWindow) xwindow;
+ wxAddClientWindowToTable( xwindow, (wxWindow*) this );
+
+ m_isShown = false;
+ XMapWindow( xdisplay, xwindow );
+ }
+ else
+ {
+ // One window
+#if !wxUSE_NANOX
+ xattributes.event_mask =
+ ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
+ ButtonMotionMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask |
+ KeymapStateMask | FocusChangeMask | ColormapChangeMask | StructureNotifyMask |
+ PropertyChangeMask | VisibilityChangeMask ;
+#endif
+
+ Window xwindow = XCreateWindow( xdisplay, xparent, pos.x, pos.y, size.x, size.y,
+ 0, DefaultDepth(xdisplay,xscreen), InputOutput, xvisual, xattributes_mask, &xattributes );
+
+#if wxUSE_NANOX
+ XSelectInput( xdisplay, xwindow,
+ ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
+ ButtonMotionMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask |
+ KeymapStateMask | FocusChangeMask | ColormapChangeMask | StructureNotifyMask |
+ PropertyChangeMask );
+#endif
+
+ // Set background to None which will prevent X11 from clearing the
+ // background comletely.
+ XSetWindowBackgroundPixmap( xdisplay, xwindow, None );
+
+ m_mainWindow = (WXWindow) xwindow;
+ m_clientWindow = (WXWindow) xwindow;
+ wxAddWindowToTable( xwindow, (wxWindow*) this );
+
+ m_isShown = false;
+ // XMapWindow( xdisplay, xwindow );
+ }
+
+ XSetTransientForHint( xdisplay, (Window) m_mainWindow, xparent );
+
+#if wxUSE_NANOX
+ // Switch off WM
+ wxSetWMDecorations( (Window) m_mainWindow, 0 );
+#else
+ XWMHints wm_hints;