chiark / gitweb /
Don't refresh backing store on a no-op configure event.
authorSimon Tatham <anakin@pobox.com>
Sat, 3 Oct 2015 11:27:47 +0000 (12:27 +0100)
committerSimon Tatham <anakin@pobox.com>
Sat, 3 Oct 2015 15:07:01 +0000 (16:07 +0100)
commit8b491946ef0d7f34b310faf5bf484f5a419887a2
treef43595f7f546cb29e420058c006183920f284244
parentf9027226a05b6e2fc49d0256262edc6cc3a8c569
Don't refresh backing store on a no-op configure event.

Sometimes, we can get a "configure_area" event telling us that the
drawing area has changed size to the same size it already was. This
can happen when we change puzzle presets in a way that doesn't change
the size, and also sometimes seems to happen as a side effect of
changing the text in the status line.

In that situation, it's a waste of effort - and can cause visible
on-screen flicker - to throw away the window's backing image and
pixmap and regenerate them from scratch. So now we detect a non-resize
and avoid doing all that.

The only thing we retain unconditionally in configure_area is the
midend_force_redraw, because that's the place where a puzzle redraw is
forced when changing presets or loading a new game.
gtk.c