Merge pull request #7468 from electron/focus-window-when-menu-is-clicked
Focus window when menu button is pressed
This commit is contained in:
commit
cf050ff9e2
4 changed files with 7 additions and 14 deletions
|
@ -63,8 +63,7 @@ void MenuBar::SetMenu(AtomMenuModel* model) {
|
||||||
RemoveAllChildViews(true);
|
RemoveAllChildViews(true);
|
||||||
|
|
||||||
for (int i = 0; i < model->GetItemCount(); ++i) {
|
for (int i = 0; i < model->GetItemCount(); ++i) {
|
||||||
SubmenuButton* button = new SubmenuButton(this,
|
SubmenuButton* button = new SubmenuButton(model->GetLabelAt(i),
|
||||||
model->GetLabelAt(i),
|
|
||||||
this,
|
this,
|
||||||
background_color_);
|
background_color_);
|
||||||
button->set_tag(i);
|
button->set_tag(i);
|
||||||
|
@ -134,9 +133,6 @@ const char* MenuBar::GetClassName() const {
|
||||||
return kViewClassName;
|
return kViewClassName;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuBar::ButtonPressed(views::Button* sender, const ui::Event& event) {
|
|
||||||
}
|
|
||||||
|
|
||||||
void MenuBar::OnMenuButtonClicked(views::MenuButton* source,
|
void MenuBar::OnMenuButtonClicked(views::MenuButton* source,
|
||||||
const gfx::Point& point,
|
const gfx::Point& point,
|
||||||
const ui::Event* event) {
|
const ui::Event* event) {
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#define ATOM_BROWSER_UI_VIEWS_MENU_BAR_H_
|
#define ATOM_BROWSER_UI_VIEWS_MENU_BAR_H_
|
||||||
|
|
||||||
#include "atom/browser/ui/atom_menu_model.h"
|
#include "atom/browser/ui/atom_menu_model.h"
|
||||||
#include "ui/views/controls/button/button.h"
|
|
||||||
#include "ui/views/controls/button/menu_button_listener.h"
|
#include "ui/views/controls/button/menu_button_listener.h"
|
||||||
#include "ui/views/view.h"
|
#include "ui/views/view.h"
|
||||||
|
|
||||||
|
@ -19,7 +18,6 @@ namespace atom {
|
||||||
class MenuDelegate;
|
class MenuDelegate;
|
||||||
|
|
||||||
class MenuBar : public views::View,
|
class MenuBar : public views::View,
|
||||||
public views::ButtonListener,
|
|
||||||
public views::MenuButtonListener {
|
public views::MenuButtonListener {
|
||||||
public:
|
public:
|
||||||
MenuBar();
|
MenuBar();
|
||||||
|
@ -50,9 +48,6 @@ class MenuBar : public views::View,
|
||||||
// views::View:
|
// views::View:
|
||||||
const char* GetClassName() const override;
|
const char* GetClassName() const override;
|
||||||
|
|
||||||
// views::ButtonListener:
|
|
||||||
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
|
|
||||||
|
|
||||||
// views::MenuButtonListener:
|
// views::MenuButtonListener:
|
||||||
void OnMenuButtonClicked(views::MenuButton* source,
|
void OnMenuButtonClicked(views::MenuButton* source,
|
||||||
const gfx::Point& point,
|
const gfx::Point& point,
|
||||||
|
|
|
@ -26,8 +26,7 @@ base::string16 FilterAccelerator(const base::string16& label) {
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
SubmenuButton::SubmenuButton(views::ButtonListener* listener,
|
SubmenuButton::SubmenuButton(const base::string16& title,
|
||||||
const base::string16& title,
|
|
||||||
views::MenuButtonListener* menu_button_listener,
|
views::MenuButtonListener* menu_button_listener,
|
||||||
const SkColor& background_color)
|
const SkColor& background_color)
|
||||||
: views::MenuButton(FilterAccelerator(title),
|
: views::MenuButton(FilterAccelerator(title),
|
||||||
|
@ -53,6 +52,10 @@ SubmenuButton::SubmenuButton(views::ButtonListener* listener,
|
||||||
SetHasInkDrop(true);
|
SetHasInkDrop(true);
|
||||||
set_ink_drop_base_color(
|
set_ink_drop_base_color(
|
||||||
color_utils::BlendTowardOppositeLuma(background_color_, 0x61));
|
color_utils::BlendTowardOppositeLuma(background_color_, 0x61));
|
||||||
|
|
||||||
|
set_request_focus_on_press(true);
|
||||||
|
SetFocusForPlatform();
|
||||||
|
SetFocusPainter(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
SubmenuButton::~SubmenuButton() {
|
SubmenuButton::~SubmenuButton() {
|
||||||
|
|
|
@ -13,8 +13,7 @@ namespace atom {
|
||||||
// Special button that used by menu bar to show submenus.
|
// Special button that used by menu bar to show submenus.
|
||||||
class SubmenuButton : public views::MenuButton {
|
class SubmenuButton : public views::MenuButton {
|
||||||
public:
|
public:
|
||||||
SubmenuButton(views::ButtonListener* listener,
|
SubmenuButton(const base::string16& title,
|
||||||
const base::string16& title,
|
|
||||||
views::MenuButtonListener* menu_button_listener,
|
views::MenuButtonListener* menu_button_listener,
|
||||||
const SkColor& background_color);
|
const SkColor& background_color);
|
||||||
virtual ~SubmenuButton();
|
virtual ~SubmenuButton();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue