1
#include "clip-groups.h"
2
#include <boost/foreach.hpp>
6
#define foreach BOOST_FOREACH
9
using namespace compiz::decor;
10
using namespace compiz::decor::impl;
12
DecorClippableInterface::~DecorClippableInterface () {}
13
DecorClipGroupInterface::~DecorClipGroupInterface () {}
16
GenericDecorClipGroup::doPushClippable (DecorClippableInterface *dc)
18
std::vector <DecorClippableInterface *>::iterator it = std::find (mClippables.begin (),
22
if (it == mClippables.end ())
24
mClippables.push_back (dc);
25
regenerateClipRegion ();
35
GenericDecorClipGroup::doPopClippable (DecorClippableInterface *dc)
37
std::vector <DecorClippableInterface *>::iterator it = std::find (mClippables.begin (),
41
if (it != mClippables.end ())
44
dc->updateShadow (emptyRegion);
45
mClippables.erase (it);
46
regenerateClipRegion ();
55
GenericDecorClipGroup::doRegenerateClipRegion ()
57
mRegion -= infiniteRegion;
59
foreach (DecorClippableInterface *clippable, mClippables)
61
mRegion += clippable->inputRegion ();
66
GenericDecorClipGroup::getClipRegion ()
72
GenericDecorClipGroup::doUpdateAllShadows ()
74
foreach (DecorClippableInterface *clippable, mClippables)
75
clippable->updateShadow (mRegion);