summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-06-18 11:40:47 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-06-18 11:41:51 +0100
commitfe9da15401574551c34fffbd4e63eddca9743527 (patch)
tree05646e0d894d18dcad5ed2dce5d5f23c4d13bbab
parent63a3d1a5e26b42859ce0868da6327afcdc0dfece (diff)
gtk3: implement most common case of text paste into us
Change-Id: I733dd57e27330bc200f718ffb5680bbb81d5d77d
-rw-r--r--vcl/unx/gtk3/app/gtk3gtkinst.cxx16
1 files changed, 13 insertions, 3 deletions
diff --git a/vcl/unx/gtk3/app/gtk3gtkinst.cxx b/vcl/unx/gtk3/app/gtk3gtkinst.cxx
index 902dd665861b..a96d1e40d8b2 100644
--- a/vcl/unx/gtk3/app/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/app/gtk3gtkinst.cxx
@@ -101,9 +101,19 @@ public:
css::uno::RuntimeException, std::exception
) SAL_OVERRIDE
{
- fprintf(stderr, "TO-DO getTransferData\n");
- (void)aFlavor;
- return css::uno::Any();
+ css::uno::Any aRet;
+ GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
+ if (aFlavor.MimeType == "text/plain;charset=utf-16")
+ {
+ gchar *pText = gtk_clipboard_wait_for_text(clipboard);
+ OUString aStr(pText, rtl_str_getLength(pText),
+ RTL_TEXTENCODING_UTF8);
+ g_free(pText);
+ aRet <<= aStr.replaceAll("\r\n", "\n");
+ }
+ else
+ fprintf(stderr, "TO-DO getTransferData %s\n", OUStringToOString(aFlavor.MimeType, RTL_TEXTENCODING_UTF8).getStr());
+ return aRet;
}
virtual css::uno::Sequence< css::datatransfer::DataFlavor > SAL_CALL getTransferDataFlavors( )