--- compiz-0.9.7.8+bzr3121.orig/plugins/scale/scale.xml.in +++ compiz-0.9.7.8+bzr3121/plugins/scale/scale.xml.in @@ -127,7 +127,7 @@ <_short>Initiate Window Picker <_long>Layout and start transforming windows - <Shift><Alt>Up + <Super>w <_short>Initiate Window Picker @@ -145,7 +145,7 @@ <_short>Initiate Window Picker For All Windows <_long>Layout and start transforming all windows - <Super>w + <Shift><Alt>Up <_short>Initiate Window Picker For Window Group --- compiz-0.9.7.8+bzr3121.orig/plugins/scale/src/scale.cpp +++ compiz-0.9.7.8+bzr3121/plugins/scale/src/scale.cpp @@ -684,6 +684,47 @@ ScaleScreen::getWindows () const bool PrivateScaleScreen::layoutThumbs () { + switch (type) { + case ScaleTypeAll: + return layoutThumbsAll (); + case ScaleTypeNormal: + default: + return layoutThumbsSingle (); + } +} + +bool +PrivateScaleScreen::layoutThumbsAll () +{ + windows.clear (); + + /* add windows scale list, top most window first */ + foreach (CompWindow *w, screen->windows ()) + { + SCALE_WINDOW (w); + + if (sw->priv->slot) + sw->priv->adjust = true; + + sw->priv->slot = NULL; + + if (!sw->priv->isScaleWin ()) + continue; + + windows.push_back (sw); + } + + if (windows.empty ()) + return false; + + slots.resize (windows.size ()); + + return ScaleScreen::get (screen)->layoutSlotsAndAssignWindows (); +} + +bool +PrivateScaleScreen::layoutThumbsSingle () +{ bool ret = false; std::map slotWindows; CompWindowList allWindows; --- compiz-0.9.7.8+bzr3121.orig/plugins/scale/src/privates.h +++ compiz-0.9.7.8+bzr3121/plugins/scale/src/privates.h @@ -63,6 +63,8 @@ class PrivateScaleScreen : void findBestSlots (); bool fillInWindows (); bool layoutThumbs (); + bool layoutThumbsAll (); + bool layoutThumbsSingle (); SlotArea::vector getSlotAreas ();