Commit graph

274 commits

Author SHA1 Message Date
Martin Gräßlin
de5003299b Don't recreate the decoration on release window
When a window is going to be closed there is no
need to recreate the window decoration from
finishCompositing.

REVIEW: 104759
2012-05-01 08:49:20 +02:00
Martin Gräßlin
e3f2dd7612 Move KServiceTypeTrader query for Effects into a thread
By moving the query for effects into an own thread the
startup does not have to wait till all effects are loaded.
The thread moves the loading of the effects after the
Window Manager and Compositor has been fully initialized.
This is possible as EffectsHandler is fully functional even
without any effects.

The compositor ensures that at least one frame is rendered
before the started thread returns which makes the complete
startup more responsive.

REVIEW: 104583
2012-05-01 08:49:20 +02:00
Martin Gräßlin
bb5dce0e3b Use KGlobal::config() instead of specifying kwinrc
Inside KWin we can just use the global configuration
instead of manually opening kwinrc which is just the
same.

REVIEW: 104754
2012-04-29 21:55:45 +02:00
Martin Gräßlin
6919b4dc94 Drop CompositingPrefs from Compositing KCM
Instead of getting the information from CompositingPrefs
the running KWin instance is queried through D-Bus.
In general the running KWin should have more information
about whether Compositing will work or not.

This means the kcm no longer has to link OpenGL.

REVIEW: 104753
2012-04-29 21:50:09 +02:00
Martin Gräßlin
704902720b Perform detection of CompositingPrefs async
Detecting CompositingPrefs invokes an external program. Waiting
for this can be moved in a second thread.

Due to the introduction of the thread the initialization order
of KWin is changed: the WindowManager is initialized before the
Compositor. Interestingly this makes KWin felt more responsive
as the screen is not frozen for several seconds.

REVIEW: 104579
2012-04-29 21:47:04 +02:00
Martin Gräßlin
b49356bc33 Do not perform setupCompositing on Client if Toplevel is not setup
Toplevel::setupCompositing returns a boolean value and returns
false in the cases where it has not setup compositing.

This is used by the specialization on Client to not perform the
Client specific setup if Toplevel has not setup.

REVIEW: 104767
2012-04-28 09:42:26 +02:00
Thomas Lübking
1070bf895b split decorationRect / visibleRect usage
REVIEW: 104215

cherry-picked from 0f3380f3b10e57416f81a1288dc10b8dfe11d87e
Conflicts:

	kwin/geometry.cpp
	kwin/scene.cpp
2012-03-21 00:36:50 +01:00
Martin Gräßlin
212908ee88 Refactoring of KWin::Options: getter methods instead of public variables 2012-02-27 19:31:58 +01:00
Martin Gräßlin
7f0770f99d Properly ifdef everything requiering HAVE_XSYNC
REVIEW: 104080
2012-02-26 17:22:38 +01:00
Philipp Knechtges
239d5757f2 kwin: move/resize events shall not force a repaint of all layers
This patch adds a new function Toplevel::addLayerRepaint, that in contrast
to addWorkspaceRepaint does not invalidate every blur texture cache that
overlaps with that region. As the name suggests it rather invalidates the
to the window associated layer at that position. This is especially useful
in the case of move/resize events in combination with oxygen-transparent,
where the altered window is almost always the topmost window and the blur
texture cache of the windows underneath are unchanged.

For the case of fully opaque windows the behaviour of addLayerRepaint
and addWorkspaceRepaint should be same.

REVIEW: 103906
2012-02-12 16:57:12 +01:00
Martin Gräßlin
3c59983589 EffectWindow becomes a QObject 2012-01-27 08:21:52 +01:00
Martin Gräßlin
f5b93b0159 Remove scene basic
Was never used and it is unlikely that it would work at all after
all the changes over the last years.
2012-01-27 08:19:00 +01:00
Thomas Lübking
4d7161dd75 Delay added signal and other signal bindings for synced windows until the window is actually visually shown
Makes animations of showing windows run completely and thus appear smoother

REVIEW: 103742
2012-01-24 22:43:10 +01:00
Thomas Lübking
3b2476850e add dbus debug "activeEffects"
REVIEW: 103572
CCBUG: 288948
CCBUG: 290025
2012-01-02 18:54:12 +01:00
Thomas Lübking
0b23c516a7 add support for graphicssystem selection
REVIEW: 103430
CCBUG: 289904
2012-01-02 18:53:20 +01:00
Thomas Lübking
d73c46925d fix gravitation after compositor "polluted" it by updating the decoration _before_ placement
BUG: 278981
REVIEW: 103391
2011-12-18 19:51:25 +01:00
Martin Gräßlin
6c62fcd400 Make use of resize effect when resizing windows
Fixes a regression. When resize effect is available we can do a
fast resizing by only perform the resizing after the user ended
resizing the window.

REVIEW: 103363
2011-12-09 20:48:46 +01:00
Thomas Lübking
796c9d43ae "do NOT attempt to call suspendCompositing(true); from within the eventchain!" either...
sth. changed, possibly damage collection - dunno. however this now leads to undefined states as well
can't reproduce bug #280508 afterwards either - pot. implicitly fixing by bypassing pollution (BeFaded was
probably just resistent by different stacking order handling)

CCBUG: 280508
2011-11-24 20:17:20 +01:00
Thomas Lübking
bdc3cc5564 skip empty damages, reset damageRatio also when pixmaps are created 2011-11-09 21:24:07 +01:00
Marco Martin
69ad0fc5fc Merge branch 'master' into ksplash/ksplash-qml 2011-11-03 21:00:01 +01:00
Fredrik Höglund
ebd0d9303b kwin: Replace calls to QElapsedTimer::restart() with start()
It doesn't make sense to call restart() without using the return
value, or when the timer has never been started.
2011-10-29 17:41:16 +02:00
Andriy Rysin
4317ca8e88 Revert "Make kwin compile without OpenGL libs"
This reverts commit 940db4e348cf3ee016df04484616df7599504863.
2011-09-30 18:30:49 -04:00
Andriy Rysin
e94f58dd1b Make kwin compile without OpenGL libs
REVIEW: 101418
2011-09-29 23:27:16 -04:00
Marco Martin
a95019e713 Merge branch 'master' into ksplash/ksplash-qml 2011-09-26 14:11:29 +02:00
Martin Gräßlin
6e15c0c208 Change timers to QElapsedTimers
Instead of calculating the elapsed time from epoch clock, using
a QElapsedTimer as well as reusing the timer object instead of
creating a new one in the scene each frame.

REVIEW: 102473
2011-08-29 06:48:44 +02:00
Thomas Lübking
e930a50f8a coding style 2011-08-28 20:25:58 +02:00
Thomas Lübking
9d4a7c3d19 drop ignored damage events from the X11 event queue 2011-08-28 14:23:56 +02:00
Martin Gräßlin
4fb110383d Drop an unused timer 2011-08-28 10:05:00 +02:00
Thomas Lübking
12b9b1c79e fix xsync protocol
BUG: 160393
REVIEW: 102311
2011-08-24 01:39:34 +02:00
Martin Gräßlin
0c47ca5e97 Remove defines for X extensions
The following dependencies have become mandatory build deps:
* XRandR
* XRender
* XFixes
* XDamage
* XComposite
2011-08-13 16:46:43 +02:00
Martin Gräßlin
987bc837d9 Remove define KWIN_HAVE_OPENGL_COMPOSITING
Due to changes in build system we have always either OpenGL or OpenGL ES.
This allows to remove the KWIN_HAVE_OPENGL_COMPOSITING define. In the
effects the define is kept as KWIN_HAVE_OPENGL which can be used in
future to build also an XRender only effect system.
2011-08-13 16:46:43 +02:00
Martin Gräßlin
b7d2b16b8d Remove define KWIN_HAVE_COMPOSITING
Building the workspaces requires to have all the build dependencies
which were required for KWIN_HAVE_COMPOSITING to be set. This allows
us to remove all the ifdefs for this and gives us a cleaner code.
2011-08-13 16:46:43 +02:00
Thomas Lübking
2843436393 add some damageRatio = 0.0 resets, required for esp. GTK+ popups 2011-08-13 10:36:35 +02:00
Martin Gräßlin
c3cf4482a3 Move GLX detection from kwinglobals to CompositingPrefs
Removes the Extension::glxAvailable() from kwinglobals and
implements the functionality in CompositingPrefs, where it
is only needed. There used to be one additional check in
scene_opengl_glx.cpp which is moved into composite.cpp
before the OpenGL Scene is created.

REVIEW: 102002
2011-07-27 18:34:31 +02:00
Arthur Arlt
04fd63b201 Move scene->windowAdded() to Toplevel's setupCompositing() function
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
2011-07-25 12:27:43 +02:00
Philipp Knechtges
fc5e74f4e2 kwin: make decoration repaints window-specific
This gives the new Scene::paintSimpleScreen more room for optimizations.
2011-07-15 10:27:11 +02:00
Thomas Lübking
f0492f9b02 fix shadow fix
(cherry picked from commit 55986b32de9e5f5f66ac0c3448b26863cfc2dee0)
2011-07-13 23:08:03 +02:00
Thomas Lübking
d20b841713 fix GL-less kwin compilation
BUG: 277667
2011-07-13 04:09:35 +02:00
Thomas Lübking
7057bb2c25 fix new shadows
(cherry picked from commit 6f03f28509834cb145b8548dfd0322cc6d62364f)
2011-07-12 22:20:21 +02:00
Philipp Knechtges
85c5181a81 kwin: Avoid painting damaged areas which are occluded by another opaque window.
So far we have not used the information that damage events are window-specific, resulting in the
behavior that we repainted the damaged area although it might be hidden behind another window.
E.g. the CPU-Monitor plasmoid is almost all day occluded by a browser etc. and before this patch
we have been repainting the appropiate area every time the plasmoid has been updated.

Thx to Thomas Lübking for optimizing the patch.

REVIEW: 101846
2011-07-11 19:35:29 +02:00
Martin Gräßlin
b4de899b2c Fix broken creation of OverlayWindow
The HAVE_XCOMPOSITE_OVERLAY define had not been moved to the new
overlaywindow.cpp file causing the OverlayWindow to not be created
at all. In fact after moving the define to the new file the code
did not even compile as that code parts still used m_overlayWindow
instead of m_window.

The regression would have been easy to spot when testing with all
backends as the GLES/EGL backend still requires the overlay window.

CCMAIL: a.arlt@stud.uni-heidelberg.de
2011-07-11 19:12:56 +02:00
Thomas Lübking
cf66e4c86d KWin: Make damageNotifyEvent handling more aggressively aggregate rects
and skip damage handling if the window is already completely damaged.
Also avoid QRegion handling during this since we know about the rects and
the region is handled when adding the damage anyway.
2011-07-10 00:10:43 +02:00
Arthur Arlt
d8072be54d Move OverlayWindow from Workspace to its own class
All the functionality of Overlay Window is moved to its own class
OverlayWindow. It is created and owned by class Scene, since almost
all function calls are called from this class.

REVIEW: 101866
2011-07-09 19:08:48 +02:00
Martin Gräßlin
e766fe0a82 Remove the compositing too slow checks
The heuristic never worked reliable.

REVIEW: 101750
2011-06-26 09:18:08 +02:00
Philipp Knechtges
2c0b0e9f18 Performance bugfix.
In case we use OpenGL compositing and KWin is started with the raster graphicssystem,
the decoration gets painted with the raster backend.
REVIEW: 101370
2011-05-18 21:27:11 +02:00
Thomas Lübking
364ce6fbfc Allow the user to rearm OpenGLIsUnsafe KWIn autocrash protection
Also add a usable "doesn't work why" info and WARN! the user about clicking the rearm button.
Merge "OpenGLIsUnsafe" and "CheckIsSafe" config keys
Move the entire checking into CompositingPrefs

BUG:250865
FIXED-IN:4.7
2011-05-11 20:16:08 +02:00
Ivan Čukić
0f7f8a833e KWin effect support for ksplashqml 2011-05-01 16:17:21 +02:00
Martin Gräßlin
f97c92fde9 KWin does not require a decoration plugin any more
With config option "NoPlugin" in group "Style" it is possible to
no request that KWin should be run without a decoration plugin.
This is a change for Plasma Active to properly support no decorations.

As well if a decoration plugin cannot be loaded, KWin will no longer
exit, but continue to run just without a decoration. As a nice
side-effect changes in Oxygen no longer destroy my kwin build ;-)

BUG: 224440
FIXED-IN: 4.7.0
CCMAIL: sebas@kde.org
2011-04-28 16:05:23 +02:00
Martin Gräßlin
320de6abc6 Merge branch 'master' into oxygen-shadows
Conflicts:
	kwin/atoms.cpp
	kwin/atoms.h
2011-04-04 18:09:59 +02:00
Thomas Lübking
31278d570e add rule/property based composite blocking 2011-04-04 01:59:52 +02:00
Martin Gräßlin
24f36b7fae Shadow is read when Scene::Window is created 2011-04-03 12:13:20 +02:00
Martin Gräßlin
89aa8ee8db Fix repainting of shadow after window closes
Unmanaged needs to repaint the complete geometry including shadow
when it ends compositing. Therefore we need to track the shadow
passing to deleted correctly. Disadvantage: when turning off
compositing the shadow is kept. Need to solve in a better way!
2011-04-01 21:49:44 +02:00
Martin Gräßlin
12220a0d59 Initial implementation of new Shadows in KWin
For a complete documentation of new functionality refer to:
http://community.kde.org/KWin/Shadow

The current implementation includes a new Shadow class and Toplevel
holds a pointer to an instance of this class. The Shadow class reads
the data from the X11 Property. There is one extended class located
in SceneOpenGL to render the shadow.

Compositor is adjusted to include the shadow region into the painting
passes.

Implementation for XRender still missing and Shadow needs to respond
to size changes of the Toplevel to update cached shadow region and
WindowQuads.
2011-03-27 12:33:07 +02:00
Martin Gräßlin
b52975a57e Merge branch 'libkwineffects'
The branch contains the first step in reworking the kwineffects
library. This includes:
* replacing virtuals by signals and slots
* dropping some unused methods
* remove KWin::TimeLine

More to come.

Conflicts:
	kwin/workspace.cpp
2011-03-16 19:46:59 +01:00
Martin Gräßlin
6e7e1c530b Remove transformWindowDamage effects hook
It is not used by any effect, so we save one complete go through
all effects pass on each window damage.

The functionality which could be provided by this hook can also be
implemented using the window damaged signal.
2011-03-15 20:38:37 +01:00
Martin Gräßlin
88d50727ee WindowDamaged becomes a signal 2011-03-12 15:04:22 +01:00
Thomas Lübking
0c5d47f3ae unify composite activation, 'Enable' only controls initial state 2011-03-06 22:35:13 +01:00
Fredrik Höglund
09dc033e8c kwin: Use QDateTime::currentMSecsSinceEpoch() instead of QTime::currentTime(). 2011-02-01 16:38:06 +01:00
Fredrik Höglund
2d81d28e7a kwin: Use QBasicTimer instead of managing the timer ID manually. 2011-02-01 16:35:51 +01:00
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Thomas Lübking
337e1eac18 revert vsync strategy, fix timeouts
differecens to patch atteched to 258971:
- removed debug statements
- fixed indention...
- NON vsync strategy does not rely on the estimation, but on the time passed since the last repaint trigger, allowing a precise framerate

CCBUG: 258971


svn path=/trunk/KDE/kdebase/workspace/; revision=1210445
2010-12-31 13:14:11 +00:00
Thomas Lübking
e2dcfff601 commiting http://svn.reviewboard.kde.org/r/6120/#review9304
this should improve v'syncing, maybe v'synced "smoothness"
remaining and exposed issue are "dirty textures" w/o damage events (see the requst description)
can be diminished by increasing MaxFPS above the fastest update (or shadowed below the slowest one)
CCBUG: 258971

svn path=/trunk/KDE/kdebase/workspace/; revision=1207577
2010-12-18 16:51:43 +00:00
Thomas Lübking
c7a3a21116 support nvidias proprietary refreshrate through asking nvidia-settgins
svn path=/trunk/KDE/kdebase/workspace/; revision=1201396
2010-11-27 15:27:54 +00:00
Martin Gräßlin
3e689ff201 Cache generated Lanczos textures.
This provides a significant performance improvement especially for Present Windows.
Whenever a lanczos resampling is done the resulted texture is cached, till the
window is damaged or a texture of different size is required. This means that
for a taskbar thumbnail the resampling only occurs once unless the window is damaged
and for present windows it only occurs when the windows are resized and then only
after the windows have already been moved. Highlighting windows does not cause
a resampling any more.
See review request http://svn.reviewboard.kde.org/r/5708/

svn path=/trunk/KDE/kdebase/workspace/; revision=1191874
2010-11-01 10:46:11 +00:00
Martin Gräßlin
12918d3ee8 Disabling the fallback to XRender. It's causing more trouble than the benefits.
With Intel drivers currently the self check at KWin startup fails (no idea why) and KWin falls back to XRender. This is probably an explanation for all the complaints about slow kwin in 4.5 and the missing effects. So let's fail and make it possible to restart compositing via systemsettings and alt+shift+f12.
Nevertheless it would be nice to fix the the failing selfcheck...

svn path=/trunk/KDE/kdebase/workspace/; revision=1148315
2010-07-10 08:44:40 +00:00
Aaron J. Seigo
c83c168c16 'composit[e|ing]' is technical jargon; use the terminology we use elsewhere in the UI (particularly the config UI) consistently everywhere. tested on real life users(tm)
svn path=/trunk/KDE/kdebase/workspace/; revision=1103845
2010-03-16 01:17:36 +00:00
Lucas Murray
8960c552d2 Remove OpenGL driver whitelist; Add protection against crashy glXQuery
functions and share the value with the KCM; Fallback to XRender
compositing if OpenGL fails to work correctly; Rearrange setting order
in options.h slightly and fix variable names

svn path=/trunk/KDE/kdebase/workspace/; revision=1079919
2010-01-25 10:02:08 +00:00
Jacopo De Simoi
71a73acae8 Avoids a nasty race condition that caused corrupted window decorations
BUG:199735


svn path=/trunk/KDE/kdebase/workspace/; revision=1046461
2009-11-08 19:47:58 +00:00
Lucas Murray
20f1a79d04 Less warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1031490
2009-10-05 09:47:13 +00:00
Hugo Pereira Da Costa
3004fba3ce notify decorations when compositing is suspended
svn path=/trunk/KDE/kdebase/workspace/; revision=1021802
2009-09-10 05:05:44 +00:00
Martin Gräßlin
47366d5720 Reset Repaints on a Toplevel has to include the decoration shadows if used.
svn path=/trunk/KDE/kdebase/workspace/; revision=1006788
2009-08-04 12:20:33 +00:00
Martin Gräßlin
8981223956 Reimplement addRepaintFull() in Client and add the padding to the repaint region.
CCBUG: 201596

svn path=/trunk/KDE/kdebase/workspace/; revision=1004121
2009-07-29 11:48:55 +00:00
Martin Gräßlin
ba27d2ebb0 Copy decoration pixmaps to Deleted. By that we see the decoration also when having a fade out animation.
As this is a bigger commit I will wait with backporting to 4.3 for something about two or three weeks and will only backport if nobody yells.
BUG: 201780

svn path=/trunk/KDE/kdebase/workspace/; revision=1004096
2009-07-29 11:07:28 +00:00
Lucas Murray
ae71d8300f Be more strict in KWIN_COMPOSE handling.
svn path=/trunk/KDE/kdebase/workspace/; revision=987507
2009-06-26 08:36:25 +00:00
Lucas Murray
ce0a650857 Display debugging messages when compositing mode has been forced by
KWIN_COMPOSE or KDE_FAILSAFE environment variables.

svn path=/trunk/KDE/kdebase/workspace/; revision=987409
2009-06-26 01:28:15 +00:00
Lucas Murray
a20ba6a900 Prevent KWin from automatically disabling compositing when the user
changes the system time or timezone.
BUG: 184607

svn path=/trunk/KDE/kdebase/workspace/; revision=986962
2009-06-25 10:09:09 +00:00
Martin Gräßlin
9868b062c1 When finishing compositing we have to trigger a decoration repaint or there will be artefacts.
svn path=/trunk/KDE/kdebase/workspace/; revision=961903
2009-04-30 22:08:33 +00:00
Martin Gräßlin
63edbaff81 Show current compositing state (disabled/suspended/active) in Desktop Effects KCM and add a button to resume/suspend compositing. So it should be easier for the user to resume compositing if he does not know about the shortcut.
CCBUG: 188118

svn path=/trunk/KDE/kdebase/workspace/; revision=955636
2009-04-18 10:07:16 +00:00
Martin Gräßlin
253793dfff Use custom notification for compositing suspended via dbus.
svn path=/trunk/KDE/kdebase/workspace/; revision=949932
2009-04-06 09:33:43 +00:00
Martin Gräßlin
9174c43eb0 Show notification when compositing is suspended via dbus.
svn path=/trunk/KDE/kdebase/workspace/; revision=948322
2009-04-02 19:14:48 +00:00
Aike J. Sommer
f30b3e2373 Resize the overlay-window to allow compositing to continue working after xrandr-events.
CCBUG:180994

svn path=/trunk/KDE/kdebase/workspace/; revision=937637
2009-03-10 08:06:49 +00:00
Luboš Luňák
1c2ba6ea17 I forgot to actually implement the resetCompositing() slot for the previous commit.
svn path=/trunk/KDE/kdebase/workspace/; revision=924759
2009-02-11 14:29:32 +00:00
Luboš Luňák
4d82d2291e Don't needlessly setup compositing twice during startup.
Xrandr seems to like to send events about "changes" right
after application startup.


svn path=/trunk/KDE/kdebase/workspace/; revision=923829
2009-02-09 14:31:42 +00:00
Lucas Murray
cbea219964 Missing code from mouse polling commit. Stop polling when compositing is
disabled and increment the effect API version number.

svn path=/trunk/KDE/kdebase/workspace/; revision=920963
2009-02-04 07:09:47 +00:00
Lucas Murray
752d5fa642 Extracted mouse polling out of the composite timer to allow effects to
detect mouse movement and modifier key changes even when KWin is idle.
As the track mouse effect requires polling to always be active disabling
it by default to prevent wasting CPU usage in the default install.

svn path=/trunk/KDE/kdebase/workspace/; revision=919711
2009-02-01 15:16:52 +00:00
Martin Gräßlin
6a25ea49ee Deactivate scene idle during active fullscreen effect. So mouse events aren't dropped and mouse is usable in fullscreen effects, again. Of course this is not the best solution.
BUG: 177226

svn path=/trunk/KDE/kdebase/workspace/; revision=906064
2009-01-05 13:34:41 +00:00
Martin Gräßlin
f07944389e Redirect windows when there is an active fullscreen effect. This solves the problem of unredirected fullscreen applications blocking effects like present windows or desktop grid.
BUG: 176996

svn path=/trunk/KDE/kdebase/workspace/; revision=906014
2009-01-05 12:52:27 +00:00
Luboš Luňák
e53a9e8701 Maybe slightly better debug output.
svn path=/trunk/KDE/kdebase/workspace/; revision=904310
2009-01-01 21:17:58 +00:00
Jason vanRijn Kasper
fb0a01228f This change allows KWin to use the new NETWinInfo2 class (binary
compatibility class) and subsequently properly handle the
_NET_WM_FULLSCREEN_MONITORS EWMH spec hint.

svn path=/trunk/KDE/kdebase/workspace/; revision=885362
2008-11-17 08:03:39 +00:00
Laurent Montel
5535a9de5e Fix iterator
svn path=/trunk/KDE/kdebase/workspace/; revision=883047
2008-11-11 23:09:11 +00:00
Albert Astals Cid
5f7174a27e Saying
"If this was only a temporary problem, you can resume using the 'Empty' shortcut.\n"
if no shortcut is found makes no sense, reworked to avoid it

Tried my best to do correct indentation but make failed

svn path=/trunk/KDE/kdebase/workspace/; revision=878365
2008-10-31 23:54:52 +00:00
Albert Astals Cid
6581455b93 we are showing the shortcut to the user so use QKeySequence::NativeText to get it translated
svn path=/trunk/KDE/kdebase/workspace/; revision=878357
2008-10-31 23:49:17 +00:00
Luboš Luňák
c12172d291 A hack to disable unredirect for login splashscreen, better solution would
be to add support for effects refcounting the window.
BUG: 172276


svn path=/trunk/KDE/kdebase/workspace/; revision=871255
2008-10-14 10:34:35 +00:00
Hasso Tepper
b19ba265f6 Fix compile on systems without XComposite.
svn path=/trunk/KDE/kdebase/workspace/; revision=870784
2008-10-13 09:56:13 +00:00
Albert Astals Cid
882b909364 Add const & so we don't copy all that objects for nothing, faster effects for free!
svn path=/trunk/KDE/kdebase/workspace/; revision=869928
2008-10-11 12:38:46 +00:00
Luboš Luňák
9ad12bc391 Add one more check for paints taking too much time, this time
also detect not-so-bad-but-still-slow paint times over a longer
period of time, i.e. the old check is for systems which are pathetically
slow, this one is for systems that are just slow. Possibly may need
tweaking for cases like high system load, but right now it seems
that e.g. a compilation running cannot trigger this check because
it cannot cause many long repaints in a row.


svn path=/trunk/KDE/kdebase/workspace/; revision=866636
2008-10-01 14:29:56 +00:00
Luboš Luňák
f8163eac9d Use setOverlayShape() instead of doing it manually.
svn path=/trunk/KDE/kdebase/workspace/; revision=863939
2008-09-23 15:22:25 +00:00
Luboš Luňák
e433f92374 Avoid useless repeated processing of checking whether to unredirect.
svn path=/trunk/KDE/kdebase/workspace/; revision=863933
2008-09-23 14:51:21 +00:00
Luboš Luňák
503bf3e767 Add a check that measures time needed for one compositing pass.
If three successive ones take more than 1 sec, suspend compositing,
as that very likely means the system is totally incapable of decent
compositing. Perhaps may need little tweaking.


svn path=/trunk/KDE/kdebase/workspace/; revision=861906
2008-09-17 13:42:12 +00:00
Luboš Luňák
8eedfa3456 Another attempt at self-check, this time done directly during setup
(so that it can fail immediately).


svn path=/trunk/KDE/kdebase/workspace/; revision=859960
2008-09-11 16:37:26 +00:00