Skip to content
Snippets Groups Projects
Unverified Commit 634eeb21 authored by Pablo Correa Gomez's avatar Pablo Correa Gomez
Browse files

temp/gtk4.0: remove

Fixes #2680
parent 07abf676
No related branches found
No related tags found
No related merge requests found
Pipeline #205257 passed
From f045668198a98d744c88af508c4c5a8d0a51346d Mon Sep 17 00:00:00 2001
From: Teemu Ikonen <tpikonen@mailbox.org>
Date: Mon, 20 Feb 2023 19:35:17 +0200
Subject: [PATCH 1/2] window: Maximize resizable transient windows on small
screens
Based on Purism adaptive patches by Alexander Mikhaylenko,
https://source.puri.sm/Librem5/debs/gtk4/-/blob/pureos/byzantium/debian/patches/pureos/adaptive/
Only maximize transients on small (< 120 mm) screens
---
gtk/gtkwindow.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index bac2a25b89..e7d43f033e 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -32,6 +32,7 @@
#include "gtkbuildable.h"
#include "gtkcheckbutton.h"
#include "gtkcssshadowvalueprivate.h"
+#include "deprecated/gtkdialog.h"
#include "gtkdroptargetasync.h"
#include "gtkeventcontrollerlegacy.h"
#include "gtkeventcontrollerkey.h"
@@ -64,6 +65,7 @@
#include "inspector/window.h"
+#include "gdk/gdkmonitor.h"
#include "gdk/gdkprofilerprivate.h"
#include "gdk/gdksurfaceprivate.h"
#include "gdk/gdktextureprivate.h"
@@ -3989,6 +3991,8 @@ gtk_window_map (GtkWidget *widget)
GtkWindow *window = GTK_WINDOW (widget);
GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
GtkWidget *child = priv->child;
+ GdkMonitor *monitor;
+ gboolean is_dialog, on_small_screen;
GTK_WIDGET_CLASS (gtk_window_parent_class)->map (widget);
@@ -4002,6 +4006,13 @@ gtk_window_map (GtkWidget *widget)
gtk_window_present_toplevel (window);
+ /* Transient windows can be considered pseudo-dialogs. */
+ monitor = gdk_display_get_monitor_at_surface (priv->display, priv->surface);
+ on_small_screen = gdk_monitor_get_width_mm (monitor) < 120;
+ is_dialog = GTK_IS_DIALOG (widget) || !!gtk_window_get_transient_for (window);
+ if (on_small_screen && is_dialog && gtk_window_get_resizable (window))
+ gtk_window_maximize (window);
+
if (priv->minimize_initially)
gdk_toplevel_minimize (GDK_TOPLEVEL (priv->surface));
--
2.41.0
From aec8069fca283b1e17c4dec2f9a865849fd27596 Mon Sep 17 00:00:00 2001
From: Teemu Ikonen <tpikonen@mailbox.org>
Date: Mon, 20 Feb 2023 19:43:24 +0200
Subject: [PATCH 2/2] windowcontrols: Force close buttons for transient windows
Based on Purism adaptive patches by Alexander Mikhaylenko,
https://source.puri.sm/Librem5/debs/gtk4/-/blob/pureos/byzantium/debian/patches/pureos/adaptive/
---
gtk/gtkwindowcontrols.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/gtk/gtkwindowcontrols.c b/gtk/gtkwindowcontrols.c
index 0f3e926899..0e1499335d 100644
--- a/gtk/gtkwindowcontrols.c
+++ b/gtk/gtkwindowcontrols.c
@@ -25,6 +25,7 @@
#include "gtkboxlayout.h"
#include "gtkbutton.h"
#include "gtkenums.h"
+#include "deprecated/gtkdialog.h"
#include "gtkicontheme.h"
#include "gtkimage.h"
#include <glib/gi18n-lib.h>
@@ -125,9 +126,16 @@ get_layout (GtkWindowControls *self)
if (self->decoration_layout)
layout_desc = g_strdup (self->decoration_layout);
else
- g_object_get (gtk_widget_get_settings (widget),
- "gtk-decoration-layout", &layout_desc,
- NULL);
+ {
+ gboolean is_mobile_dialog = GTK_IS_DIALOG (root) || !!gtk_window_get_transient_for (GTK_WINDOW (root));
+
+ if (is_mobile_dialog)
+ layout_desc = g_strdup (":close");
+ else
+ g_object_get (gtk_widget_get_settings (widget),
+ "gtk-decoration-layout", &layout_desc,
+ NULL);
+ }
tokens = g_strsplit (layout_desc, ":", 2);
--
2.41.0
# Maintainer: Teemu Ikonen <tpikonen@mailbox.org>
# Forked from Alpine to apply patches for adaptive transient window handling
pkgname=gtk4.0
pkgver=9999.4.16.1
_pkgver=4.16.1
pkgrel=0
pkgdesc="The GTK Toolkit (v4)"
url="https://www.gtk.org/"
arch="all"
options="!check" # Test suite is known to fail upstream
license="LGPL-2.1-or-later"
subpackages="$pkgname-dbg $pkgname-demo $pkgname-dev $pkgname-doc $pkgname-lang"
depends="shared-mime-info gtk-update-icon-cache tzdata iso-codes"
depends_dev="
at-spi2-core-dev
gdk-pixbuf-dev
glib-dev
libepoxy-dev
libxext-dev
libxi-dev
libxinerama-dev
libxkbcommon-dev
vulkan-headers
wayland-dev
wayland-protocols
"
makedepends="
$depends_dev
cairo-dev
colord-dev
cups-dev
expat-dev
fontconfig-dev
gettext-dev
gi-docgen
gnutls-dev
gobject-introspection-dev
graphene-dev
gst-plugins-bad-dev
gstreamer-dev
iso-codes-dev
libice-dev
libx11-dev
libxcomposite-dev
libxcursor-dev
libxdamage-dev
libxfixes-dev
libxrandr-dev
meson
pango-dev
perl
py3-docutils
sassc
shaderc
tiff-dev
vulkan-loader-dev
zlib-dev
"
source="
https://download.gnome.org/sources/gtk/${_pkgver%.*}/gtk-${_pkgver}.tar.xz
0001-window-Maximize-resizable-transient-windows-on-small.patch
0002-windowcontrols-Force-close-buttons-for-transient-win.patch
"
builddir="$srcdir/gtk-${_pkgver}"
prepare() {
default_prepare
sed -i "s/ version: '.*',/ version: '4.90.99',/g" meson.build
sed -i "s/^gtk_interface_age = .*/gtk_interface_age = 90/g" meson.build
}
build() {
CFLAGS="$CFLAGS -O2" \
CPPFLAGS="$CPPFLAGS -O2" \
abuild-meson \
-Ddocumentation=true \
-Dintrospection=enabled \
-Dbroadway-backend=true \
-Dman-pages=true \
-Dbuild-tests=false \
-Dbuild-testsuite=false \
. output
meson compile -j 1 -C output gdk/version/gdkversionmacros.h gdk/version/gdk-visibility.h
meson compile -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
# use gtk-update-icon-cache from gtk+3.0 for now. The icon cache is forward
# compatible so this is fine.
# do the same for gtk4-update-icon-cache
rm -f "$pkgdir"/usr/bin/gtk-update-icon-cache
rm -f "$pkgdir"/usr/bin/gtk4-update-icon-cache
rm -f "$pkgdir"/usr/share/man/man1/gtk-update-icon-cache.1
}
demo() {
pkgdesc="$pkgdesc (demonstration application)"
amove \
usr/bin/gtk4-demo \
usr/bin/gtk4-demo-application \
usr/bin/gtk4-icon-browser \
usr/bin/gtk4-node-editor \
usr/bin/gtk4-print-editor \
usr/bin/gtk4-widget-factory \
usr/share/applications/org.gtk.Demo4.desktop \
usr/share/applications/org.gtk.IconBrowser4.desktop \
usr/share/applications/org.gtk.PrintEditor4.desktop \
usr/share/applications/org.gtk.WidgetFactory4.desktop \
usr/share/applications/org.gtk.gtk4.NodeEditor.desktop \
usr/share/glib-2.0/schemas/org.gtk.Demo4.gschema.xml \
usr/share/gtk-4.0/gtk4builder.rng \
usr/share/icons \
usr/share/metainfo
}
dev() {
default_dev
amove \
usr/bin/gtk4-builder-tool \
usr/bin/gtk4-encode-symbolic-svg \
usr/bin/gtk4-query-settings \
usr/share/gtk-4.0/valgrind
}
lang() {
default_lang
# These are some localized emoji labels.
amove usr/share/gtk-4.0/emoji
}
sha512sums="
9aead06acb4be49830066bc2c6804cd55d52f88eb1adef04593d485b53c8cfcc381db93292533c1b4918776cf3fa64fb38662a8e0138ddeb6efa95064d6a6250 gtk-4.16.1.tar.xz
85ced777c23111f502f8a7d49902c65b113f51c1156490c08de2d8f9cb4a5e85c4a3eec0f043c0fa9d9ff44d6b9ab44c4c2865ecd06c3979a3f2558b287c35fd 0001-window-Maximize-resizable-transient-windows-on-small.patch
559f362a918f0f60dfd621daa489f16a61ea9ddd9ad0ef7ad043ceebe1013b8f2fce2f5c3c27597bfc801f2703867095909f16e2b9088e0bf374f36667e25abe 0002-windowcontrols-Force-close-buttons-for-transient-win.patch
"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment