From 3fee5d0e1cdd49199c5101e7578f791cd681c21d Mon Sep 17 00:00:00 2001 From: Brock Mammen Date: Tue, 8 Oct 2019 18:18:36 -0500 Subject: [PATCH] [EXPLORER] Fix right-click menu for taskbar clock (#1944) CORE-16397 --- base/shell/explorer/trayclock.cpp | 9 ++++----- base/shell/explorer/trayntfy.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/base/shell/explorer/trayclock.cpp b/base/shell/explorer/trayclock.cpp index f21ba2c1106..3d66edcd28e 100644 --- a/base/shell/explorer/trayclock.cpp +++ b/base/shell/explorer/trayclock.cpp @@ -92,7 +92,7 @@ private: LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnGetMinimumSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); - LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); + LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnSetFont(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); @@ -132,7 +132,7 @@ public: MESSAGE_HANDLER(WM_PRINTCLIENT, OnPaint) MESSAGE_HANDLER(WM_THEMECHANGED, OnThemeChanged) MESSAGE_HANDLER(WM_TIMER, OnTimer) - MESSAGE_HANDLER(WM_NCHITTEST, OnNcHitTest) + MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu) MESSAGE_HANDLER(WM_SETFONT, OnSetFont) MESSAGE_HANDLER(TNWM_GETMINIMUMSIZE, OnGetMinimumSize) MESSAGE_HANDLER(TWM_SETTINGSCHANGED, OnTaskbarSettingsChanged) @@ -646,10 +646,9 @@ LRESULT CTrayClockWnd::OnGetMinimumSize(UINT uMsg, WPARAM wParam, LPARAM lParam, return (LRESULT) GetMinimumSize((BOOL) wParam, (PSIZE) lParam) != 0; } -LRESULT CTrayClockWnd::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) +LRESULT CTrayClockWnd::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { - // HTCLIENT is returned to receive WM_MOUSEMOVE messages for the tooltip - return HTCLIENT; + return GetParent().SendMessage(uMsg, wParam, lParam); } LRESULT CTrayClockWnd::OnSetFont(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) diff --git a/base/shell/explorer/trayntfy.cpp b/base/shell/explorer/trayntfy.cpp index 63dc2362634..9a279240f3c 100644 --- a/base/shell/explorer/trayntfy.cpp +++ b/base/shell/explorer/trayntfy.cpp @@ -298,7 +298,11 @@ public: LRESULT OnCtxMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { bHandled = TRUE; - return 0; + + if (reinterpret_cast(wParam) == m_hwndClock) + return GetParent().SendMessage(uMsg, wParam, lParam); + else + return 0; } LRESULT OnClockMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) @@ -345,7 +349,7 @@ public: MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground) MESSAGE_HANDLER(WM_SIZE, OnSize) MESSAGE_HANDLER(WM_NCHITTEST, OnNcHitTest) - MESSAGE_HANDLER(WM_CONTEXTMENU, OnCtxMenu) // FIXME: This handler is not necessary in Windows + MESSAGE_HANDLER(WM_CONTEXTMENU, OnCtxMenu) MESSAGE_HANDLER(WM_NCLBUTTONDBLCLK, OnClockMessage) MESSAGE_HANDLER(TWM_SETTINGSCHANGED, OnClockMessage) MESSAGE_HANDLER(WM_SETFONT, OnClockMessage) -- 2.17.1