- uinfo->win_width_min=MIN_WINWIDTH;
- uinfo->win_height_min=MIN_WINHEIGHT;
-
- /* if(geometry != NULL) {
- gint x,y,w,h;
-
- if(gnome_parse_geometry(geometry,
- &x,&y,&w,&h)) {
- if(x != -1) {
- gtk_widget_set_uposition(app,x,y);
- }
-
- if(w != -1) {
- uinfo->win_width=w;
- uinfo->win_height=h;
- }
- }
- else {
- g_error(_("Could not parse geometry string `%s'"), geometry);
+
+ gtk_window_set_geometry_hints(GTK_WINDOW(app), app,
+ &uinfo->size_hints,
+ GDK_HINT_MIN_SIZE |
+ GDK_HINT_BASE_SIZE |
+ GDK_HINT_RESIZE_INC);
+
+ if(geometry != NULL) {
+ /*
+ If either a size or a position can be extracted from the geometry string,
+ gtk-window-parse-geometry returns â#tâ and calls
+ gtk-window-set-default-size and/or gtk-window-move to resize/move the
+ window.
+ */
+ if (!gtk_window_parse_geometry(GTK_WINDOW(app), geometry)) {
+ fprintf (stderr, "Failed to parse geometry string '%s'\n", geometry);
+ } else {
+ /* For saving the position */
+ gtk_window_get_position(GTK_WINDOW(uinfo->app), &uinfo->x, &uinfo->y);