[haiku-commits] r38508 - haiku/trunk/src/add-ons/decorators/SATDecorator

  • From: clemens.zeidler@xxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 2 Sep 2010 05:05:58 +0200 (CEST)

Author: czeidler
Date: 2010-09-02 05:05:58 +0200 (Thu, 02 Sep 2010)
New Revision: 38508
Changeset: http://dev.haiku-os.org/changeset/38508

Modified:
   haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.h
   haiku/trunk/src/add-ons/decorators/SATDecorator/SATWindow.cpp
   haiku/trunk/src/add-ons/decorators/SATDecorator/SATWindow.h
   haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.cpp
   haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.h
   haiku/trunk/src/add-ons/decorators/SATDecorator/Stacking.cpp
   haiku/trunk/src/add-ons/decorators/SATDecorator/Stacking.h
   haiku/trunk/src/add-ons/decorators/SATDecorator/Tiling.cpp
   haiku/trunk/src/add-ons/decorators/SATDecorator/Tiling.h
Log:
- Do the window layout on every resize. This is e.g. needed to do the tab 
layout.
- Use old ActivateWindow implementation till the Desktop SendBehind question is 
solved.



Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.h
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.h  2010-09-01 
21:55:11 UTC (rev 38507)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.h  2010-09-02 
03:05:58 UTC (rev 38508)
@@ -253,6 +253,7 @@
 
 protected:
                SATWindowList           fSATWindowList;
+
                LinearSpec                      fLinearSpec;
 
 private:

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/SATWindow.cpp
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/SATWindow.cpp       
2010-09-01 21:55:11 UTC (rev 38507)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/SATWindow.cpp       
2010-09-02 03:05:58 UTC (rev 38508)
@@ -457,6 +457,14 @@
 
 
 void
+SATWindow::DoWindowLayout()
+{
+       for (int i = 0; i < fSATSnappingBehaviourList.CountItems(); i++)
+               fSATSnappingBehaviourList.ItemAt(i)->DoWindowLayout();
+}
+
+
+void
 SATWindow::DoGroupLayout()
 {
        if (!PositionManagedBySAT())
@@ -464,8 +472,7 @@
 
        fGroupCookie->DoGroupLayout(this);
 
-       for (int i = 0; i < fSATSnappingBehaviourList.CountItems(); i++)
-               fSATSnappingBehaviourList.ItemAt(i)->DoGroupLayout();
+       DoWindowLayout();
 }
 
 

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/SATWindow.h
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/SATWindow.h 2010-09-01 
21:55:11 UTC (rev 38507)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/SATWindow.h 2010-09-02 
03:05:58 UTC (rev 38508)
@@ -100,6 +100,7 @@
 
                void                            FindSnappingCandidates();
                bool                            JoinCandidates();
+               void                            DoWindowLayout();
                void                            DoGroupLayout();
 
                //! \return the complete window frame including the Decorator

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.cpp
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.cpp    
2010-09-01 21:55:11 UTC (rev 38507)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.cpp    
2010-09-02 03:05:58 UTC (rev 38508)
@@ -185,6 +185,17 @@
                // after solve the layout update the size constraints of all 
windows in
                // the group
                satWindow->UpdateGroupWindowsSize();
+
+               // Do a window layout for all windows. TODO: mybe do it a bit 
more
+               // efficient
+               SATGroup* group = satWindow->GetGroup();
+               if (!group)
+                       return;
+               for (int i = 0; i < group->CountItems(); i++) {
+                       SATWindow* listWindow = group->WindowAt(i);
+                       if (listWindow != satWindow)
+                               listWindow->DoWindowLayout();
+               }
        }
 }
 
@@ -357,15 +368,18 @@
        if (!desktop)
                return;
 
-       desktop->ActivateWindow(satWindow->GetWindow());
+       //desktop->ActivateWindow(satWindow->GetWindow());
 
        for (int i = 0; i < group->CountItems(); i++) {
                SATWindow* listWindow = group->WindowAt(i);
                if (listWindow == satWindow)
                        continue;
-               desktop->SendWindowBehind(listWindow->GetWindow(),
-                       satWindow->GetWindow());
+               //desktop->SendWindowBehind(listWindow->GetWindow(),
+               //      satWindow->GetWindow());
+               desktop->ActivateWindow(listWindow->GetWindow());
        }
+
+       desktop->ActivateWindow(satWindow->GetWindow());
 }
 
 

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.h
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.h      
2010-09-01 21:55:11 UTC (rev 38507)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.h      
2010-09-02 03:05:58 UTC (rev 38508)
@@ -127,7 +127,7 @@
        virtual bool                    JoinCandidates() = 0;
        /*! Update the window tab values, solve the layout and move all windows 
in
        the group accordantly. */
-       virtual void                    DoGroupLayout() = 0;
+       virtual void                    DoWindowLayout() = 0;
        virtual void                    RemovedFromArea(WindowArea* area) {}
        virtual void                    TabLocationMoved(float location, bool 
shifting) {}
 };

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/Stacking.cpp
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/Stacking.cpp        
2010-09-01 21:55:11 UTC (rev 38507)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/Stacking.cpp        
2010-09-02 03:05:58 UTC (rev 38508)
@@ -254,7 +254,7 @@
 
 
 void
-SATStacking::DoGroupLayout()
+SATStacking::DoWindowLayout()
 {
        _AdjustWindowTabs();
 }

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/Stacking.h
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/Stacking.h  2010-09-01 
21:55:11 UTC (rev 38507)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/Stacking.h  2010-09-02 
03:05:58 UTC (rev 38508)
@@ -30,7 +30,8 @@
 
                bool                            
FindSnappingCandidates(SATGroup* group);
                bool                            JoinCandidates();
-               void                            DoGroupLayout();
+               void                            DoWindowLayout();
+
                void                            RemovedFromArea(WindowArea* 
area);
                void                            TabLocationMoved(float 
location, bool shifting);
 

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/Tiling.cpp
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/Tiling.cpp  2010-09-01 
21:55:11 UTC (rev 38507)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/Tiling.cpp  2010-09-02 
03:05:58 UTC (rev 38508)
@@ -79,7 +79,7 @@
 
 
 void
-SATTiling::DoGroupLayout()
+SATTiling::DoWindowLayout()
 {
 
 }

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/Tiling.h
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/Tiling.h    2010-09-01 
21:55:11 UTC (rev 38507)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/Tiling.h    2010-09-02 
03:05:58 UTC (rev 38508)
@@ -22,7 +22,7 @@
 
                bool                            
FindSnappingCandidates(SATGroup* group);
                bool                            JoinCandidates();
-               void                            DoGroupLayout();
+               void                            DoWindowLayout();
 
 private:
                bool                            _FindFreeAreaInGroup(SATGroup* 
group);


Other related posts:

  • » [haiku-commits] r38508 - haiku/trunk/src/add-ons/decorators/SATDecorator - clemens . zeidler