aboutsummaryrefslogtreecommitdiffhomepage
path: root/gtk/ScintillaGTK.h
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2019-04-11 16:05:01 +1000
committerNeil <nyamatongwe@gmail.com>2019-04-11 16:05:01 +1000
commit3ce0a475f3a28c4fe54e1b6bd3ffe0e423d5779b (patch)
tree52e78987a73dd92061e0594ddf651c90c5e77a97 /gtk/ScintillaGTK.h
parent66086920fd7a1d983190f83ba1e06dfc15a815e3 (diff)
downloadscintilla-mirror-3ce0a475f3a28c4fe54e1b6bd3ffe0e423d5779b.tar.gz
Backport: Bug [#2087]. Fix flickering when inserting primary selection on GTK between
SciTE tabs. This does not allow primary selection to work between tabs as the tabs are sharing a single Scintilla and the old primary selection is unclaimed when the file is changed. This fix adds a new ReceivedClipboard method which does not try to convert the selection if received in a different format than asked for. It was the call to gtk_selection_convert that seemed to cause the flickering. ReceivedClipboard is only called from SelectionReceiver::ClipboardReceived so only occurs due to a call to RequestSelection and can not occur because of a selection_received signal. ReceivedSelection is left with its complexity in case it is needed for some other issue although it doesn't appear to be called for drag&drop, for example. Backport of changeset 7422:22864dcaca0b.
Diffstat (limited to 'gtk/ScintillaGTK.h')
-rw-r--r--gtk/ScintillaGTK.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/gtk/ScintillaGTK.h b/gtk/ScintillaGTK.h
index 27f900455..b87808824 100644
--- a/gtk/ScintillaGTK.h
+++ b/gtk/ScintillaGTK.h
@@ -133,10 +133,12 @@ private:
bool OwnPrimarySelection();
void ClaimSelection() override;
void GetGtkSelectionText(GtkSelectionData *selectionData, SelectionText &selText);
+ void InsertSelection(GtkSelectionData *selectionData);
public: // Public for SelectionReceiver
GObject *MainObject() const noexcept;
- void ReceivedSelection(GtkSelectionData *selection_data);
+ void ReceivedClipboard(GtkSelectionData *selection_data) noexcept;
private:
+ void ReceivedSelection(GtkSelectionData *selection_data);
void ReceivedDrop(GtkSelectionData *selection_data);
static void GetSelection(GtkSelectionData *selection_data, guint info, SelectionText *text);
void StoreOnClipboard(SelectionText *clipText);