Blame SOURCES/0001-Resolves-tdf-96285-restore-bodge-for-unresizable-win.patch

f325b2
From b7c0576a8e8f39171b94d08fddea868da0459597 Mon Sep 17 00:00:00 2001
f325b2
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
f325b2
Date: Tue, 8 Dec 2015 13:09:34 +0000
f325b2
Subject: [PATCH] Resolves: tdf#96285 restore bodge for unresizable windows
f325b2
 with no min size set
f325b2
f325b2
(cherry picked from commit e1df21cfe0318bf287ae8ce29261d4759c49bd5a)
f325b2
f325b2
Change-Id: Ia1af11514f6096ac55d561f729bbcba9ee5b0b14
f325b2
---
f325b2
 vcl/inc/unx/gtk/gtkframe.hxx  |  2 ++
f325b2
 vcl/unx/gtk3/gtk3gtkframe.cxx | 21 ++++++++++++++++++++-
f325b2
 2 files changed, 22 insertions(+), 1 deletion(-)
f325b2
f325b2
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
f325b2
index 0fb5da7..3bd5353 100644
f325b2
--- a/vcl/inc/unx/gtk/gtkframe.hxx
f325b2
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
f325b2
@@ -212,6 +212,8 @@ class GtkSalFrame : public SalFrame, public X11WindowProvider
f325b2
 
f325b2
 #if GTK_CHECK_VERSION(3,0,0)
f325b2
     guint32                         m_nLastScrollEventTime;
f325b2
+    long                            m_nWidthRequest;
f325b2
+    long                            m_nHeightRequest;
f325b2
     cairo_region_t*                 m_pRegion;
f325b2
 #else
f325b2
     GdkRegion*                      m_pRegion;
f325b2
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
f325b2
index dcfebbf..1443054 100644
f325b2
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
f325b2
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
f325b2
@@ -885,6 +885,8 @@ void GtkSalFrame::widget_set_size_request(long nWidth, long nHeight)
f325b2
 
f325b2
 void GtkSalFrame::window_resize(long nWidth, long nHeight)
f325b2
 {
f325b2
+    m_nWidthRequest = nWidth;
f325b2
+    m_nHeightRequest = nHeight;
f325b2
     gtk_window_resize(GTK_WINDOW(m_pWindow), nWidth, nHeight);
f325b2
 }
f325b2
 
f325b2
@@ -1055,6 +1057,9 @@ void GtkSalFrame::InitCommon()
f325b2
     m_aSystemData.pAppContext   = NULL;
f325b2
     m_aSystemData.pShellWidget  = m_aSystemData.pWidget;
f325b2
 
f325b2
+    m_nWidthRequest = 0;
f325b2
+    m_nHeightRequest = 0;
f325b2
+
f325b2
     // fake an initial geometry, gets updated via configure event or SetPosSize
f325b2
     if( m_bDefaultPos || m_bDefaultSize )
f325b2
     {
f325b2
@@ -1592,6 +1597,20 @@ void GtkSalFrame::setMinMaxSize()
f325b2
                 aHints |= GDK_HINT_MAX_SIZE;
f325b2
             }
f325b2
         }
f325b2
+        else
f325b2
+        {
f325b2
+            if (!m_bFullscreen && m_nWidthRequest && m_nHeightRequest)
f325b2
+            {
f325b2
+                aGeo.min_width = m_nWidthRequest;
f325b2
+                aGeo.min_height = m_nHeightRequest;
f325b2
+                aHints |= GDK_HINT_MIN_SIZE;
f325b2
+
f325b2
+                aGeo.max_width = m_nWidthRequest;
f325b2
+                aGeo.max_height = m_nHeightRequest;
f325b2
+                aHints |= GDK_HINT_MAX_SIZE;
f325b2
+            }
f325b2
+        }
f325b2
+
f325b2
         if( m_bFullscreen && m_aMaxSize.Width() && m_aMaxSize.Height() )
f325b2
         {
f325b2
             aGeo.max_width = m_aMaxSize.Width();
f325b2
@@ -1623,7 +1642,7 @@ void GtkSalFrame::SetMinClientSize( long nWidth, long nHeight )
f325b2
         m_aMinSize = Size( nWidth, nHeight );
f325b2
         if( m_pWindow )
f325b2
         {
f325b2
-            widget_set_size_request(nWidth, nHeight );
f325b2
+            widget_set_size_request(nWidth, nHeight);
f325b2
             setMinMaxSize();
f325b2
         }
f325b2
     }
f325b2
-- 
f325b2
2.5.0
f325b2