summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTingPing <tingping@tingping.se>2012-11-30 17:22:12 -0500
committerTingPing <tingping@tingping.se>2012-11-30 17:22:12 -0500
commit1c224894a290ae6901c982c9f3f271d76cfc069b (patch)
tree08350629ec96c8fd386e502d4421e4981969817f
parent7424c0c68bf4f4152544a051453ef950b19c5c96 (diff)
Save pane height and restore on start
closes #154
-rw-r--r--src/common/cfgfiles.c1
-rw-r--r--src/common/hexchat.h1
-rw-r--r--src/fe-gtk/maingui.c16
3 files changed, 18 insertions, 0 deletions
diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c
index 68bad7a9..d32c7687 100644
--- a/src/common/cfgfiles.c
+++ b/src/common/cfgfiles.c
@@ -435,6 +435,7 @@ const struct prefs vars[] =
 	{"gui_lagometer", P_OFFINT (hex_gui_lagometer), TYPE_INT},
 	{"gui_lang", P_OFFINT (hex_gui_lang), TYPE_INT},
 	{"gui_mode_buttons", P_OFFINT (hex_gui_mode_buttons), TYPE_BOOL},
+	{"gui_pane_height", P_OFFINT (hex_gui_pane_height), TYPE_INT},
 	{"gui_pane_left_size", P_OFFINT (hex_gui_pane_left_size), TYPE_INT},
 	{"gui_pane_right_size", P_OFFINT (hex_gui_pane_right_size), TYPE_INT},
 	{"gui_pane_right_size_min", P_OFFINT (hex_gui_pane_right_size_min), TYPE_INT},
diff --git a/src/common/hexchat.h b/src/common/hexchat.h
index 43597617..5045b4bd 100644
--- a/src/common/hexchat.h
+++ b/src/common/hexchat.h
@@ -252,6 +252,7 @@ struct hexchatprefs
 	int hex_gui_dialog_width;
 	int hex_gui_lagometer;
 	int hex_gui_lang;
+	int hex_gui_pane_height;
 	int hex_gui_pane_left_size;
 	int hex_gui_pane_right_size;
 	int hex_gui_pane_right_size_min;
diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c
index 5b37dbb8..3c6c9782 100644
--- a/src/fe-gtk/maingui.c
+++ b/src/fe-gtk/maingui.c
@@ -2543,6 +2543,12 @@ mg_create_userlist (session_gui *gui, GtkWidget *box)
 }
 
 static void
+mg_vpane_cb (GtkPaned *pane, GParamSpec *param, session_gui *gui)
+{
+	prefs.hex_gui_pane_height = gtk_paned_get_position (pane);
+}
+
+static void
 mg_leftpane_cb (GtkPaned *pane, GParamSpec *param, session_gui *gui)
 {
 	prefs.hex_gui_pane_left_size = gtk_paned_get_position (pane);
@@ -2570,6 +2576,10 @@ mg_add_pane_signals (session_gui *gui)
 							G_CALLBACK (mg_rightpane_cb), gui);
 	g_signal_connect (G_OBJECT (gui->hpane_left), "notify::position",
 							G_CALLBACK (mg_leftpane_cb), gui);
+	g_signal_connect (G_OBJECT (gui->vpane_left), "notify::position",
+							G_CALLBACK (mg_vpane_cb), gui);
+	g_signal_connect (G_OBJECT (gui->vpane_right), "notify::position",
+							G_CALLBACK (mg_vpane_cb), gui);
 	return FALSE;
 }
 
@@ -2756,6 +2766,12 @@ mg_place_userlist_and_chanview_real (session_gui *gui, GtkWidget *userlist, GtkW
 		}
 	}
 
+	if (mg_is_userlist_and_tree_combined () && prefs.hex_gui_pane_height != 0)
+	{
+		gtk_paned_set_position (GTK_PANED (gui->vpane_left), prefs.hex_gui_pane_height);
+		gtk_paned_set_position (GTK_PANED (gui->vpane_right), prefs.hex_gui_pane_height);
+	}
+
 	if (unref_chanview)
 		g_object_unref (chanview);
 	if (unref_userlist)