aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/gui/calendar-commands.c4
-rw-r--r--calendar/gui/dialogs/comp-editor-util.c1
-rw-r--r--calendar/gui/e-day-view.c2
-rw-r--r--modules/calendar/e-cal-shell-content.c9
4 files changed, 13 insertions, 3 deletions
diff --git a/calendar/gui/calendar-commands.c b/calendar/gui/calendar-commands.c
index e849bf2e0b..32bf54ea85 100644
--- a/calendar/gui/calendar-commands.c
+++ b/calendar/gui/calendar-commands.c
@@ -209,7 +209,7 @@ sensitize_items(BonoboUIComponent *uic, struct _sensitize_item *items, guint32 m
}
static struct _sensitize_item taskpad_sensitize_table[] = {
- { "Cut", E_CAL_MENU_SELECT_EDITABLE },
+ { "Cut", E_CAL_MENU_SELECT_EDITABLE | E_CAL_MENU_SELECT_ANY },
{ "Copy", E_CAL_MENU_SELECT_ANY },
{ "Paste", E_CAL_MENU_SELECT_EDITABLE },
{ "Delete", E_CAL_MENU_SELECT_EDITABLE },
@@ -245,7 +245,7 @@ sensitize_taskpad_commands (GnomeCalendar *gcal, BonoboControl *control, gboolea
t = e_cal_menu_target_new_select(menu, model, events);
if (!enable)
- t->target.mask = ~0;
+ t->target.mask = ~((~t->target.mask) & E_CAL_MENU_SELECT_EDITABLE);
sensitize_items(uic, taskpad_sensitize_table, t->target.mask);
}
diff --git a/calendar/gui/dialogs/comp-editor-util.c b/calendar/gui/dialogs/comp-editor-util.c
index d8e05ca0df..6fc05d4a92 100644
--- a/calendar/gui/dialogs/comp-editor-util.c
+++ b/calendar/gui/dialogs/comp-editor-util.c
@@ -35,7 +35,6 @@
#include "e-util/e-binding.h"
#include "widgets/misc/e-dateedit.h"
#include "../calendar-config.h"
-#include "../e-date-edit-config.h"
#include "../itip-utils.h"
#include "comp-editor-util.h"
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index 75f7f7a12a..879155fe85 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -2112,9 +2112,11 @@ e_day_view_remove_event_cb (EDayView *day_view,
if (day == E_DAY_VIEW_LONG_EVENT) {
g_array_remove_index (day_view->long_events, event_num);
day_view->long_events_need_layout = TRUE;
+ gtk_widget_grab_focus (GTK_WIDGET (day_view->top_canvas));
} else {
g_array_remove_index (day_view->events[day], event_num);
day_view->need_layout[day] = TRUE;
+ gtk_widget_grab_focus (GTK_WIDGET (day_view->main_canvas));
}
return TRUE;
}
diff --git a/modules/calendar/e-cal-shell-content.c b/modules/calendar/e-cal-shell-content.c
index 7a8e659cbb..4409c1fc08 100644
--- a/modules/calendar/e-cal-shell-content.c
+++ b/modules/calendar/e-cal-shell-content.c
@@ -177,6 +177,9 @@ cal_shell_content_get_focus_location (ECalShellContent *cal_shell_content)
if (GNOME_CANVAS (day_view->main_canvas)->focused_item != NULL)
return FOCUS_CALENDAR;
+ if (GTK_WIDGET_HAS_FOCUS (day_view))
+ return FOCUS_CALENDAR;
+
} else if (E_IS_WEEK_VIEW (calendar_view)) {
EWeekView *week_view = E_WEEK_VIEW (calendar_view);
@@ -186,12 +189,18 @@ cal_shell_content_get_focus_location (ECalShellContent *cal_shell_content)
if (GNOME_CANVAS (week_view->main_canvas)->focused_item != NULL)
return FOCUS_CALENDAR;
+ if (GTK_WIDGET_HAS_FOCUS (week_view))
+ return FOCUS_CALENDAR;
+
} else if (E_IS_CAL_LIST_VIEW (calendar_view)) {
ECalListView *list_view = E_CAL_LIST_VIEW (widget);
table = e_table_scrolled_get_table (list_view->table_scrolled);
if (GTK_WIDGET_HAS_FOCUS (table))
return FOCUS_CALENDAR;
+
+ if (GTK_WIDGET_HAS_FOCUS (list_view))
+ return FOCUS_CALENDAR;
}
return FOCUS_OTHER;