[gssdp/wip/modern-gtk: 4/6] wip: Add window sizing code
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gssdp/wip/modern-gtk: 4/6] wip: Add window sizing code
- Date: Mon, 12 Apr 2021 17:56:40 +0000 (UTC)
commit 37a88c90f4d1c36283a6f33610157a3b8a471253
Author: Jens Georg <mail jensge org>
Date: Tue Oct 6 23:18:39 2020 +0200
wip: Add window sizing code
tools/main-window.c | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
---
diff --git a/tools/main-window.c b/tools/main-window.c
index 51cd485..3340f67 100644
--- a/tools/main-window.c
+++ b/tools/main-window.c
@@ -2,6 +2,8 @@
#include "main-window.h"
+#include <glib.h>
+
struct _GSSDPDeviceSnifferMainWindow {
GtkApplicationWindow parent_instance;
};
@@ -21,8 +23,43 @@ gssdp_device_sniffer_main_window_class_init (
"/org/gupnp/GSSDP/MainWindow.ui");
}
+static void
+on_realize (GtkWidget *self, gpointer user_data)
+{
+ double w;
+ double h;
+#if GTK_CHECK_VERSION(3, 22, 0)
+ {
+ GdkWindow *window = gtk_widget_get_window (self);
+ GdkDisplay *display = gdk_display_get_default ();
+ GdkMonitor *monitor =
+ gdk_display_get_monitor_at_window (display, window);
+ GdkRectangle rectangle;
+
+ gdk_monitor_get_geometry (monitor, &rectangle);
+ w = rectangle.width * 0.75;
+ h = rectangle.height * 0.75;
+ }
+
+#else
+ w = gdk_screen_width () * 0.75;
+ h = gdk_screen_height () * 0.75;
+#endif
+
+ int window_width = CLAMP ((int) w, 10, 1000);
+ int window_height = CLAMP ((int) h, 10, 800);
+ gtk_window_set_default_size (GTK_WINDOW (self),
+ window_width,
+ window_height);
+}
+
static void
gssdp_device_sniffer_main_window_init (GSSDPDeviceSnifferMainWindow *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
+
+ g_signal_connect (G_OBJECT (self),
+ "realize",
+ G_CALLBACK (on_realize),
+ NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]