summaryrefslogtreecommitdiffstats
path: root/ui/base
diff options
context:
space:
mode:
authorcdn@chromium.org <cdn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-27 21:27:39 +0000
committercdn@chromium.org <cdn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-27 21:27:39 +0000
commit725c68279789e7a3a7726e5a1a919aa2aae27f07 (patch)
treec69649d528be64e68e2e1d774d40d1a448be2d56 /ui/base
parentad31ae07a1f51fa382fa214de28ca4f371ceaee2 (diff)
downloadchromium_src-725c68279789e7a3a7726e5a1a919aa2aae27f07.zip
chromium_src-725c68279789e7a3a7726e5a1a919aa2aae27f07.tar.gz
chromium_src-725c68279789e7a3a7726e5a1a919aa2aae27f07.tar.bz2
Add Clipboard GetSequenceNumber interface which allows us to version the data on the clipboard.
BUG=73478 Review URL: http://codereview.chromium.org/7222016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90646 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base')
-rw-r--r--ui/base/clipboard/clipboard.h5
-rw-r--r--ui/base/clipboard/clipboard_linux.cc7
-rw-r--r--ui/base/clipboard/clipboard_mac.mm5
-rw-r--r--ui/base/clipboard/clipboard_win.cc4
4 files changed, 21 insertions, 0 deletions
diff --git a/ui/base/clipboard/clipboard.h b/ui/base/clipboard/clipboard.h
index 744f7a6..b9ae1fb 100644
--- a/ui/base/clipboard/clipboard.h
+++ b/ui/base/clipboard/clipboard.h
@@ -169,6 +169,11 @@ class Clipboard {
// format is never controlled by the user.
void ReadData(const std::string& format, std::string* result);
+ // Returns a sequence number which uniquely identifies clipboard state.
+ // This can be used to version the data on the clipboard and determine
+ // whether it has changed.
+ uint64 GetSequenceNumber();
+
// Get format Identifiers for various types.
static FormatType GetUrlFormatType();
static FormatType GetUrlWFormatType();
diff --git a/ui/base/clipboard/clipboard_linux.cc b/ui/base/clipboard/clipboard_linux.cc
index 13cc759..718fed5 100644
--- a/ui/base/clipboard/clipboard_linux.cc
+++ b/ui/base/clipboard/clipboard_linux.cc
@@ -409,6 +409,13 @@ void Clipboard::ReadData(const std::string& format, std::string* result) {
gtk_selection_data_free(data);
}
+uint64 Clipboard::GetSequenceNumber() {
+ // TODO(cdn): implement this. For now this interface will advertise
+ // that the Linux clipboard never changes. That's fine as long as we
+ // don't rely on this signal.
+ return 0;
+}
+
// static
Clipboard::FormatType Clipboard::GetPlainTextFormatType() {
return GdkAtomToString(GDK_TARGET_STRING);
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm
index eb89565..9f65e79 100644
--- a/ui/base/clipboard/clipboard_mac.mm
+++ b/ui/base/clipboard/clipboard_mac.mm
@@ -319,6 +319,11 @@ void Clipboard::ReadFiles(std::vector<FilePath>* files) const {
}
}
+uint64 Clipboard::GetSequenceNumber() {
+ NSPasteboard* pb = GetPasteboard();
+ return [pb changeCount];
+}
+
// static
Clipboard::FormatType Clipboard::GetUrlFormatType() {
static const std::string type = base::SysNSStringToUTF8(NSURLPboardType);
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc
index eb4f34b..bada69b7 100644
--- a/ui/base/clipboard/clipboard_win.cc
+++ b/ui/base/clipboard/clipboard_win.cc
@@ -552,6 +552,10 @@ void Clipboard::ReadData(const std::string& format, std::string* result) {
::GlobalUnlock(data);
}
+uint64 Clipboard::GetSequenceNumber() {
+ return ::GetClipboardSequenceNumber();
+}
+
// static
void Clipboard::ParseBookmarkClipboardFormat(const string16& bookmark,
string16* title,