]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wincmn.cpp
send wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED only once after end of dragging and...
[wxWidgets.git] / src / common / wincmn.cpp
index 5115c3cce6e308a9e05d73b051003aef3c3aa650..5f9a9a9ed70c8d4b5bde59c56803375d20e66297 100644 (file)
@@ -438,7 +438,8 @@ void wxWindowBase::Centre(int direction)
         //RN:  If we are using wxDisplay we get
         //the dimensions of the monitor the window is on,
         //otherwise we get the dimensions of the primary monitor
         //RN:  If we are using wxDisplay we get
         //the dimensions of the monitor the window is on,
         //otherwise we get the dimensions of the primary monitor
-#if wxUSE_DISPLAY
+        //FIXME:  wxDisplay::GetFromWindow only implemented on MSW
+#if wxUSE_DISPLAY && defined(__WXMSW__)
         int nDisplay = wxDisplay::GetFromWindow((wxWindow*)this);
         if(nDisplay != wxNOT_FOUND)
         {
         int nDisplay = wxDisplay::GetFromWindow((wxWindow*)this);
         if(nDisplay != wxNOT_FOUND)
         {
@@ -810,10 +811,17 @@ void wxWindowBase::DoSetVirtualSize( int x, int y )
 
 wxSize wxWindowBase::DoGetVirtualSize() const
 {
 
 wxSize wxWindowBase::DoGetVirtualSize() const
 {
-    if (m_virtualSize == wxDefaultSize)
-        return GetClientSize();
+    if ( m_virtualSize.IsFullySpecified() )
+        return m_virtualSize;
+
+    wxSize size = GetClientSize();
+    if ( m_virtualSize.x != wxDefaultCoord )
+        size.x = m_virtualSize.x;
+
+    if ( m_virtualSize.y != wxDefaultCoord )
+        size.y = m_virtualSize.y;
 
 
-    return m_virtualSize;
+    return size;
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------