]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/sashwin.cpp
Added size event for status bar
[wxWidgets.git] / src / generic / sashwin.cpp
index 2b4c57472cc6ef7f8def3dfe31ebd14cab1831fc..35dc510806908fef76d6dee9074cff4cd633e2d0 100644 (file)
@@ -96,10 +96,8 @@ void wxSashWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
 {
     wxPaintDC dc(this);
 
-#if 0
-    if ( m_borderSize > 0 )
-        DrawBorders(dc);
-#endif
+    //    if ( m_borderSize > 0 )
+    DrawBorders(dc);
 
     DrawSashes(dc);
 }
@@ -115,13 +113,21 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event)
        {
         if ( sashHit != wxSASH_NONE )
         {
-               CaptureMouse();
+            CaptureMouse();
 
            // Required for X to specify that
-               // that we wish to draw on top of all windows
-               // - and we optimise by specifying the area
-               // for creating the overlap window.
-               wxScreenDC::StartDrawingOnTop(this);
+            // that we wish to draw on top of all windows
+            // - and we optimise by specifying the area
+            // for creating the overlap window.
+            // Find the first frame or dialog and use this to specify
+            // the area to draw on.
+            wxWindow* parent = this;
+
+            while (parent && !parent->IsKindOf(CLASSINFO(wxDialog)) &&
+                             !parent->IsKindOf(CLASSINFO(wxFrame)))
+              parent = parent->GetParent();
+
+            wxScreenDC::StartDrawingOnTop(parent);
 
             // We don't say we're dragging yet; we leave that
             // decision for the Dragging() branch, to ensure
@@ -318,7 +324,7 @@ wxSashEdgePosition wxSashWindow::SashHitTest(int x, int y, int WXUNUSED(toleranc
                 }
                 case wxSASH_LEFT:
                 {
-                    if ((x >= GetEdgeMargin(position)) && (x >= 0))
+                    if ((x <= GetEdgeMargin(position)) && (x >= 0))
                         return wxSASH_LEFT;
                     break;
                 }
@@ -527,9 +533,9 @@ void wxSashWindow::SizeWindows()
     int cw, ch;
     GetClientSize(&cw, &ch);
 
-    if (GetChildren()->Number() > 0)
+    if (GetChildren().Number() > 0)
     {
-        wxWindow* child = (wxWindow*) (GetChildren()->First()->Data());
+        wxWindow* child = (wxWindow*) (GetChildren().First()->Data());
 
         int x = 0;
         int y = 0;