kwin/decorations
Martin Gräßlin eed4bf32ae Cache the clientSize in DecoratedClientImpl
Summary:
So far whenever the window geometry changed the widthChanged and
heightChanged signals were emitted even if they did not change.
E.g. while moving a window this resulted in the signal being emitted
after every step, although from decoration point of view nothing
changed.

The decoration performed costly tasks like re-layout the window buttons.

With this change the client size is cached and the widthChanged signal
is only emitted if the width actually changed. Same for heightChanged.

This results in the decoration only re-layouting the buttons if the
window is resized horizontally. All other geometry changes no longer
result in a re-layout.

Reviewers: #kwin, #plasma

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D2389
2016-08-10 14:22:19 +02:00
..
decoratedclient.cpp Cache the clientSize in DecoratedClientImpl 2016-08-10 14:22:19 +02:00
decoratedclient.h Cache the clientSize in DecoratedClientImpl 2016-08-10 14:22:19 +02:00
decorationbridge.cpp Add an explicit dependency to Breeze to find decoration plugin 2016-04-12 08:54:50 +02:00
decorationbridge.h DecorationBridge creates Decoration for AbstractClient 2015-12-18 16:41:49 +01:00
decorationpalette.cpp [decorations] Introduce logging category for decorations 2015-07-31 13:13:46 +02:00
decorationpalette.h Adapt to KDecoration API changes 2015-03-31 15:26:55 +02:00
decorationrenderer.cpp [decoration] Use client's depth in X11Renderer for put_image 2015-01-12 11:43:29 +01:00
decorationrenderer.h Override ::reparent in X11Renderer 2014-08-11 11:41:08 +02:00
decorations_logging.cpp pedantic fixes 2016-07-16 13:14:44 -04:00
decorations_logging.h [decorations] Introduce logging category for decorations 2015-07-31 13:13:46 +02:00
settings.cpp Use kwinApp()->config() instead of KSharedConfig::openConfig() 2016-01-29 11:24:18 +01:00
settings.h Bring back configuration options for Decorations 2014-12-04 16:28:06 +01:00