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

  • From: clemens.zeidler@xxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 26 Jul 2011 00:26:45 +0200 (CEST)

Author: czeidler
Date: 2011-07-26 00:26:44 +0200 (Tue, 26 Jul 2011)
New Revision: 42487
Changeset: https://dev.haiku-os.org/changeset/42487
Ticket: https://dev.haiku-os.org/ticket/6616
Ticket: https://dev.haiku-os.org/ticket/6652

Modified:
   haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.cpp
   haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.h
   haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.cpp
Log:
Activate only the top window in a group and not all windows. Fixes #6652 and 
#6616.



Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.cpp
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.cpp        
2011-07-25 22:26:35 UTC (rev 42486)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.cpp        
2011-07-25 22:26:44 UTC (rev 42487)
@@ -78,6 +78,13 @@
 }
 
 
+SATWindow*
+WindowArea::TopWindow()
+{
+       return fWindowLayerOrder.ItemAt(fWindowLayerOrder.CountItems() - 1);
+}
+
+
 bool
 WindowArea::_AddWindow(SATWindow* window, SATWindow* after)
 {

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.h
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.h  2011-07-25 
22:26:35 UTC (rev 42486)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/SATGroup.h  2011-07-25 
22:26:44 UTC (rev 42487)
@@ -144,6 +144,7 @@
        const   SATWindowList&          LayerOrder() { return 
fWindowLayerOrder; }
                        bool                            
MoveWindowToPosition(SATWindow* window,
                                                                        int32 
index);
+                       SATWindow*                      TopWindow();
 
                        Crossing*                       LeftTopCrossing()
                                                                        { 
return fLeftTopCrossing.Get(); }

Modified: haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.cpp
===================================================================
--- haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.cpp    
2011-07-25 22:26:35 UTC (rev 42486)
+++ haiku/trunk/src/add-ons/decorators/SATDecorator/StackAndTile.cpp    
2011-07-25 22:26:44 UTC (rev 42487)
@@ -502,15 +502,12 @@
                return;
        area->MoveToTopLayer(satWindow);
 
-       //desktop->ActivateWindow(satWindow->GetWindow());
-
-       WindowIterator iter(group);
-       for (SATWindow* listWindow = iter.NextWindow(); listWindow != NULL;
-               listWindow = iter.NextWindow()) {
-               if (listWindow != satWindow)
-                       //desktop->SendWindowBehind(listWindow->GetWindow(),
-                       //      satWindow->GetWindow());
-                               
desktop->ActivateWindow(listWindow->GetWindow());
+       const WindowAreaList& areas = group->GetAreaList() ;
+       for (int32 i = 0; i < areas.CountItems(); i++) {
+               WindowArea* currentArea = areas.ItemAt(i);
+               if (currentArea == area)
+                       continue;
+               desktop->ActivateWindow(currentArea->TopWindow()->GetWindow());
        }
 
        desktop->ActivateWindow(satWindow->GetWindow());


Other related posts:

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