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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2016-02-05 00:26:46 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2016-02-06 14:21:41 +0300
commit6081f6c3870718660e984da3fbfcd44c55abcc20 (patch)
treeafe56aefccd7d13a72277c816861bbd6478d931c /source/blender/windowmanager/intern
parente602fe60c042c7ff0a1ebbe2deab3b347f4ccc86 (diff)
Fix T47204: selection failing directly after disabling multisample in user prefs.
Now store the multisample setting each window was created with.
Diffstat (limited to 'source/blender/windowmanager/intern')
-rw-r--r--source/blender/windowmanager/intern/wm_files.c2
-rw-r--r--source/blender/windowmanager/intern/wm_window.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index e3172de626a..3e2976bb8e0 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -182,6 +182,7 @@ static void wm_window_match_init(bContext *C, ListBase *wmlist)
static void wm_window_substitute_old(wmWindowManager *wm, wmWindow *oldwin, wmWindow *win)
{
win->ghostwin = oldwin->ghostwin;
+ win->multisamples = oldwin->multisamples;
win->active = oldwin->active;
if (win->active)
wm->winactive = win;
@@ -190,6 +191,7 @@ static void wm_window_substitute_old(wmWindowManager *wm, wmWindow *oldwin, wmWi
GHOST_SetWindowUserData(win->ghostwin, win); /* pointer back */
oldwin->ghostwin = NULL;
+ oldwin->multisamples = 0;
win->eventstate = oldwin->eventstate;
oldwin->eventstate = NULL;
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index 9bb790cd925..932f9994a4a 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -163,6 +163,7 @@ static void wm_ghostwindow_destroy(wmWindow *win)
if (win->ghostwin) {
GHOST_DisposeWindow(g_system, win->ghostwin);
win->ghostwin = NULL;
+ win->multisamples = 0;
}
}
@@ -432,6 +433,9 @@ static void wm_window_ghostwindow_add(wmWindowManager *wm, const char *title, wm
if (win->eventstate == NULL)
win->eventstate = MEM_callocN(sizeof(wmEvent), "window event state");
+
+ /* store multisamples window was created with, in case user prefs change */
+ win->multisamples = multisamples;
/* store actual window size in blender window */
bounds = GHOST_GetClientBounds(win->ghostwin);