diff options
author | cdn@chromium.org <cdn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-27 21:27:39 +0000 |
---|---|---|
committer | cdn@chromium.org <cdn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-27 21:27:39 +0000 |
commit | 725c68279789e7a3a7726e5a1a919aa2aae27f07 (patch) | |
tree | c69649d528be64e68e2e1d774d40d1a448be2d56 /ui/base | |
parent | ad31ae07a1f51fa382fa214de28ca4f371ceaee2 (diff) | |
download | chromium_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.h | 5 | ||||
-rw-r--r-- | ui/base/clipboard/clipboard_linux.cc | 7 | ||||
-rw-r--r-- | ui/base/clipboard/clipboard_mac.mm | 5 | ||||
-rw-r--r-- | ui/base/clipboard/clipboard_win.cc | 4 |
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, |