diff --git a/ChangeLog b/ChangeLog index 86f5e7ec5b..3b7947b72d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Jun 12 17:13:13 2002 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_move_resize): Fix bug + where if CENTER_ON_PARENT was set, but there was + no parent, GDK_HINT_POS would be set, resulting + in a dialog at 0,0. (#83479, Havoc Pennington) + Wed Jun 12 16:34:13 2002 Owen Taylor * gtk/gtkmenubar.c: When fetching the menubars for diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 86f5e7ec5b..3b7947b72d 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +Wed Jun 12 17:13:13 2002 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_move_resize): Fix bug + where if CENTER_ON_PARENT was set, but there was + no parent, GDK_HINT_POS would be set, resulting + in a dialog at 0,0. (#83479, Havoc Pennington) + Wed Jun 12 16:34:13 2002 Owen Taylor * gtk/gtkmenubar.c: When fetching the menubars for diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 86f5e7ec5b..3b7947b72d 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,10 @@ +Wed Jun 12 17:13:13 2002 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_move_resize): Fix bug + where if CENTER_ON_PARENT was set, but there was + no parent, GDK_HINT_POS would be set, resulting + in a dialog at 0,0. (#83479, Havoc Pennington) + Wed Jun 12 16:34:13 2002 Owen Taylor * gtk/gtkmenubar.c: When fetching the menubars for diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 86f5e7ec5b..3b7947b72d 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +Wed Jun 12 17:13:13 2002 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_move_resize): Fix bug + where if CENTER_ON_PARENT was set, but there was + no parent, GDK_HINT_POS would be set, resulting + in a dialog at 0,0. (#83479, Havoc Pennington) + Wed Jun 12 16:34:13 2002 Owen Taylor * gtk/gtkmenubar.c: When fetching the menubars for diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 86f5e7ec5b..3b7947b72d 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +Wed Jun 12 17:13:13 2002 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_move_resize): Fix bug + where if CENTER_ON_PARENT was set, but there was + no parent, GDK_HINT_POS would be set, resulting + in a dialog at 0,0. (#83479, Havoc Pennington) + Wed Jun 12 16:34:13 2002 Owen Taylor * gtk/gtkmenubar.c: When fetching the menubars for diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 86f5e7ec5b..3b7947b72d 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +Wed Jun 12 17:13:13 2002 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_move_resize): Fix bug + where if CENTER_ON_PARENT was set, but there was + no parent, GDK_HINT_POS would be set, resulting + in a dialog at 0,0. (#83479, Havoc Pennington) + Wed Jun 12 16:34:13 2002 Owen Taylor * gtk/gtkmenubar.c: When fetching the menubars for diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 9b91456190..f0b8b9fce9 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -4092,6 +4092,18 @@ gtk_window_compute_configure_request_size (GtkWindow *window, } } +static GtkWindowPosition +get_effective_position (GtkWindow *window) +{ + GtkWindowPosition pos = window->position; + if (pos == GTK_WIN_POS_CENTER_ON_PARENT && + (window->transient_parent == NULL || + !GTK_WIDGET_MAPPED (window->transient_parent))) + pos = GTK_WIN_POS_NONE; + + return pos; +} + static void gtk_window_compute_configure_request (GtkWindow *window, GdkRectangle *request, @@ -4120,12 +4132,7 @@ gtk_window_compute_configure_request (GtkWindow *window, parent_widget = (GtkWidget*) window->transient_parent; - pos = window->position; - if (pos == GTK_WIN_POS_CENTER_ON_PARENT && - (parent_widget == NULL || - !GTK_WIDGET_MAPPED (parent_widget))) - pos = GTK_WIN_POS_NONE; - + pos = get_effective_position (window); info = gtk_window_get_geometry_info (window, TRUE); /* by default, don't change position requested */ @@ -4452,7 +4459,7 @@ gtk_window_move_resize (GtkWindow *window) if ((configure_request_pos_changed || info->initial_pos_set || (window->need_default_position && - window->position != GTK_WIN_POS_NONE)) && + get_effective_position (window) != GTK_WIN_POS_NONE)) && (new_flags & GDK_HINT_POS) == 0) { new_flags |= GDK_HINT_POS;