diff --git a/gnoemoe/widgets/gm-app-view.c b/gnoemoe/widgets/gm-app-view.c index a44ef62..4d09ae5 100644 --- a/gnoemoe/widgets/gm-app-view.c +++ b/gnoemoe/widgets/gm-app-view.c @@ -254,11 +254,17 @@ gm_app_view_focus_out_event(GtkWidget *widget, GdkEventFocus *event) { static void gm_app_view_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { GmAppView *view = GM_APP_VIEW(widget); + GdkWindowState state = 0; - gm_options_set_int(gm_app_options(view->priv->application), "width", - allocation->width); - gm_options_set_int(gm_app_options(view->priv->application), "height", - allocation->height); + if (GDK_IS_WINDOW(widget->window)) + state = gdk_window_get_state(widget->window); + + if (!(state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_ICONIFIED))) { + gm_options_set_int(gm_app_options(view->priv->application), "width", + allocation->width); + gm_options_set_int(gm_app_options(view->priv->application), "height", + allocation->height); + } if (GTK_WIDGET_CLASS(gm_app_view_parent_class)->size_allocate) { GTK_WIDGET_CLASS(gm_app_view_parent_class)->size_allocate(widget, @@ -709,9 +715,10 @@ gm_app_view_restore_size(GmAppView *view) { height = gm_options_get_int(gm_app_options(view->priv->application), "height"); - if (height > 10 && width > 10) { + if (height > 10 && width > 10) gtk_window_set_default_size(GTK_WINDOW(view), width, height); - } + else + gtk_window_set_default_size(GTK_WINDOW(view), 400, 300); if (gm_options_get_int(gm_app_options(view->priv->application), "maximized")) {