diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h index e9428d0..8bd02d7 100644 --- a/gdk/gdkwindow.h +++ b/gdk/gdkwindow.h @@ -724,6 +724,8 @@ void gdk_window_remove_redirection (GdkWindow *window); /* NSView embedding */ gboolean gdk_window_supports_nsview_embedding (); +gboolean gdk_window_has_embedded_nsview_focus (GdkWindow *window); +void gdk_window_set_has_embedded_nsview_focus (GdkWindow *window, gboolean value); #ifndef GDK_DISABLE_DEPRECATED #ifndef GDK_MULTIHEAD_SAFE diff --git a/gdk/quartz/GdkQuartzWindow.c b/gdk/quartz/GdkQuartzWindow.c index b6b794e..124427e 100644 --- a/gdk/quartz/GdkQuartzWindow.c +++ b/gdk/quartz/GdkQuartzWindow.c @@ -247,6 +247,15 @@ } } + if (responder != NULL && [responder isKindOfClass: [NSTextView class]]) + { + gdk_window_set_has_embedded_nsview_focus (window, TRUE); + } + else + { + gdk_window_set_has_embedded_nsview_focus (window, FALSE); + } + return [super makeFirstResponder:responder]; } diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c index 050139a..cd5cc26 100644 --- a/gdk/quartz/gdkwindow-quartz.c +++ b/gdk/quartz/gdkwindow-quartz.c @@ -895,6 +895,24 @@ gdk_window_supports_nsview_embedding () return TRUE; } +gboolean +gdk_window_has_embedded_nsview_focus (GdkWindow *window) +{ + GdkWindowObject *private = GDK_WINDOW_OBJECT (window); + GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (private->impl); + + return impl->has_nsview_focus; +} + +void +gdk_window_set_has_embedded_nsview_focus (GdkWindow *window, gboolean value) +{ + GdkWindowObject *private = GDK_WINDOW_OBJECT (window); + GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (private->impl); + + impl->has_nsview_focus = value; +} + void _gdk_window_impl_new (GdkWindow *window, GdkWindow *real_parent, diff --git a/gdk/quartz/gdkwindow-quartz.h b/gdk/quartz/gdkwindow-quartz.h index f35238b..b619914 100644 --- a/gdk/quartz/gdkwindow-quartz.h +++ b/gdk/quartz/gdkwindow-quartz.h @@ -61,6 +61,7 @@ struct _GdkWindowImplQuartz GList *sorted_children; GdkRegion *needs_display_region; + gboolean has_nsview_focus; }; struct _GdkWindowImplQuartzClass