Make the window assume a centred position on macOS

Windows and Linux applications are more likely to not bother,
and their desktop environments don't place windows right in the corner,
which is what happens with GTK+/macOS.
This commit is contained in:
Přemysl Eric Janouch 2022-07-23 21:22:39 +02:00
parent 4b4e24e71a
commit 31f428f4ec
Signed by: p
GPG Key ID: A0420B94F92B9493

10
fiv.c
View File

@ -18,6 +18,9 @@
#include <glib.h> #include <glib.h>
#include <glib/gstdio.h> #include <glib/gstdio.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
#ifdef GDK_WINDOWING_QUARTZ
#include <gdk/gdkquartz.h>
#endif // GDK_WINDOWING_QUARTZ
#include <errno.h> #include <errno.h>
#include <math.h> #include <math.h>
@ -2009,6 +2012,13 @@ main(int argc, char *argv[])
unit = MAX(200, unit); unit = MAX(200, unit);
gtk_window_set_default_size(GTK_WINDOW(g.window), 4 * unit, 3 * unit); gtk_window_set_default_size(GTK_WINDOW(g.window), 4 * unit, 3 * unit);
#ifdef GDK_WINDOWING_QUARTZ
// Otherwise the window simply opens at (0, 0),
// while other macOS applications are more likely to start centered.
if (GDK_IS_QUARTZ_DISPLAY(display))
gtk_window_set_position(GTK_WINDOW(g.window), GTK_WIN_POS_CENTER);
#endif // GDK_WINDOWING_QUARTZ
// XXX: The widget wants to read the display's profile. The realize is ugly. // XXX: The widget wants to read the display's profile. The realize is ugly.
gtk_widget_realize(g.view); gtk_widget_realize(g.view);