]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/popupwin.cpp
Better fix
[wxWidgets.git] / src / motif / popupwin.cpp
index 8d4ce0915dc4828abaeb077eeab24a572a694637..ffa6837734a941c9a244e1b6f082912fb0b473da 100644 (file)
@@ -1,23 +1,22 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        popupwin.cpp
+// Name:        src/motif/popupwin.cpp
 // Purpose:     wxPopupWindow implementation
 // Author:      Mattia barbon
 // Modified by:
 // Created:     28.08.03
 // RCS-ID:      $Id$
 // Copyright:   (c) Mattia barbon
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "popup.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #include "wx/popupwin.h"
-#include "wx/app.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/app.h"
+#endif
 
 #ifdef __VMS__
 #pragma message disable nosimpint
@@ -29,8 +28,6 @@
 
 #include "wx/motif/private.h"
 
-IMPLEMENT_DYNAMIC_CLASS( wxPopupWindow, wxWindow );
-
 bool wxPopupWindow::Create( wxWindow *parent, int flags )
 {
     if( !wxPopupWindowBase::Create( parent, flags ) )
@@ -47,11 +44,19 @@ bool wxPopupWindow::Create( wxWindow *parent, int flags )
 
     m_mainWidget = (WXWidget)popup;
 
-    SetSize( 100, 100 ); // for child creation to work
+    wxAddWindowToTable( (Widget) m_mainWidget, this );
+
+    DoSetSizeIntr( -1, -1, 100, 100, 0, true );
 
     XtSetMappedWhenManaged( popup, False );
     XtRealizeWidget( popup );
-
+    XtManageChild ( popup );
+/*
+    XtTranslations ptr;
+    XtOverrideTranslations (popup,
+        ptr = XtParseTranslationTable ("<Configure>: resize()"));
+    XtFree ((char *) ptr);
+*/
     return true;
 }
 
@@ -62,7 +67,7 @@ bool wxPopupWindow::Show( bool show )
 
     if( show )
     {
-        XtPopup( (Widget)GetMainWidget(), XtGrabNone );
+        XtPopup( (Widget)GetMainWidget(), XtGrabNonexclusive );
     }
     else
     {