diff options
author | Damon Chaplin <damon@helixcode.com> | 2000-06-06 04:02:55 +0800 |
---|---|---|
committer | Damon Chaplin <damon@src.gnome.org> | 2000-06-06 04:02:55 +0800 |
commit | d847c51de4d285dffa9ccdf83320576e23d23047 (patch) | |
tree | 6c9c3dbc5cfc2683ca50ea0272d97cb9a6d1dc0c /calendar | |
parent | b5d09823135a560ad4bb1dcaa3f15063e4291e0b (diff) | |
download | gsoc2013-evolution-d847c51de4d285dffa9ccdf83320576e23d23047.tar.gz gsoc2013-evolution-d847c51de4d285dffa9ccdf83320576e23d23047.tar.zst gsoc2013-evolution-d847c51de4d285dffa9ccdf83320576e23d23047.zip |
allow the right button to popup the menu, even when the event is being
2000-06-05 Damon Chaplin <damon@helixcode.com>
* 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
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/gui/e-day-view.c | 12 | ||||
-rw-r--r-- | calendar/gui/e-week-view-event-item.c | 10 | ||||
-rw-r--r-- | 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); |