diff options
Diffstat (limited to 'gtk/ScintillaGTK.cxx')
-rw-r--r-- | gtk/ScintillaGTK.cxx | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index 22ecf347b..b066ab7b2 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -57,7 +57,7 @@ #define INTERNATIONAL_INPUT -#if !PLAT_GTK_WIN32 +#if !PLAT_GTK_WIN32 || GTK_MAJOR_VERSION >= 2 #include "Converter.h" #endif @@ -209,6 +209,8 @@ private: static void PreeditChanged(GtkIMContext *context, ScintillaGTK *sciThis); void PreeditChangedThis(); #endif + static gint StyleSetText(GtkWidget *widget, GtkStyle *previous, void*); + static gint RealizeText(GtkWidget *widget, void*); static void Destroy(GtkObject *object); static void SelectionReceived(GtkWidget *widget, GtkSelectionData *selection_data, guint time); @@ -401,6 +403,10 @@ void ScintillaGTK::RealizeThis(GtkWidget *widget) { wPreeditDraw = gtk_drawing_area_new(); gtk_signal_connect(GTK_OBJECT(PWidget(wPreeditDraw)), "expose_event", GtkSignalFunc(ExposePreedit), this); + gtk_signal_connect_after(GTK_OBJECT(PWidget(wText)), "style_set", + GtkSignalFunc(ScintillaGTK::StyleSetText), NULL); + gtk_signal_connect_after(GTK_OBJECT(PWidget(wText)), "realize", + GtkSignalFunc(ScintillaGTK::RealizeText), NULL); gtk_container_add(GTK_CONTAINER(PWidget(wPreedit)), PWidget(wPreeditDraw)); gtk_widget_realize(PWidget(wPreedit)); gtk_widget_realize(PWidget(wPreeditDraw)); @@ -1934,6 +1940,18 @@ void ScintillaGTK::PreeditChangedThis() { } #endif +gint ScintillaGTK::StyleSetText(GtkWidget *widget, GtkStyle *, void*) { + if (widget->window != NULL) + gdk_window_set_back_pixmap(widget->window, NULL, FALSE); + return FALSE; +} + +gint ScintillaGTK::RealizeText(GtkWidget *widget, void*) { + if (widget->window != NULL) + gdk_window_set_back_pixmap(widget->window, NULL, FALSE); + return FALSE; +} + void ScintillaGTK::Destroy(GtkObject* object) { ScintillaObject *scio = reinterpret_cast<ScintillaObject *>(object); // This avoids a double destruction |