Moved the function call of scene->windowAdded() to setupComposition() of
Toplevel. The function calls from Workspace were removed, since
windowAdded() is called by setupCompositing() now, which is called anyway.
REVIEW: 102047
When a screen is disconnected XRandR emits 3 events instead of just one:
1-Disconnected screen resized
2-Disconnected screen moved
3-Disconnected screen removed
Before this commit we were calling desktopResize on each event which
between other things restart the composite (not necessarily the faster
thing to do...).
So, in order to be able to call desktopResize only once, now we're
handling individually each event, when one of them happens a QTimer is
started/restarted on each event and desktopResized is called owhen
QTimer.timeout
The current interval is 100msec
I still don't understand how I actually tested my patch
before committing. It was working, sigh. That were
several hours of annoyance including a git bisect presenting
my own commit I assumed to be correct. Sigh.
If the environment variable KWIN_GL_DEBUG is set to 1
the define KWIN_SHADER_DEBUG is added to the glsl
source code allowing to add some custom ifdefed
visual debug handling.
As an example it's added to scene-fragment.glsl to
paint everything in a greenish way.
To get rid of direct method calls and numerous #ifdefs a new signal
configChanged() is introduced to class Workspace. Every module
which is interested in reloading the configuration is needed to connect to
this signal.
Initially this is done for the reconfiguration of DesktopChangeOSD().
Since there still is a signal available in class Workspace which is
emitted if the number of desktops has changed, we now make use of it
by transforming numberDesktopsChanged() into a Q_SLOT. It is connected
to the appropriate signal and all direct method calls from Workspace were
removed.
REVIEW: 101932
When effects are active we never need the "classic" TabBoxView.
Nevertheless it was always created when KWin started up. By
delaying the creation some ressources should be saved if the user
only uses effects.
REVIEW: 101897
This should improve the KWin startup time as some IO is moved
into another thread. Till the config is loaded the TabBox blocks
all signals to activate the TabBox, but it is unlikely that alt+tab
is tried to be used before KWin is completely started.