aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gtk/ScintillaGTK.cxx6
1 files changed, 2 insertions, 4 deletions
diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx
index 2dc0266fe..d285508d2 100644
--- a/gtk/ScintillaGTK.cxx
+++ b/gtk/ScintillaGTK.cxx
@@ -291,6 +291,7 @@ void ScintillaGTK::RealizeThis(GtkWidget *widget) {
gdk_window_set_cursor(PWindow(scrollbarh), cursor);
UnRefCursor(cursor);
+ wSelection = gtk_invisible_new();
g_signal_connect(PWidget(wSelection), "selection_get", G_CALLBACK(PrimarySelection), (gpointer) this);
g_signal_connect(PWidget(wSelection), "selection_clear_event", G_CALLBACK(PrimaryClear), (gpointer) this);
gtk_selection_add_targets(PWidget(wSelection), GDK_SELECTION_PRIMARY,
@@ -305,6 +306,7 @@ void ScintillaGTK::Realize(GtkWidget *widget) {
void ScintillaGTK::UnRealizeThis(GtkWidget *widget) {
try {
gtk_selection_clear_targets(PWidget(wSelection), GDK_SELECTION_PRIMARY);
+ wSelection.Destroy();
if (IS_WIDGET_MAPPED(widget)) {
gtk_widget_unmap(widget);
@@ -538,8 +540,6 @@ void ScintillaGTK::Init() {
}
#endif
- wSelection = gtk_invisible_new();
-
gtk_widget_set_can_focus(PWidget(wMain), TRUE);
gtk_widget_set_sensitive(PWidget(wMain), TRUE);
gtk_widget_set_events(PWidget(wMain),
@@ -662,8 +662,6 @@ void ScintillaGTK::Finalise() {
accessible = 0;
}
- wSelection.Destroy();
-
ScintillaBase::Finalise();
}