From 79ce62a7c3a5e440efa2f0e02aed313ee4ae44f8 Mon Sep 17 00:00:00 2001 From: Gregor Brunmar Date: Wed, 3 Oct 2007 20:47:59 +0000 Subject: [PATCH] Fixed bug 2555 (Calendar window does not close automaticaly) See issue #2555 for more details. svn path=/trunk/; revision=29386 --- reactos/dll/win32/comctl32/comctl32_ros.diff | 28 ++++++++++++++++++++ reactos/dll/win32/comctl32/monthcal.c | 7 ++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/reactos/dll/win32/comctl32/comctl32_ros.diff b/reactos/dll/win32/comctl32/comctl32_ros.diff index cd77929ecba..6dc3df1202a 100644 --- a/reactos/dll/win32/comctl32/comctl32_ros.diff +++ b/reactos/dll/win32/comctl32/comctl32_ros.diff @@ -195,3 +195,31 @@ Index: treeview.c return 0; } +Index: monthcal.c +=================================================================== +--- monthcal.c (revision 29360) ++++ monthcal.c (working copy) +@@ -1703,11 +1703,12 @@ + + + static LRESULT +-MONTHCAL_KillFocus(const MONTHCAL_INFO *infoPtr) ++MONTHCAL_KillFocus(const MONTHCAL_INFO *infoPtr, HWND hFocusWnd) + { + TRACE("\n"); + +- InvalidateRect(infoPtr->hwndSelf, NULL, TRUE); ++ if (infoPtr->hwndNotify != hFocusWnd) ++ ShowWindow(infoPtr->hwndSelf, SW_HIDE); + + return 0; + } +@@ -2015,7 +2016,7 @@ + return DLGC_WANTARROWS | DLGC_WANTCHARS; + + case WM_KILLFOCUS: +- return MONTHCAL_KillFocus(infoPtr); ++ return MONTHCAL_KillFocus(infoPtr, wParam); + + case WM_RBUTTONDOWN: + return MONTHCAL_RButtonDown(infoPtr, lParam); diff --git a/reactos/dll/win32/comctl32/monthcal.c b/reactos/dll/win32/comctl32/monthcal.c index 83da9ad8276..642de23140f 100644 --- a/reactos/dll/win32/comctl32/monthcal.c +++ b/reactos/dll/win32/comctl32/monthcal.c @@ -1703,11 +1703,12 @@ MONTHCAL_Paint(MONTHCAL_INFO *infoPtr, WPARAM wParam) static LRESULT -MONTHCAL_KillFocus(const MONTHCAL_INFO *infoPtr) +MONTHCAL_KillFocus(const MONTHCAL_INFO *infoPtr, HWND hFocusWnd) { TRACE("\n"); - InvalidateRect(infoPtr->hwndSelf, NULL, TRUE); + if (infoPtr->hwndNotify != hFocusWnd) + ShowWindow(infoPtr->hwndSelf, SW_HIDE); return 0; } @@ -2015,7 +2016,7 @@ MONTHCAL_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) return DLGC_WANTARROWS | DLGC_WANTCHARS; case WM_KILLFOCUS: - return MONTHCAL_KillFocus(infoPtr); + return MONTHCAL_KillFocus(infoPtr, wParam); case WM_RBUTTONDOWN: return MONTHCAL_RButtonDown(infoPtr, lParam);