diff options
-rw-r--r-- | gtk/ScintillaGTK.cxx | 6 |
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(); } |