[geany/geany] df5edd: Scintilla: fix missing redraws on GTK < 3.9.2
Colomban Wendling
git-noreply at xxxxx
Mon May 19 12:31:11 UTC 2014
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Mon, 19 May 2014 12:31:11 UTC
Commit: df5edd00322e637e2a673f9ea502092f2b4ee2b9
https://github.com/geany/geany/commit/df5edd00322e637e2a673f9ea502092f2b4ee2b9
Log Message:
-----------
Scintilla: fix missing redraws on GTK < 3.9.2
Also, make the recent redraw fixes depend on the GTK version Scintilla
is running against, rather than built against. This allows for the
same build to work with both GTK < 3.9.2 or >= 3.9.2.
Modified Paths:
--------------
scintilla/gtk/ScintillaGTK.cxx
Modified: scintilla/gtk/ScintillaGTK.cxx
20 lines changed, 15 insertions(+), 5 deletions(-)
===================================================================
@@ -759,9 +759,16 @@ void ScintillaGTK::Initialise() {
#else
g_signal_connect(G_OBJECT(widtxt), "expose_event",
G_CALLBACK(ScintillaGTK::ExposeText), this);
- // Avoid background drawing flash
- gtk_widget_set_double_buffered(widtxt, FALSE);
#endif
+#if GTK_CHECK_VERSION(3,0,0)
+ // we need a runtime check because we don't want double buffering when
+ // running on >= 3.9.2
+ if (gtk_check_version(3,9,2) != NULL /* on < 3.9.2 */)
+#endif
+ {
+ // Avoid background drawing flash/missing redraws
+ gtk_widget_set_double_buffered(widtxt, FALSE);
+ }
gtk_widget_set_events(widtxt, GDK_EXPOSURE_MASK);
gtk_widget_set_size_request(widtxt, 100, 100);
adjustmentv = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 201.0, 1.0, 20.0, 20.0));
@@ -2444,9 +2451,12 @@ gboolean ScintillaGTK::DrawThis(cairo_t *cr) {
// Starting from the following version, the expose event are not propagated
// for double buffered non native windows, so we need to call it ourselves
// or keep the default handler
-#if GTK_CHECK_VERSION(3,9,2)
- gtk_container_propagate_draw(
- GTK_CONTAINER(PWidget(wMain)), PWidget(wText), cr);
+#if GTK_CHECK_VERSION(3,0,0)
+ // we want to forward on any >= 3.9.2 runtime
+ if (gtk_check_version(3,9,2) == NULL) {
+ gtk_container_propagate_draw(
+ GTK_CONTAINER(PWidget(wMain)), PWidget(wText), cr);
+ }
#endif
} catch (...) {
errorStatus = SC_STATUS_FAILURE;
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list