From 8586028dbd244755c40ebaaa12a1bc2cf6359154 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Sat, 12 May 2007 01:17:19 +0000 Subject: =?UTF-8?q?Bug=20fix=20from=20Enrico=20Tr=C3=B6ger=20for=20GTK+=20?= =?UTF-8?q?does=20not=20place=20a=20text/uri-list=20target=20on=20the=20cl?= =?UTF-8?q?ipboard=20as=20this=20allows=20Open=20Office=20to=20see=20the?= =?UTF-8?q?=20text=20and=20correctly=20paste=20it.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/ScintillaHistory.html | 1 + gtk/ScintillaGTK.cxx | 27 ++++++++++++++------------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 7cf3c7a86..2843ebd17 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -234,6 +234,7 @@
  • Nicolas Chachereau
  • Istvan Szollosi
  • Xie Renhui
  • +
  • Enrico Tröger
  • Images used in GTK+ version diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index a873f1ada..07794b208 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -310,12 +310,18 @@ GdkAtom ScintillaGTK::atomString = 0; GdkAtom ScintillaGTK::atomUriList = 0; GdkAtom ScintillaGTK::atomDROPFILES_DND = 0; -static const GtkTargetEntry clipboardTargets[] = { +static const GtkTargetEntry clipboardCopyTargets[] = { + { "UTF8_STRING", 0, TARGET_UTF8_STRING }, + { "STRING", 0, TARGET_STRING }, +}; +static const gint nClipboardCopyTargets = sizeof(clipboardCopyTargets) / sizeof(clipboardCopyTargets[0]); + +static const GtkTargetEntry clipboardPasteTargets[] = { { "text/uri-list", 0, TARGET_URI }, { "UTF8_STRING", 0, TARGET_UTF8_STRING }, { "STRING", 0, TARGET_STRING }, }; -static const gint nClipboardTargets = sizeof(clipboardTargets) / sizeof(clipboardTargets[0]); +static const gint nClipboardPasteTargets = sizeof(clipboardPasteTargets) / sizeof(clipboardPasteTargets[0]); static GtkWidget *PWidget(Window &w) { return reinterpret_cast(w.GetID()); @@ -763,15 +769,15 @@ void ScintillaGTK::Initialise() { gtk_widget_grab_focus(PWidget(wMain)); gtk_selection_add_targets(GTK_WIDGET(PWidget(wMain)), GDK_SELECTION_PRIMARY, - clipboardTargets, nClipboardTargets); + clipboardPasteTargets, nClipboardPasteTargets); #ifndef USE_GTK_CLIPBOARD gtk_selection_add_targets(GTK_WIDGET(PWidget(wMain)), atomClipboard, - clipboardTargets, nClipboardTargets); + clipboardPasteTargets, nClipboardPasteTargets); #endif gtk_drag_dest_set(GTK_WIDGET(PWidget(wMain)), - GTK_DEST_DEFAULT_ALL, clipboardTargets, nClipboardTargets, + GTK_DEST_DEFAULT_ALL, clipboardPasteTargets, nClipboardPasteTargets, static_cast(GDK_ACTION_COPY | GDK_ACTION_MOVE)); SetTicking(true); @@ -801,12 +807,7 @@ bool ScintillaGTK::DragThreshold(Point ptStart, Point ptNow) { void ScintillaGTK::StartDrag() { dragWasDropped = false; inDragDrop = ddDragging; - static const GtkTargetEntry targets[] = { - { "UTF8_STRING", 0, TARGET_UTF8_STRING }, - { "STRING", 0, TARGET_STRING }, - }; - static const gint n_targets = sizeof(targets) / sizeof(targets[0]); - GtkTargetList *tl = gtk_target_list_new(targets, n_targets); + GtkTargetList *tl = gtk_target_list_new(clipboardCopyTargets, nClipboardCopyTargets); gtk_drag_begin(GTK_WIDGET(PWidget(wMain)), tl, static_cast(GDK_ACTION_COPY | GDK_ACTION_MOVE), @@ -1276,7 +1277,7 @@ void ScintillaGTK::CopyToClipboard(const SelectionText &selectedText) { SelectionText *clipText = new SelectionText(); clipText->Copy(selectedText); - gtk_clipboard_set_with_data(clipBoard, clipboardTargets, nClipboardTargets, + gtk_clipboard_set_with_data(clipBoard, clipboardCopyTargets, nClipboardCopyTargets, ClipboardGetSelection, ClipboardClearSelection, clipText); #endif @@ -1298,7 +1299,7 @@ void ScintillaGTK::Copy() { SelectionText *clipText = new SelectionText(); CopySelectionRange(clipText); - gtk_clipboard_set_with_data(clipBoard, clipboardTargets, nClipboardTargets, + gtk_clipboard_set_with_data(clipBoard, clipboardCopyTargets, nClipboardCopyTargets, ClipboardGetSelection, ClipboardClearSelection, clipText); #endif -- cgit v1.2.3