~ubuntu-branches/ubuntu/precise/compiz/precise

« back to all changes in this revision

Viewing changes to plugins/decor/src/decor.h

  • Committer: Package Import Robot
  • Author(s): Didier Roche, Didier Roche, Oliver Grawert
  • Date: 2012-04-11 18:35:39 UTC
  • mfrom: (0.168.18)
  • Revision ID: package-import@ubuntu.com-20120411183539-rriywj3uggp1uxfu
Tags: 1:0.9.7.6-0ubuntu1
[ Didier Roche ]
* New upstream release:
  - Memory leak in dlloaderListPlugins (LP: #968985)
  - priv->invisible is not updated when the window is mapped (LP: #969102)
  - window management, multi-monitor - In multi-monitor environment, windows
    should spread on the monitor in which they reside (LP: #919139)
  - Drop-down menus look disembodied from their titles (LP: #659816)
  - Improve performace of the shadow clipping code (LP: #931883)
  - DecorWindow::computeShadowRegion called way too much (LP: #969101)
  - white box randomly shows up at top left corner blocking application
    from using stuff under it (LP: #940603)
* Rebuild against latest metacity to get the HUD key configuration
  exposed in unity 3D as well (LP: #969256)
* debian/patches/ubuntu-config.patch:
  - set multioutput_mode to all outputs (windows to be scaled on each the
    monitor they are on only) (LP: #919139)
* debian/patches/fix_976467.patch:
  - Fix shadows being clipped incorrectly (LP: #976467)

[ Oliver Grawert ]
* update the GLES2 patch for the new upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
#include <core/atoms.h>
34
34
#include <core/windowextents.h>
35
35
 
 
36
#include <clip-groups.h>
 
37
 
36
38
#include "decor_options.h"
37
39
 
38
40
#define DECOR_SCREEN(s) DecorScreen *ds = DecorScreen::get(s)
50
52
#define DECOR_ACTIVE 1
51
53
#define DECOR_NUM    2
52
54
 
 
55
using namespace compiz::decor;
 
56
 
 
57
class MatchedDecorClipGroup :
 
58
    public DecorClipGroupInterface
 
59
{
 
60
    public:
 
61
 
 
62
        MatchedDecorClipGroup (const CompMatch &match);
 
63
 
 
64
    private:
 
65
 
 
66
        bool doPushClippable (DecorClippableInterface *dc);
 
67
        bool doPopClippable (DecorClippableInterface *dc) { return mClipGroupImpl.popClippable (dc); }
 
68
        void doRegenerateClipRegion () { return mClipGroupImpl.regenerateClipRegion (); }
 
69
        const CompRegion & getClipRegion () { return mClipGroupImpl.clipRegion (); }
 
70
        void doUpdateAllShadows () { return mClipGroupImpl.updateAllShadows (); }
 
71
 
 
72
        impl::GenericDecorClipGroup             mClipGroupImpl;
 
73
        CompMatch                               mMatch;
 
74
};
 
75
 
53
76
class DecorTexture {
54
77
 
55
78
    public:
204
227
        std::map<Window, DecorWindow *> frames;
205
228
 
206
229
        CompTimer decoratorStart;
 
230
 
 
231
        MatchedDecorClipGroup mMenusClipGroup;
207
232
};
208
233
 
209
234
class DecorWindow :
210
235
    public WindowInterface,
211
236
    public CompositeWindowInterface,
212
237
    public GLWindowInterface,
213
 
    public PluginClassHandler<DecorWindow,CompWindow>
 
238
    public PluginClassHandler<DecorWindow,CompWindow>,
 
239
    public DecorClippableInterface
214
240
{
215
241
    public:
216
242
        DecorWindow (CompWindow *w);
260
286
        static bool matchState (CompWindow *w, unsigned int decorState);
261
287
        static bool matchActions (CompWindow *w, unsigned int decorActions);
262
288
 
 
289
    private:
 
290
 
 
291
        void doUpdateShadow (const CompRegion &);
 
292
        void doSetOwner (DecorClipGroupInterface *i);
 
293
        bool doMatches (const CompMatch &m);
 
294
        const CompRegion & getOutputRegion ();
 
295
        const CompRegion & getInputRegion ();
 
296
        void doUpdateGroupShadows ();
 
297
 
263
298
    public:
264
299
 
265
300
        CompWindow      *window;
296
331
        bool      isSwitcher;
297
332
 
298
333
        bool      frameExtentsRequested;
 
334
 
 
335
        DecorClipGroupInterface *mClipGroup;
 
336
        CompRegion              mOutputRegion;
 
337
        CompRegion              mInputRegion;
299
338
};
300
339
 
301
340
class DecorPluginVTable :