OSDN Git Service

fix some dialog can't show after resize and close and open again
authorFrank Li <lznuaa@gmail.com>
Fri, 6 Mar 2009 06:05:35 +0000 (14:05 +0800)
committerFrank Li <lznuaa@gmail.com>
Fri, 6 Mar 2009 13:23:52 +0000 (21:23 +0800)
15 files changed:
ext/ResizableLib/ResizableDialog.cpp
ext/ResizableLib/ResizableDialog.h
ext/ResizableLib/ResizableGrip.h
ext/ResizableLib/ResizableLayout.h
src/Resources/TortoiseProcENG.rc
src/TortoiseProc/CloneDlg.cpp
src/TortoiseProc/CreateBranchTagDlg.cpp
src/TortoiseProc/FormatPatchDlg.cpp
src/TortoiseProc/GitSwitchDlg.cpp
src/TortoiseProc/ImportPatchDlg.cpp
src/TortoiseProc/MergeDlg.cpp
src/TortoiseProc/PullFetchDlg.cpp
src/TortoiseProc/PushDlg.cpp
src/TortoiseProc/RebaseDlg.cpp
src/TortoiseProc/resource.h

index 58d2031..d9b33b3 100644 (file)
@@ -176,3 +176,16 @@ LRESULT CResizableDialog::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
        HandleNcCalcSize(TRUE, (LPNCCALCSIZE_PARAMS)lParam, lResult);\r
        return lResult;\r
 }\r
+\r
+BOOL CResizableDialog::AddOthersToAnchor()\r
+{\r
+       CWnd * pWnd = GetWindow(GW_CHILD);\r
+       while(pWnd)\r
+       {\r
+               if(!IsInAnchorList(pWnd->m_hWnd) && pWnd->m_hWnd != m_wndGrip.m_hWnd )\r
+                       this->AddAnchor(pWnd->m_hWnd,TOP_LEFT);\r
+               \r
+               pWnd=pWnd->GetNextWindow(GW_HWNDNEXT);\r
+       }\r
+       return TRUE;\r
+}
\ No newline at end of file
index 247105f..cb13db8 100644 (file)
@@ -58,6 +58,7 @@ private:
 // Operations\r
 public:\r
 \r
+       int AddOthersToAnchor();\r
 // Overrides\r
        // ClassWizard generated virtual function overrides\r
        //{{AFX_VIRTUAL(CResizableDialog)\r
index 4f65e94..919bb11 100644 (file)
@@ -66,7 +66,7 @@ private:
                CDC m_dcGrip, m_dcMask;\r
                CBitmap m_bmGrip, m_bmMask;\r
        };\r
-\r
+protected:\r
        CSizeGrip m_wndGrip;            // grip control\r
        int m_nShowCount;                       // support for hiding the grip\r
 \r
index 3108d5b..c03691e 100644 (file)
@@ -164,6 +164,12 @@ private:
                const CRect &rectParent, CRect &rectChild, UINT& uFlags) const;\r
 \r
 protected:\r
+\r
+       BOOL IsInAnchorList(HWND hwnd)\r
+       {\r
+               POSITION pos;\r
+               return m_mapLayout.Lookup(hwnd, pos);\r
+       }\r
        //! @brief Override to initialize resize properties (clipping, refresh)\r
        virtual void InitResizeProperties(LAYOUTINFO& layout) const;\r
 \r
index 55422d7..242b1fc 100644 (file)
Binary files a/src/Resources/TortoiseProcENG.rc and b/src/Resources/TortoiseProcENG.rc differ
index 73e6f3c..2207031 100644 (file)
@@ -39,6 +39,8 @@ BOOL CCloneDlg::OnInitDialog()
        AddAnchor(IDOK,BOTTOM_RIGHT);\r
        AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
 \r
+       this->AddOthersToAnchor();\r
+\r
        m_URLCombo.SetURLHistory(TRUE);\r
        m_URLCombo.LoadHistory(_T("Software\\TortoiseGit\\History\\repoURLS"), _T("url"));\r
        if(m_URL.IsEmpty())\r
index 3a35dc3..d7b56f1 100644 (file)
@@ -57,6 +57,8 @@ BOOL CCreateBranchTagDlg::OnInitDialog()
        AddAnchor(IDOK,BOTTOM_RIGHT);\r
        AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
 \r
+       this->AddOthersToAnchor();\r
+\r
        if(m_Base.IsEmpty())\r
        {\r
                this->SetDefaultChoose(IDC_RADIO_HEAD);\r
index 0814af6..50f4176 100644 (file)
@@ -68,6 +68,7 @@ BOOL CFormatPatchDlg::OnInitDialog()
 \r
        AddAnchor(IDC_BUTTON_FROM,  TOP_RIGHT);\r
        AddAnchor(IDC_BUTTON_TO,        TOP_RIGHT);\r
+       this->AddOthersToAnchor();\r
 \r
        m_cDir.SetPathHistory(TRUE);\r
        m_cDir.LoadHistory(_T("Software\\TortoiseGit\\History\\FormatPatchURLS"), _T("path"));\r
index 1543ec6..b8bb445 100644 (file)
@@ -55,7 +55,7 @@ BOOL CGitSwitchDlg::OnInitDialog()
 \r
        AddAnchor(IDOK,BOTTOM_RIGHT);\r
        AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
-\r
+       this->AddOthersToAnchor();\r
        \r
        CHOOSE_VERSION_ADDANCHOR;\r
 \r
index 0881ba0..00b00a1 100644 (file)
@@ -40,6 +40,8 @@ BOOL CImportPatchDlg::OnInitDialog()
        AddAnchor(IDOK,BOTTOM_RIGHT);\r
        AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
 \r
+       this->AddOthersToAnchor();\r
+\r
        EnableSaveRestore(_T("ImportDlg"));\r
        return TRUE;\r
 }\r
index 486dc35..179bb25 100644 (file)
@@ -54,6 +54,7 @@ BOOL CMergeDlg::OnInitDialog()
        AddAnchor(IDOK,BOTTOM_RIGHT);\r
        AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
 \r
+       this->AddOthersToAnchor();\r
 \r
        CheckRadioButton(IDC_RADIO_BRANCH,IDC_RADIO_VERSION,IDC_RADIO_BRANCH);\r
 \r
index 49f908a..38f993b 100644 (file)
@@ -47,6 +47,8 @@ BOOL CPullFetchDlg::OnInitDialog()
        AddAnchor(IDOK,BOTTOM_RIGHT);\r
        AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
 \r
+       this->AddOthersToAnchor();\r
+\r
        CheckRadioButton(IDC_REMOTE_RD,IDC_OTHER_RD,IDC_REMOTE_RD);\r
        m_Remote.EnableWindow(TRUE);\r
        m_Other.EnableWindow(FALSE);\r
index 8f35c3d..d72ff80 100644 (file)
@@ -45,25 +45,40 @@ BOOL CPushDlg::OnInitDialog()
 {\r
        CResizableStandAloneDialog::OnInitDialog();\r
        \r
+       AddAnchor(IDOK,BOTTOM_RIGHT);\r
+       AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
+       AddAnchor(IDC_BRANCH_GROUP, TOP_LEFT,TOP_RIGHT);\r
+       AddAnchor(IDC_STATIC_REMOTE, TOP_RIGHT);\r
+       AddAnchor(IDC_STATIC_SOURCE, TOP_LEFT);\r
+\r
        AddAnchor(IDC_BRANCH_REMOTE, TOP_RIGHT);\r
        AddAnchor(IDC_BRANCH_SOURCE, TOP_LEFT);\r
 \r
+       AddAnchor(IDC_URL_GROUP, TOP_LEFT,TOP_RIGHT);\r
+       AddAnchor(IDC_RD_REMOTE, TOP_LEFT);\r
+       AddAnchor(IDC_RD_URL, TOP_LEFT);\r
+\r
        AddAnchor(IDC_REMOTE, TOP_LEFT, TOP_RIGHT);\r
+       \r
        AddAnchor(IDC_URL, TOP_LEFT,TOP_RIGHT);\r
 \r
-       AddAnchor(IDC_URL_GROUP, TOP_LEFT,TOP_RIGHT);\r
        AddAnchor(IDC_OPTION_GROUP, TOP_LEFT,TOP_RIGHT);\r
-       AddAnchor(IDC_BRANCH_GROUP, TOP_LEFT,TOP_RIGHT);\r
+       \r
+       AddAnchor(IDC_FORCE, TOP_LEFT);\r
+       AddAnchor(IDC_PACK, TOP_LEFT);\r
+       AddAnchor(IDC_TAGS, TOP_LEFT);\r
 \r
-       AddAnchor(IDC_STATIC_REMOTE, TOP_RIGHT);\r
 \r
-       AddAnchor(IDOK,BOTTOM_RIGHT);\r
-       AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
+       AddOthersToAnchor();\r
+\r
 \r
        EnableSaveRestore(_T("PushDlg"));\r
 \r
        m_RemoteURL.SetURLHistory(TRUE);\r
-       m_RemoteURL.LoadHistory(_T("Software\\TortoiseGit\\History\\PushURLS"), _T("url"));\r
+       \r
+       CString WorkingDir=g_Git.m_CurrentDir;\r
+       WorkingDir.Replace(_T(':'),_T('_'));\r
+       m_RemoteURL.LoadHistory(CString(_T("Software\\TortoiseGit\\History\\PushURLS\\"))+WorkingDir, _T("url"));\r
        m_RemoteURL.SetCurSel(0);\r
 \r
        m_RemoteURL.EnableWindow(FALSE);\r
@@ -86,7 +101,7 @@ BOOL CPushDlg::OnInitDialog()
        }\r
        m_BranchSource.SetCurSel(current);\r
        \r
-       m_BranchRemote.LoadHistory(_T("Software\\TortoiseGit\\History\\RemoteBranch"), _T("branch"));\r
+       m_BranchRemote.LoadHistory(CString(_T("Software\\TortoiseGit\\History\\RemoteBranch\\"))+WorkingDir, _T("branch"));\r
        m_BranchRemote.SetCurSel(0);\r
 \r
        //m_BranchRemote.SetWindowTextW(m_BranchSource.GetString());\r
index b833dd0..6ae5349 100644 (file)
@@ -72,7 +72,7 @@ void CRebaseDlg::AddRebaseAnchor()
        AddAnchor(IDC_REBASE_COMBOXEX_BRANCH,TOP_LEFT);\r
        AddAnchor(IDC_REBASE_STATIC_UPSTREAM,TOP_LEFT);\r
        AddAnchor(IDC_REBASE_STATIC_BRANCH,TOP_LEFT);\r
-       \r
+       this->AddOthersToAnchor();\r
 }\r
 \r
 BOOL CRebaseDlg::OnInitDialog()\r
index ebe5ab9..edd0eb8 100644 (file)
Binary files a/src/TortoiseProc/resource.h and b/src/TortoiseProc/resource.h differ