6bdd276d05
Former-commit-id: fd56571888259555122d8a0f58c68838229cea2b
75 lines
2.2 KiB
Diff
75 lines
2.2 KiB
Diff
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
|