On changing screens (which is also when going to a 'full window') the
queues get signalled to all escape, this to prevent things happening on old windows. The code then still did a redraw though... which was invisble (another draw happened after, but caused icon system for example to choke on not-initialized values.
This commit is contained in:
@@ -1182,13 +1182,17 @@ static void screen_dispatch_events(void) {
|
||||
if (winqueue_break) break;
|
||||
}
|
||||
|
||||
if (dodrawscreen) {
|
||||
drawscreen();
|
||||
dodrawscreen= 0;
|
||||
/* winqueue_break isnt the best of all solutions... but it is called on switching screens,
|
||||
so drawing should wait for all redraw/init events to be handled */
|
||||
if (winqueue_break==0) {
|
||||
if (dodrawscreen) {
|
||||
drawscreen();
|
||||
dodrawscreen= 0;
|
||||
}
|
||||
|
||||
screen_swapbuffers();
|
||||
do_screenhandlers(G.curscreen);
|
||||
}
|
||||
|
||||
screen_swapbuffers();
|
||||
do_screenhandlers(G.curscreen);
|
||||
}
|
||||
|
||||
static ScrArea *screen_find_area_for_pt(bScreen *sc, short *mval)
|
||||
|
||||
Reference in New Issue
Block a user