-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 diff -U4 -r gnome-terminal-2.22.3/src/terminal.c gnome-terminal-2.22.3+sa/src/terminal.c - --- gnome-terminal-2.22.3/src/terminal.c 2008-05-06 14:50:15.000000000 +0100 +++ gnome-terminal-2.22.3+sa/src/terminal.c 2008-07-06 13:14:49.000000000 +0100 @@ -94,8 +94,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; @@ -163,8 +164,9 @@ gboolean force_menubar_state; gboolean menubar_state; gboolean start_fullscreen; + gboolean start_maximised; char *geometry; char *role; @@ -211,8 +213,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; @@ -248,8 +251,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) @@ -607,8 +611,29 @@ } static gboolean +option_maximised_callback (const gchar *option_name, + const gchar *value, + gpointer data, + GError **error) +{ + OptionParsingResults *results = data; + InitialWindow *iw; + + if (results->initial_windows) + { + iw = g_list_last (results->initial_windows)->data; + iw->start_maximised = TRUE; + } + else + results->default_start_maximised = TRUE; + + return TRUE; +} + + +static gboolean option_disable_factory_callback (const gchar *option_name, const gchar *value, gpointer data, GError **error) @@ -777,8 +802,9 @@ results->default_window_menubar_forced = 0; results->default_window_menubar_state = 1; results->default_start_fullscreen = 0; + results->default_start_maximised = 0; results->execute = 0; results->use_factory = TRUE; results->startup_id = NULL; @@ -1022,8 +1048,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, @@ -1043,8 +1070,9 @@ current_window, NULL, FALSE, FALSE, FALSE/*not fullscreen*/, + FALSE/*not maximised*/, it->exec_argv, NULL, it->title, it->working_dir, @@ -1492,8 +1520,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, @@ -1575,8 +1604,15 @@ g_printerr (_("Invalid geometry string \"%s\"\n"), geometry); } + if (start_maximised) + { + /* this is really annoying because the window will be displayed before maximising... + */ + terminal_window_maximise (window); + } + if (start_fullscreen) { terminal_window_set_fullscreen (window, TRUE); } @@ -3313,8 +3349,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 }, { + "maximised", + 0, + G_OPTION_FLAG_NO_ARG, + G_OPTION_ARG_CALLBACK, + option_maximised_callback, + 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, 0, G_OPTION_ARG_STRING, diff -U4 -r gnome-terminal-2.22.3/src/terminal.h gnome-terminal-2.22.3+sa/src/terminal.h - --- gnome-terminal-2.22.3/src/terminal.h 2008-03-20 10:16:25.000000000 +0000 +++ gnome-terminal-2.22.3+sa/src/terminal.h 2008-07-06 12:35:08.000000000 +0100 @@ -51,8 +51,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.22.3/src/terminal-screen.c gnome-terminal-2.22.3+sa/src/terminal-screen.c - --- gnome-terminal-2.22.3/src/terminal-screen.c 2008-03-20 10:16:25.000000000 +0000 +++ gnome-terminal-2.22.3+sa/src/terminal-screen.c 2008-07-06 12:35:08.000000000 +0100 @@ -1323,9 +1323,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); @@ -1342,9 +1342,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.22.3/src/terminal-window.c gnome-terminal-2.22.3+sa/src/terminal-window.c - --- gnome-terminal-2.22.3/src/terminal-window.c 2008-05-09 23:58:12.000000000 +0100 +++ gnome-terminal-2.22.3+sa/src/terminal-window.c 2008-07-06 12:35:08.000000000 +0100 @@ -2220,8 +2220,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 */ @@ -2276,9 +2284,9 @@ terminal_app_new_terminal (terminal_app_get (), profile, NULL, screen, - - FALSE, FALSE, FALSE, + FALSE, FALSE, FALSE, FALSE, NULL, geometry, NULL, dir, NULL, 1.0, NULL, name, -1); g_free (geometry); @@ -2304,9 +2312,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.22.3/src/terminal-window.h gnome-terminal-2.22.3+sa/src/terminal-window.h - --- gnome-terminal-2.22.3/src/terminal-window.h 2008-03-20 10:16:25.000000000 +0000 +++ gnome-terminal-2.22.3+sa/src/terminal-window.h 2008-07-06 12:35:08.000000000 +0100 @@ -91,8 +91,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); -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iQIcBAEBAgAGBQJIcLc+AAoJEKRtx1WjQ8ihu2cQAJBJtPbdP7d+d+bNe3AzaV3W 8UznBrj4lFKnPD5pdSBcsmff1P4LjSvRij3Bvx8tfPUgI3SoZl3Nw1dKVO7YLhHl jfOZuqpoipjHFri13uGLrOOWxNk94roU6xn/A43Kh6W//Q4bMQVpJ2cs0YE9PMgk 7aaYoECSA0G5BRHOGCiFTWO4TEx+R4lsXAuFJjgWBOLEKukvPCmSxkTBFcbpjYvD 7ZqiAuSQmBqjUaxblkgqTvNhBOQtYr69HT7ZqoPyYLgt6/fn9OrurJDHqjAo2Mkf DZ5qCP8QLfi855+Z5+ww6jjJJ+0lp0H9BN0MW8bSbAShWTnV/DeRxPeOxRKxe5WJ iVTOEi+/6xrPDEtsKagDSbyAyfF7M23nbJb0vyjrpYXRmBcTaY3HN/niPP92E4RB zQaZpWZPJ+FPFkIyaVfq1ZjsU9yXGUKgRbD7sReAUhTNo3z7lDaRll2MybQyPtzl 7A24oE5pbP5N30E6605tjG/jYLRNX+vigEcYtlpF+rQ20f+XKGoAMXQoTyBT12UM dZ+f2A7tdrOzLkPlnq8iJJxWzZoke1USEAqFaGez4quNDSWdHqFW3RFKOLKVgHwG Og5za82zdfD/5BHom7vc8E1bvz9AfRlz9LvGCxFOJJpYQ6AkEEXCnouu7fZwr4hr u46opJKEBvVTb5pyYUI5 =yKwk -----END PGP SIGNATURE-----