]> git.saurik.com Git - wxWidgets.git/commitdiff
Various changes to make pop up menus work
authorRobert Roebling <robert@roebling.de>
Sat, 9 Mar 2002 20:22:44 +0000 (20:22 +0000)
committerRobert Roebling <robert@roebling.de>
Sat, 9 Mar 2002 20:22:44 +0000 (20:22 +0000)
    under X11.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/popupcmn.cpp
src/univ/menu.cpp
src/x11/app.cpp

index 7da199a713f50435b6fb8f8ed782070433954f7d..b4ec9cf52622c5166900734e5dc1afb1cbc5f9d2 100644 (file)
@@ -34,6 +34,7 @@
 
 #ifndef WX_PRECOMP
     #include "wx/combobox.h"        // wxComboControl
+    #include "wx/log.h"
 #endif //WX_PRECOMP
 
 #ifdef __WXUNIVERSAL__
@@ -256,13 +257,13 @@ void wxPopupTransientWindow::Popup(wxWindow *winFocus)
     // otherwise everything else breaks down
     m_focus = FindFocus();
     if ( m_focus )
-#endif // __WXMSW__
     {
         delete m_handlerFocus;
         m_handlerFocus = new wxPopupFocusHandler(this);
 
         m_focus->PushEventHandler(m_handlerFocus);
     }
+#endif // __WXMSW__
 }
 
 void wxPopupTransientWindow::Dismiss()
@@ -347,7 +348,7 @@ void wxPopupWindowHandler::OnLeftDown(wxMouseEvent& event)
     {
         return;
     }
-
+    
     wxPoint pos = event.GetPosition();
 
     // scrollbar on which the click occured
index e78fc96cd9361dc18e7e775a03b526eab1f0a82e..6eed51bf9766c65d220c33adf793345f6736f9d8 100644 (file)
@@ -257,6 +257,8 @@ public:
         }
         else
         {
+            // return FALSE;
+            
             return wxEvtHandler::ProcessEvent(event);
         }
     }
@@ -1251,7 +1253,9 @@ void wxMenu::OnDismiss(bool dismissParent)
             wxCHECK_RET( m_invokingWindow, _T("what kind of menu is this?") );
 
             m_invokingWindow->DismissPopupMenu();
-            SetInvokingWindow(NULL);
+            
+            // Why reset it here? We need it for sending the event to...
+            // SetInvokingWindow(NULL);
         }
     }
 }
@@ -1321,7 +1325,7 @@ bool wxMenu::ClickItem(wxMenuItem *item)
         // not applicabled
         isChecked = -1;
     }
-
+    
     return SendEvent(item->GetId(), isChecked);
 }
 
@@ -2355,6 +2359,9 @@ bool wxWindow::DoPopupMenu(wxMenu *menu, int x, int y)
 #endif // 0
 
     menu->SetInvokingWindow(this);
+    
+    // wxLogDebug( "Name of invoking window %s", menu->GetInvokingWindow()->GetName().c_str() );
+    
     menu->Popup(ClientToScreen(wxPoint(x, y)), wxSize(0, 0));
 
     // this is not very useful if the menu was popped up because of the mouse
@@ -2390,9 +2397,6 @@ void wxWindow::DismissPopupMenu()
 {
     wxCHECK_RET( ms_evtLoopPopup, _T("no popup menu shown") );
     
-    char *crash = NULL;
-    (*crash) = 0;
-
     ms_evtLoopPopup->Exit();
 }
 
index a788e7ee0178b58876fd079f158d92cd686b6855..8f64f5a3acd211d883a3b5152d6ad12d7384b7a6 100644 (file)
@@ -468,7 +468,7 @@ bool wxApp::ProcessXEvent(WXEvent* _event)
 
     win = wxGetWindowFromTable(window);
     if (!win)
-           return FALSE;
+        return FALSE;
 
 #ifdef __WXDEBUG__
     wxString windowClass = win->GetClassInfo()->GetClassName();
@@ -661,7 +661,7 @@ bool wxApp::ProcessXEvent(WXEvent* _event)
                     g_nextFocus = win;
                     
                     win->SetFocus();
-                    return TRUE;
+                    // return TRUE;
                 }
             }
             
@@ -881,7 +881,7 @@ bool wxApp::OnInitGui()
     delete wxLog::SetActiveTarget(new wxLogStderr);
     
     if (!wxAppBase::OnInitGui())
-       return FALSE;
+    return FALSE;
     
     GetMainColormap( wxApp::GetDisplay() );
 
@@ -920,13 +920,13 @@ Window wxGetWindowParent(Window window)
 #endif
     Window* children = NULL;
 
-    // #define XQueryTree(d,w,r,p,c,nc)                GrQueryTree(w,p,c,nc)
+    // #define XQueryTree(d,w,r,p,c,nc)     GrQueryTree(w,p,c,nc)
     int res = 1;
 #if !wxUSE_NANOX
     res =
 #endif
         XQueryTree((Display*) wxGetDisplay(), window, & root, & parent,
-                        & children, & noChildren);
+             & children, & noChildren);
     if (children)
         XFree(children);
     if (res)