diff -U4 -r gnome-terminal-2.14.2/src/terminal.c gnome-terminal-2.14.2+byte/src/terminal.c --- gnome-terminal-2.14.2/src/terminal.c 2006-03-04 06:10:54.000000000 +0000 +++ gnome-terminal-2.14.2+byte/src/terminal.c 2006-10-08 16:28:42.000000000 +0100 @@ -96,8 +96,9 @@ GList *initial_windows; gboolean default_window_menubar_forced; gboolean default_window_menubar_state; gboolean default_start_fullscreen; + gboolean default_start_maximised; char *default_geometry; char *default_working_dir; char **post_execute_args; } OptionParsingResults; @@ -167,8 +168,9 @@ OPTION_DEFAULT_WORKING_DIRECTORY, OPTION_ZOOM, OPTION_ACTIVE, OPTION_COMPAT, + OPTION_MAXIMISED, OPTION_LAST }; struct poptOption options[] = { @@ -289,8 +291,17 @@ N_("Set the last-specified window into fullscreen mode; applies to only one window; can be specified once for each window you create from the command line."), NULL }, { + "start-maximised", + '\0', + POPT_ARG_NONE, + NULL, + OPTION_MAXIMISED, + N_("Set the last-specified window into maximised mode; applies to only one window; can be specified once for each window you create from the command line."), + NULL + }, + { "geometry", '\0', POPT_ARG_STRING, NULL, @@ -572,8 +583,9 @@ gboolean force_menubar_state; gboolean menubar_state; gboolean start_fullscreen; + gboolean start_maximised; char *geometry; char *role; @@ -620,8 +632,9 @@ iw->tabs = g_list_prepend (NULL, initial_tab_new (profile, is_id)); iw->force_menubar_state = FALSE; iw->menubar_state = FALSE; iw->start_fullscreen = FALSE; + iw->start_maximised = FALSE; iw->geometry = NULL; iw->role = NULL; return iw; @@ -657,8 +670,9 @@ results->default_window_menubar_forced = FALSE; } iw->start_fullscreen = results->default_start_fullscreen; + iw->start_maximised = results->default_start_maximised; } static InitialWindow* ensure_top_window (OptionParsingResults *results) @@ -955,8 +969,25 @@ } } break; + case OPTION_MAXIMISED: + { + InitialWindow *iw; + + if (results->initial_windows) + { + iw = g_list_last (results->initial_windows)->data; + + iw->start_maximised = TRUE; + } + else + { + results->default_start_maximised = TRUE; + } + } + break; + case OPTION_ROLE: { InitialWindow *iw; @@ -1436,8 +1467,9 @@ NULL, iw->force_menubar_state, iw->menubar_state, iw->start_fullscreen, + iw->start_maximised, it->exec_argv, iw->geometry, it->title, it->working_dir, @@ -1457,8 +1489,9 @@ current_window, NULL, FALSE, FALSE, FALSE/*not fullscreen*/, + FALSE/*not maximised*/, it->exec_argv, NULL, it->title, it->working_dir, @@ -1890,8 +1923,9 @@ TerminalScreen *screen, gboolean force_menubar_state, gboolean forced_menubar_state, gboolean start_fullscreen, + gboolean start_maximised, char **override_command, const char *geometry, const char *title, const char *working_dir, @@ -1986,8 +2020,15 @@ g_printerr (_("Invalid geometry string \"%s\"\n"), geometry); } + if (start_maximised) + { + /* this is really annoying because the window be displayed before maximising... + */ + terminal_window_maximise (window); + } + if (start_fullscreen) { terminal_window_set_fullscreen (window, TRUE); } diff -U4 -r gnome-terminal-2.14.2/src/terminal.h gnome-terminal-2.14.2+byte/src/terminal.h --- gnome-terminal-2.14.2/src/terminal.h 2006-01-01 21:07:57.000000000 +0000 +++ gnome-terminal-2.14.2+byte/src/terminal.h 2006-10-08 15:25:52.000000000 +0100 @@ -45,8 +45,9 @@ TerminalScreen *screen, gboolean force_menubar_state, gboolean forced_menubar_state, gboolean start_fullscreen, + gboolean start_maximised, char **override_command, const char *geometry, const char *title, const char *working_dir, diff -U4 -r gnome-terminal-2.14.2/src/terminal-screen.c gnome-terminal-2.14.2+byte/src/terminal-screen.c --- gnome-terminal-2.14.2/src/terminal-screen.c 2006-02-02 18:32:11.000000000 +0000 +++ gnome-terminal-2.14.2+byte/src/terminal-screen.c 2006-10-08 15:26:21.000000000 +0100 @@ -1266,9 +1266,9 @@ terminal_app_new_terminal (terminal_app_get (), terminal_profile_get_for_new_term (screen->priv->profile), NULL, NULL, - FALSE, FALSE, FALSE, + FALSE, FALSE, FALSE, FALSE, NULL, NULL, NULL, dir, NULL, 1.0, NULL, name, -1); g_free (name); @@ -1285,9 +1285,9 @@ terminal_app_new_terminal (terminal_app_get (), terminal_profile_get_for_new_term (screen->priv->profile), screen->priv->window, NULL, - FALSE, FALSE, FALSE, + FALSE, FALSE, FALSE, FALSE, NULL, NULL, NULL, dir, NULL, 1.0, NULL, NULL, -1); } diff -U4 -r gnome-terminal-2.14.2/src/terminal-window.c gnome-terminal-2.14.2+byte/src/terminal-window.c --- gnome-terminal-2.14.2/src/terminal-window.c 2006-03-04 06:21:01.000000000 +0000 +++ gnome-terminal-2.14.2+byte/src/terminal-window.c 2006-10-08 16:26:38.000000000 +0100 @@ -2175,8 +2175,16 @@ { return window->priv->fullscreen; } +void +terminal_window_maximise (TerminalWindow *window) +{ + g_return_if_fail (GTK_WIDGET_REALIZED (window)); + + gtk_window_maximize (GTK_WINDOW (window)); +} + /* * Callbacks for the menus */ @@ -2215,9 +2223,9 @@ terminal_app_new_terminal (terminal_app_get (), profile, NULL, screen, - FALSE, FALSE, FALSE, + FALSE, FALSE, FALSE, FALSE, NULL, NULL, NULL, dir, NULL, 1.0, NULL, name, -1); } @@ -2241,9 +2249,9 @@ terminal_app_new_terminal (terminal_app_get (), profile, window, NULL, - FALSE, FALSE, FALSE, + FALSE, FALSE, FALSE, FALSE, NULL, NULL, NULL, dir, NULL, 1.0, NULL, NULL, -1); } } diff -U4 -r gnome-terminal-2.14.2/src/terminal-window.h gnome-terminal-2.14.2+byte/src/terminal-window.h --- gnome-terminal-2.14.2/src/terminal-window.h 2005-11-20 15:06:34.000000000 +0000 +++ gnome-terminal-2.14.2+byte/src/terminal-window.h 2006-10-08 16:26:59.000000000 +0100 @@ -90,8 +90,10 @@ void terminal_window_set_fullscreen (TerminalWindow *window, gboolean setting); gboolean terminal_window_get_fullscreen (TerminalWindow *window); +void terminal_window_maximise (TerminalWindow *window); + GtkWidget* terminal_window_get_notebook (TerminalWindow *window); void terminal_window_reread_profile_list (TerminalWindow *window);