From 1daaa74b089875562117b3978e5fe9783c21bbf5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 11 Feb 2019 14:46:25 +1100 Subject: [PATCH] WM: command line args to start blender maximized Part of D4323 by @DragMZ --- source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm_window.c | 6 ++++++ source/creator/creator_args.c | 11 +++++++++++ 3 files changed, 18 insertions(+) diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 227f109b6d6..4eeed66964e 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -81,6 +81,7 @@ const char *WM_init_state_app_template_get(void); void WM_init_state_size_set (int stax, int stay, int sizx, int sizy); void WM_init_state_fullscreen_set(void); void WM_init_state_normal_set(void); +void WM_init_state_maximized_set(void); void WM_init_window_focus_set(bool do_it); void WM_init_native_pixels(bool do_it); void WM_init_tablet_api(void); diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index 1cfb5eeb9af..f79e8f5324f 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -1972,6 +1972,12 @@ void WM_init_state_normal_set(void) wm_init_state.override_flag |= WIN_OVERRIDE_WINSTATE; } +void WM_init_state_maximized_set(void) +{ + wm_init_state.windowstate = GHOST_kWindowStateMaximized; + wm_init_state.override_flag |= WIN_OVERRIDE_WINSTATE; +} + void WM_init_window_focus_set(bool do_it) { wm_init_state.window_focus = do_it; diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c index 3c0698994f9..470bb47c980 100644 --- a/source/creator/creator_args.c +++ b/source/creator/creator_args.c @@ -496,6 +496,7 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo BLI_argsPrintArgDoc(ba, "--window-border"); BLI_argsPrintArgDoc(ba, "--window-fullscreen"); BLI_argsPrintArgDoc(ba, "--window-geometry"); + BLI_argsPrintArgDoc(ba, "--window-maximized"); BLI_argsPrintArgDoc(ba, "--start-console"); BLI_argsPrintArgDoc(ba, "--no-native-pixels"); BLI_argsPrintArgDoc(ba, "--no-window-focus"); @@ -1140,6 +1141,15 @@ static int arg_handle_without_borders(int UNUSED(argc), const char **UNUSED(argv return 0; } +static const char arg_handle_window_maximized_doc[] = +"\n\tForce opening maximized." +; +static int arg_handle_window_maximized(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data)) +{ + WM_init_state_maximized_set(); + return 0; +} + static const char arg_handle_no_window_focus_doc[] = "\n\tOpen behind other windows and without taking focus." ; @@ -1970,6 +1980,7 @@ void main_args_setup(bContext *C, bArgs *ba) BLI_argsAdd(ba, 2, "-p", "--window-geometry", CB(arg_handle_window_geometry), NULL); BLI_argsAdd(ba, 2, "-w", "--window-border", CB(arg_handle_with_borders), NULL); BLI_argsAdd(ba, 2, "-W", "--window-fullscreen", CB(arg_handle_without_borders), NULL); + BLI_argsAdd(ba, 2, "-M", "--window-maximized", CB(arg_handle_window_maximized), NULL); BLI_argsAdd(ba, 2, NULL, "--no-window-focus", CB(arg_handle_no_window_focus), NULL); BLI_argsAdd(ba, 2, "-con", "--start-console", CB(arg_handle_start_with_console), NULL); BLI_argsAdd(ba, 2, "-R", NULL, CB(arg_handle_register_extension), NULL);