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();