]> git.sesse.net Git - vlc/commitdiff
skins2: improve layout management
authorErwan Tulou <erwan10@videolan.org>
Wed, 3 Apr 2013 09:35:28 +0000 (11:35 +0200)
committerErwan Tulou <erwan10@videolan.org>
Wed, 3 Apr 2013 10:05:01 +0000 (12:05 +0200)
Be more stringent on what it means to be tightly-coupled for two layouts.

Note that directly resizing a playout should not be allowed. Only the skins2
windows manager should be authorized to do it, since other issues are at stake
(anchors, min/max constraints, ....). Yet, this new isTightlyCoupledWith() now
ensures that two layouts are truly identical from the windows manager's
perspective, and thus avoids possible and undesirable side effects.

modules/gui/skins2/src/generic_layout.cpp
modules/gui/skins2/src/generic_layout.hpp

index 779467b4e67a853e24734e2430acea1ac9e408c8..a2e1cd686d6fc3c365b7b9a7a13012f8ab301172 100644 (file)
@@ -267,3 +267,13 @@ void GenericLayout::onHide()
     m_visible = false;
 }
 
+
+bool GenericLayout::isTightlyCoupledWith( const GenericLayout& otherLayout ) const
+{
+    return m_original_width == otherLayout.m_original_width &&
+           m_original_height == otherLayout.m_original_height &&
+           m_minWidth == otherLayout.m_minWidth &&
+           m_maxWidth == otherLayout.m_maxWidth &&
+           m_minHeight == otherLayout.m_minHeight &&
+           m_maxHeight == otherLayout.m_maxHeight;
+}
index 745dfae935acca07a40a550c156b036fb8a88cc3..d0b87acdaf476b9bb97e281cf03c382c05f10ab7 100644 (file)
@@ -108,12 +108,7 @@ public:
     virtual void resize( int width, int height );
 
     /// determine whether layouts should be kept the same size
-    virtual bool isTightlyCoupledWith( const GenericLayout& otherLayout ) const
-    {
-        return m_original_width == otherLayout.m_original_width
-               &&
-               m_original_height == otherLayout.m_original_height;
-    }
+    virtual bool isTightlyCoupledWith( const GenericLayout& otherLayout ) const;
 
     // getter for layout visibility
     virtual bool isVisible( ) const { return m_visible; }
@@ -163,8 +158,8 @@ private:
     const int m_original_height;
     /// Layout size
     SkinsRect m_rect;
-    int m_minWidth, m_maxWidth;
-    int m_minHeight, m_maxHeight;
+    const int m_minWidth, m_maxWidth;
+    const int m_minHeight, m_maxHeight;
     /// Image of the layout
     OSGraphics *m_pImage;
     /// List of the controls in the layout