1a5504dbcda53a3f32db390eede644b76af0453d
[mono.git] / bockbuild / mac-sdk / patches / gtk / gtknsview-only-unset-first-responder-if-it-is-our-view.patch
1 commit f35387716481b79c353f098cb80ded665bd7d399
2 Author: Cody Russell <cody@jhu.edu>
3 Date:   Sat Feb 28 11:27:07 2015 -0600
4
5     GtkNSView should only unset the first responder if either it is
6     our embedded view or if our toplevel window is no longer focused.
7
8 diff --git a/gtk/gtknsview.c b/gtk/gtknsview.c
9 index b325bda..645231d 100644
10 --- a/gtk/gtknsview.c
11 +++ b/gtk/gtknsview.c
12 @@ -534,6 +534,7 @@ gtk_ns_view_notify (GObject    *object,
13                      GParamSpec *pspec)
14  {
15    GtkNSView *ns_view = GTK_NS_VIEW (object);
16 +  GtkWindow *window = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (object)));
17
18    if (G_OBJECT_CLASS (gtk_ns_view_parent_class)->notify)
19      G_OBJECT_CLASS (gtk_ns_view_parent_class)->notify (object, pspec);
20 @@ -550,7 +551,7 @@ gtk_ns_view_notify (GObject    *object,
21
22        if (gtk_widget_has_focus (GTK_WIDGET (object)))
23          [ns_window makeFirstResponder:ns_view->priv->view];
24 -      else
25 +      else if ([ns_window firstResponder] == ns_view->priv->view || !gtk_window_is_active (window))
26          [ns_window makeFirstResponder:nil];
27      }
28  }