]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/fl/bardragpl.cpp
Updated version and other minor tweaks
[wxWidgets.git] / contrib / src / fl / bardragpl.cpp
index 50ee1a43afd14ebc789440b116173129f95d81d3..4e35ae422e53ab98490d6be34a26f5ad06f85d4c 100644 (file)
@@ -456,17 +456,6 @@ void cbBarDragPlugin::ShowHint( bool prevWasInClient )
 {
        bool wasDocked = FALSE;
 
-       if ( mpDraggedBar->mState != wxCBAR_FLOATING && !mpCurPane )
-       {
-               mpLayout->SetBarState( mpDraggedBar, wxCBAR_FLOATING, TRUE );
-       }
-       else
-       if ( mpDraggedBar->mState == wxCBAR_FLOATING && mpCurPane )
-       {
-               mpLayout->SetBarState( mpDraggedBar, wxCBAR_DOCKED_HORIZONTALLY, FALSE );
-
-               wasDocked = TRUE;
-       }
 
        if ( mpSrcPane->mProps.mRealTimeUpdatesOn == FALSE )
        {
@@ -510,6 +499,18 @@ void cbBarDragPlugin::ShowHint( bool prevWasInClient )
        {
                // otherwise, if real-time updates option is ON
 
+           if ( mpDraggedBar->mState != wxCBAR_FLOATING && !mpCurPane )
+           {
+                   mpLayout->SetBarState( mpDraggedBar, wxCBAR_FLOATING, TRUE );
+           }
+         else
+           if ( mpDraggedBar->mState == wxCBAR_FLOATING && mpCurPane )
+           {
+                   mpLayout->SetBarState( mpDraggedBar, wxCBAR_DOCKED_HORIZONTALLY, FALSE );
+
+                   wasDocked = TRUE;
+           }
+
                if ( mpCurPane )
                {
                        mpLayout->GetUpdatesManager().OnStartChanges();
@@ -641,16 +642,25 @@ void cbBarDragPlugin::OnMouseMove( cbMotionEvent& event )
        wxCursor* pPrevCurs = mpCurCursor;
 
        if ( mpCurPane )
-       
-               mpCurCursor = mpLayout->mpDragCursor;
+    {
+               mpCurCursor = mpLayout->mpNormalCursor;
+    }
        else
        {
-               if ( mpLayout->mFloatingOn && mpSrcPane->mProps.mRealTimeUpdatesOn )
+        // if floating is off, and we are in the client
+        // area, the cursor will be invalid, otherwise
+        // it will be the normal cursor
                
-                       mpCurCursor = mpLayout->mpDragCursor;
+        if (mpLayout->mFloatingOn)
+        {
+                       mpCurCursor = mpLayout->mpNormalCursor;
+        }
                else
+        {
                        mpCurCursor = mpLayout->mpNECursor;
        }
+
+       }
        if ( pPrevCurs != mpCurCursor )
                mpLayout->GetParentFrame().SetCursor( *mpCurCursor );
 }
@@ -687,9 +697,26 @@ void cbBarDragPlugin::OnLButtonUp( cbLeftUpEvent& event )
                                        mpLayout->GetUpdatesManager().UpdateNow();
                                }
                                else
+                {
+                    if (mpDraggedBar->mState == wxCBAR_FLOATING)
+                    {
+                               mpLayout->SetBarState( mpDraggedBar, wxCBAR_DOCKED_HORIZONTALLY, TRUE);
+                    }
+
                                        mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane );
                        }
                }
+             else
+            {
+                if (mpDraggedBar->mState != wxCBAR_FLOATING)
+                {
+                    mpLayout->SetBarState(mpDraggedBar, wxCBAR_FLOATING, true);
+                }
+
+                               mpDraggedBar->mDimInfo.mBounds[ wxCBAR_FLOATING ] = mHintRect;
+                               mpLayout->ApplyBarProperties( mpDraggedBar );
+            }
+               }
        
                mHintRect.width = -1;
 
@@ -753,7 +780,7 @@ void cbBarDragPlugin::OnStartBarDragging( cbStartBarDraggingEvent& event )
        mpLayout->CaptureEventsForPane( event.mpPane );
        mpLayout->CaptureEventsForPlugin( this );
 
-       mpLayout->GetParentFrame().SetCursor( *mpLayout->mpDragCursor );
+       mpLayout->GetParentFrame().SetCursor( *mpLayout->mpNormalCursor );
 
        mBarDragStarted = TRUE;