diff options
author | nyamatongwe <unknown> | 2007-05-12 01:17:19 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2007-05-12 01:17:19 +0000 |
commit | 8586028dbd244755c40ebaaa12a1bc2cf6359154 (patch) | |
tree | 1c16648efa9329018fab7d2a79f85f8741f197b8 | |
parent | 36188324937ce09d0752225927c9da7b5872f3cf (diff) | |
download | scintilla-mirror-8586028dbd244755c40ebaaa12a1bc2cf6359154.tar.gz |
Bug fix from Enrico Tröger for GTK+ does not place a text/uri-list
target on the clipboard as this allows Open Office to see the text and
correctly paste it.
-rw-r--r-- | doc/ScintillaHistory.html | 1 | ||||
-rw-r--r-- | 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 @@ <li>Nicolas Chachereau</li> <li>Istvan Szollosi</li> <li>Xie Renhui</li> + <li>Enrico Tröger</li> </ul> <p> 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<GtkWidget *>(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<GdkDragAction>(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<GdkDragAction>(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 |