Removed some debug code from window headers; added some debug

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
This commit is contained in:
Julian Smart 2002-02-12 18:15:20 +00:00
parent 44f8caa786
commit 7edcafa467
11 changed files with 65 additions and 14 deletions

View File

@ -239,7 +239,7 @@ public:
virtual void DoCaptureMouse();
virtual void DoReleaseMouse();
#if wxUSE_TOOLTIPS
virtual void DoSetToolTip( wxToolTip *tip );
#endif // wxUSE_TOOLTIPS

View File

@ -239,7 +239,7 @@ public:
virtual void DoCaptureMouse();
virtual void DoReleaseMouse();
#if wxUSE_TOOLTIPS
virtual void DoSetToolTip( wxToolTip *tip );
#endif // wxUSE_TOOLTIPS

View 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();

View 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

View 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

View 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;

View 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;

View 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

View 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 )
{

View 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
// ----------------------------------------------------------------------------

View 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;
}