diff --git a/build/win32/platform_specific_code/juce_win32_Windowing.cpp b/build/win32/platform_specific_code/juce_win32_Windowing.cpp index 601aa04ed3..8a69b94814 100644 --- a/build/win32/platform_specific_code/juce_win32_Windowing.cpp +++ b/build/win32/platform_specific_code/juce_win32_Windowing.cpp @@ -443,6 +443,9 @@ static void updateKeyModifiers() throw() if ((GetKeyState (VK_MENU) & 0x8000) != 0) currentModifiers |= ModifierKeys::altModifier; + + if ((GetKeyState (VK_RMENU) & 0x8000) != 0) + currentModifiers &= ~(ModifierKeys::ctrlModifier | ModifierKeys::altModifier); } void ModifierKeys::updateCurrentModifiers() throw() diff --git a/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.cpp b/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.cpp index 7d184c6060..cfc8eddd99 100644 --- a/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.cpp +++ b/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.cpp @@ -1121,7 +1121,7 @@ const Font LookAndFeel::getComboBoxFont (ComboBox& box) return f; } -Label* LookAndFeel::createComboBoxTextBox (ComboBox& box) +Label* LookAndFeel::createComboBoxTextBox (ComboBox&) { return new Label (String::empty, String::empty); } diff --git a/src/juce_appframework/gui/components/menus/juce_PopupMenu.cpp b/src/juce_appframework/gui/components/menus/juce_PopupMenu.cpp index ee9ed392cd..f57a4251cf 100644 --- a/src/juce_appframework/gui/components/menus/juce_PopupMenu.cpp +++ b/src/juce_appframework/gui/components/menus/juce_PopupMenu.cpp @@ -1761,6 +1761,26 @@ bool PopupMenu::containsCommandItem (const int commandID) const throw() return false; } +bool PopupMenu::containsAnyActiveItems() const throw() +{ + for (int i = items.size(); --i >= 0;) + { + const MenuItemInfo* const mi = (const MenuItemInfo*) items.getUnchecked (i); + + if (mi->subMenu != 0) + { + if (mi->subMenu->containsAnyActiveItems()) + return true; + } + else if (mi->active) + { + return true; + } + } + + return false; +} + void PopupMenu::setLookAndFeel (LookAndFeel* const newLookAndFeel) throw() { lookAndFeel = newLookAndFeel; diff --git a/src/juce_appframework/gui/components/menus/juce_PopupMenu.h b/src/juce_appframework/gui/components/menus/juce_PopupMenu.h index 05964c38c2..3de7982b0a 100644 --- a/src/juce_appframework/gui/components/menus/juce_PopupMenu.h +++ b/src/juce_appframework/gui/components/menus/juce_PopupMenu.h @@ -217,6 +217,8 @@ public: /** Returns true if the menu contains a command item that triggers the given command. */ bool containsCommandItem (const int commandID) const throw(); + /** Returns true if the menu contains any items that can be used. */ + bool containsAnyActiveItems() const throw(); //============================================================================== /** Displays the menu and waits for the user to pick something.