Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(555)

Side by Side Diff: ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.cc

Issue 2179813003: Allow OSExchangeData::Provider to be overridden at run time. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Mac + win Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.h" 5 #include "ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.h"
6 6
7 #include <X11/Xatom.h> 7 #include <X11/Xatom.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 const XClientMessageEvent& event) { 600 const XClientMessageEvent& event) {
601 DVLOG(1) << "XdndDrop"; 601 DVLOG(1) << "XdndDrop";
602 602
603 unsigned long source_window = event.data.l[0]; 603 unsigned long source_window = event.data.l[0];
604 604
605 int drag_operation = ui::DragDropTypes::DRAG_NONE; 605 int drag_operation = ui::DragDropTypes::DRAG_NONE;
606 if (target_window_) { 606 if (target_window_) {
607 aura::client::DragDropDelegate* delegate = 607 aura::client::DragDropDelegate* delegate =
608 aura::client::GetDragDropDelegate(target_window_); 608 aura::client::GetDragDropDelegate(target_window_);
609 if (delegate) { 609 if (delegate) {
610 ui::OSExchangeData data(new ui::OSExchangeDataProviderAuraX11( 610 ui::OSExchangeData data(
611 xwindow_, target_current_context_->fetched_targets())); 611 base::MakeUnique<ui::OSExchangeDataProviderAuraX11>(
612 xwindow_, target_current_context_->fetched_targets()));
612 613
613 ui::DropTargetEvent event(data, 614 ui::DropTargetEvent event(data,
614 target_window_location_, 615 target_window_location_,
615 target_window_root_location_, 616 target_window_root_location_,
616 target_current_context_->GetDragOperation()); 617 target_current_context_->GetDragOperation());
617 if (target_current_context_->source_client()) { 618 if (target_current_context_->source_client()) {
618 event.set_flags(target_current_context_->source_client() 619 event.set_flags(target_current_context_->source_client()
619 ->current_modifier_state()); 620 ->current_modifier_state());
620 } else { 621 } else {
621 event.set_flags(XGetModifiers()); 622 event.set_flags(XGetModifiers());
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 target_window_->AddObserver(this); 975 target_window_->AddObserver(this);
975 target_window_changed = true; 976 target_window_changed = true;
976 } 977 }
977 *delegate = NULL; 978 *delegate = NULL;
978 if (!target_window_) 979 if (!target_window_)
979 return; 980 return;
980 *delegate = aura::client::GetDragDropDelegate(target_window_); 981 *delegate = aura::client::GetDragDropDelegate(target_window_);
981 if (!*delegate) 982 if (!*delegate)
982 return; 983 return;
983 984
984 data->reset(new OSExchangeData(new ui::OSExchangeDataProviderAuraX11( 985 data->reset(new OSExchangeData(
985 xwindow_, target_current_context_->fetched_targets()))); 986 base::MakeUnique<ui::OSExchangeDataProviderAuraX11>(
987 xwindow_, target_current_context_->fetched_targets())));
986 gfx::Point location = root_location; 988 gfx::Point location = root_location;
987 aura::Window::ConvertPointToTarget(root_window_, target_window_, &location); 989 aura::Window::ConvertPointToTarget(root_window_, target_window_, &location);
988 990
989 target_window_location_ = location; 991 target_window_location_ = location;
990 target_window_root_location_ = root_location; 992 target_window_root_location_ = root_location;
991 993
992 int drag_op = target_current_context_->GetDragOperation(); 994 int drag_op = target_current_context_->GetDragOperation();
993 // KDE-based file browsers such as Dolphin change the drag operation depending 995 // KDE-based file browsers such as Dolphin change the drag operation depending
994 // on whether alt/ctrl/shift was pressed. However once Chromium gets control 996 // on whether alt/ctrl/shift was pressed. However once Chromium gets control
995 // over the X11 events, the source application does no longer receive X11 997 // over the X11 events, the source application does no longer receive X11
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1228 for (int x = 0; x < in_bitmap->width(); ++x) { 1230 for (int x = 0; x < in_bitmap->width(); ++x) {
1229 if (SkColorGetA(in_row[x]) > kMinAlpha) 1231 if (SkColorGetA(in_row[x]) > kMinAlpha)
1230 return true; 1232 return true;
1231 } 1233 }
1232 } 1234 }
1233 1235
1234 return false; 1236 return false;
1235 } 1237 }
1236 1238
1237 } // namespace views 1239 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/cocoa/drag_drop_client_mac.mm ('k') | ui/views/widget/desktop_aura/desktop_drop_target_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698