summaryrefslogtreecommitdiff
path: root/gtk/gtk_window.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtk_window.c')
-rw-r--r--gtk/gtk_window.c36
1 files changed, 33 insertions, 3 deletions
diff --git a/gtk/gtk_window.c b/gtk/gtk_window.c
index f70bac7e4..55c427a95 100644
--- a/gtk/gtk_window.c
+++ b/gtk/gtk_window.c
@@ -53,6 +53,7 @@ struct gui_window {
GtkMenuItem *stop_menu;
GtkMenuItem *reload_menu;
GtkImage *throbber;
+ GtkPaned *status_pane;
GladeXML *xml;
@@ -147,6 +148,7 @@ MENUPROTO(reload);
MENUPROTO(zoom_in);
MENUPROTO(normal_size);
MENUPROTO(zoom_out);
+MENUPROTO(save_window_size);
/* navigate menu */
MENUPROTO(back);
@@ -176,6 +178,7 @@ static struct menu_events menu_events[] = {
MENUEVENT(zoom_in),
MENUEVENT(normal_size),
MENUEVENT(zoom_out),
+ MENUEVENT(save_window_size),
/* navigate menu */
MENUEVENT(back),
@@ -595,6 +598,21 @@ MENUHANDLER(zoom_out)
return TRUE;
}
+MENUHANDLER(save_window_size)
+{
+ struct gui_window *gw = g;
+
+ option_toolbar_status_width = gtk_paned_get_position(gw->status_pane);
+ gtk_window_get_position(gw->window, &option_window_x, &option_window_y);
+ gtk_window_get_size(gw->window, &option_window_width,
+ &option_window_height);
+
+
+ options_write(options_file_location);
+
+ return TRUE;
+}
+
MENUHANDLER(stop)
{
return nsgtk_window_stop_button_clicked(GTK_WIDGET(widget), g);
@@ -731,6 +749,21 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
g->reload_menu = GTK_MENU_ITEM(GET_WIDGET("reload"));
g->throbber = GTK_IMAGE(GET_WIDGET("throbber"));
g->viewport = GTK_VIEWPORT(GET_WIDGET("viewport1"));
+ g->status_pane = GTK_PANED(GET_WIDGET("hpaned1"));
+
+ /* set this window's size and position to what's in the options, or
+ * or some sensible default if they're not set yet.
+ */
+ if (option_window_width > 0) {
+ gtk_window_move(g->window, option_window_x, option_window_y);
+ gtk_window_resize(g->window, option_window_width,
+ option_window_height);
+ } else {
+ gtk_window_set_default_size(g->window, 600, 600);
+ }
+
+ /* set the size of the hpane with status bar and h scrollbar */
+ gtk_paned_set_position(g->status_pane, option_toolbar_status_width);
/* connect our scrollbars to the viewport */
gtk_viewport_set_hadjustment(g->viewport,
@@ -744,9 +777,6 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
*/
gtk_tool_item_set_expand(GTK_TOOL_ITEM(GET_WIDGET("toolURLBar")), TRUE);
- /* set the initial size of the browser window */
- gtk_window_set_default_size(g->window, 600, 600);
-
/* set the events we're interested in receiving from the browser's
* drawing area.
*/