aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-week-view.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2003-05-16 22:55:37 +0800
committerJP Rosevear <jpr@src.gnome.org>2003-05-16 22:55:37 +0800
commit0873f0f22e444543392653523c75dd1f9713d7d3 (patch)
tree670f266ddb842c7858dd78b9885b5bba4033f0e2 /calendar/gui/e-week-view.c
parent58c259ace11ebb84e898749e9b47c32e59e206cf (diff)
downloadgsoc2013-evolution-0873f0f22e444543392653523c75dd1f9713d7d3.tar
gsoc2013-evolution-0873f0f22e444543392653523c75dd1f9713d7d3.tar.gz
gsoc2013-evolution-0873f0f22e444543392653523c75dd1f9713d7d3.tar.bz2
gsoc2013-evolution-0873f0f22e444543392653523c75dd1f9713d7d3.tar.lz
gsoc2013-evolution-0873f0f22e444543392653523c75dd1f9713d7d3.tar.xz
gsoc2013-evolution-0873f0f22e444543392653523c75dd1f9713d7d3.tar.zst
gsoc2013-evolution-0873f0f22e444543392653523c75dd1f9713d7d3.zip
Fixes #41935
2003-05-15 JP Rosevear <jpr@ximian.com> Fixes #41935 * gui/e-week-view.c (e_week_view_init): listen for scroll events on the canvas (e_week_view_on_button_press): don't scroll here (e_week_view_on_scroll): scroll here * gui/e-day-view.c (e_day_view_init): listen for scroll events on the time and main canvases (e_day_view_on_main_canvas_button_press): don't scroll here (e_day_view_on_main_canvas_scroll): scroll here (e_day_view_on_time_canvas_scroll): and here svn path=/trunk/; revision=21210
Diffstat (limited to 'calendar/gui/e-week-view.c')
-rw-r--r--calendar/gui/e-week-view.c44
1 files changed, 30 insertions, 14 deletions
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index 2e83b2c6c7..5a7ea363c6 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -122,6 +122,9 @@ static gboolean e_week_view_on_button_press (GtkWidget *widget,
static gboolean e_week_view_on_button_release (GtkWidget *widget,
GdkEventButton *event,
EWeekView *week_view);
+static gboolean e_week_view_on_scroll (GtkWidget *widget,
+ GdkEventScroll *scroll,
+ EWeekView *week_view);
static gboolean e_week_view_on_motion (GtkWidget *widget,
GdkEventMotion *event,
EWeekView *week_view);
@@ -383,6 +386,8 @@ e_week_view_init (EWeekView *week_view)
G_CALLBACK (e_week_view_on_button_press), week_view);
g_signal_connect_after (week_view->main_canvas, "button_release_event",
G_CALLBACK (e_week_view_on_button_release), week_view);
+ g_signal_connect_after (week_view->main_canvas, "scroll_event",
+ G_CALLBACK (e_week_view_on_scroll), week_view);
g_signal_connect_after (week_view->main_canvas, "motion_notify_event",
G_CALLBACK (e_week_view_on_motion), week_view);
@@ -2213,20 +2218,6 @@ e_week_view_on_button_press (GtkWidget *widget,
g_print (" item is pressed\n");
#endif
- /* Handle scroll wheel events */
- if (event->button == 4 || event->button == 5) {
- GtkAdjustment *adj = GTK_RANGE (week_view->vscrollbar)->adjustment;
- gfloat new_value;
-
- new_value = adj->value + ((event->button == 4) ?
- -adj->page_increment:
- adj->page_increment);
- new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size);
- gtk_adjustment_set_value (adj, new_value);
-
- return TRUE;
- }
-
/* Convert the mouse position to a week & day. */
x = event->x;
y = event->y;
@@ -2303,6 +2294,31 @@ e_week_view_on_button_release (GtkWidget *widget,
return FALSE;
}
+static gboolean
+e_week_view_on_scroll (GtkWidget *widget,
+ GdkEventScroll *scroll,
+ EWeekView *week_view)
+{
+ GtkAdjustment *adj = GTK_RANGE (week_view->vscrollbar)->adjustment;
+ gfloat new_value;
+
+ switch (scroll->direction){
+ case GDK_SCROLL_UP:
+ new_value = adj->value - adj->page_increment;
+ break;
+ case GDK_SCROLL_DOWN:
+ new_value = adj->value + adj->page_increment;
+ break;
+ default:
+ return FALSE;
+ }
+
+ new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size);
+ gtk_adjustment_set_value (adj, new_value);
+
+ return TRUE;
+}
+
static gboolean
e_week_view_on_motion (GtkWidget *widget,