From 737ce1c03c575393ea66268e91dfe4e5e671b5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 10 Jan 2008 21:26:55 +0000 Subject: [PATCH] * The keyboard target was always the first menu in the window list - no matter if that was hidden or not. This fixes the bug described by Stefano in r23343. * Therefore, I enabled cached menu windows again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23356 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/Menu.cpp | 2 +- src/servers/app/Desktop.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp index 15245cc32e..0199128447 100644 --- a/src/kits/interface/Menu.cpp +++ b/src/kits/interface/Menu.cpp @@ -34,7 +34,7 @@ #include "utf8_functions.h" -#define USE_CACHED_MENUWINDOW 0 +#define USE_CACHED_MENUWINDOW 1 using std::nothrow; using BPrivate::BMenuWindow; diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index c84973deb0..32aae5fd0e 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -1172,6 +1172,9 @@ EventTarget* Desktop::KeyboardEventTarget() { WindowLayer* window = _CurrentWindows().LastWindow(); + while (window != NULL && window->IsHidden()) { + window = window->PreviousWindow(fCurrentWorkspace); + } if (window != NULL && window->Feel() == kMenuWindowFeel) return &window->EventTarget();