Commit 584b4758 authored by Mitsuru Oshima's avatar Mitsuru Oshima Committed by Chromium LUCI CQ

Refactor: move data_exchange_delegate from display to seat

Bug: None
Change-Id: I30d46974760f98489d3a0fb88c4f2972f9731020
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2581359
Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: default avatarAya Elsayed <ayaelattar@chromium.org>
Reviewed-by: default avatarJoel Hockey <joelhockey@chromium.org>
Auto-Submit: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#835268}
parent fddfedf2
...@@ -39,13 +39,8 @@ ui::DragDropTypes::DragOperation DndActionToDragOperation( ...@@ -39,13 +39,8 @@ ui::DragDropTypes::DragOperation DndActionToDragOperation(
} // namespace } // namespace
DataDevice::DataDevice(DataDeviceDelegate* delegate, DataDevice::DataDevice(DataDeviceDelegate* delegate, Seat* seat)
Seat* seat, : delegate_(delegate), seat_(seat), drop_succeeded_(false) {
DataExchangeDelegate* data_exchange_delegate)
: delegate_(delegate),
seat_(seat),
data_exchange_delegate_(data_exchange_delegate),
drop_succeeded_(false) {
WMHelper::GetInstance()->AddDragDropObserver(this); WMHelper::GetInstance()->AddDragDropObserver(this);
ui::ClipboardMonitor::GetInstance()->AddObserver(this); ui::ClipboardMonitor::GetInstance()->AddObserver(this);
...@@ -67,7 +62,7 @@ void DataDevice::StartDrag(DataSource* source, ...@@ -67,7 +62,7 @@ void DataDevice::StartDrag(DataSource* source,
Surface* origin, Surface* origin,
Surface* icon, Surface* icon,
ui::mojom::DragEventSource event_source) { ui::mojom::DragEventSource event_source) {
seat_->StartDrag(data_exchange_delegate_, source, origin, icon, event_source); seat_->StartDrag(source, origin, icon, event_source);
} }
void DataDevice::SetSelection(DataSource* source) { void DataDevice::SetSelection(DataSource* source) {
...@@ -94,8 +89,8 @@ void DataDevice::OnDragEntered(const ui::DropTargetEvent& event) { ...@@ -94,8 +89,8 @@ void DataDevice::OnDragEntered(const ui::DropTargetEvent& event) {
data_offer_ = data_offer_ =
std::make_unique<ScopedDataOffer>(delegate_->OnDataOffer(), this); std::make_unique<ScopedDataOffer>(delegate_->OnDataOffer(), this);
data_offer_->get()->SetDropData(data_exchange_delegate_, surface->window(), data_offer_->get()->SetDropData(seat_->data_exchange_delegate(),
event.data()); surface->window(), event.data());
data_offer_->get()->SetSourceActions(dnd_actions); data_offer_->get()->SetSourceActions(dnd_actions);
data_offer_->get()->SetActions(base::flat_set<DndAction>(), DndAction::kAsk); data_offer_->get()->SetActions(base::flat_set<DndAction>(), DndAction::kAsk);
delegate_->OnEnter(surface, event.location_f(), *data_offer_->get()); delegate_->OnEnter(surface, event.location_f(), *data_offer_->get());
...@@ -204,7 +199,7 @@ Surface* DataDevice::GetEffectiveTargetForEvent( ...@@ -204,7 +199,7 @@ Surface* DataDevice::GetEffectiveTargetForEvent(
void DataDevice::SetSelectionToCurrentClipboardData() { void DataDevice::SetSelectionToCurrentClipboardData() {
DataOffer* data_offer = delegate_->OnDataOffer(); DataOffer* data_offer = delegate_->OnDataOffer();
data_offer->SetClipboardData(data_exchange_delegate_, data_offer->SetClipboardData(seat_->data_exchange_delegate(),
*ui::Clipboard::GetForCurrentThread()); *ui::Clipboard::GetForCurrentThread());
delegate_->OnSelection(*data_offer); delegate_->OnSelection(*data_offer);
} }
......
...@@ -25,7 +25,6 @@ class DataDeviceDelegate; ...@@ -25,7 +25,6 @@ class DataDeviceDelegate;
class DataOffer; class DataOffer;
class ScopedDataOffer; class ScopedDataOffer;
class DataSource; class DataSource;
class DataExchangeDelegate;
class Seat; class Seat;
class ScopedSurface; class ScopedSurface;
...@@ -38,9 +37,7 @@ class DataDevice : public WMHelper::DragDropObserver, ...@@ -38,9 +37,7 @@ class DataDevice : public WMHelper::DragDropObserver,
public SurfaceObserver, public SurfaceObserver,
public SeatObserver { public SeatObserver {
public: public:
explicit DataDevice(DataDeviceDelegate* delegate, DataDevice(DataDeviceDelegate* delegate, Seat* seat);
Seat* seat,
DataExchangeDelegate* data_exchange_delegate);
~DataDevice() override; ~DataDevice() override;
// Starts drag-and-drop operation. // Starts drag-and-drop operation.
...@@ -85,7 +82,6 @@ class DataDevice : public WMHelper::DragDropObserver, ...@@ -85,7 +82,6 @@ class DataDevice : public WMHelper::DragDropObserver,
DataDeviceDelegate* const delegate_; DataDeviceDelegate* const delegate_;
Seat* const seat_; Seat* const seat_;
DataExchangeDelegate* const data_exchange_delegate_;
std::unique_ptr<ScopedDataOffer> data_offer_; std::unique_ptr<ScopedDataOffer> data_offer_;
std::unique_ptr<ScopedSurface> focused_surface_; std::unique_ptr<ScopedSurface> focused_surface_;
......
...@@ -110,7 +110,7 @@ class TestDataDeviceDelegate : public DataDeviceDelegate { ...@@ -110,7 +110,7 @@ class TestDataDeviceDelegate : public DataDeviceDelegate {
class TestSeat : public Seat { class TestSeat : public Seat {
public: public:
TestSeat() {} TestSeat() : Seat(std::make_unique<TestDataExchangeDelegate>()) {}
void set_focused_surface(Surface* surface) { surface_ = surface; } void set_focused_surface(Surface* surface) { surface_ = surface; }
// Overriden from Seat: // Overriden from Seat:
...@@ -127,8 +127,7 @@ class DataDeviceTest : public test::ExoTestBase { ...@@ -127,8 +127,7 @@ class DataDeviceTest : public test::ExoTestBase {
void SetUp() override { void SetUp() override {
test::ExoTestBase::SetUp(); test::ExoTestBase::SetUp();
seat_ = std::make_unique<TestSeat>(); seat_ = std::make_unique<TestSeat>();
device_ = std::make_unique<DataDevice>(&delegate_, seat_.get(), device_ = std::make_unique<DataDevice>(&delegate_, seat_.get());
&data_exchange_delegate_);
data_.SetString(base::string16(base::ASCIIToUTF16("Test data"))); data_.SetString(base::string16(base::ASCIIToUTF16("Test data")));
surface_ = std::make_unique<Surface>(); surface_ = std::make_unique<Surface>();
} }
...@@ -143,7 +142,6 @@ class DataDeviceTest : public test::ExoTestBase { ...@@ -143,7 +142,6 @@ class DataDeviceTest : public test::ExoTestBase {
protected: protected:
TestDataDeviceDelegate delegate_; TestDataDeviceDelegate delegate_;
std::unique_ptr<TestSeat> seat_; std::unique_ptr<TestSeat> seat_;
TestDataExchangeDelegate data_exchange_delegate_;
std::unique_ptr<DataDevice> device_; std::unique_ptr<DataDevice> device_;
ui::OSExchangeData data_; ui::OSExchangeData data_;
std::unique_ptr<Surface> surface_; std::unique_ptr<Surface> surface_;
...@@ -299,8 +297,7 @@ TEST_F(DataDeviceTest, ClipboardDeviceCreatedAfterFocus) { ...@@ -299,8 +297,7 @@ TEST_F(DataDeviceTest, ClipboardDeviceCreatedAfterFocus) {
std::vector<DataEvent> events; std::vector<DataEvent> events;
delegate_.PopEvents(&events); delegate_.PopEvents(&events);
device_ = std::make_unique<DataDevice>(&delegate_, seat_.get(), device_ = std::make_unique<DataDevice>(&delegate_, seat_.get());
&data_exchange_delegate_);
ASSERT_EQ(2u, delegate_.PopEvents(&events)); ASSERT_EQ(2u, delegate_.PopEvents(&events));
EXPECT_EQ(DataEvent::kOffer, events[0]); EXPECT_EQ(DataEvent::kOffer, events[0]);
......
...@@ -52,8 +52,9 @@ namespace exo { ...@@ -52,8 +52,9 @@ namespace exo {
// Display, public: // Display, public:
Display::Display() Display::Display()
: seat_(nullptr),
#if defined(USE_OZONE) #if defined(USE_OZONE)
: client_native_pixmap_factory_( client_native_pixmap_factory_(
gfx::CreateClientNativePixmapFactoryDmabuf()) gfx::CreateClientNativePixmapFactoryDmabuf())
#endif #endif
{ {
...@@ -68,7 +69,7 @@ Display::Display( ...@@ -68,7 +69,7 @@ Display::Display(
: notification_surface_manager_(std::move(notification_surface_manager)), : notification_surface_manager_(std::move(notification_surface_manager)),
input_method_surface_manager_(std::move(input_method_surface_manager)), input_method_surface_manager_(std::move(input_method_surface_manager)),
toast_surface_manager_(std::move(toast_surface_manager)), toast_surface_manager_(std::move(toast_surface_manager)),
data_exchange_delegate_(std::move(data_exchange_delegate)), seat_(std::move(data_exchange_delegate)),
client_native_pixmap_factory_( client_native_pixmap_factory_(
gfx::CreateClientNativePixmapFactoryDmabuf()) {} gfx::CreateClientNativePixmapFactoryDmabuf()) {}
#endif // BUILDFLAG(IS_CHROMEOS_ASH) #endif // BUILDFLAG(IS_CHROMEOS_ASH)
...@@ -282,8 +283,7 @@ std::unique_ptr<SubSurface> Display::CreateSubSurface(Surface* surface, ...@@ -282,8 +283,7 @@ std::unique_ptr<SubSurface> Display::CreateSubSurface(Surface* surface,
std::unique_ptr<DataDevice> Display::CreateDataDevice( std::unique_ptr<DataDevice> Display::CreateDataDevice(
DataDeviceDelegate* delegate) { DataDeviceDelegate* delegate) {
return std::make_unique<DataDevice>(delegate, seat(), return std::make_unique<DataDevice>(delegate, seat());
data_exchange_delegate_.get());
} }
} // namespace exo } // namespace exo
...@@ -142,7 +142,6 @@ class Display { ...@@ -142,7 +142,6 @@ class Display {
std::unique_ptr<ToastSurfaceManager> toast_surface_manager_; std::unique_ptr<ToastSurfaceManager> toast_surface_manager_;
#endif // BUILDFLAG(IS_CHROMEOS_ASH) #endif // BUILDFLAG(IS_CHROMEOS_ASH)
std::unique_ptr<DataExchangeDelegate> data_exchange_delegate_;
Seat seat_; Seat seat_;
bool shutdown_ = false; bool shutdown_ = false;
......
...@@ -113,7 +113,8 @@ class ExtendedDragSourceTest : public test::ExoTestBase { ...@@ -113,7 +113,8 @@ class ExtendedDragSourceTest : public test::ExoTestBase {
drag_drop_controller_->set_should_block_during_drag_drop(false); drag_drop_controller_->set_should_block_during_drag_drop(false);
drag_drop_controller_->set_enabled(true); drag_drop_controller_->set_enabled(true);
seat_ = std::make_unique<Seat>(); seat_ =
std::make_unique<Seat>(std::make_unique<TestDataExchangeDelegate>());
data_source_ = std::make_unique<DataSource>(new TestDataSourceDelegate); data_source_ = std::make_unique<DataSource>(new TestDataSourceDelegate);
extended_drag_source_ = std::make_unique<ExtendedDragSource>( extended_drag_source_ = std::make_unique<ExtendedDragSource>(
data_source_.get(), new TestExtendedDragSourceDelegate( data_source_.get(), new TestExtendedDragSourceDelegate(
...@@ -157,11 +158,10 @@ class ExtendedDragSourceTest : public test::ExoTestBase { ...@@ -157,11 +158,10 @@ class ExtendedDragSourceTest : public test::ExoTestBase {
TEST_F(ExtendedDragSourceTest, DestroySource) { TEST_F(ExtendedDragSourceTest, DestroySource) {
Surface origin; Surface origin;
TestDataExchangeDelegate data_exchange_delegate;
// Give |origin| a root window and start DragDropOperation. // Give |origin| a root window and start DragDropOperation.
GetContext()->AddChild(origin.window()); GetContext()->AddChild(origin.window());
seat_->StartDrag(&data_exchange_delegate, data_source_.get(), &origin, seat_->StartDrag(data_source_.get(), &origin,
/*icon=*/nullptr, ui::mojom::DragEventSource::kMouse); /*icon=*/nullptr, ui::mojom::DragEventSource::kMouse);
// Ensure that destroying the data source invalidates its extended_drag_source // Ensure that destroying the data source invalidates its extended_drag_source
......
...@@ -937,13 +937,12 @@ TEST_F(PointerTest, RegisterPointerEventsOnNonModal) { ...@@ -937,13 +937,12 @@ TEST_F(PointerTest, RegisterPointerEventsOnNonModal) {
} }
TEST_F(PointerTest, DragDropAbort) { TEST_F(PointerTest, DragDropAbort) {
Seat seat; Seat seat(std::make_unique<TestDataExchangeDelegate>());
MockPointerDelegate pointer_delegate; MockPointerDelegate pointer_delegate;
std::unique_ptr<Pointer> pointer(new Pointer(&pointer_delegate, &seat)); std::unique_ptr<Pointer> pointer(new Pointer(&pointer_delegate, &seat));
TestDataSourceDelegate data_source_delegate; TestDataSourceDelegate data_source_delegate;
DataSource source(&data_source_delegate); DataSource source(&data_source_delegate);
Surface origin, icon; Surface origin, icon;
TestDataExchangeDelegate data_exchange_delegate;
// Make origin into a real window so the pointer can click it // Make origin into a real window so the pointer can click it
ShellSurface shell_surface(&origin); ShellSurface shell_surface(&origin);
...@@ -959,8 +958,7 @@ TEST_F(PointerTest, DragDropAbort) { ...@@ -959,8 +958,7 @@ TEST_F(PointerTest, DragDropAbort) {
EXPECT_CALL(pointer_delegate, OnPointerEnter(&origin, gfx::PointF(), 0)); EXPECT_CALL(pointer_delegate, OnPointerEnter(&origin, gfx::PointF(), 0));
generator.MoveMouseTo(origin.window()->GetBoundsInScreen().origin()); generator.MoveMouseTo(origin.window()->GetBoundsInScreen().origin());
seat.StartDrag(&data_exchange_delegate, &source, &origin, &icon, seat.StartDrag(&source, &origin, &icon, ui::mojom::DragEventSource::kMouse);
ui::mojom::DragEventSource::kMouse);
EXPECT_TRUE(seat.get_drag_drop_operation_for_testing()); EXPECT_TRUE(seat.get_drag_drop_operation_for_testing());
EXPECT_CALL(pointer_delegate, OnPointerButton).Times(2); EXPECT_CALL(pointer_delegate, OnPointerButton).Times(2);
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/task/post_task.h" #include "base/task/post_task.h"
#include "build/chromeos_buildflags.h" #include "build/chromeos_buildflags.h"
#include "components/exo/data_exchange_delegate.h"
#include "components/exo/data_source.h" #include "components/exo/data_source.h"
#include "components/exo/drag_drop_operation.h" #include "components/exo/drag_drop_operation.h"
#include "components/exo/mime_utils.h" #include "components/exo/mime_utils.h"
...@@ -53,7 +54,9 @@ Surface* GetEffectiveFocus(aura::Window* window) { ...@@ -53,7 +54,9 @@ Surface* GetEffectiveFocus(aura::Window* window) {
} // namespace } // namespace
Seat::Seat() : changing_clipboard_data_to_selection_source_(false) { Seat::Seat(std::unique_ptr<DataExchangeDelegate> delegate)
: changing_clipboard_data_to_selection_source_(false),
data_exchange_delegate_(std::move(delegate)) {
WMHelper::GetInstance()->AddFocusObserver(this); WMHelper::GetInstance()->AddFocusObserver(this);
// Prepend handler as it's critical that we see all events. // Prepend handler as it's critical that we see all events.
WMHelper::GetInstance()->PrependPreTargetHandler(this); WMHelper::GetInstance()->PrependPreTargetHandler(this);
...@@ -75,6 +78,8 @@ Seat::Seat() : changing_clipboard_data_to_selection_source_(false) { ...@@ -75,6 +78,8 @@ Seat::Seat() : changing_clipboard_data_to_selection_source_(false) {
#endif #endif
} }
Seat::Seat() : Seat(nullptr) {}
Seat::~Seat() { Seat::~Seat() {
Shutdown(); Shutdown();
} }
...@@ -106,15 +111,14 @@ Surface* Seat::GetFocusedSurface() { ...@@ -106,15 +111,14 @@ Surface* Seat::GetFocusedSurface() {
return GetEffectiveFocus(WMHelper::GetInstance()->GetFocusedWindow()); return GetEffectiveFocus(WMHelper::GetInstance()->GetFocusedWindow());
} }
void Seat::StartDrag(DataExchangeDelegate* data_exchange_delegate, void Seat::StartDrag(DataSource* source,
DataSource* source,
Surface* origin, Surface* origin,
Surface* icon, Surface* icon,
ui::mojom::DragEventSource event_source) { ui::mojom::DragEventSource event_source) {
// DragDropOperation manages its own lifetime. // DragDropOperation manages its own lifetime.
drag_drop_operation_ = drag_drop_operation_ =
DragDropOperation::Create(data_exchange_delegate, source, origin, icon, DragDropOperation::Create(data_exchange_delegate_.get(), source, origin,
last_pointer_location_, event_source); icon, last_pointer_location_, event_source);
} }
void Seat::SetLastPointerLocation(const gfx::PointF& last_pointer_location) { void Seat::SetLastPointerLocation(const gfx::PointF& last_pointer_location) {
......
...@@ -53,7 +53,10 @@ class Seat : public aura::client::FocusChangeObserver, ...@@ -53,7 +53,10 @@ class Seat : public aura::client::FocusChangeObserver,
#endif #endif
public DataSourceObserver { public DataSourceObserver {
public: public:
explicit Seat(std::unique_ptr<DataExchangeDelegate> delegate);
Seat(); Seat();
Seat(const Seat&) = delete;
Seat& operator=(const Seat&) = delete;
~Seat() override; ~Seat() override;
void Shutdown(); void Shutdown();
...@@ -74,6 +77,10 @@ class Seat : public aura::client::FocusChangeObserver, ...@@ -74,6 +77,10 @@ class Seat : public aura::client::FocusChangeObserver,
const XkbTracker* xkb_tracker() const { return xkb_tracker_.get(); } const XkbTracker* xkb_tracker() const { return xkb_tracker_.get(); }
#endif #endif
DataExchangeDelegate* data_exchange_delegate() {
return data_exchange_delegate_.get();
}
// Returns physical code for the currently processing event. // Returns physical code for the currently processing event.
ui::DomCode physical_code_for_currently_processing_event() const { ui::DomCode physical_code_for_currently_processing_event() const {
return physical_code_for_currently_processing_event_; return physical_code_for_currently_processing_event_;
...@@ -82,8 +89,7 @@ class Seat : public aura::client::FocusChangeObserver, ...@@ -82,8 +89,7 @@ class Seat : public aura::client::FocusChangeObserver,
// Sets clipboard data from |source|. // Sets clipboard data from |source|.
void SetSelection(DataSource* source); void SetSelection(DataSource* source);
void StartDrag(DataExchangeDelegate* data_exchange_delegate, void StartDrag(DataSource* source,
DataSource* source,
Surface* origin, Surface* origin,
Surface* icon, Surface* icon,
ui::mojom::DragEventSource event_source); ui::mojom::DragEventSource event_source);
...@@ -187,9 +193,8 @@ class Seat : public aura::client::FocusChangeObserver, ...@@ -187,9 +193,8 @@ class Seat : public aura::client::FocusChangeObserver,
std::unique_ptr<XkbTracker> xkb_tracker_; std::unique_ptr<XkbTracker> xkb_tracker_;
#endif // BUILDFLAG(IS_CHROMEOS_ASH) #endif // BUILDFLAG(IS_CHROMEOS_ASH)
std::unique_ptr<DataExchangeDelegate> data_exchange_delegate_;
base::WeakPtrFactory<Seat> weak_ptr_factory_{this}; base::WeakPtrFactory<Seat> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(Seat);
}; };
} // namespace exo } // namespace exo
......
...@@ -422,8 +422,8 @@ TEST_F(SeatTest, SetSelection_SourceDestroyedAfterSetSelection) { ...@@ -422,8 +422,8 @@ TEST_F(SeatTest, SetSelection_SourceDestroyedAfterSetSelection) {
TEST_F(SeatTest, SetSelection_NullSource) { TEST_F(SeatTest, SetSelection_NullSource) {
Seat seat; Seat seat;
TestDataSourceDelegate delegate; TestDataSourceDelegate delegate;
DataSource source(&delegate); DataSource source(&delegate);
source.Offer("text/plain;charset=utf-8"); source.Offer("text/plain;charset=utf-8");
seat.SetSelection(&source); seat.SetSelection(&source);
...@@ -485,17 +485,15 @@ TEST_F(SeatTest, PressedKeys) { ...@@ -485,17 +485,15 @@ TEST_F(SeatTest, PressedKeys) {
} }
TEST_F(SeatTest, DragDropAbort) { TEST_F(SeatTest, DragDropAbort) {
Seat seat; Seat seat(std::make_unique<TestDataExchangeDelegate>());
TestDataSourceDelegate delegate; TestDataSourceDelegate delegate;
DataSource source(&delegate); DataSource source(&delegate);
Surface origin, icon; Surface origin, icon;
TestDataExchangeDelegate data_exchange_delegate;
// Give origin a root window for DragDropOperation. // Give origin a root window for DragDropOperation.
GetContext()->AddChild(origin.window()); GetContext()->AddChild(origin.window());
seat.StartDrag(&data_exchange_delegate, &source, &origin, &icon, seat.StartDrag(&source, &origin, &icon, ui::mojom::DragEventSource::kMouse);
ui::mojom::DragEventSource::kMouse);
EXPECT_TRUE(seat.get_drag_drop_operation_for_testing()); EXPECT_TRUE(seat.get_drag_drop_operation_for_testing());
seat.AbortPendingDragOperation(); seat.AbortPendingDragOperation();
EXPECT_FALSE(seat.get_drag_drop_operation_for_testing()); EXPECT_FALSE(seat.get_drag_drop_operation_for_testing());
......
...@@ -501,13 +501,13 @@ TEST_F(TouchTest, OnTouchTilt) { ...@@ -501,13 +501,13 @@ TEST_F(TouchTest, OnTouchTilt) {
} }
TEST_F(TouchTest, DragDropAbort) { TEST_F(TouchTest, DragDropAbort) {
Seat seat; Seat seat(std::make_unique<TestDataExchangeDelegate>());
MockTouchDelegate touch_delegate; MockTouchDelegate touch_delegate;
std::unique_ptr<Touch> touch(new Touch(&touch_delegate, &seat)); std::unique_ptr<Touch> touch(new Touch(&touch_delegate, &seat));
TestDataSourceDelegate data_source_delegate; TestDataSourceDelegate data_source_delegate;
DataSource source(&data_source_delegate); DataSource source(&data_source_delegate);
Surface origin, icon; Surface origin, icon;
TestDataExchangeDelegate data_exchange_delegate;
// Make origin into a real window so the touch can click it // Make origin into a real window so the touch can click it
ShellSurface shell_surface(&origin); ShellSurface shell_surface(&origin);
...@@ -522,8 +522,7 @@ TEST_F(TouchTest, DragDropAbort) { ...@@ -522,8 +522,7 @@ TEST_F(TouchTest, DragDropAbort) {
EXPECT_CALL(touch_delegate, OnTouchFrame()).Times(2); EXPECT_CALL(touch_delegate, OnTouchFrame()).Times(2);
generator.MoveTouch(origin.window()->GetBoundsInScreen().origin()); generator.MoveTouch(origin.window()->GetBoundsInScreen().origin());
seat.StartDrag(&data_exchange_delegate, &source, &origin, &icon, seat.StartDrag(&source, &origin, &icon, ui::mojom::DragEventSource::kMouse);
ui::mojom::DragEventSource::kMouse);
EXPECT_TRUE(seat.get_drag_drop_operation_for_testing()); EXPECT_TRUE(seat.get_drag_drop_operation_for_testing());
EXPECT_CALL(touch_delegate, OnTouchDown).Times(1); EXPECT_CALL(touch_delegate, OnTouchDown).Times(1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment