View | Details | Raw Unified | Return to bug 260639
Collapse All | Expand All

(-)b/x11-toolkits/gtk30/Makefile (-8 / +3 lines)
Lines 3-10 Link Here
3
# adwaita-icon-theme, gnome-themes-standard and mate-themes
3
# adwaita-icon-theme, gnome-themes-standard and mate-themes
4
4
5
PORTNAME=	gtk
5
PORTNAME=	gtk
6
PORTVERSION=	3.24.30
6
PORTVERSION=	3.24.31
7
PORTREVISION=	1
8
CATEGORIES=	x11-toolkits
7
CATEGORIES=	x11-toolkits
9
MASTER_SITES=	GNOME/sources/gtk+/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
8
MASTER_SITES=	GNOME/sources/gtk+/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
10
PKGNAMESUFFIX=	3
9
PKGNAMESUFFIX=	3
Lines 14-22 DIST_SUBDIR= gnome Link Here
14
MAINTAINER=	desktop@FreeBSD.org
13
MAINTAINER=	desktop@FreeBSD.org
15
COMMENT=	Gimp Toolkit for X11 GUI (current stable version)
14
COMMENT=	Gimp Toolkit for X11 GUI (current stable version)
16
15
17
EXTRA_PATCHES=	${FILESDIR}/0001-Check-if-size-changed-before-hiding-a-surface.patch:-p1 \
18
		${FILESDIR}/0001-Ignore-wl_output-globals-not-bound-by-us.patch:-p1
19
20
LICENSE=	LGPL20
16
LICENSE=	LGPL20
21
17
22
PORTSCOUT=	limit:1,even
18
PORTSCOUT=	limit:1,even
Lines 41-47 CONFIGURE_ARGS= --enable-introspection Link Here
41
CPPFLAGS+=	-fno-omit-frame-pointer
37
CPPFLAGS+=	-fno-omit-frame-pointer
42
INSTALL_TARGET=	install-strip
38
INSTALL_TARGET=	install-strip
43
39
44
LIBVERSION=	0.2404.26
40
LIBVERSION=	0.2404.27
45
PLIST_SUB+=	LIBVERSION=${LIBVERSION}
41
PLIST_SUB+=	LIBVERSION=${LIBVERSION}
46
42
47
GLIB_SCHEMAS=	org.gtk.Demo.gschema.xml \
43
GLIB_SCHEMAS=	org.gtk.Demo.gschema.xml \
Lines 77-84 WAYLAND_CONFIGURE_ENABLE= wayland-backend Link Here
77
WAYLAND_BUILD_DEPENDS=	wayland-protocols>=0:graphics/wayland-protocols
73
WAYLAND_BUILD_DEPENDS=	wayland-protocols>=0:graphics/wayland-protocols
78
WAYLAND_LIB_DEPENDS=	libwayland-egl.so:graphics/wayland \
74
WAYLAND_LIB_DEPENDS=	libwayland-egl.so:graphics/wayland \
79
			libxkbcommon.so:x11/libxkbcommon
75
			libxkbcommon.so:x11/libxkbcommon
80
WAYLAND_RUN_DEPENDS=	gsettings-desktop-schemas>=0:devel/gsettings-desktop-schemas \
76
WAYLAND_RUN_DEPENDS=	gsettings-desktop-schemas>=0:devel/gsettings-desktop-schemas
81
			wayland-protocols>=0:graphics/wayland-protocols
82
WAYLAND_USES=		gl
77
WAYLAND_USES=		gl
83
WAYLAND_USE=		GL=egl
78
WAYLAND_USE=		GL=egl
84
79
(-)b/x11-toolkits/gtk30/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1625746731
1
TIMESTAMP = 1640024944
2
SHA256 (gnome/gtk+-3.24.30.tar.xz) = ba75bfff320ad1f4cfbee92ba813ec336322cc3c660d406aad014b07087a3ba9
2
SHA256 (gnome/gtk+-3.24.31.tar.xz) = 423c3e7fdb4c459ee889e35fd4d71fd2623562541c1041b11c07e5ad1ff10bf9
3
SIZE (gnome/gtk+-3.24.30.tar.xz) = 22407016
3
SIZE (gnome/gtk+-3.24.31.tar.xz) = 22449112
(-)a/x11-toolkits/gtk30/files/0001-Check-if-size-changed-before-hiding-a-surface.patch (-59 lines)
Removed Link Here
1
From 23c7e6e13bbe2c6b736e817f501dc0dd5b242787 Mon Sep 17 00:00:00 2001
2
From: Ronan Pigott <rpigott@berkeley.edu>
3
Date: Mon, 13 Sep 2021 17:14:14 -0700
4
Subject: [PATCH] Check if size changed before hiding a surface
5
6
Commit 68188fc948 introduces a workaround for clients that try to
7
change the size of a popup after it is created, but inadvertently
8
introduces an infinite loop of surface creation when the popup enters
9
two or more wl_outputs with different scales on creation.
10
11
This commit checks if the size actually changed before applying the
12
workaround and avoids the loop.
13
---
14
 gdk/wayland/gdkwindow-wayland.c | 8 +++++---
15
 1 file changed, 5 insertions(+), 3 deletions(-)
16
17
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
18
index 1e82dcae3e..5d300a94ce 100644
19
--- a/gdk/wayland/gdkwindow-wayland.c
20
+++ b/gdk/wayland/gdkwindow-wayland.c
21
@@ -1199,6 +1199,7 @@ gdk_wayland_window_maybe_configure (GdkWindow *window,
22
   GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
23
   gboolean is_xdg_popup;
24
   gboolean is_visible;
25
+  gboolean size_changed;
26
 
27
   impl->unconfigured_width = calculate_width_without_margin (window, width);
28
   impl->unconfigured_height = calculate_height_without_margin (window, height);
29
@@ -1206,9 +1207,8 @@ gdk_wayland_window_maybe_configure (GdkWindow *window,
30
   if (should_inhibit_resize (window))
31
     return;
32
 
33
-  if (window->width == width &&
34
-      window->height == height &&
35
-      impl->scale == scale)
36
+  size_changed = (window->width != width || window->height != height);
37
+  if (!size_changed && impl->scale == scale)
38
     return;
39
 
40
   /* For xdg_popup using an xdg_positioner, there is a race condition if
41
@@ -1222,6 +1222,7 @@ gdk_wayland_window_maybe_configure (GdkWindow *window,
42
 
43
   if (is_xdg_popup &&
44
       is_visible &&
45
+      size_changed &&
46
       !impl->initial_configure_received &&
47
       !impl->configuring_popup)
48
     gdk_window_hide (window);
49
@@ -1230,6 +1231,7 @@ gdk_wayland_window_maybe_configure (GdkWindow *window,
50
 
51
   if (is_xdg_popup &&
52
       is_visible &&
53
+      size_changed &&
54
       !impl->initial_configure_received &&
55
       !impl->configuring_popup)
56
     gdk_window_show (window);
57
-- 
58
2.33.1
59
(-)a/x11-toolkits/gtk30/files/0001-Ignore-wl_output-globals-not-bound-by-us.patch (-34 lines)
Removed Link Here
1
From 9a4e32892896ce1d0a92f413845f6f7f18f9b456 Mon Sep 17 00:00:00 2001
2
From: Ronan Pigott <rpigott@berkeley.edu>
3
Date: Sat, 11 Sep 2021 17:22:12 -0700
4
Subject: [PATCH] Ignore wl_output globals not bound by us
5
6
Gdk doesn't know the scale of output globals it didn't bind. This
7
keeps them from entering the output list and triggering erroneous
8
changes in surface scales.
9
---
10
 gdk/wayland/gdkwindow-wayland.c | 8 ++++++++
11
 1 file changed, 8 insertions(+)
12
13
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
14
index 2d7c42bd7a..1e82dcae3e 100644
15
--- a/gdk/wayland/gdkwindow-wayland.c
16
+++ b/gdk/wayland/gdkwindow-wayland.c
17
@@ -1520,6 +1520,14 @@ surface_enter (void              *data,
18
 {
19
   GdkWindow *window = GDK_WINDOW (data);
20
   GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
21
+  GdkWaylandDisplay *display_wayland =
22
+    GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
23
+  gboolean output_is_unmanaged;
24
+
25
+  output_is_unmanaged =
26
+    _gdk_wayland_screen_get_output_scale (display_wayland->screen, output) == 0;
27
+  if (output_is_unmanaged)
28
+    return;
29
 
30
   GDK_NOTE (EVENTS,
31
             g_message ("surface enter, window %p output %p", window, output));
32
-- 
33
2.33.1
34

Return to bug 260639