[gtk/wip/chergert/quartz4u] macos: set resizeable properly for layout
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/chergert/quartz4u] macos: set resizeable properly for layout
- Date: Tue, 19 May 2020 01:34:50 +0000 (UTC)
commit 243b501686e90d95406f40e125e3c7b3c3436472
Author: Christian Hergert <chergert redhat com>
Date: Mon May 18 18:30:07 2020 -0700
macos: set resizeable properly for layout
gdk/macos/gdkmacostoplevelsurface.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/gdk/macos/gdkmacostoplevelsurface.c b/gdk/macos/gdkmacostoplevelsurface.c
index b7edf14ed9..3c9002ca7f 100644
--- a/gdk/macos/gdkmacostoplevelsurface.c
+++ b/gdk/macos/gdkmacostoplevelsurface.c
@@ -98,26 +98,36 @@ _gdk_macos_toplevel_surface_present (GdkToplevel *toplevel,
GdkToplevelLayout *layout)
{
GdkMacosToplevelSurface *self = (GdkMacosToplevelSurface *)toplevel;
- NSWindow *window = _gdk_macos_surface_get_native (GDK_MACOS_SURFACE (self));
+ NSWindow *nswindow = _gdk_macos_surface_get_native (GDK_MACOS_SURFACE (self));
GdkGeometry geometry;
GdkSurfaceHints mask;
+ NSWindowStyleMask style_mask;
g_assert (GDK_IS_MACOS_TOPLEVEL_SURFACE (self));
- g_assert (window != NULL);
+ g_assert (GDK_IS_MACOS_WINDOW (nswindow));
+
+ style_mask = [nswindow styleMask];
if (gdk_toplevel_layout_get_resizable (layout))
{
geometry.min_width = gdk_toplevel_layout_get_min_width (layout);
geometry.min_height = gdk_toplevel_layout_get_min_height (layout);
mask = GDK_HINT_MIN_SIZE;
+
+ style_mask |= NSWindowStyleMaskResizable;
}
else
{
geometry.max_width = geometry.min_width = width;
geometry.max_height = geometry.min_height = height;
mask = GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE;
+
+ style_mask &= ~NSWindowStyleMaskResizable;
}
+ if (style_mask != [nswindow styleMask])
+ [nswindow setStyleMask:style_mask];
+
_gdk_macos_surface_set_geometry_hints (GDK_MACOS_SURFACE (self), &geometry, mask);
gdk_surface_constrain_size (&geometry, mask, width, height, &width, &height);
_gdk_macos_surface_resize (GDK_MACOS_SURFACE (self), width, height);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]