aboutsummaryrefslogtreecommitdiffstats
path: root/modules/calendar/e-cal-shell-content.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2013-06-21 21:56:34 +0800
committerMilan Crha <mcrha@redhat.com>2013-06-21 21:56:34 +0800
commit4a101290fdb546296f7bc0a9a34ba342e741895a (patch)
tree3a5cecac900e672a87f2865a8288f30dbeea4c34 /modules/calendar/e-cal-shell-content.c
parent97c70105b71adc9b7cb9f4db15bf44f98133a82c (diff)
downloadgsoc2013-evolution-4a101290fdb546296f7bc0a9a34ba342e741895a.tar
gsoc2013-evolution-4a101290fdb546296f7bc0a9a34ba342e741895a.tar.gz
gsoc2013-evolution-4a101290fdb546296f7bc0a9a34ba342e741895a.tar.bz2
gsoc2013-evolution-4a101290fdb546296f7bc0a9a34ba342e741895a.tar.lz
gsoc2013-evolution-4a101290fdb546296f7bc0a9a34ba342e741895a.tar.xz
gsoc2013-evolution-4a101290fdb546296f7bc0a9a34ba342e741895a.tar.zst
gsoc2013-evolution-4a101290fdb546296f7bc0a9a34ba342e741895a.zip
Calendar views inline text edit with Ctrl+C/V/X does not work
The shortcuts Ctrl+C/V/X are used for whole calendar items copy/paste/cut, not for text when editing event details inline, either in a day/week view or in a list view. By tracking the is-editing property of respective cell editor and using it when enabling/disabling clipboard actions makes the respective text operations work as expected.
Diffstat (limited to 'modules/calendar/e-cal-shell-content.c')
-rw-r--r--modules/calendar/e-cal-shell-content.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/modules/calendar/e-cal-shell-content.c b/modules/calendar/e-cal-shell-content.c
index 545287dc29..38724aca3e 100644
--- a/modules/calendar/e-cal-shell-content.c
+++ b/modules/calendar/e-cal-shell-content.c
@@ -316,6 +316,16 @@ gc_get_default_time (ECalModel *model,
}
static void
+cal_shell_content_is_editing_changed_cb (gpointer cal_view_tasks_memos_table,
+ GParamSpec *param,
+ EShellView *shell_view)
+{
+ g_return_if_fail (E_IS_SHELL_VIEW (shell_view));
+
+ e_shell_view_update_actions (shell_view);
+}
+
+static void
cal_shell_content_constructed (GObject *object)
{
ECalShellContentPrivate *priv;
@@ -396,6 +406,9 @@ cal_shell_content_constructed (GObject *object)
for (ii = 0; ii < GNOME_CAL_LAST_VIEW; ii++) {
calendar_view = gnome_calendar_get_calendar_view (calendar, ii);
+ g_signal_connect (calendar_view, "notify::is-editing",
+ G_CALLBACK (cal_shell_content_is_editing_changed_cb), shell_view);
+
gtk_notebook_append_page (
GTK_NOTEBOOK (container),
GTK_WIDGET (calendar_view), NULL);
@@ -450,6 +463,9 @@ cal_shell_content_constructed (GObject *object)
G_CALLBACK (e_cal_shell_view_taskpad_open_task),
shell_view);
+ g_signal_connect (widget, "notify::is-editing",
+ G_CALLBACK (cal_shell_content_is_editing_changed_cb), shell_view);
+
container = priv->vpaned;
widget = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
@@ -492,6 +508,9 @@ cal_shell_content_constructed (GObject *object)
G_CALLBACK (e_cal_shell_view_memopad_open_memo),
shell_view);
+ g_signal_connect (widget, "notify::is-editing",
+ G_CALLBACK (cal_shell_content_is_editing_changed_cb), shell_view);
+
/* Load the view instance. */
view_instance = e_shell_view_new_view_instance (shell_view, NULL);