X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec5bb70d65a73889951fe722bddef0487f4e1fc9..4b056ef54f29582e2a5154bf148f7ebc5877b51b:/src/common/wincmn.cpp diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp index 9d374520a4..e0d1e1af70 100644 --- a/src/common/wincmn.cpp +++ b/src/common/wincmn.cpp @@ -175,9 +175,10 @@ void wxWindowBase::InitBase() #endif // wxUSE_PALETTE m_virtualSize = wxDefaultSize; - m_minVirtualWidth = -1; - m_minVirtualHeight = -1; - m_maxVirtualWidth = -1; + + m_minVirtualWidth = + m_minVirtualHeight = + m_maxVirtualWidth = m_maxVirtualHeight = -1; // Whether we're using the current theme for this window (wxGTK only for now) @@ -363,6 +364,20 @@ void wxWindowBase::Centre(int direction) } } + // there is no wxTopLevelWindow under wxMotif yet +#ifndef __WXMOTIF__ + // we shouldn't center the dialog on the iconized window: under + // Windows, for example, this places it completely off the screen + if ( parent ) + { + wxTopLevelWindow *winTop = wxDynamicCast(parent, wxTopLevelWindow); + if ( winTop && winTop->IsIconized() ) + { + parent = NULL; + } + } +#endif // __WXMOTIF__ + // did we find the parent? if ( !parent ) { @@ -580,13 +595,16 @@ void wxWindowBase::SetVirtualSizeHints( int minW, int minH, void wxWindowBase::DoSetVirtualSize( int x, int y ) { - if( m_minVirtualWidth != -1 && m_minVirtualWidth > x ) x = m_minVirtualWidth; - if( m_maxVirtualWidth != -1 && m_maxVirtualWidth < x ) x = m_maxVirtualWidth; - if( m_minVirtualHeight != -1 && m_minVirtualHeight > y ) y = m_minVirtualHeight; - if( m_maxVirtualHeight != -1 && m_maxVirtualHeight < y ) y = m_maxVirtualHeight; + if ( m_minVirtualWidth != -1 && m_minVirtualWidth > x ) + x = m_minVirtualWidth; + if ( m_maxVirtualWidth != -1 && m_maxVirtualWidth < x ) + x = m_maxVirtualWidth; + if ( m_minVirtualHeight != -1 && m_minVirtualHeight > y ) + y = m_minVirtualHeight; + if ( m_maxVirtualHeight != -1 && m_maxVirtualHeight < y ) + y = m_maxVirtualHeight; - m_virtualSize.SetWidth( x ); - m_virtualSize.SetHeight( y ); + m_virtualSize = wxSize(x, y); } wxSize wxWindowBase::DoGetVirtualSize() const @@ -1934,7 +1952,7 @@ struct WXDLLEXPORT wxWindowNext void wxWindowBase::CaptureMouse() { - wxLogTrace(_T("mousecapture"), _T("CaptureMouse(0x%08x)"), this); + wxLogTrace(_T("mousecapture"), _T("CaptureMouse(%p)"), this); wxWindow *winOld = GetCapture(); if ( winOld ) @@ -1954,9 +1972,9 @@ void wxWindowBase::CaptureMouse() void wxWindowBase::ReleaseMouse() { - wxLogTrace(_T("mousecapture"), _T("ReleaseMouse(0x%08x)"), this); + wxLogTrace(_T("mousecapture"), _T("ReleaseMouse(%p)"), this); - wxASSERT_MSG( GetCapture() == this, wxT("attempt to release mouse, but this window hasn't captured it") ) + wxASSERT_MSG( GetCapture() == this, wxT("attempt to release mouse, but this window hasn't captured it") ); DoReleaseMouse(); @@ -1971,7 +1989,7 @@ void wxWindowBase::ReleaseMouse() //else: stack is empty, no previous capture wxLogTrace(_T("mousecapture"), - _T("After ReleaseMouse() mouse is captured by 0x%08x"), + _T("After ReleaseMouse() mouse is captured by %p"), GetCapture()); } @@ -1987,3 +2005,4 @@ wxWindow* wxGetTopLevelParent(wxWindow *win) return win; } +// vi:sts=4:sw=4:et