Index: ui/base/x/selection_owner.cc |
diff --git a/ui/base/x/selection_owner.cc b/ui/base/x/selection_owner.cc |
index ea0ad226f32eafebc45101073a89fba1b5e146c6..83e6f38183e1fe117fa884b1c433aa5fd6e9c00d 100644 |
--- a/ui/base/x/selection_owner.cc |
+++ b/ui/base/x/selection_owner.cc |
@@ -9,6 +9,7 @@ |
#include <X11/Xatom.h> |
#include "base/logging.h" |
+#include "base/memory/ptr_util.h" |
#include "ui/base/x/selection_utils.h" |
#include "ui/base/x/x11_util.h" |
#include "ui/base/x/x11_window_event_manager.h" |
@@ -269,10 +270,10 @@ bool SelectionOwner::ProcessTarget(XAtom target, |
base::TimeTicks timeout = |
base::TimeTicks::Now() + |
base::TimeDelta::FromMilliseconds(kIncrementalTransferTimeoutMs); |
- requestor_events_.reset( |
- new ui::XScopedEventSelector(requestor, PropertyChangeMask)); |
incremental_transfers_.push_back(IncrementalTransfer( |
- requestor, target, property, it->second, 0, timeout)); |
+ requestor, target, property, |
+ base::MakeUnique<XScopedEventSelector>(requestor, PropertyChangeMask), |
Daniel Erat
2017/02/21 18:09:28
nit, just to check: is this what clang-format sugg
pkotwicz
2017/02/22 03:06:30
Run "git cl format" on this CL does not result in
|
+ it->second, 0, timeout)); |
// Start a timer to abort the data transfer in case that the selection |
// requestor does not support the INCR property or gets destroyed during |
@@ -338,8 +339,6 @@ void SelectionOwner::AbortStaleIncrementalTransfers() { |
void SelectionOwner::CompleteIncrementalTransfer( |
std::vector<IncrementalTransfer>::iterator it) { |
- requestor_events_.reset(); |
- |
incremental_transfers_.erase(it); |
if (incremental_transfers_.empty()) |
@@ -364,18 +363,23 @@ SelectionOwner::IncrementalTransfer::IncrementalTransfer( |
XID window, |
XAtom target, |
XAtom property, |
+ std::unique_ptr<XScopedEventSelector> event_selector, |
const scoped_refptr<base::RefCountedMemory>& data, |
int offset, |
base::TimeTicks timeout) |
: window(window), |
target(target), |
property(property), |
+ event_selector(std::move(event_selector)), |
data(data), |
offset(offset), |
timeout(timeout) {} |
SelectionOwner::IncrementalTransfer::IncrementalTransfer( |
- const IncrementalTransfer& other) = default; |
+ IncrementalTransfer&& other) = default; |
+ |
+SelectionOwner::IncrementalTransfer& SelectionOwner::IncrementalTransfer:: |
+operator=(IncrementalTransfer&&) = default; |
SelectionOwner::IncrementalTransfer::~IncrementalTransfer() { |
} |