[Bf-blender-cvs] [d045feca5bd] workspaces: Merge branch 'blender2.8' into workspaces
Julian Eisel
noreply at git.blender.org
Tue Mar 28 23:33:49 CEST 2017
Commit: d045feca5bd89854171d531d81c3778aac06810a
Author: Julian Eisel
Date: Tue Mar 28 23:33:13 2017 +0200
Branches: workspaces
https://developer.blender.org/rBd045feca5bd89854171d531d81c3778aac06810a
Merge branch 'blender2.8' into workspaces
Conflicts:
source/blender/blenloader/intern/readfile.c
source/blender/makesrna/intern/rna_userdef.c
source/blender/windowmanager/intern/wm_window.c
===================================================================
===================================================================
diff --cc source/blender/blenloader/intern/readfile.c
index 0f62314047e,4309bc071b7..394575eb538
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -6461,13 -6344,11 +6458,14 @@@ static void lib_link_windowmanager(File
for (wm = main->wm.first; wm; wm = wm->id.next) {
if (wm->id.tag & LIB_TAG_NEED_LINK) {
- /* Note: WM IDProperties are never written to file, hence no need to read/link them here. */
for (win = wm->windows.first; win; win = win->next) {
++ /* Note: WM IDProperties are never written to file, hence no need to read/link them here. */
+ win->scene = newlibadr(fd, wm->id.lib, win->scene);
+ lib_link_workspace_instance_hook(fd, win->workspace_hook, &wm->id);
+ /* deprecated, but needed for versioning (will be NULL'ed then) */
win->screen = newlibadr(fd, NULL, win->screen);
}
-
+
wm->id.tag &= ~LIB_TAG_NEED_LINK;
}
}
@@@ -6546,16 -6426,18 +6543,14 @@@ static void direct_link_gpencil(FileDat
* check lib pointers in call below */
static void lib_link_screen(FileData *fd, Main *main)
{
- bScreen *sc;
- ScrArea *sa;
-
- for (sc = main->screen.first; sc; sc = sc->id.next) {
+ for (bScreen *sc = main->screen.first; sc; sc = sc->id.next) {
if (sc->id.tag & LIB_TAG_NEED_LINK) {
+ IDP_LibLinkProperty(sc->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
id_us_ensure_real(&sc->id);
+ /* deprecated, but needed for versioning (will be NULL'ed then) */
sc->scene = newlibadr(fd, sc->id.lib, sc->scene);
- /* this should not happen, but apparently it does somehow. Until we figure out the cause,
- * just assign first available scene */
- if (!sc->scene)
- sc->scene = main->scene.first;
-
sc->animtimer = NULL; /* saved in rare cases */
sc->scrubbing = false;
@@@ -8719,11 -8593,8 +8731,9 @@@ static void lib_link_all(FileData *fd,
lib_link_linestyle(fd, main);
lib_link_gpencil(fd, main);
lib_link_cachefiles(fd, main);
+ lib_link_workspaces(fd, main);
- lib_link_mesh(fd, main); /* as last: tpage images with users at zero */
-
- lib_link_library(fd, main); /* only init users */
+ lib_link_library(fd, main); /* only init users */
}
static void direct_link_keymapitem(FileData *fd, wmKeyMapItem *kmi)
diff --cc source/blender/windowmanager/intern/wm_window.c
index 27b6b35c93b,49fe3a1d015..d534d1939e8
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@@ -684,11 -691,8 +707,10 @@@ wmWindow *WM_window_open_temp(bContext
win->posy = rect.ymin;
}
+ screen = WM_window_get_active_screen(win);
+
- /* multiply with virtual pixelsize, ghost handles native one (e.g. for retina) */
- win->sizex = BLI_rcti_size_x(&rect) * px_virtual;
- win->sizey = BLI_rcti_size_y(&rect) * px_virtual;
+ win->sizex = BLI_rcti_size_x(&rect);
+ win->sizey = BLI_rcti_size_y(&rect);
if (win->ghostwin) {
wm_window_set_size(win, win->sizex, win->sizey);
@@@ -1177,8 -1143,10 +1198,10 @@@ static int ghost_event_proc(GHOST_Event
/* stop screencast if resize */
if (type == GHOST_kEventWindowSize) {
- WM_jobs_stop(wm, win->screen, NULL);
+ WM_jobs_stop(wm, WM_window_get_active_screen(win), NULL);
}
+
+ wm_window_set_dpi(win);
/* win32: gives undefined window size when minimized */
if (state != GHOST_kWindowStateMinimized) {
@@@ -1265,7 -1231,19 +1288,19 @@@
}
break;
}
-
+
+ case GHOST_kEventWindowDPIHintChanged:
+ {
+ wm_window_set_dpi(win);
+ /* font's are stored at each DPI level, without this we can easy load 100's of fonts */
+ BLF_cache_clear();
+
+ BKE_blender_userdef_refresh();
+ WM_main_add_notifier(NC_WINDOW, NULL); /* full redraw */
- WM_main_add_notifier(NC_SCREEN | NA_EDITED, NULL); /* refresh region sizes */
++ WM_main_add_notifier(NC_WORKSPACE | NA_EDITED, NULL); /* refresh region sizes */
+ break;
+ }
+
case GHOST_kEventOpenMainFile:
{
PointerRNA props_ptr;
@@@ -1346,11 -1324,10 +1381,10 @@@
{
// only update if the actual pixel size changes
float prev_pixelsize = U.pixelsize;
- U.pixelsize = wm_window_pixelsize(win);
+ wm_window_set_dpi(win);
if (U.pixelsize != prev_pixelsize) {
- BKE_blender_userdef_refresh();
- BKE_icon_changed(win->screen->id.icon_id);
+ BKE_icon_changed(WM_window_get_active_screen(win)->id.icon_id);
// close all popups since they are positioned with the pixel
// size baked in and it's difficult to correct them
More information about the Bf-blender-cvs
mailing list