diff options
-rw-r--r-- | doc/ScintillaHistory.html | 4 | ||||
-rw-r--r-- | gtk/ScintillaGTK.cxx | 12 |
2 files changed, 12 insertions, 4 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 20be5e5a8..b6ced2dea 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -537,6 +537,10 @@ Margin click to select line now clears rectangular and additional selections. </li> <li> + Fixed a NULL access bug on GTK+ where the scrollbars could be used during destruction. + <a href="http://sourceforge.net/p/scintilla/bugs/1873/">Bug #1873</a>. + </li> + <li> A potential bug on GTK+ fixed where asynchronous clipboard could be delivered after its target Scintilla instance was destroyed. </li> diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index 2d5daa2f0..70261bce1 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -323,8 +323,10 @@ void ScintillaGTK::UnRealizeThis(GtkWidget *widget) { GTK_WIDGET_UNSET_FLAGS(widget, GTK_REALIZED); #endif gtk_widget_unrealize(PWidget(wText)); - gtk_widget_unrealize(PWidget(scrollbarv)); - gtk_widget_unrealize(PWidget(scrollbarh)); + if (PWidget(scrollbarv)) + gtk_widget_unrealize(PWidget(scrollbarv)); + if (PWidget(scrollbarh)) + gtk_widget_unrealize(PWidget(scrollbarh)); gtk_widget_unrealize(PWidget(wPreedit)); gtk_widget_unrealize(PWidget(wPreeditDraw)); g_object_unref(im_context); @@ -388,8 +390,10 @@ void ScintillaGTK::UnMapThis() { DropGraphics(false); gdk_window_hide(PWindow(wMain)); gtk_widget_unmap(PWidget(wText)); - gtk_widget_unmap(PWidget(scrollbarh)); - gtk_widget_unmap(PWidget(scrollbarv)); + if (PWidget(scrollbarh)) + gtk_widget_unmap(PWidget(scrollbarh)); + if (PWidget(scrollbarv)) + gtk_widget_unmap(PWidget(scrollbarv)); } catch (...) { errorStatus = SC_STATUS_FAILURE; } |