diff options
author | Havoc Pennington <hp@pobox.com> | 2010-09-05 12:11:47 -0400 |
---|---|---|
committer | Havoc Pennington <hp@pobox.com> | 2010-09-12 13:12:16 -0400 |
commit | 6c780fa93b592dbca39207353204e873a0a98ad5 (patch) | |
tree | d37afdb4f31f1a25206dc18f9fc1f10f881df33d | |
parent | 3cd07cb78c6b583ddf386a5c25fef733dfc5d942 (diff) | |
download | gtk+-6c780fa93b592dbca39207353204e873a0a98ad5.tar.gz |
add _gtk_widget_get_aux_info_or_defaults()
This is better than peeking aux info then testing != NULL
in several ways:
- it returns const aux info so if we don't create we can't write
- it ensures that the default we assume if aux_info is NULL is
the same as the default we set if we've created the aux info
- it avoids typing in != NULL checks
-rw-r--r-- | gtk/gtkwidget.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 77b37ec7f5..cd6404ac31 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -359,6 +359,7 @@ static gint gtk_widget_event_internal (GtkWidget *widget, GdkEvent *event); static gboolean gtk_widget_real_mnemonic_activate (GtkWidget *widget, gboolean group_cycling); +static const GtkWidgetAuxInfo* _gtk_widget_get_aux_info_or_defaults (GtkWidget *widget); static void gtk_widget_aux_info_destroy (GtkWidgetAuxInfo *aux_info); static AtkObject* gtk_widget_real_get_accessible (GtkWidget *widget); static void gtk_widget_accessible_interface_init (AtkImplementorIface *iface); @@ -9555,6 +9556,10 @@ gtk_widget_propagate_state (GtkWidget *widget, } } +static const GtkWidgetAuxInfo default_aux_info = { + -1, -1 +}; + /* * _gtk_widget_get_aux_info: * @widget: a #GtkWidget @@ -9576,8 +9581,7 @@ _gtk_widget_get_aux_info (GtkWidget *widget, { aux_info = g_slice_new0 (GtkWidgetAuxInfo); - aux_info->width = -1; - aux_info->height = -1; + *aux_info = default_aux_info; g_object_set_qdata (G_OBJECT (widget), quark_aux_info, aux_info); } @@ -9585,6 +9589,21 @@ _gtk_widget_get_aux_info (GtkWidget *widget, return aux_info; } +static const GtkWidgetAuxInfo* +_gtk_widget_get_aux_info_or_defaults (GtkWidget *widget) +{ + GtkWidgetAuxInfo *aux_info; + + aux_info = _gtk_widget_get_aux_info (widget, FALSE); + if (aux_info == NULL) + { + return &default_aux_info; + } + else + { + return aux_info; + } +} /***************************************** * gtk_widget_aux_info_destroy: |