From d847c51de4d285dffa9ccdf83320576e23d23047 Mon Sep 17 00:00:00 2001 From: Damon Chaplin Date: Mon, 5 Jun 2000 20:02:55 +0000 Subject: allow the right button to popup the menu, even when the event is being 2000-06-05 Damon Chaplin * gui/e-week-view-event-item.c (e_week_view_event_item_button_press): allow the right button to popup the menu, even when the event is being edited. * gui/e-week-view.c: * gui/e-day-view.c: Set the keyboard focus to the EDayView/EWeekView when the right button is clicked, so that any event being edited is saved before any action (e.g. opening the Event Editor dialog) is started. Note that this won't work if we switch to asynchronous notification. svn path=/trunk/; revision=3427 --- calendar/gui/e-day-view.c | 12 ++++++++++++ calendar/gui/e-week-view-event-item.c | 10 ++++++---- calendar/gui/e-week-view.c | 4 ++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 891c378816..fde159dab1 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -1819,6 +1819,9 @@ e_day_view_on_top_canvas_button_press (GtkWidget *widget, e_day_view_start_selection (day_view, day, -1); } } else if (event->button == 3) { + if (!GTK_WIDGET_HAS_FOCUS (day_view)) + gtk_widget_grab_focus (GTK_WIDGET (day_view)); + e_day_view_on_event_right_click (day_view, event, -1, -1); } @@ -1923,6 +1926,9 @@ e_day_view_on_main_canvas_button_press (GtkWidget *widget, e_day_view_start_selection (day_view, day, row); } } else if (event->button == 3) { + if (!GTK_WIDGET_HAS_FOCUS (day_view)) + gtk_widget_grab_focus (GTK_WIDGET (day_view)); + e_day_view_on_event_right_click (day_view, event, -1, -1); } @@ -1950,6 +1956,9 @@ e_day_view_on_long_event_button_press (EDayView *day_view, return TRUE; } } else if (event->button == 3) { + if (!GTK_WIDGET_HAS_FOCUS (day_view)) + gtk_widget_grab_focus (GTK_WIDGET (day_view)); + e_day_view_on_event_right_click (day_view, event, E_DAY_VIEW_LONG_EVENT, event_num); @@ -1980,6 +1989,9 @@ e_day_view_on_event_button_press (EDayView *day_view, return TRUE; } } else if (event->button == 3) { + if (!GTK_WIDGET_HAS_FOCUS (day_view)) + gtk_widget_grab_focus (GTK_WIDGET (day_view)); + e_day_view_on_event_right_click (day_view, event, day, event_num); return TRUE; diff --git a/calendar/gui/e-week-view-event-item.c b/calendar/gui/e-week-view-event-item.c index c50acabadf..8b4aea1d2d 100644 --- a/calendar/gui/e-week-view-event-item.c +++ b/calendar/gui/e-week-view-event-item.c @@ -653,11 +653,11 @@ e_week_view_event_item_button_press (EWeekViewEventItem *wveitem, week_view->pressed_event_num = wveitem->event_num; week_view->pressed_span_num = wveitem->span_num; - /* Ignore clicks on the event while editing. */ - if (E_TEXT (span->text_item)->editing) - return FALSE; - if (bevent->button.button == 1) { + /* Ignore clicks on the event while editing. */ + if (E_TEXT (span->text_item)->editing) + return FALSE; + /* Remember the item clicked and the mouse position, so we can start a drag if the mouse moves. */ week_view->drag_event_x = bevent->button.x; @@ -666,6 +666,8 @@ e_week_view_event_item_button_press (EWeekViewEventItem *wveitem, /* FIXME: Remember the day offset from the start of the event. */ } else if (bevent->button.button == 3) { + if (!GTK_WIDGET_HAS_FOCUS (week_view)) + gtk_widget_grab_focus (GTK_WIDGET (week_view)); e_week_view_show_popup_menu (week_view, (GdkEventButton*) bevent, wveitem->event_num); diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index 8eb053e28b..c09d3fc541 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -1353,6 +1353,8 @@ e_week_view_on_button_press (GtkWidget *widget, gtk_widget_queue_draw (week_view->main_canvas); } } else if (event->button == 3) { + if (!GTK_WIDGET_HAS_FOCUS (week_view)) + gtk_widget_grab_focus (GTK_WIDGET (week_view)); e_week_view_show_popup_menu (week_view, event, -1); } @@ -2227,6 +2229,8 @@ e_week_view_on_text_item_event (GnomeCanvasItem *item, return FALSE; if (event->button.button == 3) { + if (!GTK_WIDGET_HAS_FOCUS (week_view)) + gtk_widget_grab_focus (GTK_WIDGET (week_view)); e_week_view_show_popup_menu (week_view, (GdkEventButton*) event, event_num); -- cgit