| Index: ui/base/x/selection_owner.cc
|
| diff --git a/ui/base/x/selection_owner.cc b/ui/base/x/selection_owner.cc
|
| index 83e6f38183e1fe117fa884b1c433aa5fd6e9c00d..fa8c32179e2d41383b7846af31af0789d79cbcb2 100644
|
| --- a/ui/base/x/selection_owner.cc
|
| +++ b/ui/base/x/selection_owner.cc
|
| @@ -26,9 +26,6 @@ const char kSaveTargets[] = "SAVE_TARGETS";
|
| const char kTargets[] = "TARGETS";
|
| const char kTimestamp[] = "TIMESTAMP";
|
|
|
| -const char* kAtomsToCache[] = {kAtomPair, kIncr, kMultiple, kSaveTargets,
|
| - kTargets, kTimestamp, NULL};
|
| -
|
| // The period of |incremental_transfer_abort_timer_|. Arbitrary but must be <=
|
| // than kIncrementalTransferTimeoutMs.
|
| const int kTimerPeriodMs = 1000;
|
| @@ -98,9 +95,7 @@ SelectionOwner::SelectionOwner(XDisplay* x_display,
|
| : x_display_(x_display),
|
| x_window_(x_window),
|
| selection_name_(selection_name),
|
| - max_request_size_(GetMaxRequestSize(x_display)),
|
| - atom_cache_(x_display_, kAtomsToCache) {
|
| -}
|
| + max_request_size_(GetMaxRequestSize(x_display)) {}
|
|
|
| SelectionOwner::~SelectionOwner() {
|
| // If we are the selection owner, we need to release the selection so we
|
| @@ -149,7 +144,7 @@ void SelectionOwner::OnSelectionRequest(const XEvent& event) {
|
| reply.xselection.property = None; // Indicates failure
|
| reply.xselection.time = event.xselectionrequest.time;
|
|
|
| - if (requested_target == atom_cache_.GetAtom(kMultiple)) {
|
| + if (requested_target == GetAtom(kMultiple)) {
|
| // The contents of |requested_property| should be a list of
|
| // <target,property> pairs.
|
| std::vector<std::pair<XAtom,XAtom> > conversions;
|
| @@ -169,11 +164,7 @@ void SelectionOwner::OnSelectionRequest(const XEvent& event) {
|
| // Set the property to indicate which conversions succeeded. This matches
|
| // what GTK does.
|
| XChangeProperty(
|
| - x_display_,
|
| - requestor,
|
| - requested_property,
|
| - atom_cache_.GetAtom(kAtomPair),
|
| - 32,
|
| + x_display_, requestor, requested_property, GetAtom(kAtomPair), 32,
|
| PropModeReplace,
|
| reinterpret_cast<const unsigned char*>(&conversion_results.front()),
|
| conversion_results.size());
|
| @@ -215,10 +206,10 @@ void SelectionOwner::OnPropertyEvent(const XEvent& event) {
|
| bool SelectionOwner::ProcessTarget(XAtom target,
|
| XID requestor,
|
| XAtom property) {
|
| - XAtom multiple_atom = atom_cache_.GetAtom(kMultiple);
|
| - XAtom save_targets_atom = atom_cache_.GetAtom(kSaveTargets);
|
| - XAtom targets_atom = atom_cache_.GetAtom(kTargets);
|
| - XAtom timestamp_atom = atom_cache_.GetAtom(kTimestamp);
|
| + XAtom multiple_atom = GetAtom(kMultiple);
|
| + XAtom save_targets_atom = GetAtom(kSaveTargets);
|
| + XAtom targets_atom = GetAtom(kTargets);
|
| + XAtom timestamp_atom = GetAtom(kTimestamp);
|
|
|
| if (target == multiple_atom || target == save_targets_atom)
|
| return false;
|
| @@ -255,14 +246,9 @@ bool SelectionOwner::ProcessTarget(XAtom target,
|
| // the size of X requests. Notify the selection requestor that the data
|
| // will be sent incrementally by returning data of type "INCR".
|
| long length = it->second->size();
|
| - XChangeProperty(x_display_,
|
| - requestor,
|
| - property,
|
| - atom_cache_.GetAtom(kIncr),
|
| - 32,
|
| + XChangeProperty(x_display_, requestor, property, GetAtom(kIncr), 32,
|
| PropModeReplace,
|
| - reinterpret_cast<unsigned char*>(&length),
|
| - 1);
|
| + reinterpret_cast<unsigned char*>(&length), 1);
|
|
|
| // Wait for the selection requestor to indicate that it has processed
|
| // the selection result before sending the first chunk of data. The
|
|
|