diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/include/UI_interface.h | 2 | ||||
-rw-r--r-- | source/blender/editors/interface/interface.c | 3 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_splash_screen.c | 21 |
3 files changed, 24 insertions, 2 deletions
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index bc013953b1e..81641239c6a 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -166,6 +166,8 @@ enum { /** The block is only used during the search process and will not be drawn. * Currently just for the case of a closed panel's sub-panel (and its sub-panels). */ UI_BLOCK_SEARCH_ONLY = 1 << 25, + /** Hack for quick setup (splash screen) to draw text centered. */ + UI_BLOCK_QUICK_SETUP = 1 << 26, }; /** #uiPopupBlockHandle.menuretval */ diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 3fec88810c9..1aff68871e4 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -4060,7 +4060,8 @@ static uiBut *ui_def_but(uiBlock *block, but->drawflag |= UI_BUT_ICON_LEFT; } } - else if (((block->flag & UI_BLOCK_LOOP) && !ui_block_is_popover(block)) || + else if (((block->flag & UI_BLOCK_LOOP) && !ui_block_is_popover(block) && + !(block->flag & UI_BLOCK_QUICK_SETUP)) || ELEM(but->type, UI_BTYPE_MENU, UI_BTYPE_TEXT, diff --git a/source/blender/windowmanager/intern/wm_splash_screen.c b/source/blender/windowmanager/intern/wm_splash_screen.c index a3619a69152..ae726e73fe7 100644 --- a/source/blender/windowmanager/intern/wm_splash_screen.c +++ b/source/blender/windowmanager/intern/wm_splash_screen.c @@ -226,7 +226,26 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *region, void *UNUSE 0, style); - MenuType *mt = WM_menutype_find("WM_MT_splash", true); + MenuType *mt; + char userpref[FILE_MAX]; + const char *const cfgdir = BKE_appdir_folder_id(BLENDER_USER_CONFIG, NULL); + + if (cfgdir) { + BLI_path_join(userpref, sizeof(userpref), cfgdir, BLENDER_USERPREF_FILE, NULL); + } + + /* Draw setup screen if no preferences have been saved yet. */ + if (!BLI_exists(userpref)) { + mt = WM_menutype_find("WM_MT_splash_quick_setup", true); + + /* The UI_BLOCK_QUICK_SETUP flag prevents the button text from being left-aligned, + as it is for all menus due to the UI_BLOCK_LOOP flag, see in 'ui_def_but'. */ + UI_block_flag_enable(block, UI_BLOCK_QUICK_SETUP); + } + else { + mt = WM_menutype_find("WM_MT_splash", true); + } + if (mt) { UI_menutype_draw(C, mt, layout); } |