From c2c89fcb8cfa5661e94de5e57c7dbc80c3342ede Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 13 Jan 2010 12:50:49 -0500 Subject: Fix all remaining GTK3 issues. Work around the issue of GnomeCanvasItem amending its own flags to GtkObject::flags (which is sealed) by giving it its own flags field. This breaks libgnomecanvas ABI and API, but I see no other way. This commit didn't work the first time because gnome-pilot libraries were still pulling in the system-wide libgnomecanvas, and that was interfereing with our bundled version which has a different ABI. But gnome-pilot integration was dropped in the previous commit, so everything is now using the bundled libgnomecanvas. --- addressbook/gui/widgets/e-minicard-label.c | 4 +++- addressbook/gui/widgets/e-minicard.c | 14 ++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) (limited to 'addressbook/gui') diff --git a/addressbook/gui/widgets/e-minicard-label.c b/addressbook/gui/widgets/e-minicard-label.c index 0eb166bcf3..5c1eba1f43 100644 --- a/addressbook/gui/widgets/e-minicard-label.c +++ b/addressbook/gui/widgets/e-minicard-label.c @@ -414,7 +414,9 @@ e_minicard_label_resize_children(EMinicardLabel *e_minicard_label) static void set_colors (EMinicardLabel *label) { - if ((GTK_OBJECT_FLAGS (label) & GNOME_CANVAS_ITEM_REALIZED)) { + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (label); + + if ((item->flags & GNOME_CANVAS_ITEM_REALIZED)) { GnomeCanvas *canvas; GtkStyle *style; diff --git a/addressbook/gui/widgets/e-minicard.c b/addressbook/gui/widgets/e-minicard.c index 213d600746..92a415b88f 100644 --- a/addressbook/gui/widgets/e-minicard.c +++ b/addressbook/gui/widgets/e-minicard.c @@ -321,7 +321,7 @@ e_minicard_set_property (GObject *object, guint prop_id, const GValue *value, G if (e_minicard->width != g_value_get_double (value)) { e_minicard->width = g_value_get_double (value); e_minicard_resize_children(e_minicard); - if (GTK_OBJECT_FLAGS( e_minicard ) & GNOME_CANVAS_ITEM_REALIZED) + if (item->flags & GNOME_CANVAS_ITEM_REALIZED) e_canvas_item_request_reflow(item); } break; @@ -467,7 +467,9 @@ e_minicard_finalize (GObject *object) static void e_minicard_style_set (EMinicard *minicard, GtkStyle *previous_style) { - if ((GTK_OBJECT_FLAGS( minicard ) & GNOME_CANVAS_ITEM_REALIZED)) + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (minicard); + + if ((item->flags & GNOME_CANVAS_ITEM_REALIZED)) set_selected (minicard, minicard->selected); } @@ -910,9 +912,12 @@ get_left_width (EMinicard *e_minicard, gboolean is_list) static void remodel( EMinicard *e_minicard ) { + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (e_minicard); gint count = 0; - if (!(GTK_OBJECT_FLAGS( e_minicard ) & GNOME_CANVAS_ITEM_REALIZED)) + + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) return; + if (e_minicard->contact) { EContactField field; GList *list; @@ -1012,7 +1017,8 @@ static void e_minicard_reflow(GnomeCanvasItem *item, gint flags) { EMinicard *e_minicard = E_MINICARD(item); - if (GTK_OBJECT_FLAGS (e_minicard) & GNOME_CANVAS_ITEM_REALIZED) { + + if (item->flags & GNOME_CANVAS_ITEM_REALIZED) { GList *list; gdouble text_height; gint old_height; -- cgit v1.2.3