[Winmerge-svn] SF.net SVN: winmerge: [4527] trunk
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <ki...@us...> - 2007-09-11 15:32:51
|
Revision: 4527 http://winmerge.svn.sourceforge.net/winmerge/?rev=4527&view=rev Author: kimmov Date: 2007-09-11 08:32:45 -0700 (Tue, 11 Sep 2007) Log Message: ----------- BUG: [ 1791351 ] Go To Line Number does not change pane focus. Modified Paths: -------------- trunk/Docs/Users/ChangeLog.txt trunk/Src/MergeEditView.cpp Modified: trunk/Docs/Users/ChangeLog.txt =================================================================== --- trunk/Docs/Users/ChangeLog.txt 2007-09-10 21:44:55 UTC (rev 4526) +++ trunk/Docs/Users/ChangeLog.txt 2007-09-11 15:32:45 UTC (rev 4527) @@ -7,6 +7,7 @@ Remove MFC dependency from resource compiler (#1783581) Better multi-monitor support (split file view on monitor boundary) (#1788168) BugFix: Renaming unique item (only other side) renamed parent folder (#1787816) + BugFix: Goto didn't change the active pane when selecting another pane (#1791351) Translation updates: - Traditional Chinese (r4473) Modified: trunk/Src/MergeEditView.cpp =================================================================== --- trunk/Src/MergeEditView.cpp 2007-09-10 21:44:55 UTC (rev 4526) +++ trunk/Src/MergeEditView.cpp 2007-09-11 15:32:45 UTC (rev 4527) @@ -2512,13 +2512,17 @@ * @param [in] nLine Destination linenumber * @param [in] bRealLine if TRUE linenumber is real line, otherwise * it is apparent line (including deleted lines) - * @param [in] bLeft If TRUE linenumber is for left pane + * @param [in] pane Pane index of goto target pane (0 = left, 1 = right). */ void CMergeEditView::GotoLine(UINT nLine, BOOL bRealLine, int pane) { CMergeDoc *pDoc = GetDocument(); + CSplitterWnd *pSplitterWnd = GetParentSplitter(this, FALSE); CMergeEditView *pLeftView = pDoc->GetLeftView(); CMergeEditView *pRightView = pDoc->GetRightView(); + CMergeEditView *pCurrentView = static_cast<CMergeEditView*> + (pSplitterWnd->GetActivePane()); + bool bLeftIsCurrent = pLeftView == pCurrentView ? true : false; int nRealLine = nLine; int nApparentLine = nLine; @@ -2546,6 +2550,12 @@ pRightView->SetCursorPos(ptPos); pLeftView->SetAnchor(ptPos); pRightView->SetAnchor(ptPos); + + // If goto target is another view - activate another view. + // This is done for user convenience as user probably wants to + // work with goto target file. + if ((bLeftIsCurrent && pane == 1) || (!bLeftIsCurrent && pane == 0)) + pSplitterWnd->ActivateNext(); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |