aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamon Chaplin <damon@helixcode.com>2000-06-06 04:02:55 +0800
committerDamon Chaplin <damon@src.gnome.org>2000-06-06 04:02:55 +0800
commitd847c51de4d285dffa9ccdf83320576e23d23047 (patch)
tree6c9c3dbc5cfc2683ca50ea0272d97cb9a6d1dc0c
parentb5d09823135a560ad4bb1dcaa3f15063e4291e0b (diff)
downloadgsoc2013-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
-rw-r--r--calendar/gui/e-day-view.c12
-rw-r--r--calendar/gui/e-week-view-event-item.c10
-rw-r--r--calendar/gui/e-week-view.c4
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);