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
path: root/source
diff options
context:
space:
mode:
authorYevgeny Makarov <jenkm>2021-02-21 19:26:55 +0300
committerJulian Eisel <julian@blender.org>2021-02-21 19:32:33 +0300
commit0c62906a4145b242d5ed772209038f65d7b493a8 (patch)
tree65964e982e03708eb3b3e7197948a021e8aa30f1 /source
parent08dbc4f996e4e95f3ab64f7bb3e1193700c585f5 (diff)
UI: Correct the text alignment in the quick setup (splash screen) dialog
The "quick setup" dialog is actually a 'menu', and the "splash screen" block contains the UI_BLOCK_LOOP flag which causes the buttons' text to align to the left, however, usually regular buttons have centered text. As a workaround, add the UI_BLOCK_QUICK_SETUP flag which prevents the text from being left-aligned. Differential Revision: https://developer.blender.org/D10486 Reviewed by: Julian Eisel
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/include/UI_interface.h2
-rw-r--r--source/blender/editors/interface/interface.c3
-rw-r--r--source/blender/windowmanager/intern/wm_splash_screen.c21
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);
}