diff options
author | Ton Roosendaal <ton@blender.org> | 2006-05-14 22:02:46 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-05-14 22:02:46 +0400 |
commit | 1b7f9dfee636a02e34e7acdd8416415e12aee571 (patch) | |
tree | 654992657ba45c64ea111886563e38a6893b38ca /source/blender/src/editscreen.c | |
parent | ee2baaf3e3c4e7da365944dd5a99095bea1902b1 (diff) |
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.
Diffstat (limited to 'source/blender/src/editscreen.c')
-rw-r--r-- | source/blender/src/editscreen.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c index 55c134492ab..e3ef09730b7 100644 --- a/source/blender/src/editscreen.c +++ b/source/blender/src/editscreen.c @@ -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) |