vcl/unx/gtk3/gtk3gtkobject.cxx | 10 ++++++++++ 1 file changed, 10 insertions(+)
New commits: commit 81d5acda2c143ab1183c7dc6d2386cc1b28c9fcf Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Mar 10 12:53:19 2021 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Thu Mar 11 10:03:55 2021 +0100 in GtkSalObject::GetOptimalSize get the preferred size and not its current size as set via SetPosSize as needed for calc navigator shrink/expand contents toolbar toggle Change-Id: I848402f609d9c03fde9953e3b313c5a815a7f4f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112270 Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gtk3gtkobject.cxx b/vcl/unx/gtk3/gtk3gtkobject.cxx index 5923088b79ee..e6da598d5e30 100644 --- a/vcl/unx/gtk3/gtk3gtkobject.cxx +++ b/vcl/unx/gtk3/gtk3gtkobject.cxx @@ -206,8 +206,18 @@ Size GtkSalObjectBase::GetOptimalSize() const bool bVisible = gtk_widget_get_visible(m_pSocket); if (!bVisible) gtk_widget_set_visible(m_pSocket, true); + + // Undo SetPosSize before getting its preferred size + gint width(-1), height(-1); + gtk_widget_get_size_request(m_pSocket, &width, &height); + gtk_widget_set_size_request(m_pSocket, -1, -1); + GtkRequisition size; gtk_widget_get_preferred_size(m_pSocket, nullptr, &size); + + // Restore SetPosSize size + gtk_widget_set_size_request(m_pSocket, width, height); + if (!bVisible) gtk_widget_set_visible(m_pSocket, false); return Size(size.width, size.height); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits