Do not use saveunder in opaque modes as it slows down
moving/resizing significantly. (kwin_iii port later) svn path=/trunk/kdebase/kwin/; revision=231502
This commit is contained in:
parent
79a98219bb
commit
cf8e983d87
3 changed files with 16 additions and 7 deletions
|
@ -1851,7 +1851,7 @@ void Client::mouseMoveEvent( QMouseEvent * e)
|
||||||
if (options->showGeometryTip())
|
if (options->showGeometryTip())
|
||||||
{
|
{
|
||||||
if (!geometryTip)
|
if (!geometryTip)
|
||||||
geometryTip = new GeometryTip( this, &xSizeHint );
|
geometryTip = new GeometryTip( this, &xSizeHint, isResize() );
|
||||||
|
|
||||||
geometryTip->setGeometry( geom );
|
geometryTip->setGeometry( geom );
|
||||||
if (!geometryTip->isVisible()) {
|
if (!geometryTip->isVisible()) {
|
||||||
|
@ -1884,7 +1884,7 @@ void Client::mouseMoveEvent( QMouseEvent * e)
|
||||||
{
|
{
|
||||||
// Position and Size display
|
// Position and Size display
|
||||||
if (!geometryTip)
|
if (!geometryTip)
|
||||||
geometryTip = new GeometryTip( this, &xSizeHint );
|
geometryTip = new GeometryTip( this, &xSizeHint, isResize() );
|
||||||
|
|
||||||
geometryTip->setGeometry( geom );
|
geometryTip->setGeometry( geom );
|
||||||
if (!geometryTip->isVisible()) {
|
if (!geometryTip->isVisible()) {
|
||||||
|
|
|
@ -5,12 +5,15 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "geometrytip.h"
|
#include "geometrytip.h"
|
||||||
|
#include "options.h"
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
using namespace KWinInternal;
|
using namespace KWinInternal;
|
||||||
|
|
||||||
|
extern Options* options;
|
||||||
|
|
||||||
GeometryTip::GeometryTip( const Client* client, const XSizeHints* xSizeHints ):
|
|
||||||
|
GeometryTip::GeometryTip( const Client* client, const XSizeHints* xSizeHints, bool resizing ):
|
||||||
QLabel(NULL, "kwingeometry", WStyle_Customize | WStyle_StaysOnTop |
|
QLabel(NULL, "kwingeometry", WStyle_Customize | WStyle_StaysOnTop |
|
||||||
WStyle_NoBorder | WX11BypassWM )
|
WStyle_NoBorder | WX11BypassWM )
|
||||||
{
|
{
|
||||||
|
@ -19,9 +22,15 @@ GeometryTip::GeometryTip( const Client* client, const XSizeHints* xSizeHints ):
|
||||||
// For this to work properly have 'Option "backingstore"' set in the Screen
|
// For this to work properly have 'Option "backingstore"' set in the Screen
|
||||||
// section of your XF86Config. (some drivers may not support saveunder,
|
// section of your XF86Config. (some drivers may not support saveunder,
|
||||||
// oh well, we tried.)
|
// oh well, we tried.)
|
||||||
XSetWindowAttributes wsa;
|
|
||||||
wsa.save_under = True;
|
// Only do this in transparent mode, as it slows down opaque mode...
|
||||||
XChangeWindowAttributes( qt_xdisplay(), winId(), CWSaveUnder, &wsa );
|
if ( (resizing && options->resizeMode == Options::Transparent) ||
|
||||||
|
(!resizing && options->moveMode == Options::Transparent) )
|
||||||
|
{
|
||||||
|
XSetWindowAttributes wsa;
|
||||||
|
wsa.save_under = True;
|
||||||
|
XChangeWindowAttributes( qt_xdisplay(), winId(), CWSaveUnder, &wsa );
|
||||||
|
}
|
||||||
|
|
||||||
c = client;
|
c = client;
|
||||||
setMargin(1);
|
setMargin(1);
|
||||||
|
|
|
@ -16,7 +16,7 @@ class GeometryTip: public QLabel
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
GeometryTip( const Client* client, const XSizeHints* xSizeHints );
|
GeometryTip( const Client* client, const XSizeHints* xSizeHints, bool resizing );
|
||||||
~GeometryTip();
|
~GeometryTip();
|
||||||
void setGeometry( const QRect& geom );
|
void setGeometry( const QRect& geom );
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue