Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-05-14 22:02:46 +0400
committerTon Roosendaal <ton@blender.org>2006-05-14 22:02:46 +0400
commit1b7f9dfee636a02e34e7acdd8416415e12aee571 (patch)
tree654992657ba45c64ea111886563e38a6893b38ca /source/blender/src/editscreen.c
parentee2baaf3e3c4e7da365944dd5a99095bea1902b1 (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.c16
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)