OSDN Git Service

Issue 66 in tortoisegit: Some log lines lose color or disappear after you click on...
authorFrank Li <lznuaa@gmail.com>
Thu, 16 Apr 2009 04:33:17 +0000 (12:33 +0800)
committerFrank Li <lznuaa@gmail.com>
Thu, 16 Apr 2009 04:33:17 +0000 (12:33 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/TortoiseProc/GitLogListBase.cpp
src/TortoiseProc/LogDlg.cpp

index 96b1a17..453ed33 100644 (file)
@@ -57,6 +57,7 @@ CGitLogListBase::CGitLogListBase():CHintListCtrl()
        , m_bStrictStopped(false)\r
        , m_pStoreSelection(NULL)\r
        , m_nSelectedFilter(LOGFILTER_ALL)\r
+       , m_bVista(false)\r
 {\r
        // use the default GUI font, create a copy of it and\r
        // change the copy to BOLD (leave the rest of the font\r
@@ -119,6 +120,13 @@ CGitLogListBase::CGitLogListBase():CHintListCtrl()
        m_ContextMenuMask &= ~GetContextMenuBit(ID_REBASE_EDIT);\r
        m_ContextMenuMask &= ~GetContextMenuBit(ID_REBASE_SKIP);\r
 \r
+       OSVERSIONINFOEX inf;\r
+       SecureZeroMemory(&inf, sizeof(OSVERSIONINFOEX));\r
+       inf.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);\r
+       GetVersionEx((OSVERSIONINFO *)&inf);\r
+       WORD fullver = MAKEWORD(inf.dwMinorVersion, inf.dwMajorVersion);\r
+       m_bVista = (fullver >= 0x0600);\r
+\r
        m_ColumnRegKey=_T("log");\r
 }\r
 \r
@@ -309,7 +317,9 @@ void CGitLogListBase::FillBackGround(HDC hdc, int Index,CRect &rect)
        GetItem(&rItem);\r
 \r
        GitRev* pLogEntry = (GitRev*)m_arShownList.GetAt(Index);\r
+       HBRUSH brush;\r
 \r
+       \r
        if (m_Theme.IsAppThemed() && m_bVista)\r
        {\r
                m_Theme.Open(m_hWnd, L"Explorer");\r
@@ -323,34 +333,27 @@ void CGitLogListBase::FillBackGround(HDC hdc, int Index,CRect &rect)
                }\r
                else\r
                {\r
-#if 0\r
-                       if (pLogEntry->bCopiedSelf)\r
-                       {\r
-                               // unfortunately, the pLVCD->nmcd.uItemState does not contain valid\r
-                               // information at this drawing stage. But we can check the whether the\r
-                               // previous stage changed the background color of the item\r
-                               if (pLVCD->clrTextBk == GetSysColor(COLOR_MENU))\r
-                               {\r
-                                       HBRUSH brush;\r
-                                       brush = ::CreateSolidBrush(::GetSysColor(COLOR_MENU));\r
-                                       if (brush)\r
-                                       {\r
-                                               ::FillRect(pLVCD->nmcd.hdc, &rect, brush);\r
-                                               ::DeleteObject(brush);\r
-                                       }\r
-                               }\r
-                       }\r
-#endif\r
+                       if(pLogEntry->m_Action&CTGitPath::LOGACTIONS_REBASE_SQUASH)\r
+                               brush = ::CreateSolidBrush(RGB(156,156,156));\r
+                       else if(pLogEntry->m_Action&CTGitPath::LOGACTIONS_REBASE_EDIT)\r
+                               brush = ::CreateSolidBrush(RGB(200,200,128));\r
+\r
+                       if (brush == NULL)\r
+                               return;\r
+\r
+                       ::FillRect(hdc, &rect, brush);\r
+                       ::DeleteObject(brush);\r
+\r
                }\r
 \r
                if (m_Theme.IsBackgroundPartiallyTransparent(LVP_LISTDETAIL, state))\r
                        m_Theme.DrawParentBackground(m_hWnd, hdc, &rect);\r
-\r
+               else\r
                        m_Theme.DrawBackground(hdc, LVP_LISTDETAIL, state, &rect, NULL);\r
        }\r
        else\r
        {\r
-               HBRUSH brush;\r
+               \r
                if (rItem.state & LVIS_SELECTED)\r
                {\r
                        if (::GetFocus() == m_hWnd)\r
index bb49da2..7be01d9 100644 (file)
@@ -77,7 +77,6 @@ CLogDlg::CLogDlg(CWnd* pParent /*=NULL*/)
        , m_maxChild(0)\r
        , m_bIncludeMerges(FALSE)\r
        , m_hAccel(NULL)\r
-       , m_bVista(false)\r
 {\r
        m_bFilterWithRegex = !!CRegDWORD(_T("Software\\TortoiseGit\\UseRegexFilter"), TRUE);\r
        m_bAllBranch=FALSE;\r
@@ -171,13 +170,7 @@ BOOL CLogDlg::OnInitDialog()
 \r
        m_hAccel = LoadAccelerators(AfxGetResourceHandle(),MAKEINTRESOURCE(IDR_ACC_LOGDLG));\r
 \r
-       OSVERSIONINFOEX inf;\r
-       SecureZeroMemory(&inf, sizeof(OSVERSIONINFOEX));\r
-       inf.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);\r
-       GetVersionEx((OSVERSIONINFO *)&inf);\r
-       WORD fullver = MAKEWORD(inf.dwMinorVersion, inf.dwMajorVersion);\r
-       m_bVista = (fullver >= 0x0600);\r
-\r
+       \r
        // use the state of the "stop on copy/rename" option from the last time\r
        UpdateData(FALSE);\r
        \r