On Mon, 12 Aug 2019, Gunter Königsmann wrote:
If a draw context is used and wxWidgets 3.0 (3.1 isn't affected, but
isn't packaged with debian as it is the development version) uses GTK3
the background is likely not to be cleared before a redraw as
wxDC::Clear() doesn't work under these circumstances.
I tried to reproduce your bug by patching the drawing sample in the wx
source code using the attached patch, but it seems to work fine for me.
If you cd to the drawing subdirectory and run:
make -f makefile.unx WX_PORT=gtk3
Then double-check that it's linked to the GTK3 version:
ldd drawing|grep libwx_gtk
And then run it:
./drawing
This prints "Clear()" to the console (so we are running the patched
code) but the window doesn't have a hatching on the background. If
you remove the dc.Clear() just after where I've patched and rerun
the make command above then the window has hatching over it. So
clearly wxDC::Clear() is working in this case.
So I'm afraid I don't seem to be able to reproduce your problem.
Please can you come up with a small reproducer (upstream like a patch
against one of their samples) and file a bug upstream?
Gunter did file a bug upstream:
https://trac.wxwidgets.org/ticket/18463
However, Olly's request about making a reproducer still stands.
Gunter - also - what desktop environment are you using (e.g., Gnome,
KDE, XFCE, etc.). And are you running on X11 or Wayland?
Gnome on Wayland; For wxMaxima (the package I maintain myself) after
receiving the first screen shots with a background that clearly showed
that Clear() is't worked (none of the affected users complained about
this problem, as its symptoms aren't too bad for this specific program)
I have introduced a workaround: I paint a solid rectangle in the
background on gtk3 instead of calling Clear() => If this bug is closed
as "can't reproduce" I won't be angry.
Does the problem happen when running on X11? You can force X11 by setting
environment variable:
GDK_BACKEND=x11
before starting your program.
Scott