From 1c224894a290ae6901c982c9f3f271d76cfc069b Mon Sep 17 00:00:00 2001 From: TingPing Date: Fri, 30 Nov 2012 17:22:12 -0500 Subject: Save pane height and restore on start closes #154 --- src/common/cfgfiles.c | 1 + src/common/hexchat.h | 1 + src/fe-gtk/maingui.c | 16 ++++++++++++++++ 3 files changed, 18 insertions(+) (limited to 'src') 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 @@ -2542,6 +2542,12 @@ mg_create_userlist (session_gui *gui, GtkWidget *box) gui->button_box = mg_create_userlistbuttons (vbox); } +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) { @@ -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) -- cgit 1.4.1