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. --- widgets/table/e-table-group-container.c | 2 +- widgets/table/e-table-item.c | 79 +++++++++++++++++++++------------ 2 files changed, 52 insertions(+), 29 deletions(-) (limited to 'widgets/table') diff --git a/widgets/table/e-table-group-container.c b/widgets/table/e-table-group-container.c index cf8aae1aff..0af5dc8b98 100644 --- a/widgets/table/e-table-group-container.c +++ b/widgets/table/e-table-group-container.c @@ -1040,7 +1040,7 @@ etgc_reflow (GnomeCanvasItem *item, gint flags) if (frozen) return; - if (GTK_OBJECT_FLAGS(etgc)& GNOME_CANVAS_ITEM_REALIZED) { + if (item->flags & GNOME_CANVAS_ITEM_REALIZED) { gdouble running_height = 0; gdouble running_width = 0; gdouble old_height; diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c index 381f0cd24c..2d88258be9 100644 --- a/widgets/table/e-table-item.c +++ b/widgets/table/e-table-item.c @@ -343,12 +343,15 @@ eti_free_save_state (ETableItem *eti) static void eti_realize_cell_views ( ETableItem *eti) { + GnomeCanvasItem *item; gint i; + item = GNOME_CANVAS_ITEM (eti); + if (eti->cell_views_realized) return; - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) return; for (i = 0; i < eti->n_cells; i++) @@ -673,7 +676,11 @@ height_cache_idle(ETableItem *eti) static void free_height_cache (ETableItem *eti) { - if (GNOME_CANVAS_ITEM_REALIZED & GTK_OBJECT_FLAGS (eti)) { + GnomeCanvasItem *item; + + item = GNOME_CANVAS_ITEM (eti); + + if (item->flags & GNOME_CANVAS_ITEM_REALIZED) { if (eti->height_cache) g_free (eti->height_cache); eti->height_cache = NULL; @@ -909,9 +916,12 @@ eti_request_region_show (ETableItem *eti, static void eti_show_cursor (ETableItem *eti, gint delay) { + GnomeCanvasItem *item; gint cursor_row; - if (!((GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED) && eti->cell_views_realized)) + item = GNOME_CANVAS_ITEM (eti); + + if (!((item->flags & GNOME_CANVAS_ITEM_REALIZED) && eti->cell_views_realized)) return; if (eti->frozen_count > 0) { @@ -940,17 +950,13 @@ eti_show_cursor (ETableItem *eti, gint delay) static void eti_check_cursor_bounds (ETableItem *eti) { + GnomeCanvasItem *item; gint x1, y1, x2, y2; gint cursor_row; - if (!((GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED) && eti->cell_views_realized)) - return; - - if (eti->frozen_count > 0) { - return; - } + item = GNOME_CANVAS_ITEM (eti); - if (!((GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED) && eti->cell_views_realized)) + if (!((item->flags & GNOME_CANVAS_ITEM_REALIZED) && eti->cell_views_realized)) return; if (eti->frozen_count > 0) { @@ -1089,7 +1095,9 @@ eti_table_model_no_change (ETableModel *table_model, ETableItem *eti) static void eti_table_model_changed (ETableModel *table_model, ETableItem *eti) { - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) { + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); + + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) { eti_unfreeze (eti); return; } @@ -1111,7 +1119,9 @@ eti_table_model_changed (ETableModel *table_model, ETableItem *eti) static void eti_table_model_row_changed (ETableModel *table_model, gint row, ETableItem *eti) { - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) { + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); + + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) { eti_unfreeze (eti); return; } @@ -1129,7 +1139,9 @@ eti_table_model_row_changed (ETableModel *table_model, gint row, ETableItem *eti static void eti_table_model_cell_changed (ETableModel *table_model, gint col, gint row, ETableItem *eti) { - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) { + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); + + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) { eti_unfreeze (eti); return; } @@ -1147,7 +1159,9 @@ eti_table_model_cell_changed (ETableModel *table_model, gint col, gint row, ETab static void eti_table_model_rows_inserted (ETableModel *table_model, gint row, gint count, ETableItem *eti) { - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) { + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); + + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) { eti_unfreeze (eti); return; } @@ -1174,7 +1188,9 @@ eti_table_model_rows_inserted (ETableModel *table_model, gint row, gint count, E static void eti_table_model_rows_deleted (ETableModel *table_model, gint row, gint count, ETableItem *eti) { - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) { + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); + + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) { eti_unfreeze (eti); return; } @@ -1428,11 +1444,10 @@ eti_dispose (GObject *object) static void eti_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - ETableItem *eti; + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (object); + ETableItem *eti = E_TABLE_ITEM (object); gint cursor_col; - eti = E_TABLE_ITEM (object); - switch (prop_id) { case PROP_TABLE_HEADER: eti_remove_header_model (eti); @@ -1481,7 +1496,7 @@ eti_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpe if ((eti->minimum_width == eti->width && g_value_get_double(value) > eti->width) || g_value_get_double(value) < eti->width) { eti->needs_compute_width = 1; - e_canvas_item_request_reflow (GNOME_CANVAS_ITEM(eti)); + e_canvas_item_request_reflow (item); } eti->minimum_width = g_value_get_double (value); break; @@ -1495,18 +1510,18 @@ eti_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpe case PROP_UNIFORM_ROW_HEIGHT: if (eti->uniform_row_height != g_value_get_boolean (value)) { eti->uniform_row_height = g_value_get_boolean (value); - if (GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED) { + if (item->flags & GNOME_CANVAS_ITEM_REALIZED) { free_height_cache(eti); eti->needs_compute_height = 1; - e_canvas_item_request_reflow (GNOME_CANVAS_ITEM (eti)); + e_canvas_item_request_reflow (item); eti->needs_redraw = 1; - gnome_canvas_item_request_update (GNOME_CANVAS_ITEM (eti)); + gnome_canvas_item_request_update (item); } } break; } eti->needs_redraw = 1; - gnome_canvas_item_request_update (GNOME_CANVAS_ITEM(eti)); + gnome_canvas_item_request_update (item); } static void @@ -2765,7 +2780,9 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e) static void eti_style_set (ETableItem *eti, GtkStyle *previous_style) { - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); + + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) return; if (eti->cell_views_realized) { @@ -3074,9 +3091,10 @@ e_table_item_get_focused_column (ETableItem *eti) static void eti_cursor_change (ESelectionModel *selection, gint row, gint col, ETableItem *eti) { + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); gint view_row; - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) return; view_row = model_to_view_row(eti, row); @@ -3112,10 +3130,11 @@ eti_cursor_change (ESelectionModel *selection, gint row, gint col, ETableItem *e static void eti_cursor_activated (ESelectionModel *selection, gint row, gint col, ETableItem *eti) { + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); gint view_row; gint view_col; - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) return; view_row = model_to_view_row(eti, row); @@ -3143,7 +3162,9 @@ eti_cursor_activated (ESelectionModel *selection, gint row, gint col, ETableItem static void eti_selection_change (ESelectionModel *selection, ETableItem *eti) { - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); + + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) return; eti->needs_redraw = TRUE; @@ -3153,7 +3174,9 @@ eti_selection_change (ESelectionModel *selection, ETableItem *eti) static void eti_selection_row_change (ESelectionModel *selection, gint row, ETableItem *eti) { - if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED)) + GnomeCanvasItem *item = GNOME_CANVAS_ITEM (eti); + + if (!(item->flags & GNOME_CANVAS_ITEM_REALIZED)) return; if (!eti->needs_redraw) { -- cgit v1.2.3