rpms/evolution/devel evolution-2.2.2-commit-enter-on-calendar.patch, NONE, 1.1 evolution.spec, 1.71, 1.72

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu May 26 05:49:02 UTC 2005


Author: dmalcolm

Update of /cvs/dist/rpms/evolution/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv30405

Modified Files:
	evolution.spec 
Added Files:
	evolution-2.2.2-commit-enter-on-calendar.patch 
Log Message:
* Thu May 26 2005 David Malcolm <dmalcolm at redhat.com> - 2.2.2-7
- Added Akira Tagoh's patch for calendar keypress handling (#154360)



evolution-2.2.2-commit-enter-on-calendar.patch:
 e-day-view.c  |  102 +++++++++++++++++++++++++++++++++++++++-------------------
 e-week-view.c |   68 +++++++++++++++++++++++++++-----------
 2 files changed, 118 insertions(+), 52 deletions(-)

--- NEW FILE evolution-2.2.2-commit-enter-on-calendar.patch ---
--- orig/calendar/gui/e-day-view.c
+++ mod/calendar/gui/e-day-view.c
@@ -336,6 +336,10 @@
 					    gint event_num,
 					    gchar *initial_text);
 static void e_day_view_stop_editing_event (EDayView *day_view);
+static gboolean e_day_view_text_keypress (GnomeCanvasItem *item,
+					  guint             keyval,
+					  guint             state,
+					  EDayView         *day_view);
 static gboolean e_day_view_on_text_item_event (GnomeCanvasItem *item,
 					       GdkEvent *event,
 					       EDayView *day_view);
@@ -4322,6 +4326,8 @@
 				  G_CALLBACK (e_day_view_on_text_item_event), day_view);
 		g_signal_emit_by_name (G_OBJECT(day_view),
 				       "event_added", event);
+		g_signal_connect (event->canvas_item, "keypress",
+				  G_CALLBACK (e_day_view_text_keypress), day_view);
 
 		e_day_view_update_long_event_label (day_view, event_num);
 	}
@@ -4503,6 +4509,8 @@
 					  G_CALLBACK (e_day_view_on_text_item_event), day_view);
 			g_signal_emit_by_name (G_OBJECT(day_view),
 					       "event_added", event);
+			g_signal_connect (event->canvas_item, "keypress",
+					  G_CALLBACK (e_day_view_text_keypress), day_view);
 
 			e_day_view_update_event_label (day_view, day, event_num);
 		}
@@ -5622,44 +5630,72 @@
 
 
 static gboolean
+e_day_view_text_keypress (GnomeCanvasItem *item,
+			  guint            keyval,
+			  guint            state,
+			  EDayView        *day_view)
+{
+	gboolean retval = FALSE;
+
+	if (keyval == GDK_Return) {
+		EText *text = E_TEXT (item);
+		gint new_pos = 0;
+
+		/*
+		 * HACK: last character which should be \n needs to be deleted
+		 * here so that GDK_Return was already processed on EText
+		 * before E_TEXT_KEYPRESS event is emitted.
+		 */
+		if (text->selection_end >= 1)
+			new_pos = text->selection_end - 1;
+
+		text->selection_end = e_text_model_validate_position (text->model, new_pos);
+		e_text_delete_selection (text);
+
+		day_view->resize_event_num = -1;
+
+		/* We set the keyboard focus to the EDayView, so the
+		   EText item loses it and stops the edit. */
+		gtk_widget_grab_focus (GTK_WIDGET (day_view));
+
+		/* Stop the signal last or we will also stop any
+		   other events getting to the EText item. */
+		gtk_signal_emit_stop_by_name (GTK_OBJECT (item),
+					      "event");
+
+		retval = TRUE;
+	} else if (keyval == GDK_Escape) {
+		cancel_editing (day_view);
+		gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
+		/* focus should go to day view when stop editing */
+		gtk_widget_grab_focus (GTK_WIDGET (day_view));
+
+		retval = TRUE;
+	} else if ((keyval == GDK_Up)
+		   && (state & GDK_SHIFT_MASK)
+		   && (state & GDK_CONTROL_MASK)
+		   && (state & GDK_MOD1_MASK)) {
+		e_day_view_change_event_end_time_up (day_view);
+
+		retval = TRUE;
+	} else if ((keyval == GDK_Down)
+		   && (state & GDK_SHIFT_MASK)
+		   && (state & GDK_CONTROL_MASK)
+		   && (state & GDK_MOD1_MASK)) {
+		e_day_view_change_event_end_time_down (day_view);
+
+		retval = TRUE;
+	}
+
+	return retval;
+}
+
+static gboolean
 e_day_view_on_text_item_event (GnomeCanvasItem *item,
 			       GdkEvent *event,
 			       EDayView *day_view)
 {
 	switch (event->type) {
-	case GDK_KEY_PRESS:
-		if (event && event->key.keyval == GDK_Return) {
-			day_view->resize_event_num = -1;
-
-			/* We set the keyboard focus to the EDayView, so the
-			   EText item loses it and stops the edit. */
-			gtk_widget_grab_focus (GTK_WIDGET (day_view));
-
-			/* Stop the signal last or we will also stop any
-			   other events getting to the EText item. */
-			gtk_signal_emit_stop_by_name (GTK_OBJECT (item),
-						      "event");
-			return TRUE;
-		} else if (event->key.keyval == GDK_Escape) {
-			cancel_editing (day_view);
-			gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
-			/* focus should go to day view when stop editing */
-			gtk_widget_grab_focus (GTK_WIDGET (day_view));
-			return TRUE;
-               } else if ((event->key.keyval == GDK_Up)
-                          && (event->key.state & GDK_SHIFT_MASK)
-                          && (event->key.state & GDK_CONTROL_MASK)
-                          && (event->key.state & GDK_MOD1_MASK)) {
-                       e_day_view_change_event_end_time_up (day_view);
-                       return TRUE;
-               } else if ((event->key.keyval == GDK_Down)
-                          && (event->key.state & GDK_SHIFT_MASK)
-                          && (event->key.state & GDK_CONTROL_MASK)
-                          && (event->key.state & GDK_MOD1_MASK)) {
-                       e_day_view_change_event_end_time_down (day_view);
-                       return TRUE;
-		}
-		break;
 	case GDK_2BUTTON_PRESS:
 #if 0
 		g_print ("Item got double-click\n");
--- orig/calendar/gui/e-week-view.c
+++ mod/calendar/gui/e-week-view.c
@@ -175,6 +175,10 @@
 						const gchar *uid,
 						EWeekViewForeachEventCallback callback,
 						gpointer data);
+static gboolean e_week_view_text_keypress (GnomeCanvasItem *item,
+					   guint            keyval,
+					   guint            state,
+					   EWeekView       *week_view);
 static gboolean e_week_view_on_text_item_event (GnomeCanvasItem *item,
 						GdkEvent *event,
 						EWeekView *week_view);
@@ -2640,6 +2644,8 @@
 				  week_view);
 		g_signal_emit_by_name (G_OBJECT(week_view),
 				       "event_added", event);
+		g_signal_connect (span->text_item, "keypress",
+				  G_CALLBACK (e_week_view_text_keypress), week_view);
 
 	}
 
@@ -2897,6 +2903,49 @@
 }
 
 static gboolean
+e_week_view_text_keypress (GnomeCanvasItem *item,
+			   guint            keyval,
+			   guint            state,
+			   EWeekView       *week_view)
+{
+	gboolean retval = FALSE;
+
+	if (keyval == GDK_Return) {
+		EText *text = E_TEXT (item);
+		gint new_pos = 0;
+
+		/*
+		 * HACK: last charater which should be \n needs to be deleted
+		 * here so that GDK_Return was already processed on EText
+		 * before E_TEXT_KEYPRESS event is emitted.
+		 */
+		if (text->selection_end >= 1)
+			new_pos = text->selection_end - 1;
+
+		text->selection_end = e_text_model_validate_position (text->model, new_pos);
+		e_text_delete_selection (text);
+
+		/* We set the keyboard focus to the EDayView, so the
+		   EText item loses it and stops the edit. */
+		gtk_widget_grab_focus (GTK_WIDGET (week_view));
+
+		/* Stop the signal last or we will also stop any
+		   other events getting to the EText item. */
+		gtk_signal_emit_stop_by_name (GTK_OBJECT (item),
+					      "event");
+		retval = TRUE;
+	} else if (keyval == GDK_Escape) {
+		cancel_editing (week_view);
+		gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
+		/* focus should go to week view when stop editing */
+		gtk_widget_grab_focus (GTK_WIDGET (week_view));
+		retval = TRUE;
+	}
+
+	return retval;
+}
+
+static gboolean
 e_week_view_on_text_item_event (GnomeCanvasItem *item,
 				GdkEvent *gdkevent,
 				EWeekView *week_view)
@@ -2909,25 +2958,6 @@
 #endif
 
 	switch (gdkevent->type) {
-	case GDK_KEY_PRESS:
-		if (gdkevent && gdkevent->key.keyval == GDK_Return) {
-			/* We set the keyboard focus to the EDayView, so the
-			   EText item loses it and stops the edit. */
-			gtk_widget_grab_focus (GTK_WIDGET (week_view));
-
-			/* Stop the signal last or we will also stop any
-			   other events getting to the EText item. */
-			gtk_signal_emit_stop_by_name (GTK_OBJECT (item),
-						      "event");
-			return TRUE;
-		} else if (gdkevent->key.keyval == GDK_Escape) {
-			cancel_editing (week_view);
-			gtk_signal_emit_stop_by_name (GTK_OBJECT (item), "event");
-			/* focus should go to week view when stop editing */
-			gtk_widget_grab_focus (GTK_WIDGET (week_view));
-			return TRUE;
-		}
-		break;
 	case GDK_2BUTTON_PRESS:
 		if (!e_week_view_find_event_from_item (week_view, item,
 						       &event_num, &span_num))


Index: evolution.spec
===================================================================
RCS file: /cvs/dist/rpms/evolution/devel/evolution.spec,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -r1.71 -r1.72
--- evolution.spec	23 May 2005 20:05:39 -0000	1.71
+++ evolution.spec	26 May 2005 05:49:00 -0000	1.72
@@ -28,7 +28,7 @@
 
 Name: evolution
 Version: 2.2.2
-Release: 6
+Release: 7
 License: GPL
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 URL: http://www.ximian.com/
@@ -52,6 +52,9 @@
 
 Patch105: evolution-2.2.2-fix-new-mail-notify.patch
 
+# Fix for RH bug #154360:
+Patch106: evolution-2.2.2-commit-enter-on-calendar.patch
+
 # not accepted, but proposed on a few occasions.  fixes problems with
 # some cyrus servers
 #Patch200: evolution-1.4.5-imap-command-length.patch
@@ -169,6 +172,7 @@
 
 %patch104 -p1 -b .port-to-pilot-link-0.12
 %patch105 -p1 -b .fix-new-mail-notify
+%patch106 -p1 -b .commit-enter-on-calendar
 
 #patch200 -p1 -b .commandlength
 
@@ -334,6 +338,9 @@
 %{_libdir}/evolution/%{evo_major}/*.so
 
 %changelog
+* Thu May 26 2005 David Malcolm <dmalcolm at redhat.com> - 2.2.2-7
+- Added Akira Tagoh's patch for calendar keypress handling (#154360)
+
 * Mon May 23 2005 David Malcolm <dmalcolm at redhat.com> - 2.2.2-6
 - Remove static versions of libraries
 




More information about the fedora-cvs-commits mailing list