aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <unknown>2007-05-12 01:17:19 +0000
committernyamatongwe <unknown>2007-05-12 01:17:19 +0000
commit8586028dbd244755c40ebaaa12a1bc2cf6359154 (patch)
tree1c16648efa9329018fab7d2a79f85f8741f197b8
parent36188324937ce09d0752225927c9da7b5872f3cf (diff)
downloadscintilla-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.html1
-rw-r--r--gtk/ScintillaGTK.cxx27
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