Accepting request 636059 from GNOME:Next

OBS-URL: https://build.opensuse.org/request/show/636059
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gtk3?expand=0&rev=327
This commit is contained in:
Luciano Santos 2018-09-20 04:03:08 +00:00 committed by Git OBS Bridge
parent a9080ac511
commit d811659e08
8 changed files with 157 additions and 246 deletions

View File

@ -90,6 +90,18 @@ gtk3-immodule-vietnamese
postun "%else"
postun "<prefix>%{_bindir}/gtk-query-immodules-3.0 --update-cache"
postun "%endif"
gtk3-immodule-wayland
requires "gtk3-<targettype>"
post "%if "%_lib" == "lib64""
post "<prefix>%{_bindir}/gtk-query-immodules-3.0-64 --update-cache"
post "%else"
post "<prefix>%{_bindir}/gtk-query-immodules-3.0 --update-cache"
post "%endif"
postun "%if "%_lib" == "lib64""
postun "<prefix>%{_bindir}/gtk-query-immodules-3.0-64 --update-cache"
postun "%else"
postun "<prefix>%{_bindir}/gtk-query-immodules-3.0 --update-cache"
postun "%endif"
gtk3-immodule-xim
requires "gtk3-<targettype>"
post "%if "%_lib" == "lib64""

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a1a4a5c12703d4e1ccda28333b87ff462741dc365131fbc94c218ae81d9a6567
size 18946084

3
gtk+-3.23.3.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:52ccc4f29fd883f755a5a097e04fae7c8c7ac1287fdc321f1257ee3ff60464bf
size 19231248

View File

@ -1,32 +0,0 @@
From e44bbeb558ddef5ffd3749aca3fec2dafaa0d634 Mon Sep 17 00:00:00 2001
From: Benjamin Otte <otte@redhat.com>
Date: Tue, 10 Apr 2018 14:22:16 +0200
Subject: [PATCH] filechooserbutton: Fix reserved pointers
So gcc stops complaining about unnecessary parenthesis.
---
gtk/gtkfilechooserbutton.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gtk/gtkfilechooserbutton.h b/gtk/gtkfilechooserbutton.h
index 0e5276fe71..fcad9f4f88 100644
--- a/gtk/gtkfilechooserbutton.h
+++ b/gtk/gtkfilechooserbutton.h
@@ -63,10 +63,10 @@ struct _GtkFileChooserButtonClass
/*< private >*/
/* Padding for future expansion */
- void (*__gtk_reserved1);
- void (*__gtk_reserved2);
- void (*__gtk_reserved3);
- void (*__gtk_reserved4);
+ void (*__gtk_reserved1) (void);
+ void (*__gtk_reserved2) (void);
+ void (*__gtk_reserved3) (void);
+ void (*__gtk_reserved4) (void);
};
--
2.13.7

View File

@ -1,199 +0,0 @@
From 3d1514c0e8d163102f060ab178914b33dd8c2d9f Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Mon, 25 Jun 2018 17:06:33 +0100
Subject: [PATCH] Fix gdk_wayland_window_announce_csd
According to the spec compositors were to assume surfaces are CSD until
told otherwise. This means we need to send
org_kde_kwin_server_decoration_request_mode in both cases.
The wl_surface is recreated on map/unmap events. If we recreate the
wl_surface we have to recreate the org_kde_kwin_server_decoration object
with the new surface.
This fixes libreoffice under kwin, which would remove it's own headers
as per the manager's request but not inform kwin leaving it in the even
more broken state of having none.
---
gdk/wayland/gdkwaylandwindow.h | 3 ++
gdk/wayland/gdkwindow-wayland.c | 76 +++++++++++++++++++++++++++++++++++++----
gtk/gtkwindow.c | 9 +++--
3 files changed, 79 insertions(+), 9 deletions(-)
diff --git a/gdk/wayland/gdkwaylandwindow.h b/gdk/wayland/gdkwaylandwindow.h
index 93b7802b6e..59fbd5727d 100644
--- a/gdk/wayland/gdkwaylandwindow.h
+++ b/gdk/wayland/gdkwaylandwindow.h
@@ -80,6 +80,9 @@ gboolean gdk_wayland_window_set_transient_for_exported (GdkWindo
GDK_AVAILABLE_IN_3_22
void gdk_wayland_window_announce_csd (GdkWindow *window);
+GDK_AVAILABLE_IN_3_22
+void gdk_wayland_window_announce_ssd (GdkWindow *window);
+
G_END_DECLS
#endif /* __GDK_WAYLAND_WINDOW_H__ */
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index 5a2fdf0223..3da3ac5b68 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -145,6 +145,7 @@ struct _GdkWindowImplWayland
unsigned int pending_buffer_attached : 1;
unsigned int pending_commit : 1;
unsigned int awaiting_frame : 1;
+ unsigned int using_csd : 1;
GdkWindowTypeHint hint;
GdkWindow *transient_for;
GdkWindow *popup_parent;
@@ -258,6 +259,7 @@ static void calculate_moved_to_rect_result (GdkWindow *window,
static gboolean gdk_wayland_window_is_exported (GdkWindow *window);
static void gdk_wayland_window_unexport (GdkWindow *window);
+static void gdk_wayland_window_announce_decoration_mode (GdkWindow *window);
GType _gdk_window_impl_wayland_get_type (void);
@@ -388,6 +390,8 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
impl->scale = gdk_screen_get_monitor_scale_factor (screen, 0);
G_GNUC_END_IGNORE_DEPRECATIONS
+ impl->using_csd = TRUE;
+
/* logical 1x1 fake buffer */
impl->staging_cairo_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
impl->scale,
@@ -691,6 +695,7 @@ _gdk_wayland_display_create_window_impl (GdkDisplay *display,
window->impl = GDK_WINDOW_IMPL (impl);
impl->wrapper = GDK_WINDOW (window);
impl->shortcuts_inhibitors = g_hash_table_new (NULL, NULL);
+ impl->using_csd = TRUE;
if (window->width > 65535)
{
@@ -2064,19 +2069,68 @@ window_anchor_to_gravity_legacy (GdkGravity rect_anchor)
}
}
-void
-gdk_wayland_window_announce_csd (GdkWindow *window)
+static void
+kwin_server_decoration_mode_set (void *data, struct org_kde_kwin_server_decoration *org_kde_kwin_server_decoration, uint32_t mode)
+{
+ GdkWindow *window = GDK_WINDOW (data);
+ GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
+
+ if ((mode == ORG_KDE_KWIN_SERVER_DECORATION_MODE_SERVER && impl->using_csd) ||
+ (mode == ORG_KDE_KWIN_SERVER_DECORATION_MODE_CLIENT && !impl->using_csd))
+ gdk_wayland_window_announce_decoration_mode (window);
+}
+
+static const struct org_kde_kwin_server_decoration_listener kwin_server_decoration_listener = {
+ kwin_server_decoration_mode_set
+};
+
+static void
+gdk_wayland_window_announce_decoration_mode (GdkWindow *window)
{
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
+
if (!display_wayland->server_decoration_manager)
return;
- impl->display_server.server_decoration =
- org_kde_kwin_server_decoration_manager_create (display_wayland->server_decoration_manager,
- impl->display_server.wl_surface);
+ if (!impl->display_server.server_decoration)
+ {
+ impl->display_server.server_decoration =
+ org_kde_kwin_server_decoration_manager_create (display_wayland->server_decoration_manager,
+ impl->display_server.wl_surface);
+ org_kde_kwin_server_decoration_add_listener (impl->display_server.server_decoration,
+ &kwin_server_decoration_listener,
+ window);
+ }
+
if (impl->display_server.server_decoration)
- org_kde_kwin_server_decoration_request_mode (impl->display_server.server_decoration,
- ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_MODE_CLIENT);
+ {
+ if (impl->using_csd)
+ org_kde_kwin_server_decoration_request_mode (impl->display_server.server_decoration,
+ ORG_KDE_KWIN_SERVER_DECORATION_MODE_CLIENT);
+ else
+ org_kde_kwin_server_decoration_request_mode (impl->display_server.server_decoration,
+ ORG_KDE_KWIN_SERVER_DECORATION_MODE_SERVER);
+ }
+}
+
+void
+gdk_wayland_window_announce_csd (GdkWindow *window)
+{
+ GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
+
+ impl->using_csd = TRUE;
+ if (impl->mapped)
+ gdk_wayland_window_announce_decoration_mode (window);
+}
+
+void
+gdk_wayland_window_announce_ssd (GdkWindow *window)
+{
+ GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
+
+ impl->using_csd = FALSE;
+ if (impl->mapped)
+ gdk_wayland_window_announce_decoration_mode (window);
}
static GdkWindow *
@@ -2906,11 +2960,13 @@ gdk_wayland_window_map (GdkWindow *window)
else
{
gdk_wayland_window_create_xdg_toplevel (window);
+ gdk_wayland_window_announce_decoration_mode (window);
}
}
else
{
gdk_wayland_window_create_xdg_toplevel (window);
+ gdk_wayland_window_announce_decoration_mode (window);
}
impl->mapped = TRUE;
@@ -3074,6 +3130,12 @@ gdk_wayland_window_hide_surface (GdkWindow *window)
impl->application.was_set = FALSE;
}
+ if (impl->display_server.server_decoration)
+ {
+ org_kde_kwin_server_decoration_release (impl->display_server.server_decoration);
+ impl->display_server.server_decoration = NULL;
+ }
+
wl_surface_destroy (impl->display_server.wl_surface);
impl->display_server.wl_surface = NULL;
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index b5f4b5af3d..9a4c8989a5 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -7489,8 +7489,13 @@ gtk_window_realize (GtkWidget *widget)
gdk_window_set_decorations (gdk_window, 0);
#ifdef GDK_WINDOWING_WAYLAND
- if (priv->client_decorated && GDK_IS_WAYLAND_WINDOW (gdk_window))
- gdk_wayland_window_announce_csd (gdk_window);
+ if (GDK_IS_WAYLAND_WINDOW (gdk_window))
+ {
+ if (priv->client_decorated)
+ gdk_wayland_window_announce_csd (gdk_window);
+ else
+ gdk_wayland_window_announce_ssd (gdk_window);
+ }
#endif
if (!priv->deletable)
--
2.13.7

View File

@ -0,0 +1,19 @@
diff --git a/modules/input/imwayland.c b/modules/input/imwayland.c
index 11d09d20077a47654a7e048ab5078c8ffe20b8f9..25144f314cc0a4f542d3588c60ba8ed7e32dd15c 100644
--- a/modules/input/imwayland.c
+++ b/modules/input/imwayland.c
@@ -654,8 +654,11 @@ gtk_im_context_wayland_focus_out (GtkIMContext *context)
commit_state (context_wayland);
/* after disable, incoming state changes won't take effect anyway */
- text_input_preedit (global, global->text_input, "", 0, 0);
- text_input_preedit_apply (global);
+ if (context_wayland->current_preedit.text)
+ {
+ text_input_preedit (global, global->text_input, NULL, 0, 0);
+ text_input_preedit_apply (global);
+ }
global->current = NULL;
}

View File

@ -1,8 +1,70 @@
-------------------------------------------------------------------
Sun Sep 16 14:55:55 UTC 2018 - badshah400@gmail.com
- Add gtk3-imwayland-clearing-preedit-text.patch: imwayland
preedit text was not cleared the right way on focus out, causing
some issues: glgo#GNOME/gtk#1316; patch taken from upstream git.
-------------------------------------------------------------------
Wed Aug 29 16:51:05 UTC 2018 - bjorn.lie@gmail.com
- Update to version 3.23.3:
+ Deprecate a few APIs that are gone in GTK+ 4:
- focus chains in GtkContainer.
- stepper sensitivity in GtkRange.
+ Allow picking colors under kwin.
+ Bugs/issues fixed: glgo#GNOME/gtk+#404, glgo#GNOME/gtk+#770,
glgo#GNOME/gtk+#1263, glgo#GNOME/gtk+#134, glgo#GNOME/gtk+#432,
glgo#GNOME/gtk+#574, glgo#GNOME/gtk+#579, glgo#GNOME/gtk+#878,
glgo#GNOME/gtk+#844, glgo#GNOME/gtk+#2393, glgo#GNOME/gtk+#125,
glgo#GNOME/gtk+!290, glgo#GNOME/gtk+!172.
+ Updated translations.
-------------------------------------------------------------------
Thu Aug 9 11:33:37 UTC 2018 - tchvatal@suse.com
- Fix package name to be uniform immodules -> immodule bsc#1104264
-------------------------------------------------------------------
Tue Jul 31 06:13:37 UTC 2018 - bjorn.lie@gmail.com
- Update to version 3.23.2:
+ Emoji chooser improvements:
- Try harder to avoid fallback rendering.
- Avoid hex boxes.
- Use icons for sections.
+ Color chooser improvements: Allow picking colors from the
screen again. The current implementation can use either the
screnshot portal or a recent gnome-shell API.
+ GtkPlacesSidebar now shows a spinner during mount operations.
+ Wayland: Support both gtk-text-input and text-input-unstable-v3
as input protocol.
+ Bugs fixed: glgo#GNOME/gtk#628, glgo#GNOME/gtk!248,
glgo#GNOME/gtk!272.
+ Updated translations.
- Add new gtk3-immodule-wayland subpackage and handle it in
post(un) and baselibs.
-------------------------------------------------------------------
Tue Jul 24 09:56:43 UTC 2018 - bjorn.lie@gmail.com
- Update to version 3.23.1:
+ Backported event controllers from GTK+ 4:
- GtkEventControllerScroll.
- GtkEventControllerMotion.
- GtkEventControllerKey.
- GtkGestureStylus.
+ Support markup in GtkModelButtons.
+ Themes:
- The Raleigh theme has been removed.
- Expander size in HighContrast has been increased.
+ Wayland:
- Update cursor scale when needed.
- Decoration negotiation protocol fixes.
+ Windows: Add an EGL renderer based on ANGLE.
+ Updated translations.
- Drop gtk3-fix-wayland-csd-announce.patch: Fixed upstream.
-------------------------------------------------------------------
Tue Jul 24 08:56:43 UTC 2018 - qkzhu@suse.com
@ -11,6 +73,32 @@ Tue Jul 24 08:56:43 UTC 2018 - qkzhu@suse.com
manager's request but not inform kwin leaving it in the even
more broken state of having none. (boo#1099991)
-------------------------------------------------------------------
Sun Jun 24 03:15:50 UTC 2018 - luc14n0@linuxmail.org
- Update to version 3.23.0:
+ New font chooser features:
- Allow setting OpenType font features;
- Show examples for OpenType font features;
- Allow selecting OpenType font variations;
- Support levels of details for selection.
+ New Emoji features:
- Support a completion popup for Emoji;
- Drop Ctrl-Shift-e shortcut.
+ Other new apis: gdk_window_move_to_rect.
+ Bugs fixed: glgo#GNOME/GTK#85, glgo#GNOME/GTK#154,
glgo#GNOME/GTK#193, glgo#GNOME/GTK#199, glgo#GNOME/GTK#292,
glgo#GNOME/GTK#450, glgo#GNOME/GTK#792, glgo#GNOME/GTK#898,
glgo#GNOME/GTK#997, glgo#GNOME/GTK#1053, glgo#GNOME/GTK#1059,
glgo#GNOME/GTK#1065, glgo#GNOME/GTK#1069, glgo#GNOME/GTK#1088,
glgo#GNOME/GTK#1115, glgo#GNOME/GTK#1134, glgo#GNOME/GTK#1160,
glgo#GNOME/GTK#1165, glgo#GNOME/GTK#1166, bgo#407242,
bgo#686109, bgo#765327, bgo#772817, bgo#773299, bgo#775279,
bgo#786524, bgo#787867, bgo#789215, bgo#791542, bgo#791802.
+ Updated translations.
- Drop gtk3-filechooserbutton-Fix-reserved-pointers.patch: fixed
upstream.
-------------------------------------------------------------------
Tue Jun 12 05:35:47 UTC 2018 - fezhang@suse.com

View File

@ -22,13 +22,13 @@
%define _name gtk+
%bcond_without broadway
Name: gtk3
Version: 3.22.30
Version: 3.23.3
Release: 0
Summary: The GTK+ toolkit library (version 3)
License: LGPL-2.1-or-later
Group: Development/Libraries/X11
URL: https://www.gtk.org/
Source: http://download.gnome.org/sources/gtk+/3.22/%{_name}-%{version}.tar.xz
Source0: https://download.gnome.org/sources/gtk+/3.23/%{_name}-%{version}.tar.xz
Source1: README.SUSE
Source2: settings.ini
Source3: macros.gtk3
@ -37,10 +37,9 @@ Source99: baselibs.conf
Patch0: gtk3-GTK_PATH64.patch
# PATCH-FIX-OPENSUSE gtk3-revert-forced-xftdpi.patch fvogt@opensuse.org -- Revert very controversal commit on GTK3, forcing DPI to 96
Patch1: gtk3-revert-forced-xftdpi.patch
# PATCH-FIX-UPSTREAM gtk3-filechooserbutton-Fix-reserved-pointers.patch fezhang@suse.com -- Stop gcc from complaining about unnecessary parenthesis resulting build failures in gnucash.
Patch2: gtk3-filechooserbutton-Fix-reserved-pointers.patch
# PATCH-FIX-UPSTREAM gtk3-fix-wayland-csd-announce.patch boo#1099991 qkzhu@suse.com -- Fix gdk_wayland_window_announce_csd
Patch3: gtk3-fix-wayland-csd-announce.patch
# PATCH-FIX-UPSTREAM gtk3-imwayland-clearing-preedit-text.patch glgo#GNOME/gtk#1316 -- Fix regression causing imwayland preedit text to be not cleared the right way on focus out; patch taken from upstream git
Patch2: gtk3-imwayland-clearing-preedit-text.patch
BuildRequires: cups-devel >= 1.2
BuildRequires: docbook-xsl-stylesheets
BuildRequires: fdupes
@ -56,7 +55,7 @@ BuildRequires: pkgconfig(cairo-gobject) >= 1.14.0
# Enable cloudproviders once upstream settles on a location and version
#BuildRequires: pkgconfig(cloudproviders) >= 0.2.5
BuildRequires: pkgconfig(colord) >= 0.1.9
BuildRequires: pkgconfig(epoxy) >= 1.0
BuildRequires: pkgconfig(epoxy) >= 1.4
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.30.0
BuildRequires: pkgconfig(gio-2.0) >= 2.49.4
@ -66,7 +65,7 @@ BuildRequires: pkgconfig(gmodule-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.39.0
BuildRequires: pkgconfig(harfbuzz) >= 0.9
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(pango) >= 1.37.3
BuildRequires: pkgconfig(pango) >= 1.41.0
BuildRequires: pkgconfig(pangoft2)
BuildRequires: pkgconfig(rest-0.7)
BuildRequires: pkgconfig(wayland-client) >= 1.9.91
@ -245,6 +244,21 @@ ranging from small one-off projects to complete application suites.
This package provides an input method for Vietnamese.
%package immodule-wayland
Summary: The GTK+ toolkit library (version 3) -- Wayland Input Method
Group: System/Libraries
Requires: %{name} = %{version}
Requires(post): %{name}-tools
Requires(postun): %{name}-tools
%description immodule-wayland
GTK+ is a multi-platform toolkit for creating graphical user interfaces.
Offering a complete set of widgets, GTK+ is suitable for projects
ranging from small one-off projects to complete application suites.
This package provides an input method which allows text entry via
wayland.
%package immodule-xim
Summary: X input method for the GTK+ toolkit library v3
Group: System/Libraries
@ -339,7 +353,7 @@ This package enhances gettext with an International Tag Set for GTK+ 3
%lang_package
%prep
%setup -q -n %{_name}-%{version}
%setup -q -n gtk+-%{version}
# Translation this time intentionally disabled.. they fail
translation-update-upstream
translation-update-upstream po-properties gtk30-properties
@ -357,7 +371,6 @@ cp -a %{SOURCE1} .
%endif
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
%configure \
@ -369,7 +382,8 @@ cp -a %{SOURCE1} .
--enable-broadway-backend} \
--enable-wayland-backend \
--enable-explicit-deps=yes \
--enable-colord
--enable-colord \
%{nil}
make %{?_smp_mflags}
%install
@ -447,6 +461,9 @@ fi
%post immodule-vietnamese
%{_gtk_query_immodules_update_cache}
%post immodule-wayland
%{_gtk_query_immodules_update_cache}
%post immodule-xim
%{_gtk_query_immodules_update_cache}
@ -516,6 +533,9 @@ fi
%postun immodule-vietnamese
%{_gtk_query_immodules_update_cache}
%postun immodule-wayland
%{_gtk_query_immodules_update_cache}
%postun immodule-xim
%{_gtk_query_immodules_update_cache}
@ -581,6 +601,9 @@ fi
%files immodule-vietnamese
%{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-viqr.so
%files immodule-wayland
%{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-waylandgtk.so
%files immodule-xim
%{_libdir}/gtk-3.0/%{gtk_binary_version}/immodules/im-xim.so
@ -623,7 +646,7 @@ fi
%config(noreplace) %{_sysconfdir}/gtk-3.0/settings.ini
%files devel
%doc ChangeLog HACKING README.commits
%doc HACKING README.commits
%doc %{_datadir}/gtk-doc/html/gail-libgail-util3/
%doc %{_datadir}/gtk-doc/html/gdk3/
%doc %{_datadir}/gtk-doc/html/gtk3/