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:
authorDalai Felinto <dfelinto@gmail.com>2015-06-09 00:40:48 +0300
committerDalai Felinto <dfelinto@gmail.com>2015-06-09 00:48:52 +0300
commite1b8ed8dd4e83c16d5baddd6e9f9c0a8b6a7afb7 (patch)
tree8e46bf3fa5b3b3b3c2b37024f32d3e65df546c4f
parent962f764d58847614d083dc382285d997652d6992 (diff)
Multiview: fix Time Sequential crash when screen is fullscreen T44688
ED_screen_duplicate() was never written to support non-fullscreen modes. This is prior to the hidden ui fullscreen commit, and it's quite ancient in Blender's code (since Jan/08 - 1363134d) That's why duplicate window, and new screen operators are disabled when screen is full.
-rw-r--r--source/blender/windowmanager/intern/wm_stereo.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/windowmanager/intern/wm_stereo.c b/source/blender/windowmanager/intern/wm_stereo.c
index 3f80570dd7b..639c6c1d4e6 100644
--- a/source/blender/windowmanager/intern/wm_stereo.c
+++ b/source/blender/windowmanager/intern/wm_stereo.c
@@ -481,21 +481,25 @@ int wm_stereo3d_set_exec(bContext *C, wmOperator *op)
}
}
else if (win_src->stereo3d_format->display_mode == S3D_DISPLAY_PAGEFLIP) {
+ /* ED_screen_duplicate() can't handle other cases yet T44688 */
+ if (win_src->screen->state != SCREENNORMAL) {
+ BKE_report(op->reports, RPT_ERROR,
+ "Failed to switch to Time Sequential mode when in fullscreen");
+ ok = false;
+ }
/* pageflip requires a new window to be created with the proper OS flags */
- if ((win_dst = wm_window_copy_test(C, win_src))) {
+ else if ((win_dst = wm_window_copy_test(C, win_src))) {
if (wm_stereo3d_quadbuffer_supported()) {
BKE_report(op->reports, RPT_INFO, "Quad-buffer window successfully created");
}
else {
wm_window_close(C, wm, win_dst);
win_dst = NULL;
- win_src->stereo3d_format->display_mode = prev_display_mode;
BKE_report(op->reports, RPT_ERROR, "Quad-buffer not supported by the system");
ok = false;
}
}
else {
- win_src->stereo3d_format->display_mode = prev_display_mode;
BKE_report(op->reports, RPT_ERROR,
"Failed to create a window compatible with the time sequential display method");
ok = false;
@@ -521,6 +525,7 @@ int wm_stereo3d_set_exec(bContext *C, wmOperator *op)
else {
/* without this, the popup won't be freed freed properly T44688 */
CTX_wm_window_set(C, win_src);
+ win_src->stereo3d_format->display_mode = prev_display_mode;
return OPERATOR_CANCELLED;
}
}