cef/patch/patches/views_1749.patch

80 lines
3.0 KiB
Diff

diff --git controls/button/menu_button.cc controls/button/menu_button.cc
index b891849..a41dc85 100644
--- controls/button/menu_button.cc
+++ controls/button/menu_button.cc
@@ -198,7 +198,7 @@ void MenuButton::OnPaint(gfx::Canvas* canvas) {
gfx::Size MenuButton::GetPreferredSize() const {
gfx::Size prefsize = LabelButton::GetPreferredSize();
if (show_menu_marker_) {
- prefsize.Enlarge(menu_marker_->width() + kMenuMarkerPaddingLeft +
+ prefsize.Enlarge(menu_marker_->width() + GetMarkerPaddingLeft() +
kMenuMarkerPaddingRight,
0);
}
@@ -327,7 +327,7 @@ gfx::Rect MenuButton::GetChildAreaBounds() {
gfx::Size s = size();
if (show_menu_marker_) {
- s.set_width(s.width() - menu_marker_->width() - kMenuMarkerPaddingLeft -
+ s.set_width(s.width() - menu_marker_->width() - GetMarkerPaddingLeft() -
kMenuMarkerPaddingRight);
}
@@ -415,4 +415,10 @@ int MenuButton::GetMaximumScreenXCoordinate() {
return monitor_bounds.right() - 1;
}
+int MenuButton::GetMarkerPaddingLeft() const {
+ if (!image()->GetImage().isNull() || !label()->text().empty())
+ return kMenuMarkerPaddingLeft;
+ return kMenuMarkerPaddingRight;
+}
+
} // namespace views
diff --git controls/button/menu_button.h controls/button/menu_button.h
index 696a941..ce5abcd 100644
--- controls/button/menu_button.h
+++ controls/button/menu_button.h
@@ -54,6 +54,9 @@ class VIEWS_EXPORT MenuButton : public LabelButton {
~MenuButton() override;
bool show_menu_marker() const { return show_menu_marker_; }
+ void set_show_menu_marker(bool show_menu_marker) {
+ show_menu_marker_ = show_menu_marker;
+ }
void set_menu_marker(const gfx::ImageSkia* menu_marker) {
menu_marker_ = menu_marker;
}
@@ -116,6 +119,9 @@ class VIEWS_EXPORT MenuButton : public LabelButton {
// use this to make sure a menu is never shown off screen.
int GetMaximumScreenXCoordinate();
+ // Only apply left padding if there's an image or label.
+ int GetMarkerPaddingLeft() const;
+
// We use a time object in order to keep track of when the menu was closed.
// The time is used for simulating menu behavior for the menu button; that
// is, if the menu is shown and the button is pressed, we need to close the
diff --git view.h view.h
index 6b45c63..7e52409 100644
--- view.h
+++ view.h
@@ -18,6 +18,7 @@
#include "base/i18n/rtl.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/supports_user_data.h"
#include "build/build_config.h"
#include "ui/accessibility/ax_enums.h"
#include "ui/base/accelerators/accelerator.h"
@@ -112,7 +113,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
public ui::LayerOwner,
public ui::AcceleratorTarget,
public ui::EventTarget,
- public ui::EventHandler {
+ public ui::EventHandler,
+ public base::SupportsUserData {
public:
typedef std::vector<View*> Views;