GTK+ doesn't seem to use double buffering for Scintilla window for some
reason, resulting in bad flicker when it's updated, e.g. when the user types
into it.
Force the use of double buffering at wxWidgets level by using
wxBufferedPaintDC for painting it. This may be inefficient if GTK+ does double
buffer it in some cases but at least it gets rid of the flicker.
Closes #12704, #14828.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73001
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
#include "wx/ffile.h"
#endif
+#ifdef __WXGTK__
+ #include "wx/dcbuffer.h"
+#endif
+
#include "ScintillaWX.h"
//----------------------------------------------------------------------
// Event handlers
void wxStyledTextCtrl::OnPaint(wxPaintEvent& WXUNUSED(evt)) {
+#ifdef __WXGTK__
+ wxBufferedPaintDC dc(this);
+#else
wxPaintDC dc(this);
+#endif
m_swx->DoPaint(&dc, GetUpdateRegion().GetBox());
}
#include "wx/ffile.h"
#endif
+#ifdef __WXGTK__
+ #include "wx/dcbuffer.h"
+#endif
+
#include "ScintillaWX.h"
//----------------------------------------------------------------------
// Event handlers
void wxStyledTextCtrl::OnPaint(wxPaintEvent& WXUNUSED(evt)) {
+#ifdef __WXGTK__
+ wxBufferedPaintDC dc(this);
+#else
wxPaintDC dc(this);
+#endif
m_swx->DoPaint(&dc, GetUpdateRegion().GetBox());
}