1 diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c
2 index ee7dc96..f4ae401 100644
3 --- a/gdk/quartz/gdkevents-quartz.c
4 +++ b/gdk/quartz/gdkevents-quartz.c
5 @@ -1826,6 +1826,33 @@ gdk_event_translate (GdkEvent *event,
6 NSView *tmp_view = [nswindow firstResponder];
7 gboolean gtk_child = FALSE;
9 + if (event_type == NSKeyDown && ([nsevent modifierFlags] & NSCommandKeyMask) != 0 && [[nsevent characters] characterAtIndex:0] == 'z')
11 + if ([tmp_view respondsToSelector:@selector(undoManager)])
13 + NSUndoManager *undo_manager = [tmp_view undoManager];
15 + if (([nsevent modifierFlags] & NSShiftKeyMask) != 0)
17 + if ([undo_manager canRedo])
19 + [undo_manager redo];
26 + if ([undo_manager canUndo])
28 + [undo_manager undo];
36 while (tmp_view != NULL)
38 if (tmp_view && [tmp_view respondsToSelector:@selector(isGtkView)])
39 diff --git a/gtk/gtknsview.c b/gtk/gtknsview.c
40 index 71fd917..182c82d 100644
43 @@ -742,11 +742,6 @@ gtk_ns_view_key_press (GtkWidget *widget,
45 switch (event->keyval)
47 - case GDK_KEY_z: /* undo */
48 - if ([[text_view undoManager] canUndo])
49 - [[text_view undoManager] undo];
52 case GDK_KEY_c: /* copy */
54 [text_view copy: text_view];