[sushi] mainWindow: scale maximum window size with monitor geometry
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sushi] mainWindow: scale maximum window size with monitor geometry
- Date: Wed, 10 Jul 2019 22:58:15 +0000 (UTC)
commit e55fc8ce3e1344a9befce8d93b9efccadf0cec36
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Wed Jul 10 17:11:16 2019 +0200
mainWindow: scale maximum window size with monitor geometry
Instead of hardcoding a single size, scale it with the monitor
geometry.
https://gitlab.gnome.org/GNOME/sushi/issues/7
src/ui/mainWindow.js | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
---
diff --git a/src/ui/mainWindow.js b/src/ui/mainWindow.js
index a65f71b..e18632f 100644
--- a/src/ui/mainWindow.js
+++ b/src/ui/mainWindow.js
@@ -32,6 +32,8 @@ const Utils = imports.ui.utils;
const WINDOW_MAX_W = 800;
const WINDOW_MAX_H = 600;
+const WINDOW_MAX_W_BASE = 1368;
+const WINDOW_MAX_H_BASE = 768;
const Embed = GObject.registerClass(class Embed extends Gtk.Overlay {
vfunc_get_request_mode() {
@@ -218,7 +220,27 @@ var MainWindow = GObject.registerClass(class MainWindow extends Gtk.ApplicationW
}
_getMaxSize() {
- return [WINDOW_MAX_W, WINDOW_MAX_H];
+ let gdkWin = this.get_window();
+ let display = this.get_display();
+ let monitor = display.get_monitor_at_window(gdkWin);
+ let geometry = monitor.get_geometry();
+
+ // Scale our maximum with the actual monitor geometry
+ let scaleW = 1.0;
+ let scaleH = 1.0;
+
+ // FIXME: We can only trust GTK >= 3.24.9 to report the right
+ // monitor geometry under Wayland when fractional scaling is enabled.
+ // Disable the scaling logic for older GTK versions.
+ // See https://gitlab.gnome.org/GNOME/gtk/issues/1828
+ let versionCheck = Gtk.check_version(3, 24, 9);
+ if (!versionCheck) {
+ scaleW = geometry.width / WINDOW_MAX_W_BASE;
+ scaleH = geometry.height / WINDOW_MAX_H_BASE;
+ }
+
+ return [Math.floor(scaleW * WINDOW_MAX_W),
+ Math.floor(scaleH * WINDOW_MAX_H)];
}
_resizeWindow() {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]