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:
parent
44f8caa786
commit
7edcafa467
@ -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();
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -168,7 +168,6 @@ 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();
|
||||
|
||||
|
@ -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 )
|
||||
{
|
||||
|
@ -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
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -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,
|
||||
@ -328,7 +353,9 @@ void wxWindowX11::DoCaptureMouse()
|
||||
XUngrabPointer(wxGlobalDisplay(), CurrentTime);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
res = XGrabKeyboard(wxGlobalDisplay(), (Window) GetMainWindow(),
|
||||
#if 0
|
||||
ShiftMask | LockMask | ControlMask | Mod1Mask | Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask,
|
||||
@ -343,10 +370,13 @@ 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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user