aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaHistory.html4
-rw-r--r--gtk/ScintillaGTK.cxx12
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;
}