]> git.saurik.com Git - wxWidgets.git/commitdiff
Removed some debug code from window headers; added some debug
authorJulian Smart <julian@anthemion.co.uk>
Tue, 12 Feb 2002 18:15:20 +0000 (18:15 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Tue, 12 Feb 2002 18:15:20 +0000 (18:15 +0000)
code to try to figure out capture problems

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

include/wx/gtk/window.h
include/wx/gtk1/window.h
include/wx/motif/window.h
include/wx/msw/window.h
include/wx/os2/window.h
include/wx/window.h
include/wx/x11/app.h
include/wx/x11/window.h
src/univ/menu.cpp
src/x11/app.cpp
src/x11/window.cpp

index a0d1a66f2e65ae93d6351688854778890b176c6b..bceb28c0a20ee129fc1c6d3954c3380966136684 100644 (file)
@@ -239,7 +239,7 @@ public:
 
     virtual void DoCaptureMouse();
     virtual void DoReleaseMouse();
-
+    
 #if wxUSE_TOOLTIPS
     virtual void DoSetToolTip( wxToolTip *tip );
 #endif // wxUSE_TOOLTIPS
index a0d1a66f2e65ae93d6351688854778890b176c6b..bceb28c0a20ee129fc1c6d3954c3380966136684 100644 (file)
@@ -239,7 +239,7 @@ public:
 
     virtual void DoCaptureMouse();
     virtual void DoReleaseMouse();
-
+    
 #if wxUSE_TOOLTIPS
     virtual void DoSetToolTip( wxToolTip *tip );
 #endif // wxUSE_TOOLTIPS
index d4cabf0cbcf4330cb28ba5742cd0830701f72fa0..9284faf7649cd862fe52280f7e523b38217a7992 100644 (file)
@@ -314,7 +314,6 @@ protected:
     virtual void DoSetClientSize(int width, int height);
     virtual void DoMoveWindow(int x, int y, int width, int height);
     virtual bool DoPopupMenu(wxMenu *menu, int x, int y);
-    
     virtual void DoCaptureMouse();
     virtual void DoReleaseMouse();
     
index 0df7b55a36b1499aad4ea13c8f2a7eed532a538a..feccccf607618e70d3ed80bca35e6685c614cf20 100644 (file)
@@ -437,7 +437,7 @@ protected:
 
     virtual void DoCaptureMouse();
     virtual void DoReleaseMouse();
-
+    
     // move the window to the specified location and resize it: this is called
     // from both DoSetSize() and DoSetClientSize() and would usually just call
     // ::MoveWindow() except for composite controls which will want to arrange
index 66bdc201c66aa023c9cf44833ca482f796213a87..3580d86bcabec7c1469373a0cfe897d36a3791a4 100644 (file)
@@ -526,7 +526,7 @@ protected:
 
     virtual void     DoCaptureMouse(void);
     virtual void     DoReleaseMouse(void);
-
+    
     // move the window to the specified location and resize it: this is called
     // from both DoSetSize() and DoSetClientSize() and would usually just call
     // ::WinSetWindowPos() except for composite controls which will want to arrange
index bdc20dfc5c85d41ec2a324400964137fffdc140a..af98d65c858a4d8387fab1404ddcaa18678392e9 100644 (file)
@@ -923,7 +923,7 @@ protected:
     // capture/release the mouse, used by Capture/ReleaseMouse()
     virtual void DoCaptureMouse() = 0;
     virtual void DoReleaseMouse() = 0;
-
+    
     // retrieve the position/size of the window
     virtual void DoGetPosition( int *x, int *y ) const = 0;
     virtual void DoGetSize( int *width, int *height ) const = 0;
index 621cf13a3385d06195cf64ff477eaac8399fd8f6..39a94cbe3079b1ee212db2c749190f9c28ba0bac 100644 (file)
@@ -76,6 +76,8 @@ public:
     // Processes an X event.
     virtual void ProcessXEvent(WXEvent* event);
     
+    virtual void OnAssert(const wxChar *file, int line, const wxChar *msg);
+    
 protected:
     bool                  m_showOnInit;
     
index a92d8c0741fab489054d96a22c03903738a37ec1..6693eaf5178b95c996f12c63759c1faf470fab2e 100644 (file)
@@ -168,10 +168,9 @@ protected:
         int sizeFlags = wxSIZE_AUTO);
     virtual void DoSetClientSize(int width, int height);
     virtual void DoMoveWindow(int x, int y, int width, int height);
-    
     virtual void DoCaptureMouse();
     virtual void DoReleaseMouse();
-    
+
 #if wxUSE_TOOLTIPS
     virtual void DoSetToolTip( wxToolTip *tip );
 #endif // wxUSE_TOOLTIPS
index e5bf6a9e66d299344596545217dd711cd36173a5..c87393282d08d5843efa4a45f769d1bb829d9fd0 100644 (file)
@@ -1837,6 +1837,7 @@ int wxMenuBar::GetMenuFromPoint(const wxPoint& pos) const
 void wxMenuBar::SelectMenu(size_t pos)
 {
     SetFocus();
+    wxLogDebug("Capturing mouse from wxMenuBar::SelectMenu");
     CaptureMouse();
 
     DoSelectMenu(pos);
@@ -1925,6 +1926,7 @@ void wxMenuBar::OnLeftDown(wxMouseEvent& event)
         }
         else // on item
         {
+           wxLogDebug("Capturing mouse from wxMenuBar::OnLeftDown");
             CaptureMouse();
 
             // show it as selected
@@ -2286,7 +2288,10 @@ void wxMenuBar::OnDismissMenu(bool dismissMenuBar)
 void wxMenuBar::OnDismiss()
 {
     if ( GetCapture() )
+    {
+        wxLogDebug("Releasing mouse from wxMenuBar::OnDismiss");
         GetCapture()->ReleaseMouse();
+    }
 
     if ( m_current != -1 )
     {
index c21c217a82574af1ce79911b25f5c88878ceecd0..31ad42aae9721b3cac58d226e02115234d0836bd 100644 (file)
@@ -755,6 +755,19 @@ wxApp::GetStdIcon(int which) const
     }
 }
 
+void wxApp::OnAssert(const wxChar *file, int line, const wxChar *msg)
+{
+    // While the GUI isn't working that well, just print out the
+    // message.
+#if 0    
+    wxAppBase::OnAssert(file, line, msg);
+#else
+    wxString msg2;
+    msg2.Printf("At file %s:%d: %s", file, line, msg);
+    wxLogDebug(msg2);
+#endif
+}
+
 // ----------------------------------------------------------------------------
 // accessors for C modules
 // ----------------------------------------------------------------------------
index 041217aa9eb2b3d48cfe2040ac42db60efead61e..486f63816cfaea93f6b1aca3d596f2663ac92706 100644 (file)
@@ -259,17 +259,22 @@ bool wxWindowX11::Enable(bool enable)
 
 bool wxWindowX11::Show(bool show)
 {
-    if ( !wxWindowBase::Show(show) )
-        return FALSE;
+    wxWindowBase::Show(show);
 
     Window xwin = (Window) GetXWindow();
     Display *xdisp = (Display*) GetXDisplay();
     if (show)
     {
+        wxString msg;
+       msg.Printf("Mapping window of type %s", GetClassInfo()->GetClassName());
+       wxLogDebug(msg);
         XMapWindow(xdisp, xwin);
     }
     else
     {
+        wxString msg;
+       msg.Printf("Unmapping window of type %s", GetClassInfo()->GetClassName());
+       wxLogDebug(msg);
         XUnmapWindow(xdisp, xwin);
     }
 
@@ -292,10 +297,21 @@ void wxWindowX11::Lower()
 
 void wxWindowX11::DoCaptureMouse()
 {
-    g_captureWindow = (wxWindow*) this;
+    if ((g_captureWindow != NULL) && (g_captureWindow != this))
+    {
+       wxASSERT_MSG(FALSE, "Trying to capture before mouse released.");
+
+       // Core dump now
+       int *tmp = NULL;
+       (*tmp) = 1;
+       return;
+    }
+    
     if ( m_winCaptured )
         return;
 
+    g_captureWindow = (wxWindow*) this;
+
     if (GetMainWindow())
     {
         int res = XGrabPointer(wxGlobalDisplay(), (Window) GetMainWindow(),
@@ -309,10 +325,19 @@ void wxWindowX11::DoCaptureMouse()
 
         if (res != GrabSuccess)
         {
-            wxLogDebug("Failed to grab pointer.");
+           wxString msg;
+           msg.Printf("Failed to grab pointer for window %s", this->GetClassInfo()->GetClassName());
+           wxLogDebug(msg);
+           if (res == GrabNotViewable)
+           {
+               wxLogDebug("This is not a viewable window - perhaps not shown yet?");
+           }
+           g_captureWindow = NULL;
             return;
         }
+       wxLogDebug("Grabbed pointer");
 
+#if 0
         res = XGrabButton(wxGlobalDisplay(), AnyButton, AnyModifier,
             (Window) GetMainWindow(),
             FALSE,
@@ -321,14 +346,16 @@ void wxWindowX11::DoCaptureMouse()
                GrabModeAsync,
             None,
             None);
-
+       
         if (res != GrabSuccess)
         {
             wxLogDebug("Failed to grab mouse buttons.");
             XUngrabPointer(wxGlobalDisplay(), CurrentTime);
             return;
         }
+#endif
 
+#if 0
         res = XGrabKeyboard(wxGlobalDisplay(), (Window) GetMainWindow(),
 #if 0
             ShiftMask | LockMask | ControlMask | Mod1Mask | Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask,
@@ -343,11 +370,14 @@ void wxWindowX11::DoCaptureMouse()
         {
             wxLogDebug("Failed to grab keyboard.");
             XUngrabPointer(wxGlobalDisplay(), CurrentTime);
+#if 0
             XUngrabButton(wxGlobalDisplay(), AnyButton, AnyModifier,
                 (Window) GetMainWindow());
+#endif
             return;
         }
-
+#endif
+       
         m_winCaptured = TRUE;
     }
 }
@@ -363,10 +393,13 @@ void wxWindowX11::DoReleaseMouse()
     if ( wMain )
     {
         XUngrabPointer(wxGlobalDisplay(), wMain);
+#if 0
         XUngrabButton(wxGlobalDisplay(), AnyButton, AnyModifier,
                 wMain);
         XUngrabKeyboard(wxGlobalDisplay(), CurrentTime);
+#endif
     }
+    wxLogDebug("Ungrabbed pointer");
 
     m_winCaptured = FALSE;
 }