]> git.saurik.com Git - wxWidgets.git/blobdiff - src/x11/popupwin.cpp
Added border for top level windows with captions, though
[wxWidgets.git] / src / x11 / popupwin.cpp
index e442728bde0ba673db7aca108bcb68ee018ba9da..c159e89b415eea6e6035e69154968e3f8bff432b 100644 (file)
@@ -49,8 +49,6 @@ bool wxPopupWindow::Create( wxWindow *parent, int style )
     m_parent = parent;
     if (m_parent) m_parent->AddChild( this );
 
-    wxTopLevelWindows.Append(this);
-    
     Display *xdisplay = wxGlobalDisplay();
     int xscreen = DefaultScreen( xdisplay );
     Visual *xvisual = DefaultVisual( xdisplay, xscreen );
@@ -62,14 +60,14 @@ bool wxPopupWindow::Create( wxWindow *parent, int style )
     
     long xattributes_mask =
         CWOverrideRedirect |
+        CWSaveUnder |
         CWBorderPixel | CWBackPixel;
     xattributes.background_pixel = BlackPixel( xdisplay, xscreen );
     xattributes.border_pixel = BlackPixel( xdisplay, xscreen );
-    xattributes.override_redirect = False;
+    xattributes.override_redirect = True;
+    xattributes.save_under = True;
 
-    wxSize size(2, 2);
-    
-    Window xwindow = XCreateWindow( xdisplay, xparent, 0, 0, size.x, size.y, 
+    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,
@@ -80,9 +78,12 @@ bool wxPopupWindow::Create( wxWindow *parent, int style )
 
     m_mainWidget = (WXWindow) xwindow;
     wxAddWindowToTable( xwindow, (wxWindow*) this );
-    
-    XSetTransientForHint( xdisplay, xwindow, xparent );
-    
+
+    // Probably shouldn't be here for an unmanaged window
+    //XSetTransientForHint( xdisplay, xwindow, xparent );
+
+    // TODO: Will these calls cause decoration??
+
     size_hints.flags = PSize;
     size_hints.width = size.x;
     size_hints.height = size.y;
@@ -92,11 +93,14 @@ bool wxPopupWindow::Create( wxWindow *parent, int style )
     wm_hints.input = True;
     wm_hints.initial_state = NormalState;
     XSetWMHints( xdisplay, xwindow, &wm_hints);
-    
+    // No decorations for this window
+#if 0
     Atom wm_delete_window = XInternAtom( xdisplay, "WM_DELETE_WINDOW", False);
     XSetWMProtocols( xdisplay, xwindow, &wm_delete_window, 1);
     
     wxSetWMDecorations((Window) GetMainWindow(), style);
+#endif
 
     return TRUE;
 }