cef/patch/patches/views_1749.patch

124 lines
5.1 KiB
Diff

diff --git ui/views/animation/ink_drop_host_view.h ui/views/animation/ink_drop_host_view.h
index 15199209..a45b1ac 100644
--- ui/views/animation/ink_drop_host_view.h
+++ ui/views/animation/ink_drop_host_view.h
@@ -122,6 +122,8 @@ class VIEWS_EXPORT InkDropHostView : public View, public InkDropHost {
// of CreateInkDrop() delegates to this function.
std::unique_ptr<InkDropImpl> CreateDefaultInkDropImpl();
+ InkDropMode ink_drop_mode() const { return ink_drop_mode_; }
+
private:
class InkDropGestureHandler;
friend class InkDropGestureHandler;
diff --git ui/views/controls/button/label_button.h ui/views/controls/button/label_button.h
index 6dade72..7dd110d 100644
--- ui/views/controls/button/label_button.h
+++ ui/views/controls/button/label_button.h
@@ -116,9 +116,11 @@ class VIEWS_EXPORT LabelButton : public CustomButton,
// these bounds if they need room to do manual painting.
virtual gfx::Rect GetChildAreaBounds();
+ public:
// Sets the font list used by this button.
virtual void SetFontList(const gfx::FontList& font_list);
+ protected:
// View:
void OnPaint(gfx::Canvas* canvas) override;
void OnFocus() override;
diff --git ui/views/controls/button/menu_button.cc ui/views/controls/button/menu_button.cc
index 173194b..8bb4f6e 100644
--- ui/views/controls/button/menu_button.cc
+++ ui/views/controls/button/menu_button.cc
@@ -193,7 +193,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);
}
@@ -323,7 +323,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);
}
@@ -412,4 +412,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 ui/views/controls/button/menu_button.h ui/views/controls/button/menu_button.h
index b0ddf331..4d573ed 100644
--- ui/views/controls/button/menu_button.h
+++ ui/views/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 ui/views/test/ui_controls_factory_desktop_aurax11.cc ui/views/test/ui_controls_factory_desktop_aurax11.cc
index 117a268..6065c73 100644
--- ui/views/test/ui_controls_factory_desktop_aurax11.cc
+++ ui/views/test/ui_controls_factory_desktop_aurax11.cc
@@ -146,10 +146,6 @@ class UIControlsDesktopX11 : public UIControlsAura {
aura::test::QueryLatestMousePositionRequestInHost(host);
host->ConvertPixelsToDIP(&root_current_location);
- auto* screen = views::test::TestDesktopScreenX11::GetInstance();
- DCHECK_EQ(screen, display::Screen::GetScreen());
- screen->set_cursor_screen_point(gfx::Point(screen_x, screen_y));
-
if (root_location != root_current_location && button_down_mask == 0) {
// Move the cursor because EnterNotify/LeaveNotify are generated with the
// current mouse position as a result of XGrabPointer()
diff --git ui/views/view.h ui/views/view.h
index bfa107c..01df3f4cd 100644
--- ui/views/view.h
+++ ui/views/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"
@@ -115,7 +116,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:
using Views = std::vector<View*>;