avmedia/source/gtk/gtkplayer.cxx | 4 ++++ 1 file changed, 4 insertions(+)
New commits: commit 53b5b720d33b93b2d05a845b28dbc7709eb4d9e1 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Thu Aug 25 09:12:11 2022 +0200 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Thu Aug 25 09:49:49 2022 +0200 avmedia gtk: Fix build for Gtk >= 4.7.2 ('-Werror=deprecated-declarations') Failed like this: .../libreoffice/avmedia/source/gtk/gtkplayer.cxx: In member function ‘virtual com::sun::star::uno::Reference<com::sun::star::media::XPlayerWindow> avmedia::gtk::GtkPlayer::createPlayerWindow(const com::sun::star::uno::Sequence<com::sun::star::uno::Any>&)’: .../libreoffice/avmedia/source/gtk/gtkplayer.cxx:346:38: error: ‘void gtk_picture_set_keep_aspect_ratio(GtkPicture*, gboolean)’ is deprecated: Use 'gtk_picture_set_content_fit' instead [-Werror=deprecated-declarations] 346 | gtk_picture_set_keep_aspect_ratio(GTK_PICTURE(m_pVideo), false); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/gtk-4.0/gtk/gtk.h:196, from .../libreoffice/avmedia/source/gtk/gtkplayer.cxx:28: /usr/include/gtk-4.0/gtk/gtkpicture.h:73:17: note: declared here 73 | void gtk_picture_set_keep_aspect_ratio (GtkPicture *self, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1plus: all warnings being treated as errors make[1]: *** [.../libreoffice/solenv/gbuild/LinkTarget.mk:337: .../libreoffice/workdir/CxxObject/avmedia/source/gtk/gtkplayer.o] Error 1 make: *** [Makefile:289: build] Error 2 Corresponding Gtk commit [1]: commit d8a73cbd03118e94bd75f5fa183a646fecb053ce Author: Marco Melorio <marco.melo...@protonmail.com> Date: Fri Jul 15 18:18:26 2022 +0200 picture: Add content-fit property It allows to specify the resize mode of the paintable inside the GtkPicture allocation. This also deprecates the keep-aspect-ratio property. Fixes #5027. While the doc [2] says its deprecated for 4.8, that sems to refer to stable Gtk version only and it's already the case for the unstable version 4.7.2 (as packaged in Debian testing now): $ git tag --contains d8a73cbd03118e94bd75f5fa183a646fecb053ce 4.7.2 Use `gtk_picture_set_content_fit` with `GTK_CONTENT_FIT_FILL` that results in the same behavior for Gtk >= 4.7.2. [1] https://gitlab.gnome.org/GNOME/gtk/-/commit/d8a73cbd03118e94bd75f5fa183a646fecb053ce [2] https://docs.gtk.org/gtk4/method.Picture.set_keep_aspect_ratio.html Change-Id: I9fc527e6674cb8e4774adbe7d14cce2a264a5a67 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138797 Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/avmedia/source/gtk/gtkplayer.cxx b/avmedia/source/gtk/gtkplayer.cxx index bf73f4732c4a..08b5f10c5b6d 100644 --- a/avmedia/source/gtk/gtkplayer.cxx +++ b/avmedia/source/gtk/gtkplayer.cxx @@ -343,7 +343,11 @@ uno::Reference<::media::XPlayerWindow> return nullptr; m_pVideo = gtk_picture_new_for_paintable(GDK_PAINTABLE(m_pStream)); +#if GTK_CHECK_VERSION(4, 7, 2) + gtk_picture_set_content_fit(GTK_PICTURE(m_pVideo), GTK_CONTENT_FIT_FILL); +#else gtk_picture_set_keep_aspect_ratio(GTK_PICTURE(m_pVideo), false); +#endif gtk_widget_set_can_target(m_pVideo, false); gtk_widget_set_vexpand(m_pVideo, true); gtk_widget_set_hexpand(m_pVideo, true);