Commit 44febce3 authored by Erwan Tulou's avatar Erwan Tulou

skins2: improve layout management

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.
parent e8ccdc60
...@@ -267,3 +267,13 @@ void GenericLayout::onHide() ...@@ -267,3 +267,13 @@ void GenericLayout::onHide()
m_visible = false; 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;
}
...@@ -108,12 +108,7 @@ public: ...@@ -108,12 +108,7 @@ public:
virtual void resize( int width, int height ); virtual void resize( int width, int height );
/// determine whether layouts should be kept the same size /// determine whether layouts should be kept the same size
virtual bool isTightlyCoupledWith( const GenericLayout& otherLayout ) const virtual bool isTightlyCoupledWith( const GenericLayout& otherLayout ) const;
{
return m_original_width == otherLayout.m_original_width
&&
m_original_height == otherLayout.m_original_height;
}
// getter for layout visibility // getter for layout visibility
virtual bool isVisible( ) const { return m_visible; } virtual bool isVisible( ) const { return m_visible; }
...@@ -163,8 +158,8 @@ private: ...@@ -163,8 +158,8 @@ private:
const int m_original_height; const int m_original_height;
/// Layout size /// Layout size
SkinsRect m_rect; SkinsRect m_rect;
int m_minWidth, m_maxWidth; const int m_minWidth, m_maxWidth;
int m_minHeight, m_maxHeight; const int m_minHeight, m_maxHeight;
/// Image of the layout /// Image of the layout
OSGraphics *m_pImage; OSGraphics *m_pImage;
/// List of the controls in the layout /// List of the controls in the layout
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment