WRITE_NL(); WRITE_INT(*layout, log_window.w);
WRITE_NL(); WRITE_INT(*layout, log_window.h);
+ WRITE_NL(); WRITE_INT(*layout, preferences_window.x);
+ WRITE_NL(); WRITE_INT(*layout, preferences_window.y);
+ WRITE_NL(); WRITE_INT(*layout, preferences_window.w);
+ WRITE_NL(); WRITE_INT(*layout, preferences_window.h);
+ WRITE_NL(); WRITE_INT(*layout, preferences_window.page_number);
+
WRITE_NL(); WRITE_INT(*layout, search_window.x);
WRITE_NL(); WRITE_INT(*layout, search_window.y);
WRITE_NL(); WRITE_INT(*layout, search_window.w);
if (READ_INT(*layout, log_window.w)) continue;
if (READ_INT(*layout, log_window.h)) continue;
+ if (READ_INT(*layout, preferences_window.x)) continue;
+ if (READ_INT(*layout, preferences_window.y)) continue;
+ if (READ_INT(*layout, preferences_window.w)) continue;
+ if (READ_INT(*layout, preferences_window.h)) continue;
+ if (READ_INT(*layout, preferences_window.page_number)) continue;
+
if (READ_INT(*layout, search_window.x)) continue;
if (READ_INT(*layout, search_window.y)) continue;
if (READ_INT(*layout, search_window.w)) continue;
static void config_window_ok_cb(GtkWidget *widget, gpointer data)
{
LayoutWindow *lw;
+ GtkNotebook *notebook = data;
+ GdkWindow *window;
+ gint x;
+ gint y;
+ gint w;
+ gint h;
+ gint page_number;
+
lw = layout_window_list->data;
+ window = gtk_widget_get_window(widget);
+ gdk_window_get_root_origin(window, &x, &y);
+ w = gdk_window_get_width(window);
+ h = gdk_window_get_height(window);
+ page_number = gtk_notebook_get_current_page(notebook);
+
+ lw->options.preferences_window.x = x;
+ lw->options.preferences_window.y = y;
+ lw->options.preferences_window.w = w;
+ lw->options.preferences_window.h = h;
+ lw->options.preferences_window.page_number = page_number;
+
config_window_apply();
layout_util_sync(lw);
save_options(options);
}
/* Main preferences window */
-static void config_window_create(void)
+static void config_window_create(LayoutWindow *lw)
{
GtkWidget *win_vbox;
GtkWidget *hbox;
gtk_window_set_type_hint(GTK_WINDOW(configwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(configwindow), "delete_event",
G_CALLBACK(config_window_delete), NULL);
- gtk_window_set_default_size(GTK_WINDOW(configwindow), CONFIG_WINDOW_DEF_WIDTH, CONFIG_WINDOW_DEF_HEIGHT);
+ if (options->save_dialog_window_positions)
+ {
+ gtk_window_resize(GTK_WINDOW(configwindow), lw->options.preferences_window.w, lw->options.preferences_window.h);
+ gtk_window_move(GTK_WINDOW(configwindow), lw->options.preferences_window.x, lw->options.preferences_window.y);
+ }
+ else
+ {
+ gtk_window_set_default_size(GTK_WINDOW(configwindow), CONFIG_WINDOW_DEF_WIDTH, CONFIG_WINDOW_DEF_HEIGHT);
+ }
gtk_window_set_resizable(GTK_WINDOW(configwindow), TRUE);
gtk_container_set_border_width(GTK_CONTAINER(configwindow), PREF_PAD_BORDER);
config_tab_toolbar_main(notebook);
config_tab_toolbar_status(notebook);
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), lw->options.preferences_window.page_number);
+
hbox = gtk_hbutton_box_new();
gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END);
gtk_box_set_spacing(GTK_BOX(hbox), PREF_PAD_BUTTON_GAP);
gtk_widget_show(button);
button = pref_button_new(NULL, GTK_STOCK_OK, NULL, FALSE,
- G_CALLBACK(config_window_ok_cb), NULL);
+ G_CALLBACK(config_window_ok_cb), notebook);
gtk_container_add(GTK_CONTAINER(hbox), button);
gtk_widget_set_can_default(button, TRUE);
gtk_widget_grab_default(button);
*-----------------------------------------------------------------------------
*/
-void show_config_window(void)
+void show_config_window(LayoutWindow *lw)
{
if (configwindow)
{
return;
}
- config_window_create();
+ config_window_create(lw);
}
/*