Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.1802.2.23
diff -u -r1.1802.2.23 ChangeLog
--- ChangeLog	6 Aug 2003 02:39:57 -0000	1.1802.2.23
+++ ChangeLog	12 Aug 2003 03:13:04 -0000
@@ -1,3 +1,9 @@
+2003-08-12  Andrew Wu <andrew.wu@sun.com>
+
+	* gui/e-calendar-table.c: Alt+o to open task.
+	* gui/e-day-view.c: e_day_view_on_open_event  replaces e_day_view_on_event_double_click.
+	* gui/e-week-view.c: (e_week_view_on_open_event) new function, Alt+o to open event.
+
 2003-08-05  Jack Jia  <jack.jia@sun.com>
 
 	* gui/dialogs/event-page.glade: changed one of the "Con_fidential" to 
Index: gui/e-calendar-table.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-calendar-table.c,v
retrieving revision 1.91
diff -u -r1.91 e-calendar-table.c
--- gui/e-calendar-table.c	25 Jun 2003 16:08:57 -0000	1.91
+++ gui/e-calendar-table.c	12 Aug 2003 03:13:06 -0000
@@ -1169,6 +1169,10 @@
 	if (event->keyval == GDK_Delete) {
 		delete_cb (NULL, cal_table);
 		return TRUE;
+	} else if ((event->keyval == GDK_o)
+		   &&(event->state & GDK_MOD1_MASK)) {
+		open_task_by_row (cal_table, row);
+		return TRUE;
 	}
 
 	return FALSE;
Index: gui/e-day-view.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-day-view.c,v
retrieving revision 1.198.2.4
diff -u -r1.198.2.4 e-day-view.c
--- gui/e-day-view.c	16 Jul 2003 09:18:25 -0000	1.198.2.4
+++ gui/e-day-view.c	12 Aug 2003 03:13:12 -0000
@@ -262,7 +262,7 @@
 				       EDayViewPosition pos,
 				       gint		event_x,
 				       gint		event_y);
-static void e_day_view_on_event_double_click (EDayView *day_view,
+static void e_day_view_on_open_event (EDayView *day_view,
 					      gint day,
 					      gint event_num);
 static void e_day_view_on_event_right_click (EDayView *day_view,
@@ -3290,8 +3290,7 @@
 							event_x, event_y);
 			return TRUE;
 		} else if (event->type == GDK_2BUTTON_PRESS) {
-			e_day_view_on_event_double_click (day_view, -1,
-							  event_num);
+			e_day_view_on_open_event (day_view, E_DAY_VIEW_LONG_EVENT, event_num);
 			gtk_signal_emit_stop_by_name (GTK_OBJECT (day_view->top_canvas),
 						      "button_press_event");
 			return TRUE;
@@ -3339,8 +3338,7 @@
 						   event_x, event_y);
 			return TRUE;
 		} else if (event->type == GDK_2BUTTON_PRESS) {
-			e_day_view_on_event_double_click (day_view, day,
-							  event_num);
+			e_day_view_on_open_event (day_view, day, event_num);
 			gtk_signal_emit_stop_by_name (GTK_OBJECT (day_view->main_canvas),
 						      "button_press_event");
 			return TRUE;
@@ -3620,16 +3618,16 @@
 	gnome_canvas_item_show (day_view->resize_bar_item);
 }
 
-
+/* open a dialog to edit the event */
 static void
-e_day_view_on_event_double_click (EDayView *day_view,
+e_day_view_on_open_event (EDayView *day_view,
 				  gint day,
 				  gint event_num)
 {
 	EDayViewEvent *event;
 	gboolean destroyed;
 
-	if (day == -1)
+	if (day == E_DAY_VIEW_LONG_EVENT)
 		event = &g_array_index (day_view->long_events, EDayViewEvent,
 					event_num);
 	else 
@@ -6472,6 +6470,12 @@
 			gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
 			/* focus should go to day view when stop editing */
 			gtk_widget_grab_focus (GTK_WIDGET (day_view));
+			return TRUE;
+		} else  if ((event->key.keyval == GDK_o)
+			    &&(event->key.state & GDK_MOD1_MASK)) {
+			e_day_view_on_open_event (day_view, 
+						  day_view->editing_event_day, 
+						  day_view->editing_event_num);
 			return TRUE;
 		}
 		break;
Index: gui/e-week-view.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-week-view.c,v
retrieving revision 1.165.2.3
diff -u -r1.165.2.3 e-week-view.c
--- gui/e-week-view.c	1 Jul 2003 02:16:42 -0000	1.165.2.3
+++ gui/e-week-view.c	12 Aug 2003 03:13:17 -0000
@@ -179,6 +179,7 @@
 static gboolean e_week_view_on_text_item_event (GnomeCanvasItem *item,
 						GdkEvent *event,
 						EWeekView *week_view);
+static gboolean e_week_view_on_open_event (GnomeCanvasItem *item, EWeekView *week_view);
 static gboolean e_week_view_on_jump_button_event (GnomeCanvasItem *item,
 						  GdkEvent *event,
 						  EWeekView *week_view);
@@ -3175,7 +3176,6 @@
 				GdkEvent *gdkevent,
 				EWeekView *week_view)
 {
-	EWeekViewEvent *event;
 	gint event_num, span_num;
 
 #if 0
@@ -3200,24 +3200,14 @@
 			/* focus should go to week view when stop editing */
 			gtk_widget_grab_focus (GTK_WIDGET (week_view));
 			return TRUE;
+		} else  if ((gdkevent->key.keyval == GDK_o)
+			&&(gdkevent->key.state & GDK_MOD1_MASK)) {
+			return e_week_view_on_open_event (item, week_view);
+
 		}
 		break;
 	case GDK_2BUTTON_PRESS:
-		if (!e_week_view_find_event_from_item (week_view, item,
-						       &event_num, &span_num))
-			return FALSE;
-
-		event = &g_array_index (week_view->events, EWeekViewEvent,
-					event_num);
-
-		if (week_view->calendar)
-			gnome_calendar_edit_object (week_view->calendar,
-						    event->comp, FALSE);
-		else
-			g_warning ("Calendar not set");
-
-		gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
-		return TRUE;
+		return e_week_view_on_open_event (item, week_view);
 	case GDK_BUTTON_PRESS:
 		if (!e_week_view_find_event_from_item (week_view, item,
 						       &event_num, &span_num))
@@ -3312,6 +3302,32 @@
 	}
 
 	return FALSE;
+}
+
+/* open a dialog to edit the event */
+static gboolean e_week_view_on_open_event (GnomeCanvasItem *item,
+					   EWeekView *week_view)
+{
+	EWeekViewEvent *event;
+	gint event_num, span_num;
+	GnomeCalendar *calendar;
+
+	calendar = week_view->calendar;
+
+	if (!e_week_view_find_event_from_item (week_view, item,
+					       &event_num, &span_num))
+		return FALSE;
+
+	event = &g_array_index (week_view->events, EWeekViewEvent,
+				event_num);
+
+	if (calendar)
+		gnome_calendar_edit_object (calendar, event->comp, FALSE);
+	else
+		g_warning ("Calendar not set");
+
+	gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
+	return TRUE;
 }
 
 
