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

Side by Side Diff: base/clipboard_linux.cc

Issue 172032: First cut for a FreeBSD port - much still not working (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "base/clipboard.h" 5 #include "base/clipboard.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 } 112 }
113 113
114 // Take ownership of the GTK clipboard and inform it of the targets we support. 114 // Take ownership of the GTK clipboard and inform it of the targets we support.
115 void Clipboard::SetGtkClipboard() { 115 void Clipboard::SetGtkClipboard() {
116 scoped_array<GtkTargetEntry> targets( 116 scoped_array<GtkTargetEntry> targets(
117 new GtkTargetEntry[clipboard_data_->size()]); 117 new GtkTargetEntry[clipboard_data_->size()]);
118 118
119 int i = 0; 119 int i = 0;
120 for (Clipboard::TargetMap::iterator iter = clipboard_data_->begin(); 120 for (Clipboard::TargetMap::iterator iter = clipboard_data_->begin();
121 iter != clipboard_data_->end(); ++iter, ++i) { 121 iter != clipboard_data_->end(); ++iter, ++i) {
122 targets[i].target = strndup(iter->first.data(), iter->first.size()); 122 targets[i].target = static_cast<gchar*>(malloc(iter->first.size() + 1));
123 memcpy(targets[i].target, iter->first.data(), iter->first.size());
124 targets[i].target[iter->first.size()] = '\0';
125
123 targets[i].flags = 0; 126 targets[i].flags = 0;
124 targets[i].info = i; 127 targets[i].info = i;
125 } 128 }
126 129
127 gtk_clipboard_set_with_data(clipboard_, targets.get(), 130 gtk_clipboard_set_with_data(clipboard_, targets.get(),
128 clipboard_data_->size(), 131 clipboard_data_->size(),
129 GetData, ClearData, 132 GetData, ClearData,
130 clipboard_data_); 133 clipboard_data_);
131 134
132 for (size_t i = 0; i < clipboard_data_->size(); i++) 135 for (size_t i = 0; i < clipboard_data_->size(); i++)
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 348
346 if (iter != clipboard_data_->end()) { 349 if (iter != clipboard_data_->end()) {
347 if (strcmp(kMimeBmp, key) == 0) 350 if (strcmp(kMimeBmp, key) == 0)
348 g_object_unref(reinterpret_cast<GdkPixbuf*>(iter->second.first)); 351 g_object_unref(reinterpret_cast<GdkPixbuf*>(iter->second.first));
349 else 352 else
350 delete[] iter->second.first; 353 delete[] iter->second.first;
351 } 354 }
352 355
353 (*clipboard_data_)[key] = std::make_pair(data, data_len); 356 (*clipboard_data_)[key] = std::make_pair(data, data_len);
354 } 357 }
OLDNEW
« base/base.gyp ('K') | « base/clipboard.h ('k') | base/crypto/signature_verifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698