[gnome-terminal] Bug 155147 - gnome-terminal default size only by setting --geometry
- From: Behdad Esfahbod <behdad src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-terminal] Bug 155147 - gnome-terminal default size only by setting --geometry
- Date: Tue, 15 Dec 2009 06:51:11 +0000 (UTC)
commit b84547ebc07077f958fa73fea0866b177d64f393
Author: Behdad Esfahbod <behdad behdad org>
Date: Tue Dec 15 01:47:27 2009 -0500
Bug 155147 - gnome-terminal default size only by setting --geometry
Add per-profile (and hence gconf) options for setting default size.
src/gnome-terminal.schemas.in | 28 ++++++++
src/profile-editor.c | 16 ++++
src/profile-preferences.glade | 152 +++++++++++++++++++++++++++++++++++++++++
src/terminal-profile.c | 8 ++
src/terminal-profile.h | 2 +
src/terminal-screen.c | 4 +
6 files changed, 210 insertions(+), 0 deletions(-)
---
diff --git a/src/gnome-terminal.schemas.in b/src/gnome-terminal.schemas.in
index 3f03fe7..4c5230a 100644
--- a/src/gnome-terminal.schemas.in
+++ b/src/gnome-terminal.schemas.in
@@ -296,6 +296,34 @@
</schema>
<schema>
+ <key>/schemas/apps/gnome-terminal/profiles/Default/default_size_columns</key>
+ <applyto>/apps/gnome-terminal/profiles/Default/default_size_columns</applyto>
+ <owner>gnome-terminal</owner>
+ <type>int</type>
+ <default>80</default>
+ <locale name="C">
+ <short>Default number of columns</short>
+ <long>
+ Number of columns in newly created terminal windows.
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/gnome-terminal/profiles/Default/default_size_rows</key>
+ <applyto>/apps/gnome-terminal/profiles/Default/default_size_rows</applyto>
+ <owner>gnome-terminal</owner>
+ <type>int</type>
+ <default>24</default>
+ <locale name="C">
+ <short>Default number of rows</short>
+ <long>
+ Number of rows in newly created terminal windows.
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/gnome-terminal/profiles/Default/scrollbar_position</key>
<applyto>/apps/gnome-terminal/profiles/Default/scrollbar_position</applyto>
<owner>gnome-terminal</owner>
diff --git a/src/profile-editor.c b/src/profile-editor.c
index 491c4e9..8073a4b 100644
--- a/src/profile-editor.c
+++ b/src/profile-editor.c
@@ -236,6 +236,20 @@ profile_notify_sensitivity_cb (TerminalProfile *profile,
SET_SENSITIVE ("word-chars-entry",
!terminal_profile_property_locked (profile, TERMINAL_PROFILE_WORD_CHARS));
+ if (!prop_name ||
+ prop_name == I_(TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS) ||
+ prop_name == I_(TERMINAL_PROFILE_DEFAULT_SIZE_ROWS))
+ {
+ gboolean columns_locked = terminal_profile_property_locked (profile, TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS);
+ gboolean rows_locked = terminal_profile_property_locked (profile, TERMINAL_PROFILE_DEFAULT_SIZE_ROWS);
+
+ SET_SENSITIVE ("default-size-label", !columns_locked || !rows_locked);
+ SET_SENSITIVE ("default-size-columns-label", !columns_locked);
+ SET_SENSITIVE ("default-size-columns-spinbutton", !columns_locked);
+ SET_SENSITIVE ("default-size-rows-label", !rows_locked);
+ SET_SENSITIVE ("default-size-rows-spinbutton", !rows_locked);
+ }
+
if (!prop_name || prop_name == I_(TERMINAL_PROFILE_SCROLLBAR_POSITION))
SET_SENSITIVE ("scrollbar-position-combobox",
!terminal_profile_property_locked (profile, TERMINAL_PROFILE_SCROLLBAR_POSITION));
@@ -816,6 +830,8 @@ terminal_profile_edit (TerminalProfile *profile,
CONNECT ("cursor-shape-combobox", TERMINAL_PROFILE_CURSOR_SHAPE);
CONNECT ("custom-command-entry", TERMINAL_PROFILE_CUSTOM_COMMAND);
CONNECT ("darken-background-scale", TERMINAL_PROFILE_BACKGROUND_DARKNESS);
+ CONNECT ("default-size-columns-spinbutton", TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS);
+ CONNECT ("default-size-rows-spinbutton", TERMINAL_PROFILE_DEFAULT_SIZE_ROWS);
CONNECT ("delete-binding-combobox", TERMINAL_PROFILE_DELETE_BINDING);
CONNECT ("exit-action-combobox", TERMINAL_PROFILE_EXIT_ACTION);
CONNECT ("font-selector", TERMINAL_PROFILE_FONT);
diff --git a/src/profile-preferences.glade b/src/profile-preferences.glade
index dd1f259..a725d36 100644
--- a/src/profile-preferences.glade
+++ b/src/profile-preferences.glade
@@ -401,6 +401,158 @@ Underline</property>
<property name="fill">True</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox141">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="default-size-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Default si_ze:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox143">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkSpinButton" id="default-size-columns-spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">False</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">80 1 2048 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="default-size-columns-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">columns</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox142">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkSpinButton" id="default-size-rows-spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">False</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">24 1 512 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="default-size-rows-label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">rows</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="tab_expand">False</property>
diff --git a/src/terminal-profile.c b/src/terminal-profile.c
index 565d092..f050e87 100644
--- a/src/terminal-profile.c
+++ b/src/terminal-profile.c
@@ -59,6 +59,8 @@ enum
PROP_CURSOR_BLINK_MODE,
PROP_CURSOR_SHAPE,
PROP_CUSTOM_COMMAND,
+ PROP_DEFAULT_SIZE_COLUMNS,
+ PROP_DEFAULT_SIZE_ROWS,
PROP_DEFAULT_SHOW_MENUBAR,
PROP_DELETE_BINDING,
PROP_EXIT_ACTION,
@@ -98,6 +100,8 @@ enum
#define KEY_CURSOR_SHAPE "cursor_shape"
#define KEY_CUSTOM_COMMAND "custom_command"
#define KEY_DEFAULT_SHOW_MENUBAR "default_show_menubar"
+#define KEY_DEFAULT_SIZE_COLUMNS "default_size_columns"
+#define KEY_DEFAULT_SIZE_ROWS "default_size_rows"
#define KEY_DELETE_BINDING "delete_binding"
#define KEY_EXIT_ACTION "exit_action"
#define KEY_FONT "font"
@@ -134,6 +138,8 @@ enum
#define DEFAULT_CURSOR_SHAPE (VTE_CURSOR_SHAPE_BLOCK)
#define DEFAULT_CUSTOM_COMMAND ("")
#define DEFAULT_DEFAULT_SHOW_MENUBAR (TRUE)
+#define DEFAULT_DEFAULT_SIZE_COLUMNS (80)
+#define DEFAULT_DEFAULT_SIZE_ROWS (24)
#define DEFAULT_DELETE_BINDING (VTE_ERASE_DELETE_SEQUENCE)
#define DEFAULT_EXIT_ACTION (TERMINAL_EXIT_CLOSE)
#define DEFAULT_FONT ("Monospace 12")
@@ -1316,6 +1322,8 @@ terminal_profile_class_init (TerminalProfileClass *klass)
TERMINAL_PROFILE_PROPERTY_ENUM (SCROLLBAR_POSITION, TERMINAL_TYPE_SCROLLBAR_POSITION, DEFAULT_SCROLLBAR_POSITION, KEY_SCROLLBAR_POSITION);
TERMINAL_PROFILE_PROPERTY_ENUM (TITLE_MODE, TERMINAL_TYPE_TITLE_MODE, DEFAULT_TITLE_MODE, KEY_TITLE_MODE);
+ TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_COLUMNS, 1, 1024, DEFAULT_DEFAULT_SIZE_COLUMNS, KEY_DEFAULT_SIZE_COLUMNS);
+ TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS);
TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES);
TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF, NULL);
diff --git a/src/terminal-profile.h b/src/terminal-profile.h
index cd3c374..f627935 100644
--- a/src/terminal-profile.h
+++ b/src/terminal-profile.h
@@ -78,6 +78,8 @@ typedef enum
#define TERMINAL_PROFILE_CURSOR_SHAPE "cursor-shape"
#define TERMINAL_PROFILE_CUSTOM_COMMAND "custom-command"
#define TERMINAL_PROFILE_DEFAULT_SHOW_MENUBAR "default-show-menubar"
+#define TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS "default-size-columns"
+#define TERMINAL_PROFILE_DEFAULT_SIZE_ROWS "default-size-rows"
#define TERMINAL_PROFILE_DELETE_BINDING "delete-binding"
#define TERMINAL_PROFILE_EXIT_ACTION "exit-action"
#define TERMINAL_PROFILE_FONT "font"
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 3726426..56856d1 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -734,6 +734,10 @@ terminal_screen_new (TerminalProfile *profile,
terminal_screen_set_profile (screen, profile);
+ vte_terminal_set_size (VTE_TERMINAL (screen),
+ terminal_profile_get_property_int (profile, TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS),
+ terminal_profile_get_property_int (profile, TERMINAL_PROFILE_DEFAULT_SIZE_ROWS));
+
if (title)
terminal_screen_set_override_title (screen, title);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]