[Libreoffice-commits] core.git: vcl/unx
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Sep 14 12:00:58 UTC 2018
vcl/unx/gtk3/gtk3gtkinst.cxx | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
New commits:
commit dd1db430fe8009250253756573a1a19a45830c5f
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Sep 14 10:57:51 2018 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Sep 14 14:00:30 2018 +0200
Related: tdf#118038 use an intermediate GdkPixbuf under gtk < 3.20.0
otherwise the GtkImage's width isn't right
Change-Id: Id5e44749fb9925037d5777512e3123de8840d346
Reviewed-on: https://gerrit.libreoffice.org/60484
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index f93b59806cb7..1d5ca9e415ef 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -3135,7 +3135,18 @@ public:
gtk_widget_show(GTK_WIDGET(m_pImage));
}
if (pDevice)
- gtk_image_set_from_surface(m_pImage, get_underlying_cairo_surface(*pDevice));
+ {
+ cairo_surface_t* surface = get_underlying_cairo_surface(*pDevice);
+ if (gtk_check_version(3, 20, 0) == nullptr)
+ gtk_image_set_from_surface(m_pImage, get_underlying_cairo_surface(*pDevice));
+ else
+ {
+ Size aSize(pDevice->GetOutputSizePixel());
+ GdkPixbuf* pixbuf = gdk_pixbuf_get_from_surface(surface, 0, 0, aSize.Width(), aSize.Height());
+ gtk_image_set_from_pixbuf(m_pImage, pixbuf);
+ g_object_unref(pixbuf);
+ }
+ }
else
gtk_image_set_from_surface(m_pImage, nullptr);
}
More information about the Libreoffice-commits
mailing list