diff options
author | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-12 21:54:44 +0000 |
---|---|---|
committer | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-12 21:54:44 +0000 |
commit | 8c30313c62097a718190a9df00e681a75e47d42f (patch) | |
tree | 12c57430411f0859746190ab50a5b1ec42c1f469 /chrome/views/menu_button.cc | |
parent | 6840158fdaef4b2ece5ee8248907454fb4b7a84f (diff) | |
download | chromium_src-8c30313c62097a718190a9df00e681a75e47d42f.zip chromium_src-8c30313c62097a718190a9df00e681a75e47d42f.tar.gz chromium_src-8c30313c62097a718190a9df00e681a75e47d42f.tar.bz2 |
Fixes bug in showing context menu for buttons. In particular because
we weren't resetting state before showing the context menu it was
possible for the button to stay in a HOT state even though it isn't.
BUG=2620
TEST=see bug
Review URL: http://codereview.chromium.org/10835
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5300 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/views/menu_button.cc')
-rw-r--r-- | chrome/views/menu_button.cc | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/chrome/views/menu_button.cc b/chrome/views/menu_button.cc index a723e87..59b0aa2 100644 --- a/chrome/views/menu_button.cc +++ b/chrome/views/menu_button.cc @@ -170,7 +170,6 @@ bool MenuButton::Activate() { // or selected an item) and we will inevitably refresh the hot state // in the event the mouse _is_ over the view. SetState(BS_NORMAL); - SchedulePaint(); // We must return false here so that the RootView does not get stuck // sending all mouse pressed events to us instead of the appropriate @@ -217,6 +216,17 @@ bool MenuButton::OnKeyReleased(const KeyEvent& e) { return true; } +// The reason we override View::OnMouseExited is because we get this event when +// we display the menu. If we don't override this method then +// BaseButton::OnMouseExited will get the event and will set the button's state +// to BS_NORMAL instead of keeping the state BM_PUSHED. This, in turn, will +// cause the button to appear depressed while the menu is displayed. +void MenuButton::OnMouseExited(const MouseEvent& event) { + if ((state_ != BS_DISABLED) && (!menu_visible_) && (!InDrag())) { + SetState(BS_NORMAL); + } +} + //////////////////////////////////////////////////////////////////////////////// // // MenuButton - accessibility @@ -245,15 +255,4 @@ bool MenuButton::GetAccessibleState(VARIANT* state) { return true; } -// The reason we override View::OnMouseExited is because we get this event when -// we display the menu. If we don't override this method then -// BaseButton::OnMouseExited will get the event and will set the button's state -// to BS_NORMAL instead of keeping the state BM_PUSHED. This, in turn, will -// cause the button to appear depressed while the menu is displayed. -void MenuButton::OnMouseExited(const MouseEvent& event) { - if ((state_ != BS_DISABLED) && (!menu_visible_) && (!InDrag())) { - SetState(BS_NORMAL); - } -} - } // namespace views |