aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/misc/e-reflow.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@ximian.com>2001-12-05 05:03:28 +0800
committerChris Lahey <clahey@src.gnome.org>2001-12-05 05:03:28 +0800
commit410f3bc629f38cb76a5d16209a07e2c336ed1f9f (patch)
tree8ca2b834f5c5bff158d6e76ea2e27ef4826bf71c /widgets/misc/e-reflow.c
parente508d293964edda19447e713a2503e3133e84161 (diff)
downloadgsoc2013-evolution-410f3bc629f38cb76a5d16209a07e2c336ed1f9f.tar.gz
gsoc2013-evolution-410f3bc629f38cb76a5d16209a07e2c336ed1f9f.tar.zst
gsoc2013-evolution-410f3bc629f38cb76a5d16209a07e2c336ed1f9f.zip
Merging changes:
2001-12-04 Christopher James Lahey <clahey@ximian.com> * configure.in (GAL_CURRENT): Bumped version number to 0.18.99.0 and CURRENT to 19. 2001-11-21 Christopher James Lahey <clahey@ximian.com> * gal/widgets/e-reflow.c, gal/widgets/e-reflow.h: Handle selection_row_changed signal. * gal/widgets/e-selection-model-array.c, gal/widgets/e-selection-model-array.h: Properly send selection_row_changed signals if changing from a single row selected to a single other row selected or if moving the selection_end by a single row. * gal/widgets/e-selection-model.c, gal/widgets/e-selection-model.h: Added selection_row_changed signal. (e_selection_model_select_as_key_press): Fixed the case statement here to make MULTIPLE and EXTENDED the same as BROWSE instead of as SINGLE. From gal/e-table/ChangeLog: 2001-11-21 Christopher James Lahey <clahey@ximian.com> * e-table-item.c, e-table-item.h: Handle selection_row_changed signal. Keep track of the old cursor row so that we only redraw two rows when the cursor changes. * e-table.c, e-tree.c: Handle selection_row_changed signal. * e-tree-selection-model.c: Properly send selection_row_changed signals if changing from a single row selected to a single other row selected or if moving the selection_end by a single row. svn path=/trunk/; revision=14870
Diffstat (limited to 'widgets/misc/e-reflow.c')
-rw-r--r--widgets/misc/e-reflow.c40
1 files changed, 29 insertions, 11 deletions
diff --git a/widgets/misc/e-reflow.c b/widgets/misc/e-reflow.c
index 6287ce45ad..ed83956232 100644
--- a/widgets/misc/e-reflow.c
+++ b/widgets/misc/e-reflow.c
@@ -117,6 +117,22 @@ e_reflow_resize_children (GnomeCanvasItem *item)
}
}
+static inline void
+e_reflow_update_selection_row (EReflow *reflow, int row)
+{
+ if (reflow->items[row]) {
+ gtk_object_set(GTK_OBJECT(reflow->items[row]),
+ "selected", e_selection_model_is_row_selected(E_SELECTION_MODEL(reflow->selection), row),
+ NULL);
+ } else if (e_selection_model_is_row_selected (E_SELECTION_MODEL (reflow->selection), row)) {
+ reflow->items[row] = e_reflow_model_incarnate (reflow->model, row, GNOME_CANVAS_GROUP (reflow));
+ gtk_object_set (GTK_OBJECT (reflow->items[row]),
+ "selected", e_selection_model_is_row_selected(E_SELECTION_MODEL(reflow->selection), row),
+ "width", (double) reflow->column_width,
+ NULL);
+ }
+}
+
static void
e_reflow_update_selection (EReflow *reflow)
{
@@ -125,17 +141,7 @@ e_reflow_update_selection (EReflow *reflow)
count = reflow->count;
for (i = 0; i < count; i++) {
- if (reflow->items[i]) {
- gtk_object_set(GTK_OBJECT(reflow->items[i]),
- "selected", e_selection_model_is_row_selected(E_SELECTION_MODEL(reflow->selection), i),
- NULL);
- } else if (e_selection_model_is_row_selected (E_SELECTION_MODEL (reflow->selection), i)) {
- reflow->items[i] = e_reflow_model_incarnate (reflow->model, i, GNOME_CANVAS_GROUP (reflow));
- gtk_object_set (GTK_OBJECT (reflow->items[i]),
- "selected", e_selection_model_is_row_selected(E_SELECTION_MODEL(reflow->selection), i),
- "width", (double) reflow->column_width,
- NULL);
- }
+ e_reflow_update_selection_row (reflow, i);
}
}
@@ -146,6 +152,12 @@ selection_changed (ESelectionModel *selection, EReflow *reflow)
}
static void
+selection_row_changed (ESelectionModel *selection, int row, EReflow *reflow)
+{
+ e_reflow_update_selection_row (reflow, row);
+}
+
+static void
cursor_changed (ESelectionModel *selection, int row, int col, EReflow *reflow)
{
int count = reflow->count;
@@ -453,10 +465,13 @@ disconnect_selection (EReflow *reflow)
gtk_signal_disconnect (GTK_OBJECT (reflow->selection),
reflow->selection_changed_id);
gtk_signal_disconnect (GTK_OBJECT (reflow->selection),
+ reflow->selection_row_changed_id);
+ gtk_signal_disconnect (GTK_OBJECT (reflow->selection),
reflow->cursor_changed_id);
gtk_object_unref (GTK_OBJECT (reflow->selection));
reflow->selection_changed_id = 0;
+ reflow->selection_row_changed_id = 0;
reflow->cursor_changed_id = 0;
reflow->selection = NULL;
}
@@ -1308,6 +1323,9 @@ e_reflow_init (EReflow *reflow)
reflow->selection_changed_id =
gtk_signal_connect(GTK_OBJECT(reflow->selection), "selection_changed",
GTK_SIGNAL_FUNC(selection_changed), reflow);
+ reflow->selection_row_changed_id =
+ gtk_signal_connect(GTK_OBJECT(reflow->selection), "selection_row_changed",
+ GTK_SIGNAL_FUNC(selection_row_changed), reflow);
reflow->cursor_changed_id =
gtk_signal_connect(GTK_OBJECT(reflow->selection), "cursor_changed",
GTK_SIGNAL_FUNC(cursor_changed), reflow);