user32: Handle ctrl + end in edit control.
diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c
index e367e6e..a5265e9 100644
--- a/dlls/user32/edit.c
+++ b/dlls/user32/edit.c
@@ -211,7 +211,7 @@
 static BOOL	EDIT_MakeFit(EDITSTATE *es, UINT size);
 static BOOL	EDIT_MakeUndoFit(EDITSTATE *es, UINT size);
 static void	EDIT_MoveBackward(EDITSTATE *es, BOOL extend);
-static void	EDIT_MoveEnd(EDITSTATE *es, BOOL extend);
+static void	EDIT_MoveEnd(EDITSTATE *es, BOOL extend, BOOL ctrl);
 static void	EDIT_MoveForward(EDITSTATE *es, BOOL extend);
 static void	EDIT_MoveHome(EDITSTATE *es, BOOL extend, BOOL ctrl);
 static void	EDIT_MoveWordBackward(EDITSTATE *es, BOOL extend);
@@ -2012,13 +2012,13 @@
  *	EDIT_MoveEnd
  *
  */
-static void EDIT_MoveEnd(EDITSTATE *es, BOOL extend)
+static void EDIT_MoveEnd(EDITSTATE *es, BOOL extend, BOOL ctrl)
 {
 	BOOL after_wrap = FALSE;
 	INT e;
 
 	/* Pass a high value in x to make sure of receiving the end of the line */
-	if (es->style & ES_MULTILINE)
+	if (!ctrl && (es->style & ES_MULTILINE))
 		e = EDIT_CharFromPos(es, 0x3fffffff,
 			HIWORD(EDIT_EM_PosFromChar(es, es->selection_end, es->flags & EF_AFTER_WRAP)), &after_wrap);
 	else
@@ -4568,7 +4568,7 @@
 		EDIT_MoveHome(es, shift, control);
 		break;
 	case VK_END:
-		EDIT_MoveEnd(es, shift);
+		EDIT_MoveEnd(es, shift, control);
 		break;
 	case VK_PRIOR:
 		if (es->style & ES_MULTILINE)
@@ -4598,7 +4598,7 @@
 				} else if (control) {
 					/* delete to end of line */
 					EDIT_EM_SetSel(es, (UINT)-1, 0, FALSE);
-					EDIT_MoveEnd(es, TRUE);
+					EDIT_MoveEnd(es, TRUE, FALSE);
 					EDIT_WM_Clear(es);
 				} else {
 					/* delete character right of caret */