Added screenNumber() and addRepaint(QRegion) to effects API

svn path=/trunk/KDE/kdebase/workspace/; revision=822215
This commit is contained in:
Lucas Murray 2008-06-19 14:16:21 +00:00
parent 0b7a501577
commit d515abb82c
5 changed files with 22 additions and 0 deletions

View file

@ -284,6 +284,13 @@ void Workspace::addRepaint( const QRect& r )
repaints_region += r;
}
void Workspace::addRepaint( const QRegion& r )
{
if( !compositing())
return;
repaints_region += r;
}
void Workspace::addRepaintFull()
{
if( !compositing())

View file

@ -537,6 +537,11 @@ void EffectsHandlerImpl::addRepaint( const QRect& r )
Workspace::self()->addRepaint( r );
}
void EffectsHandlerImpl::addRepaint( const QRegion& r )
{
Workspace::self()->addRepaint( r );
}
void EffectsHandlerImpl::addRepaint( int x, int y, int w, int h )
{
Workspace::self()->addRepaint( x, y, w, h );
@ -552,6 +557,11 @@ int EffectsHandlerImpl::numScreens() const
return Workspace::self()->numScreens();
}
int EffectsHandlerImpl::screenNumber( const QPoint& pos ) const
{
return Workspace::self()->screenNumber( pos );
}
QRect EffectsHandlerImpl::clientArea( clientAreaOption opt, int screen, int desktop ) const
{
return Workspace::self()->clientArea( opt, screen, desktop );

View file

@ -85,9 +85,11 @@ class EffectsHandlerImpl : public EffectsHandler
virtual void addRepaintFull();
virtual void addRepaint( const QRect& r );
virtual void addRepaint( const QRegion& r );
virtual void addRepaint( int x, int y, int w, int h );
virtual int activeScreen() const;
virtual int numScreens() const;
virtual int screenNumber( const QPoint& pos ) const;
virtual QRect clientArea( clientAreaOption, int screen, int desktop ) const;
virtual QRect clientArea( clientAreaOption, const EffectWindow* c ) const;
virtual QRect clientArea( clientAreaOption, const QPoint& p, int desktop ) const;

View file

@ -477,6 +477,7 @@ class KWIN_EXPORT EffectsHandler
virtual QString desktopName( int desktop ) const = 0;
virtual int activeScreen() const = 0; // Xinerama
virtual int numScreens() const = 0; // Xinerama
virtual int screenNumber( const QPoint& pos ) const = 0; // Xinerama
virtual QRect clientArea( clientAreaOption, int screen, int desktop ) const = 0;
virtual QRect clientArea( clientAreaOption, const EffectWindow* c ) const = 0;
virtual QRect clientArea( clientAreaOption, const QPoint& p, int desktop ) const = 0;
@ -515,6 +516,7 @@ class KWIN_EXPORT EffectsHandler
**/
virtual void addRepaintFull() = 0;
virtual void addRepaint( const QRect& r ) = 0;
virtual void addRepaint( const QRegion& r ) = 0;
virtual void addRepaint( int x, int y, int w, int h ) = 0;
CompositingType compositingType() const;

View file

@ -317,6 +317,7 @@ class Workspace : public QObject, public KDecorationDefines
// when adding repaints caused by a window, you probably want to use
// either Toplevel::addRepaint() or Toplevel::addWorkspaceRepaint()
void addRepaint( const QRect& r );
void addRepaint( const QRegion& r );
void addRepaint( int x, int y, int w, int h );
// creates XComposite overlay window, call initOverlay() afterwards
bool createOverlay();