From e3561c71ad9e5289e6726e6f6f6fb9f2df598a6d Mon Sep 17 00:00:00 2001 From: Ori Bernstein Date: Thu, 27 Dec 2007 01:01:22 +0100 Subject: [PATCH] Don't remember the window position but the size only. It is often useful to have multiple browser windows opening at once, and having them open on top of each other is counterproductive. Most window managers, on the other hand, have code to decide where to place a window so that it is accessible by the user. --- src/browser.c | 15 +-------------- src/conf.c | 10 +++------- src/conf.h | 4 +--- 3 files changed, 5 insertions(+), 24 deletions(-) diff --git a/src/browser.c b/src/browser.c index 61f82e12..3840053f 100644 --- a/src/browser.c +++ b/src/browser.c @@ -823,14 +823,6 @@ void on_findbox_button_close_clicked(GtkWidget* widget, CBrowser* browser) gtk_widget_hide(browser->findbox); } -static gboolean on_window_configure(GtkWidget* widget, GdkEventConfigure* event - , CBrowser* browser) -{ - gtk_window_get_position(GTK_WINDOW(browser->window) - , &config->winLeft, &config->winTop); - return FALSE; -} - static void on_window_size_allocate(GtkWidget* widget, GtkAllocation* allocation , CBrowser* browser) { @@ -882,24 +874,19 @@ CBrowser* browser_new(CBrowser* oldBrowser) GdkScreen* screen = gtk_window_get_screen(GTK_WINDOW(browser->window)); const gint defaultWidth = (gint)gdk_screen_get_width(screen) / 1.7; const gint defaultHeight = (gint)gdk_screen_get_height(screen) / 1.7; - if(config->rememberWinMetrics) + if(config->rememberWinSize) { if(!config->winWidth && !config->winHeight) { config->winWidth = defaultWidth; config->winHeight = defaultWidth; } - if(config->winLeft && config->winTop) - gtk_window_move(GTK_WINDOW(browser->window) - , config->winLeft, config->winTop); gtk_window_set_default_size(GTK_WINDOW(browser->window) , config->winWidth, config->winHeight); } else gtk_window_set_default_size(GTK_WINDOW(browser->window) , defaultWidth, defaultHeight); - g_signal_connect(browser->window, "configure-event" - , G_CALLBACK(on_window_configure), browser); g_signal_connect(browser->window, "size-allocate" , G_CALLBACK(on_window_size_allocate), browser); // FIXME: Use custom program icon diff --git a/src/conf.c b/src/conf.c index 25093d8a..8dccad03 100644 --- a/src/conf.c +++ b/src/conf.c @@ -87,10 +87,8 @@ gboolean config_from_file(CConfig* config, const gchar* filename, GError** error #define GET_STR(var, key, default) \ var = sokoke_key_file_get_string_default( \ keyFile, "session", key, default, NULL) - GET_INT(config->rememberWinMetrics , "RememberWinMetrics", TRUE); - GET_INT(config->winLeft , "WinLeft", 0); - GET_INT(config->winTop , "WinTop", 0); - GET_INT(config->winWidth , "WinWidth", 0); + GET_INT(config->rememberWinSize, "RememberWinSize", TRUE); + GET_INT(config->winWidth, "WinWidth", 0); GET_INT(config->winHeight, "WinHeight", 0); GET_INT(config->winPanelPos, "WinPanelPos", 0); GET_INT(config->searchEngine, "SearchEngine", 0); @@ -149,9 +147,7 @@ gboolean config_to_file(CConfig* config, const gchar* filename, GError** error) g_key_file_set_integer(keyFile, "content", "EnableJavaScript", config->enableJavaScript); g_key_file_set_integer(keyFile, "content", "EnablePlugins", config->enablePlugins); - g_key_file_set_integer(keyFile, "session", "RememberWinMetrics", config->rememberWinMetrics); - g_key_file_set_integer(keyFile, "session", "WinLeft", config->winLeft); - g_key_file_set_integer(keyFile, "session", "WinTop", config->winTop); + g_key_file_set_integer(keyFile, "session", "RememberWinSize", config->rememberWinSize); g_key_file_set_integer(keyFile, "session", "WinWidth", config->winWidth); g_key_file_set_integer(keyFile, "session", "WinHeight", config->winHeight); g_key_file_set_integer(keyFile, "session", "WinPanelPos", config->winPanelPos); diff --git a/src/conf.h b/src/conf.h index ef414991..b43b0311 100644 --- a/src/conf.h +++ b/src/conf.h @@ -43,9 +43,7 @@ typedef struct _CConfig gboolean enableJavaScript; gboolean enablePlugins; - gboolean rememberWinMetrics; // Restore last state upon startup? - gint winLeft; - gint winTop; + gboolean rememberWinSize; // Restore window size upon startup? gint winWidth; gint winHeight; guint winPanelPos;