aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@ximian.com>2001-07-11 17:05:09 +0800
committerChris Lahey <clahey@src.gnome.org>2001-07-11 17:05:09 +0800
commit73a6f3a7fa96bdfde9136d3b4a80d0f7f8150f87 (patch)
treea1447a8310d080accc03cdb214e32679b1074664 /widgets
parent96496c1392cea9179b9bfbf2b6895e69a6dd13af (diff)
downloadgsoc2013-evolution-73a6f3a7fa96bdfde9136d3b4a80d0f7f8150f87.tar.gz
gsoc2013-evolution-73a6f3a7fa96bdfde9136d3b4a80d0f7f8150f87.tar.zst
gsoc2013-evolution-73a6f3a7fa96bdfde9136d3b4a80d0f7f8150f87.zip
Use e_selection_model_do_something directly for page up and page down
2001-07-11 Christopher James Lahey <clahey@ximian.com> * e-table.c (group_key_press), e-tree.c (item_key_press): Use e_selection_model_do_something directly for page up and page down instead of emulating a key press. svn path=/trunk/; revision=10990
Diffstat (limited to 'widgets')
-rw-r--r--widgets/table/e-table.c49
-rw-r--r--widgets/table/e-tree.c48
2 files changed, 33 insertions, 64 deletions
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c
index 4474d3e093..dca3a74049 100644
--- a/widgets/table/e-table.c
+++ b/widgets/table/e-table.c
@@ -480,43 +480,28 @@ group_key_press (ETableGroup *etg, int row, int col, GdkEvent *event, ETable *et
{
int return_val = 0;
GdkEventKey *key = (GdkEventKey *) event;
- GdkEventButton click;
+ int y, row_local, col_local;
+ GtkAdjustment *vadj;
+
switch (key->keyval) {
case GDK_Page_Down:
- gtk_adjustment_set_value(
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas)),
- CLAMP(gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas))->value +
- (gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas))->page_size - 20),
- 0,
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas))->upper -
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas))->page_size));
- click.type = GDK_BUTTON_PRESS;
- click.window = GTK_LAYOUT (et->table_canvas)->bin_window;
- click.send_event = key->send_event;
- click.time = key->time;
- click.x = 30;
- click.y = gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas))->page_size - 1;
- click.state = key->state;
- click.button = 1;
- gtk_widget_event(GTK_WIDGET(et->table_canvas),
- (GdkEvent *) &click);
+ vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas));
+ y = CLAMP(vadj->value + (2 * vadj->page_size - 20), 0, vadj->upper);
+ y -= vadj->value;
+ e_table_get_cell_at (et, 30, y, &row_local, &col_local);
+ row_local = e_table_view_to_model_row (et, row_local);
+ col_local = e_selection_model_cursor_col(E_SELECTION_MODEL (et->selection));
+ e_selection_model_do_something(E_SELECTION_MODEL (et->selection), row_local, col_local, key->state);
return_val = 1;
break;
case GDK_Page_Up:
- gtk_adjustment_set_value(
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas)),
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas))->value -
- (gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas))->page_size - 20));
- click.type = GDK_BUTTON_PRESS;
- click.window = GTK_LAYOUT (et->table_canvas)->bin_window;
- click.send_event = key->send_event;
- click.time = key->time;
- click.x = 30;
- click.y = 1;
- click.state = key->state;
- click.button = 1;
- gtk_widget_event(GTK_WIDGET(et->table_canvas),
- (GdkEvent *) &click);
+ vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas));
+ y = CLAMP(vadj->value - (vadj->page_size - 20), 0, vadj->upper);
+ y -= vadj->value;
+ e_table_get_cell_at (et, 30, y, &row_local, &col_local);
+ row_local = e_table_view_to_model_row (et, row_local);
+ col_local = e_selection_model_cursor_col(E_SELECTION_MODEL (et->selection));
+ e_selection_model_do_something(E_SELECTION_MODEL (et->selection), row_local, col_local, key->state);
return_val = 1;
break;
default:
diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c
index 7823c055f9..5064e582c6 100644
--- a/widgets/table/e-tree.c
+++ b/widgets/table/e-tree.c
@@ -528,45 +528,29 @@ item_key_press (ETableItem *eti, int row, int col, GdkEvent *event, ETree *et)
{
int return_val = 0;
GdkEventKey *key = (GdkEventKey *) event;
- GdkEventButton click;
ETreePath path;
+ int y, row_local, col_local;
+ GtkAdjustment *vadj;
switch (key->keyval) {
case GDK_Page_Down:
- gtk_adjustment_set_value(
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas)),
- CLAMP(gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas))->value +
- (gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas))->page_size - 20),
- 0,
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas))->upper -
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas))->page_size));
- click.type = GDK_BUTTON_PRESS;
- click.window = GTK_LAYOUT (et->priv->table_canvas)->bin_window;
- click.send_event = key->send_event;
- click.time = key->time;
- click.x = 30;
- click.y = gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas))->page_size - 1;
- click.state = key->state;
- click.button = 1;
- gtk_widget_event(GTK_WIDGET(et->priv->table_canvas),
- (GdkEvent *) &click);
+ vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas));
+ y = CLAMP(vadj->value + (2 * vadj->page_size - 20), 0, vadj->upper);
+ y -= vadj->value;
+ e_tree_get_cell_at (et, 30, y, &row_local, &col_local);
+ row_local = e_tree_view_to_model_row (et, row_local);
+ col_local = e_selection_model_cursor_col(E_SELECTION_MODEL (et->priv->selection));
+ e_selection_model_do_something(E_SELECTION_MODEL (et->priv->selection), row_local, col_local, key->state);
return_val = 1;
break;
case GDK_Page_Up:
- gtk_adjustment_set_value(
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas)),
- gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas))->value -
- (gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas))->page_size - 20));
- click.type = GDK_BUTTON_PRESS;
- click.window = GTK_LAYOUT (et->priv->table_canvas)->bin_window;
- click.send_event = key->send_event;
- click.time = key->time;
- click.x = 30;
- click.y = 1;
- click.state = key->state;
- click.button = 1;
- gtk_widget_event(GTK_WIDGET(et->priv->table_canvas),
- (GdkEvent *) &click);
+ vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas));
+ y = CLAMP(vadj->value - (vadj->page_size - 20), 0, vadj->upper);
+ y -= vadj->value;
+ e_tree_get_cell_at (et, 30, y, &row_local, &col_local);
+ row_local = e_tree_view_to_model_row (et, row_local);
+ col_local = e_selection_model_cursor_col(E_SELECTION_MODEL (et->priv->selection));
+ e_selection_model_do_something(E_SELECTION_MODEL (et->priv->selection), row_local, col_local, key->state);
return_val = 1;
break;
case '=':
b567135'>Remove USE_GNOMENG.marcus2003-04-201-1/+0 * De-pkg-comment.knu2003-02-212-1/+1 * o Rollback PORTCOMMENT modifications while this feature's implementationlioux2002-11-112-2/+1 * Use PORTCOMMENT in the Makefile, and whack the pkg-comment.adamw2002-11-072-1/+2 * find->${FIND},xargs->${XARGS}ijliao2002-09-291-2/+2 * Deploy USE_GNOMENG infrastructurelioux2002-08-301-3/+4 * Chase shlib rev of devel/gettextade2002-08-021-1/+1 * Replace ${PERL} with ${REINPLACE_CMD}ijliao2002-06-221-3/+4 * gettext upgrade uber-patch (stage 3)ade2002-04-131-1/+2 * Stage 1 of gettext update.ade2002-03-161-1/+1 * Update to 0.9.27dwcjr2001-09-045-67/+28 * Update to 0.9.27kevlo2000-12-163-19/+8 * Update to version 0.9.26kevlo2000-12-028-107/+93 * Update all ports using OpenSSL and RSA to work without rsaref sincekris2000-09-221-9/+2 * (1) Add new variable, XFREE86_VERSION, to specify which version ofasami2000-08-031-1/+1