0353f3376e
There's also a kwineffects library now, containing the effects API, which makes it possible to write third-party effects. API isn't complete yet and for now just two effects have been converted but I'm working on it :-) svn path=/branches/work/kwin_composite/; revision=652226
43 lines
1 KiB
C++
43 lines
1 KiB
C++
/*****************************************************************
|
|
KWin - the KDE window manager
|
|
This file is part of the KDE project.
|
|
|
|
Copyright (C) 2006 Lubos Lunak <l.lunak@kde.org>
|
|
|
|
You can Freely distribute this program under the GNU General Public
|
|
License. See the file "COPYING" for the exact licensing terms.
|
|
******************************************************************/
|
|
|
|
#include "kwinglobals.h"
|
|
|
|
#include <QCursor>
|
|
|
|
#include "kdebug.h"
|
|
|
|
#include <assert.h>
|
|
|
|
|
|
namespace KWin
|
|
{
|
|
|
|
|
|
// Optimized version of QCursor::pos() that tries to avoid X roundtrips
|
|
// by updating the value only when the X timestamp changes.
|
|
static QPoint last_cursor_pos;
|
|
static Time last_cursor_timestamp = CurrentTime;
|
|
|
|
QPoint cursorPos()
|
|
{
|
|
last_cursor_timestamp = CurrentTime;
|
|
if( last_cursor_timestamp == CurrentTime
|
|
|| last_cursor_timestamp != QX11Info::appTime())
|
|
{
|
|
last_cursor_timestamp = QX11Info::appTime();
|
|
last_cursor_pos = QCursor::pos();
|
|
}
|
|
return last_cursor_pos;
|
|
}
|
|
|
|
|
|
} // namespace
|
|
|