- // calculate postion in frame's coordiantes
-
- if ( !mBarDragStarted )
- {
- event.Skip(); // pass event to the next plugin
- return;
- }
-
- wxPoint mousePos = event.mPos;
-
- event.mpPane->PaneToFrame( &mousePos.x, &mousePos.y );
-
- bool prevIsInClient = ( mpCurPane == 0 );
-
- AdjustHintRect( mousePos );
-
- // if the hint-rect is not "tempted" to any pane yet
-
- if ( mpCurPane == NULL )
- {
- cbDockPane* pPane = HitTestPanes( mHintRect );
-
- if ( !pPane )
-
- // enable sticking again, if we've left the pane completely
- mCanStick = TRUE;
-
- if ( mCanStick && pPane &&
- GetDistanceToPane( pPane, mousePos ) < GetBarHeightInPane( pPane ) )
-
- StickToPane( pPane, mousePos );
- else
- if ( pPane && HitTestPanes( mousePos ) == pPane && 0 ) // FOR NOW:: disabled
-
- StickToPane( pPane, mousePos );
- }
- else
- {
- // otherwise, when rect is now sticked to some of the panes
- // check if it should still remain in this pane
-
- mCanStick = TRUE;
-
- bool mouseInOther = IsInOtherPane( mousePos );
-
- if ( mouseInOther )
- {
- cbDockPane* pPane = HitTestPanes( mousePos );
-
- StickToPane( pPane, mousePos );
- }
- else
- {
- if ( IsInClientArea( mousePos ) )
- {
- cbDockPane* pPane = HitTestPanes( mHintRect );
-
- if ( pPane &&
- pPane != mpCurPane &&
- GetDistanceToPane( pPane, mousePos ) < GetBarHeightInPane( pPane ) )
-
- StickToPane( pPane, mousePos );
- else
- if ( !pPane )
- {
- UnstickFromPane( mpCurPane, mousePos );
-
- // FOR NOW:: disabled, would cause some mess
- //mCanStick = FALSE; // prevents from sticking to this
- // pane again, flag is reset when hint-rect
- // leaves the pane completely
- }
- else
- if ( GetDistanceToPane( pPane, mousePos ) > GetBarHeightInPane( pPane ) )
- {
- if ( !HitsPane( mpCurPane, mHintRect ) )
- {
- UnstickFromPane( mpCurPane, mousePos );
-
- // FOR NOW:: disabled, would cause some mess
- //mCanStick = FALSE; // prevents from sticking to this
- // pane again, flag is reset when hint-rect
- // leaves the pane completely
- }
- }
-
- }
- else
- {
- }
- }
- }
-
- ShowHint( prevIsInClient );
-
- wxCursor* pPrevCurs = mpCurCursor;
-
- if ( mpCurPane )