OSDN Git Service

ImgMergeFrm.*: fix: text on header bars was not selectable
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 27 Aug 2016 04:07:41 +0000 (13:07 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 27 Aug 2016 04:07:41 +0000 (13:07 +0900)
Src/ImgMergeFrm.cpp
Src/ImgMergeFrm.h

index 756b412..2586118 100644 (file)
@@ -159,6 +159,7 @@ CImgMergeFrame::CImgMergeFrame()
 , m_bAutoMerged(false)
 , m_pImgMergeWindow(NULL)
 , m_pImgToolWindow(NULL)
+, m_nLastSplitPos(0)
 {
        std::fill_n(m_nBufferType, 3, BUFFER_NORMAL);
        std::fill_n(m_bRO, 3, false);
@@ -860,7 +861,11 @@ void CImgMergeFrame::UpdateHeaderSizes()
                                w[pane] = rc.Width() / m_pImgMergeWindow->GetPaneCount() - 4;
                }
                // resize controls in header dialog bar
-               m_wndFilePathBar.Resize(w);
+               if (w[0] != m_nLastSplitPos && w > 0)
+               {
+                       m_wndFilePathBar.Resize(w);
+                       m_nLastSplitPos = w[0];
+               }
                rc.left = rcMergeWindow.left;
                rc.top = rc.bottom - m_rectBorder.bottom;
                rc.right = rc.left;
@@ -1214,7 +1219,11 @@ void CImgMergeFrame::OnIdleUpdateCmdUI()
                UpdateHeaderSizes();
                for (int pane = 0; pane < m_filePaths.GetSize(); ++pane)
                {
-                       UpdateHeaderPath(pane);
+                       // Update mod indicators
+                       String ind = m_wndFilePathBar.GetText(pane);
+                       if (m_pImgMergeWindow->IsModified(pane) ? ind[0] != _T('*') : ind[0] == _T('*'))
+                               UpdateHeaderPath(pane);
+
                        m_wndFilePathBar.SetActive(pane, pane == m_pImgMergeWindow->GetActivePane());
                        String text;
                        if (pt.x >= 0 && pt.y >= 0 &&
index b9e9d13..a29c859 100644 (file)
@@ -110,6 +110,7 @@ private:
        bool PromptAndSaveIfNeeded(bool bAllowCancel);
        bool MergeModeKeyDown(MSG* pMsg);
        static void OnChildPaneEvent(const IImgMergeWindow::Event& evt);
+       int m_nLastSplitPos;
        HICON m_hIdentical;
        HICON m_hDifferent;
        CLocationBar m_wndLocationBar;