[gtk/wip/chergert/quartz4u] macos: improve geometry hints setting
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/chergert/quartz4u] macos: improve geometry hints setting
- Date: Mon, 18 May 2020 22:22:20 +0000 (UTC)
commit 52573fbb015ceed8f2c961a0d6ef79f2c807fffc
Author: Christian Hergert <chergert redhat com>
Date: Mon May 18 15:20:00 2020 -0700
macos: improve geometry hints setting
gdk/macos/gdkmacossurface.c | 34 ++++++++++++++++++++++++++++++++--
1 file changed, 32 insertions(+), 2 deletions(-)
---
diff --git a/gdk/macos/gdkmacossurface.c b/gdk/macos/gdkmacossurface.c
index 019fa14de1..0b2083db9f 100644
--- a/gdk/macos/gdkmacossurface.c
+++ b/gdk/macos/gdkmacossurface.c
@@ -557,18 +557,48 @@ _gdk_macos_surface_set_geometry_hints (GdkMacosSurface *self,
g_return_if_fail (geometry != NULL);
g_return_if_fail (self->window != NULL);
+ if (geom_mask & GDK_HINT_POS) { /* TODO */ }
+ if (geom_mask & GDK_HINT_USER_POS) { /* TODO */ }
+ if (geom_mask & GDK_HINT_USER_SIZE) { /* TODO */ }
+
if (geom_mask & GDK_HINT_MAX_SIZE)
max_size = NSMakeSize (geometry->max_width, geometry->max_height);
else
max_size = NSMakeSize (FLT_MAX, FLT_MAX);
+ [self->window setContentMaxSize:max_size];
if (geom_mask & GDK_HINT_MIN_SIZE)
min_size = NSMakeSize (geometry->min_width, geometry->min_height);
else
min_size = NSMakeSize (0, 0);
+ [self->window setContentMinSize:min_size];
+
+ if (geom_mask & GDK_HINT_BASE_SIZE) { /* TODO */ }
+
+ if (geom_mask & GDK_HINT_RESIZE_INC)
+ {
+ NSSize size;
+
+ size.width = geometry->width_inc;
+ size.height = geometry->height_inc;
+
+ [self->window setContentResizeIncrements:size];
+ }
+
+ if (geom_mask & GDK_HINT_ASPECT)
+ {
+ NSSize size;
+
+ if (geometry->min_aspect != geometry->max_aspect)
+ g_warning ("Only equal minimum and maximum aspect ratios are supported on Mac OS. Using minimum
aspect ratio...");
+
+ size.width = geometry->min_aspect;
+ size.height = 1.0;
+
+ [self->window setContentAspectRatio:size];
+ }
- [self->window setMaxSize:max_size];
- [self->window setMinSize:min_size];
+ if (geom_mask & GDK_HINT_WIN_GRAVITY) { /* TODO */ }
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]