From b40bf35c764d09ff7d745df9eeddd9f3b419e204 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 23 Mar 2007 16:20:30 +0000 Subject: [PATCH] don't use TPM_RECURSE under NT4, it results in TrackPopupMenu() not showing the menu at all (bug 1663216) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45038 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 10 ++++++++++ src/msw/window.cpp | 20 ++++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index fd3c6af7ff..7b346adec9 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -107,6 +107,16 @@ wxMSW: - Return the restored window size from GetSize() when window is minimized. +2.8.4 +----- + +wxMSW: + +- Corrected wxStaticBox label appearance when its foreground colour was set: + it didn't respect font size nor background colour then (Juan Antonio Ortega) +- Fixed popup menus under Windows NT 4 + + 2.8.3 ----- diff --git a/src/msw/window.cpp b/src/msw/window.cpp index e04a5e4b60..b66358af13 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -2043,10 +2043,22 @@ bool wxWindowMSW::DoPopupMenu(wxMenu *menu, int x, int y) ::ClientToScreen(hWnd, &point); wxCurrentPopupMenu = menu; #if defined(__WXWINCE__) - UINT flags = 0; -#else - UINT flags = TPM_RIGHTBUTTON | TPM_RECURSE; -#endif + static const UINT flags = 0; +#else // !__WXWINCE__ + UINT flags = TPM_RIGHTBUTTON; + // NT4 doesn't support TPM_RECURSE and simply doesn't show the menu at all + // when it's use, I'm not sure about Win95/98 but prefer to err on the safe + // side and not to use it there neither -- modify the test if it does work + // on these systems + if ( wxGetWinVersion() >= wxWinVersion_5 ) + { + // using TPM_RECURSE allows us to show a popup menu while another menu + // is opened which can be useful and is supported by the other + // platforms, so allow it under Windows too + flags |= TPM_RECURSE; + } +#endif // __WXWINCE__/!__WXWINCE__ + ::TrackPopupMenu(hMenu, flags, point.x, point.y, 0, hWnd, NULL); // we need to do it right now as otherwise the events are never going to be -- 2.45.2