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 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;