[gtk/wip/chergert/quartz4u] setup backpointer from NSWindow
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/chergert/quartz4u] setup backpointer from NSWindow
- Date: Wed, 29 Apr 2020 23:08:01 +0000 (UTC)
commit 90882d41a4eea69d61adaab6aeecfff57ffb84f0
Author: Christian Hergert <chergert redhat com>
Date: Wed Apr 29 15:42:11 2020 -0700
setup backpointer from NSWindow
gdk/macos/GdkMacosWindow.c | 13 ++++++++-----
gdk/macos/GdkMacosWindow.h | 1 +
gdk/macos/gdkmacossurface.c | 10 ++++++++++
3 files changed, 19 insertions(+), 5 deletions(-)
---
diff --git a/gdk/macos/GdkMacosWindow.c b/gdk/macos/GdkMacosWindow.c
index 2d370e221b..5eb47ab81c 100644
--- a/gdk/macos/GdkMacosWindow.c
+++ b/gdk/macos/GdkMacosWindow.c
@@ -293,12 +293,10 @@
styleMask:styleMask
backing:backingType
defer:flag
- screen:screen];
+ screen:screen];
[self setAcceptsMouseMovedEvents:YES];
-#if 0
[self setDelegate:self];
-#endif
[self setReleasedWhenClosed:YES];
return self;
@@ -337,14 +335,14 @@
case GDK_SURFACE_TYPE_HINT_POPUP_MENU:
case GDK_SURFACE_TYPE_HINT_COMBO:
return YES;
-
+
case GDK_SURFACE_TYPE_HINT_SPLASHSCREEN:
case GDK_SURFACE_TYPE_HINT_TOOLTIP:
case GDK_SURFACE_TYPE_HINT_NOTIFICATION:
case GDK_SURFACE_TYPE_HINT_DND:
return NO;
}
-
+
return YES;
#endif
@@ -642,4 +640,9 @@
[self setFrame:lastUnfullscreenFrame display:YES];
}
+-(void)setGdkSurface:(GdkMacosSurface *)surface
+{
+ self->gdkSurface = surface;
+}
+
@end
diff --git a/gdk/macos/GdkMacosWindow.h b/gdk/macos/GdkMacosWindow.h
index ab448be2db..8cc15116f1 100644
--- a/gdk/macos/GdkMacosWindow.h
+++ b/gdk/macos/GdkMacosWindow.h
@@ -53,6 +53,7 @@
-(void)hide;
-(BOOL)isInManualResizeOrMove;
-(BOOL)isInMove;
+-(void)setGdkSurface:(GdkMacosSurface *)surface;
-(void)setStyleMask:(NSWindowStyleMask)styleMask;
-(void)showAndMakeKey:(BOOL)makeKey;
-(BOOL)trackManualMove;
diff --git a/gdk/macos/gdkmacossurface.c b/gdk/macos/gdkmacossurface.c
index 26b05a34ea..7b469b3810 100644
--- a/gdk/macos/gdkmacossurface.c
+++ b/gdk/macos/gdkmacossurface.c
@@ -125,6 +125,7 @@ gdk_macos_surface_set_property (GObject *object,
{
case PROP_NATIVE:
priv->window = g_value_get_pointer (value);
+ [priv->window setGdkSurface:self];
break;
default:
@@ -239,10 +240,19 @@ _gdk_macos_surface_set_title (GdkMacosSurface *self,
{
GdkMacosSurfacePrivate *priv = gdk_macos_surface_get_instance_private (self);
+ g_return_if_fail (GDK_IS_MACOS_SURFACE (self));
+
+ if (title == NULL)
+ title = "";
+
if (g_strcmp0 (priv->title, title) != 0)
{
g_free (priv->title);
priv->title = g_strdup (title);
+
+ GDK_BEGIN_MACOS_ALLOC_POOL;
+ [priv->window setTitle:[NSString stringWithUTF8String:title]];
+ GDK_END_MACOS_ALLOC_POOL;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]