diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/Makefile.am | 5 | ||||
-rw-r--r-- | gtk/gtklayout.c | 13 | ||||
-rw-r--r-- | gtk/gtkmain.c | 2 | ||||
-rw-r--r-- | gtk/gtkobject.c | 14 | ||||
-rw-r--r-- | gtk/gtktypeutils.h | 4 | ||||
-rw-r--r-- | gtk/gtkwidget.c | 2 | ||||
-rw-r--r-- | gtk/gtkwindow.c | 22 |
7 files changed, 34 insertions, 28 deletions
diff --git a/gtk/Makefile.am b/gtk/Makefile.am index a17e75d540..e81ee14863 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -312,8 +312,11 @@ libgtk_la_LDFLAGS = \ # $(top_builddir)/gdk/libgdk.la gtkconfdir = $(sysconfdir)/gtk -gtkconf_DATA = gtkrc.ja gtkrc.ko gtkrc.ru +gtkconf_DATA = gtkrc gtkrc.ja gtkrc.ko gtkrc.ru +gtkrc: + : + # We create a dummy theme for the default GTK+ theme install-data-local: diff --git a/gtk/gtklayout.c b/gtk/gtklayout.c index 8f4197f653..2b55613f2f 100644 --- a/gtk/gtklayout.c +++ b/gtk/gtklayout.c @@ -103,19 +103,6 @@ static GdkFilterReturn gtk_layout_main_filter (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data); -static gboolean gtk_layout_gravity_works (void); -static void gtk_layout_set_static_gravity (GdkWindow *win, - gboolean is_parent, - gboolean on); - -static void gtk_layout_add_child_cb (GdkWindow *parent, - GdkWindow *child, - gpointer data); -static void gtk_layout_remove_child_cb (GdkWindow *parent, - GdkWindow *child, - gpointer data); - - static GtkWidgetClass *parent_class = NULL; static gboolean gravity_works; diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 975e13f705..08f1e44120 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -178,6 +178,7 @@ gboolean gtk_init_check (int *argc, char ***argv) { + extern void gtk_object_post_arg_parsing_init (void); GSList *gtk_modules = NULL; GSList *slist; gchar *env_string = NULL; @@ -385,6 +386,7 @@ gtk_init_check (int *argc, gtk_colormap = gdk_colormap_get_system (); gtk_type_init (); + gtk_object_post_arg_parsing_init (); gtk_signal_init (); gtk_rc_init (); diff --git a/gtk/gtkobject.c b/gtk/gtkobject.c index 1a75dfaa0f..2c57960619 100644 --- a/gtk/gtkobject.c +++ b/gtk/gtkobject.c @@ -96,6 +96,15 @@ gtk_object_debug (void) } #endif /* G_ENABLE_DEBUG */ +void +gtk_object_post_arg_parsing_init (void) +{ +#ifdef G_ENABLE_DEBUG + if (gtk_debug_flags & GTK_DEBUG_OBJECTS) + g_atexit (gtk_object_debug); +#endif /* G_ENABLE_DEBUG */ +} + /**************************************************** * GtkObject type, class and instance initialization * @@ -119,11 +128,6 @@ gtk_object_init_type (void) object_type = gtk_type_unique (0, &object_info); g_assert (object_type == GTK_TYPE_OBJECT); - -#ifdef G_ENABLE_DEBUG - if (gtk_debug_flags & GTK_DEBUG_OBJECTS) - g_atexit (gtk_object_debug); -#endif /* G_ENABLE_DEBUG */ } GtkType diff --git a/gtk/gtktypeutils.h b/gtk/gtktypeutils.h index 1494fa9607..3e657b0cb6 100644 --- a/gtk/gtktypeutils.h +++ b/gtk/gtktypeutils.h @@ -107,9 +107,11 @@ typedef enum /* Determines whether `type_object' and `type_class' are a type of `otype'. */ #define GTK_CHECK_TYPE(type_object, otype) ( \ - gtk_type_is_a (((GtkTypeObject*) (type_object))->klass->type, (otype)) \ + ((GtkTypeObject*) (type_object)) != NULL && \ + GTK_CHECK_CLASS_TYPE (((GtkTypeObject*) (type_object))->klass, (otype)) \ ) #define GTK_CHECK_CLASS_TYPE(type_class, otype) ( \ + ((GtkTypeClass*) (type_class)) != NULL && \ gtk_type_is_a (((GtkTypeClass*) (type_class))->type, (otype)) \ ) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index cbaf6966e0..b4a2eacb78 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -2361,7 +2361,7 @@ gtk_widget_size_request (GtkWidget *widget, g_return_if_fail (GTK_IS_WIDGET (widget)); #ifdef G_ENABLE_DEBUG - if (!GTK_WIDGET_TOPLEVEL (widget) && (requisition == &widget->requisition)) + if (requisition == &widget->requisition) g_warning ("gtk_widget_size_request() called on child widget with widget equal\n to widget->requisition. gtk_widget_set_usize() may not work properly."); #endif /* G_ENABLE_DEBUG */ diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 20e2c98001..04ce74819a 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -1295,6 +1295,7 @@ gtk_window_move_resize (GtkWindow *window) { GtkWidget *widget; GtkWindowGeometryInfo *info; + GtkRequisition requisition; GtkContainer *container; gint x, y; gint width, height; @@ -1324,33 +1325,37 @@ gtk_window_move_resize (GtkWindow *window) else height = widget->requisition.height; - gtk_widget_size_request (widget, &widget->requisition); + size_changed = FALSE; - /* Figure out the new desired size */ + gtk_widget_size_request (widget, &requisition); - size_changed = FALSE; + size_changed |= requisition.width != widget->requisition.width; + size_changed |= requisition.height != widget->requisition.height; + widget->requisition = requisition; + + /* Figure out the new desired size */ if (info && info->width > 0) { - size_changed = size_changed || (width != info->last_width); + size_changed |= width != info->last_width; info->last_width = width; new_width = info->width; } else { - size_changed = size_changed || (width != widget->requisition.width); + size_changed |= width != widget->requisition.width; new_width = widget->requisition.width; } if (info && info->height > 0) { - size_changed = size_changed || (height != info->last_height); + size_changed |= height != info->last_height; info->last_height = height; new_height = info->height; } else { - size_changed = size_changed || (height != widget->requisition.height); + size_changed |= height != widget->requisition.height; new_height = widget->requisition.height; } @@ -1493,6 +1498,9 @@ gtk_window_move_resize (GtkWindow *window) allocation.height = new_height; gtk_widget_size_allocate (widget, &allocation); + gdk_window_resize (widget->window, + new_width, + new_height); } else { |