diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c index ee7dc96..f4ae401 100644 --- a/gdk/quartz/gdkevents-quartz.c +++ b/gdk/quartz/gdkevents-quartz.c @@ -1826,6 +1826,33 @@ gdk_event_translate (GdkEvent *event, NSView *tmp_view = [nswindow firstResponder]; gboolean gtk_child = FALSE; + if (event_type == NSKeyDown && ([nsevent modifierFlags] & NSCommandKeyMask) != 0 && [[nsevent characters] characterAtIndex:0] == 'z') + { + if ([tmp_view respondsToSelector:@selector(undoManager)]) + { + NSUndoManager *undo_manager = [tmp_view undoManager]; + + if (([nsevent modifierFlags] & NSShiftKeyMask) != 0) + { + if ([undo_manager canRedo]) + { + [undo_manager redo]; + return_val = FALSE; + break; + } + } + else + { + if ([undo_manager canUndo]) + { + [undo_manager undo]; + return_val = FALSE; + break; + } + } + } + } + while (tmp_view != NULL) { if (tmp_view && [tmp_view respondsToSelector:@selector(isGtkView)]) diff --git a/gtk/gtknsview.c b/gtk/gtknsview.c index 71fd917..182c82d 100644 --- a/gtk/gtknsview.c +++ b/gtk/gtknsview.c @@ -742,11 +742,6 @@ gtk_ns_view_key_press (GtkWidget *widget, switch (event->keyval) { - case GDK_KEY_z: /* undo */ - if ([[text_view undoManager] canUndo]) - [[text_view undoManager] undo]; - return TRUE; - case GDK_KEY_c: /* copy */ if (has_selection) [text_view copy: text_view];