Commit graph

390 commits

Author SHA1 Message Date
Martin Gräßlin
f6600709de Fix QLatin1String/QString Krazy issues
SVN_SILENT

svn path=/trunk/KDE/kdebase/workspace/; revision=1210598
2011-01-01 09:50:05 +00:00
Thomas Lübking
48447a3d26 avoid recreating effectframes/textures on setPosition; correct position after setAlignment
svn path=/trunk/KDE/kdebase/workspace/; revision=1203489
2010-12-04 10:01:57 +00:00
Anselmo Melo
f3a34bd72a Fix build errors when configured without openGL
Changes and introduces some '#ifdef KWIN_HAVE_OPENGL_COMPOSITING'
http://svn.reviewboard.kde.org/r/5903/


svn path=/trunk/KDE/kdebase/workspace/; revision=1198802
2010-11-19 20:14:03 +00:00
Thomas Lübking
68fbd31ad8 add windowgeometry tip effect, bind it to the general setting and generalize effect feature provide api, thus update resize effect
BUG: 219755

svn path=/trunk/KDE/kdebase/workspace/; revision=1195300
2010-11-10 19:21:56 +00:00
Martin Gräßlin
6353d6ff57 Don't blur behind opaque window decorations.
Adding a new AbilityUsesBlurBehind which can be set by decorations with
alpha channel to request that the background can be blurred. This improves
the situation for our completely opaque default Oxygen decoration.

This change is a behavior change in comparison to 4.5! Translucent decorations do
not get blurred by default any more.
CCMAIL: craig.p.drummond@googlemail.com

svn path=/trunk/KDE/kdebase/workspace/; revision=1195274
2010-11-10 18:33:07 +00:00
Martin Gräßlin
382d5b15d3 Ignore Paint Clipper when rendering to FBO.
See Review Request http://svn.reviewboard.kde.org/r/4329/

svn path=/trunk/KDE/kdebase/workspace/; revision=1191903
2010-11-01 12:09:53 +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
Luboš Luňák
d467d26530 Do not introduce such generic indentifiers like None or Styled
into KWin's global namespace. Morever None already kind of clashes with X's None.
CCMAIL: kde@martin-graesslin.com


svn path=/trunk/KDE/kdebase/workspace/; revision=1170588
2010-09-01 14:15:06 +00:00
Martin Gräßlin
eabad32cfb Add cross fade support for text and icon to EffectFrame.
This allows an effect to fade between old and new text/icon. As an example it's added to CoverSwitch.
Currently only supported in OpenGL. XRender might be added, but I'm missing an idea for an effect to add it.
Most effects using EffectFrame require OpenGL anyway.

svn path=/trunk/KDE/kdebase/workspace/; revision=1160252
2010-08-07 14:08:34 +00:00
Martin Gräßlin
ef79d4c443 Use the normal Plasma selection to highlight the selected window in boxswitch.
So it is more consistent (in KDE newspeak "elegant") with other selections and as a plus we get rid of all the custom rendering code in boxswitch.

svn path=/trunk/KDE/kdebase/workspace/; revision=1155051
2010-07-26 20:00:04 +00:00
Martin Gräßlin
89c0ea0c8d Pass EffectFrame through all effects, so that they can do something with the frame.
E.g. set a shader to invert it.
CCBUG: 241389

svn path=/trunk/KDE/kdebase/workspace/; revision=1154071
2010-07-24 16:29:16 +00:00
Martin Gräßlin
20b711e2e8 Use a VBO for rendering an unstyled effect frame.
svn path=/trunk/KDE/kdebase/workspace/; revision=1153932
2010-07-24 08:04:17 +00:00
Martin Gräßlin
fa832b7aa7 Cache the icon texture/picture in EffectFrame and use texture from pixmap to load the data in OpenGL mode. Yeah for less pixmap to image to gltexture conversations.
Some effects (boxswitch and flipswitch) still need to be changed to not set the icon in each frame.

svn path=/trunk/KDE/kdebase/workspace/; revision=1152367
2010-07-20 21:11:03 +00:00
Martin Gräßlin
e2eebb6503 Refactoring of EffectFrame: EffectFrame becomes an interface just like EffectsHandler and EffectWindow and a concrete EffectFrameImpl in core.
Rendering of the EffectFrame is moved into the scene as Scene::EffectFrame with a concrete implementation in SceneXrender and SceneOpenGL.
A factory method for an EffectFrame is added to the EffectsHandler, which is used by the effects.
Next step: pass the EffectFrame through all effects, so that effects can transform, blur, invert whatever it.

svn path=/trunk/KDE/kdebase/workspace/; revision=1151271
2010-07-18 16:32:37 +00:00
Thomas Lübking
ffa8b5306c rename EffectsHandler::provideResizeEffect to singular, honor rules (also affecting the sync timer now)
svn path=/trunk/KDE/kdebase/workspace/; revision=1123660
2010-05-06 14:54:34 +00:00
Martin Gräßlin
fa7f160cb3 Window specific setting to skip window switchers (tabbox, present windows, desktop grid).
FEATURE: 171192
CCBUG: 179723

svn path=/trunk/KDE/kdebase/workspace/; revision=1122404
2010-05-03 20:04:44 +00:00
Martin Gräßlin
f6ebb5d913 Texture scaling in resize effect and disabling the drawbound when the effect is present.
This provides a good resizing performance for users having problems with the live-updating resize.
Patch by Thomas Lübking.

svn path=/trunk/KDE/kdebase/workspace/; revision=1118714
2010-04-25 18:40:04 +00:00
Martin Gräßlin
ec8d860c4b Allow effects to change the number of desktops and inform effects when the number of desktops is changed.
svn path=/trunk/KDE/kdebase/workspace/; revision=1108239
2010-03-28 09:04:14 +00:00
Fredrik Höglund
7ad2203084 Expose the decoration inner rect to effects.
svn path=/trunk/KDE/kdebase/workspace/; revision=1102475
2010-03-12 16:33:01 +00:00
Fredrik Höglund
55b5b593b2 Add EffectsHandler::decorationsHaveAlpha().
Effects can use this method to check if the decorations use
the alpha channel.

svn path=/trunk/KDE/kdebase/workspace/; revision=1099522
2010-03-05 18:21:14 +00:00
Lucas Murray
51168e97a4 Keep the logout effect active until KWin is killed or the user cancels
the logout by using new information provided by KSMServer; Allow effects
to read and detect root window property notify events.

svn path=/trunk/KDE/kdebase/workspace/; revision=1083335
2010-02-01 07:44:27 +00:00
Fredrik Höglund
b95c6f721c Make it possible for effects to store arbitrary data in EffectWindow.
svn path=/trunk/KDE/kdebase/workspace/; revision=1069539
2010-01-03 17:50:38 +00:00
Martin Gräßlin
2ff73028a0 Make it possible to move windows across screens in desktop grid.
BUG: 213845

svn path=/trunk/KDE/kdebase/workspace/; revision=1051265
2009-11-19 08:34:28 +00:00
Lucas Murray
622828eba4 Fix crash in EffectWindow::visibleInClientGroup() when it's called on a
window that doesn't have a decoration.
BUG: 214757

svn path=/trunk/KDE/kdebase/workspace/; revision=1049896
2009-11-16 03:58:58 +00:00
Lucas Murray
a0d07d12a2 Merged r970865:1049322 from /branches/work/kwin-tabbing
Adds window tabbing support to KWin.
FEATURE: 42023

svn path=/trunk/KDE/kdebase/workspace/; revision=1049334
2009-11-15 03:24:04 +00:00
Lucas Murray
a6e68a5f6f Revert failed Krazy changes.
svn path=/trunk/KDE/kdebase/workspace/; revision=1043205
2009-11-01 03:36:38 +00:00
Martin Gräßlin
77f0f0eaca Adding the missing pieces for a nice and fast letterbox resizing as a replacement for the drawbound resizing.
Perhaps we should not display the totally ugly drawbound when we have an active resize effect.
CCBUG: 208770
CCBUG: 152638

svn path=/trunk/KDE/kdebase/workspace/; revision=1042711
2009-10-30 14:22:33 +00:00
Martin Gräßlin
aff72003dd The TabBox passes KeyEvents to the effects. So we can navigate with left/right/up/down in presentwindows when used as alt+tab effect. Filtering is of course disabled.
svn path=/trunk/KDE/kdebase/workspace/; revision=1042596
2009-10-30 09:16:41 +00:00
Lucas Murray
424d358fd2 Less Krazy warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1042583
2009-10-30 08:10:35 +00:00
Lucas Murray
20f1a79d04 Less warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1031490
2009-10-05 09:47:13 +00:00
Lucas Murray
ca9df8caae Add window snapping to the desktop grid effect.
Patch by Caio Marcelo de Oliveira Filho.
FEATURE: 188743

svn path=/trunk/KDE/kdebase/workspace/; revision=1031428
2009-10-05 04:06:20 +00:00
Lucas Murray
da37b1f16d Don't const effect proxies.
svn path=/trunk/KDE/kdebase/workspace/; revision=1018656
2009-09-02 02:30:22 +00:00
Thomas Lübking
46def0304e BUG: 167138
make opacity rules actually functional

svn path=/trunk/KDE/kdebase/workspace/; revision=1002997
2009-07-27 13:30:08 +00:00
Martin Gräßlin
a26c5b1225 Configurable mouse actions in present windows for clicking a window and desktop.
It's possible to activate a window, exit without activating, bring window to current desktop, send window on all desktops, mimize the window and close the window.
Clicking desktop allows to activate selected window, exit without activating, show the desktop (minimize all apps) and of course do nothing.
FEATURE: 163116

svn path=/trunk/KDE/kdebase/workspace/; revision=988788
2009-06-28 17:17:29 +00:00
Martin Gräßlin
fcbd01779a Add support for activating present windows via XAtoms.
Present windows can be activated for all windows of a desktop by setting the atom _KDE_PRESENT_WINDOWS_DESKTOP to the number of desktop or -1 for all desktops.
Another atom _KDE_PRESENT_WINDOWS_GROUP can be used to activate present windows on a group of windows (e.g. tasks applet).
When present windows is deactivated the property on the manager window will be deleted.

svn path=/trunk/KDE/kdebase/workspace/; revision=988110
2009-06-27 10:21:49 +00:00
Lucas Murray
8d09ed341a Remove old decoration shadow API, rename AbilityProvidesShadow and add
support for the new decoration shadow API in the shadow effect.

svn path=/trunk/KDE/kdebase/workspace/; revision=980130
2009-06-11 08:11:13 +00:00
Michael Zanetti
32ef57aae7 Add bool keepAbove() to EffectWindow
svn path=/trunk/KDE/kdebase/workspace/; revision=969232
2009-05-17 18:26:49 +00:00
Lucas Murray
893b0c2c71 Merge DesktopLayout class into Workspace.
svn path=/trunk/KDE/kdebase/workspace/; revision=926020
2009-02-14 15:40:52 +00:00
Lucas Murray
dd28e15a1b Allow desktop effects to access the new DesktopLayout class. Replaced
all code that used calcDesktopLayout() so the function could be removed.
Minor changes to the DesktopLayout class itself.

svn path=/trunk/KDE/kdebase/workspace/; revision=925930
2009-02-14 14:49:46 +00:00
Martin Gräßlin
57f57adaa4 Export method hasAlpha() from Toplevel to EffectWindow.
svn path=/trunk/KDE/kdebase/workspace/; revision=923320
2009-02-08 15:47:37 +00:00
Lucas Murray
13c2f21e9d Added EffectWindow::acceptsFocus(). Prevent present windows from
displaying windows that cannot be focused anyway (Such as conky).

svn path=/trunk/KDE/kdebase/workspace/; revision=923091
2009-02-08 08:45:21 +00:00
Lucas Murray
81ffa5aec9 Raise electric border windows when an effect mouse input window is
created to allow effects to be toggled by active screen edges.

svn path=/trunk/KDE/kdebase/workspace/; revision=922121
2009-02-06 14:21:20 +00:00
Lucas Murray
a1c82cd52b Added support for inter-effect communication through the use of proxy
classes. Example code has been added to present windows and desktop
grid, if this code is not to be used by KDE 4.3 it should be removed and
added to a test effect instead.

svn path=/trunk/KDE/kdebase/workspace/; revision=922039
2009-02-06 10:15:06 +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
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
Lucas Murray
8e6d18f7b3 Revert "Ported grid branch to a desktop effect."
I accidently committed the wrong Git branch to trunk. =\

svn path=/trunk/KDE/kdebase/workspace/; revision=897889
2008-12-17 03:14:33 +00:00
Lucas Murray
07653a50a7 Ported grid branch to a desktop effect.
Added resize functions to effect API.

svn path=/trunk/KDE/kdebase/workspace/; revision=897887
2008-12-17 03:10:41 +00:00
Lucas Murray
6d41a1320e Moved all debug, warning and error messages into the KWin 1212 area.
Replaced deprecated kdDebug() with kDebug().
Removed empty debug messages.

svn path=/trunk/KDE/kdebase/workspace/; revision=885620
2008-11-17 15:04:52 +00:00
Lucas Murray
154c19b0e7 Make the client shadowOpacity() return a relative opacity instead of absolute.
svn path=/trunk/KDE/kdebase/workspace/; revision=873440
2008-10-19 13:43:16 +00:00
Lucas Murray
c07ba30b63 Fixed shadow effect losing its shadows after making changes to the settings.
Added force mode to buildQuads() to allow refreshing the cache.
Made EffectWindow::buildQuads() no longer internal.

svn path=/trunk/KDE/kdebase/workspace/; revision=872836
2008-10-18 10:31:59 +00:00
Lucas Murray
899d578c49 Merge Libkdecoration2 Git branch.
WARNING: Breaks shadow effect. I don't think it causes anything to crash anymore but it is VERY ugly visually.

Contains:
 - New decoration API that allows decorations to change the way shadows look.
 - Shadows now wobble.
 - API example code in the Oxygen decoration.
 - Added buildQuads() effect plugin hook.
 - Work on the shadow effect to use the new decoration shadow API as well.
 - Added IDs to WindowQuads.
 - Added public accessors to texture coords in WindowVertex.

Would like all this to be reviewed.

CCMAIL: kwin@kde.org

svn path=/trunk/KDE/kdebase/workspace/; revision=872473
2008-10-17 10:30:43 +00:00
Luboš Luňák
1d2c54edcc Support for proper effect reconfiguration instead of reloading them.
Fixes e.g. the global animation combo not taking effect.


svn path=/trunk/KDE/kdebase/workspace/; revision=866903
2008-10-02 09:27:32 +00:00
Luboš Luňák
08571b2f52 Do not use 'assert( false )', with NDEBUG that is a no-op and
results in warnings about missing return.


svn path=/trunk/KDE/kdebase/workspace/; revision=861879
2008-09-17 11:44:51 +00:00
Luboš Luňák
2a87593638 Add a global configuration option for animation speed. See description
of Effect::animationTime() for how-to-use.
TODO: Effects need to reload config after doing the change in the kcm.
NOTE: Default TimeLine constructor now creates invalid object, it is
necessary to explicitly call setDuration() in order to ensure all
animations respect this setting.

CCMAIL: kwin@kde.org


svn path=/trunk/KDE/kdebase/workspace/; revision=854690
2008-08-30 07:25:54 +00:00
Lucas Murray
0581746327 Allow moving of maximized windows across screens
BUG: 131299

svn path=/trunk/KDE/kdebase/workspace/; revision=837644
2008-07-25 10:31:47 +00:00
Lucas Murray
d515abb82c Added screenNumber() and addRepaint(QRegion) to effects API
svn path=/trunk/KDE/kdebase/workspace/; revision=822215
2008-06-19 14:16:21 +00:00
Luboš Luňák
e2f835e142 Modules -> Effects, for consistent naming (not sure if the calls
are used somewhere). Also fix the strange indent.
CCMAIL: Laurent Montel <montel@kde.org>


svn path=/trunk/KDE/kdebase/workspace/; revision=818994
2008-06-10 09:32:46 +00:00
Luboš Luňák
3f4a2dfaed Add functions for querying xinerama screens to effects API,
from Lucas Murray <admin@undefinedfire.com>.


svn path=/trunk/KDE/kdebase/workspace/; revision=818782
2008-06-09 16:09:56 +00:00
Laurent Montel
5628d59f1f Add dbus function to show which effect can be loaded
so now all is ok to know which module can be load/unload

svn path=/trunk/KDE/kdebase/workspace/; revision=815903
2008-06-02 20:05:17 +00:00
Laurent Montel
54ede72bf1 Add a dbus function to show which effect is loaded
svn path=/trunk/KDE/kdebase/workspace/; revision=815896
2008-06-02 19:52:02 +00:00
Albert Astals Cid
3b9121ec3f const & in foreach
svn path=/trunk/KDE/kdebase/workspace/; revision=801427
2008-04-26 16:03:02 +00:00
Luboš Luňák
9ea5d0e23c Rename X-Ordering to X-KDE-Ordering, it's private to KDE.
svn path=/trunk/KDE/kdebase/workspace/; revision=779111
2008-02-25 14:32:49 +00:00
Luboš Luňák
ec1ed33012 Remove unused code.
svn path=/trunk/KDE/kdebase/workspace/; revision=763108
2008-01-18 15:51:51 +00:00
Luboš Luňák
4f783faa2a The debug info for effects ordering is a bit too verbose.
svn path=/trunk/KDE/kdebase/workspace/; revision=763094
2008-01-18 15:11:43 +00:00
Rivo Laks
0d64af45ce Make elevatedWindows() return list of EffectWindow pointers instead
of Toplevel ones. This makes it independant of the Toplevel objects
  and fixes a crash when an elevated window is closed.

svn path=/trunk/KDE/kdebase/workspace/; revision=760802
2008-01-13 13:00:15 +00:00
Luboš Luňák
0bea1cc50e Fix property format 32 usage for 64b.
svn path=/trunk/KDE/kdebase/workspace/; revision=758332
2008-01-07 16:54:46 +00:00
Luboš Luňák
bc5acf8268 Shaped shadows are not implemented yet, so disable shadows completely
for shaped windows.


svn path=/trunk/KDE/kdebase/workspace/; revision=756795
2008-01-03 19:39:18 +00:00
Luboš Luňák
c708796804 findWindow()
svn path=/trunk/KDE/kdebase/workspace/; revision=755996
2008-01-02 15:37:46 +00:00
Luboš Luňák
82ad4e01ce Report old buttons and modifiers state in mouseChanged() as well.
svn path=/trunk/KDE/kdebase/workspace/; revision=755995
2008-01-02 15:34:12 +00:00
Luboš Luňák
0bbc0fa5dc Support for getting PropertyNotify events - effects can have their
own properties for communication with something outside of kwin.
Intended now mainly for a better taskbar thumbnails effect.


svn path=/trunk/KDE/kdebase/workspace/; revision=755991
2008-01-02 15:21:33 +00:00
Luboš Luňák
580439ecbc Effects major version 0 is unstable, so require exact match.
svn path=/trunk/KDE/kdebase/workspace/; revision=755989
2008-01-02 15:18:34 +00:00
Luboš Luňák
76c76f585d Don't apply DimInactive effect to override-redirect windows. Things
like popups should be short-lived and mostly for the active window anyway.
Possibly could be revisited in the future when support for window grouping
for unmanaged windows gets implemented too.
BUG: 154009


svn path=/trunk/KDE/kdebase/workspace/; revision=755987
2008-01-02 15:17:58 +00:00
Thomas Zander
9eb2186850 Fix debug area
svn path=/trunk/KDE/kdebase/workspace/; revision=754668
2007-12-30 14:04:51 +00:00
Luboš Luňák
8112a66853 Oh, I see.
svn path=/trunk/KDE/kdebase/workspace/; revision=749713
2007-12-17 17:29:50 +00:00
Luboš Luňák
fc2cb81009 I wonder why I disallowed sending of !isMovable() windows between virtual desktops.
svn path=/trunk/KDE/kdebase/workspace/; revision=749712
2007-12-17 17:27:53 +00:00
Luboš Luňák
bb433ac40e No longer include config*.h files in installed headers.
Also slightly redo the #define's for effects, now it's:
- #ifdef KWIN_HAVE_COMPOSITING to check whether there's any compositing support at all
- #ifdef KWIN_HAVE_OPENGL_COMPOSITING to check for OpenGL-based compositing
- #ifdef KWIN_HAVE_XRENDER_COMPOSITING the same for XRender
CCMAIL: kwin@kde.org


svn path=/trunk/KDE/kdebase/workspace/; revision=749628
2007-12-17 14:14:53 +00:00
Luboš Luňák
44cc93170d Add check for effect version to prevent loading of incompatible plugins.
Should work automagically, not changes in plugins needed.


svn path=/trunk/KDE/kdebase/workspace/; revision=749626
2007-12-17 14:10:21 +00:00
Rivo Laks
bd19b6dc45 Add EffectWindow::shape()
svn path=/trunk/KDE/kdebase/workspace/; revision=746064
2007-12-07 18:03:24 +00:00
Luboš Luňák
01bf6cbb4c License cleanup - add headers where missing, be explicit about GPL
being v2+ (right now it says just GPL, which according to GPL itself
means any GPL). Decoration clients will come later.
CCMAIL: kwin@kde.org


svn path=/trunk/KDE/kdebase/workspace/; revision=742302
2007-11-27 19:40:25 +00:00
Luboš Luňák
c1ed1edb52 Proper support for active xinerama screen in effects.
BUG: 152552 


svn path=/trunk/KDE/kdebase/workspace/; revision=739248
2007-11-20 18:58:30 +00:00
Luboš Luňák
d18e4933a0 Make DesktopGrid useful also from keyboard.
svn path=/trunk/KDE/kdebase/workspace/; revision=739147
2007-11-20 16:17:08 +00:00
Luboš Luňák
bc6a084894 Let effects access window role as well.
svn path=/trunk/KDE/kdebase/workspace/; revision=736266
2007-11-13 19:59:53 +00:00
Rivo Laks
bb9ff25ec4 Prevent multiple fullscreen effects from becoming active at the same time as discussed
on kwin ml

svn path=/trunk/KDE/kdebase/workspace/; revision=731717
2007-11-01 17:47:41 +00:00
Rivo Laks
d80d2a1334 Fix typo
svn path=/trunk/KDE/kdebase/workspace/; revision=714829
2007-09-20 17:53:15 +00:00
Bernhard Loos
4ff6a33526 fix the effect kcm for kwin
(port it to KPluginFactory)

svn path=/trunk/KDE/kdebase/workspace/; revision=714825
2007-09-20 17:48:27 +00:00
Luboš Luňák
e6069e9cf6 Arghl. Again a stupid bug caused by float having poor precision.
Reverting r700026 and changing floats to doubles again. I'd probably like
to change even the ones interfacing with OpenGL which I've left for now.


svn path=/trunk/KDE/kdebase/workspace/; revision=707987
2007-09-03 15:00:43 +00:00
Thiago Macieira
d2aee14a35 Remove use of k_funcinfo
svn path=/trunk/KDE/kdebase/workspace/; revision=702583
2007-08-20 21:33:48 +00:00
Luboš Luňák
d846a1e8a9 Use always float as the floating point type for compositing
(http://lists.kde.org/?l=kwin&m=118493073424327&w=2).


svn path=/trunk/KDE/kdebase/workspace/; revision=700026
2007-08-14 15:22:23 +00:00
Luboš Luňák
5a50381e1f Move the shader used for painting to WindowPaintData, as it's
more related to one painting than to a window.


svn path=/trunk/KDE/kdebase/workspace/; revision=698576
2007-08-10 11:26:58 +00:00
Luboš Luňák
30eb55863c Make WindowPaintData ctor require an EffectWindow argument,
which is used to fill it in. Makes thumbnails work again.


svn path=/trunk/KDE/kdebase/workspace/; revision=697961
2007-08-08 14:42:06 +00:00
Laurent Montel
994c800d79 Adapt to new KWarning/kFatal/kDebug api
svn path=/trunk/KDE/kdebase/workspace/; revision=695877
2007-08-03 06:59:24 +00:00
Rivo Laks
4f093c4721 First step of effect dependencies handling - when an effect is loaded, load it's dependancies also.
svn path=/trunk/KDE/kdebase/workspace/; revision=690660
2007-07-21 18:30:06 +00:00
Rivo Laks
da0450f67f Make loadEffect() return bool
svn path=/trunk/KDE/kdebase/workspace/; revision=690381
2007-07-20 21:13:10 +00:00
Luboš Luňák
96aba51960 Add a helper to turn on transparency in pre-paint calls.
svn path=/trunk/KDE/kdebase/workspace/; revision=689910
2007-07-19 13:32:46 +00:00
Luboš Luňák
5faa397849 Vertex redesign - redo the way windows are split into smaller parts
for use in effects (and not only). Now a list of window quads (=window areas)
is created at the beginning of the paint pass, prepaint calls can modify
the split itself (i.e. divide it into more parts). The actual paint calls
can then modify these quads (i.e. transform their geometry). This will allow
better control of how the split is done and also allow painting e.g. only
the decoration differently. Still work in progress, but it works.
Also pass data to prepaint functions in a struct, as there is
already quite a number of them.


svn path=/trunk/KDE/kdebase/workspace/; revision=684893
2007-07-07 14:01:32 +00:00
David Faure
407812ff6f Next patch from Christian Spiel, ++it instead of it++
svn path=/trunk/KDE/kdebase/workspace/; revision=684303
2007-07-06 13:39:03 +00:00
Rivo Laks
6c8b18f379 Add support for effect ordering.
Effects can now have e.g.  X-Ordering=10  field in their .desktop file. The bigger the number,
  the later the effect comes.

svn path=/trunk/KDE/kdebase/workspace/; revision=684272
2007-07-06 12:38:41 +00:00
Philip Falkner
c2ff6a4d7a Make sure to unbind the texture in tfp_mode when the underlying pixmap
is discarded.  Windows that have previously been mapped and unmapped now
update properly when mapped again.


svn path=/trunk/KDE/kdebase/workspace/; revision=683977
2007-07-05 19:59:55 +00:00
Matthias Kretz
cbfe1bd3a8 adapt to KPluginInfo API change
svn path=/trunk/KDE/kdebase/workspace/; revision=680026
2007-06-25 10:03:40 +00:00
Rivo Laks
e3d45c99f0 Add reloadEffect() and isEffectLoaded() and use them
svn path=/trunk/KDE/kdebase/workspace/; revision=669433
2007-05-29 11:42:47 +00:00
Rivo Laks
44b293211c Options now longer provides list of effects to be loaded.
Instead, EffectsHandler itself loads the list of enabled effects (saved by the effects selector widget),
  also making use of their EnabledByDefault property, so if you haven't touched the config, you'll
  automatically get default effects.

svn path=/trunk/KDE/kdebase/workspace/; revision=669036
2007-05-28 11:23:00 +00:00
Rivo Laks
2ace94d3c8 Move all .desktop files of effects to $SERVICES_DIR/kwin and use ksycoca to e.g. get list of available effects.
As effect's full internal name is used when looking up the effect, you now need to provide the full name
  (e.g. kwin4_effect_blur instead of just blur) when loading effects via dcop.

svn path=/trunk/KDE/kdebase/workspace/; revision=669032
2007-05-28 11:12:20 +00:00
Luboš Luňák
278e721494 Support for keeping a window temporarily at the very top,
desktop grid effect raises the window being moved this way.


svn path=/trunk/KDE/kdebase/workspace/; revision=667944
2007-05-24 14:41:56 +00:00
Christian Ehrlicher
e34294972a fix for KLibrary changes
svn path=/trunk/KDE/kdebase/workspace/; revision=664745
2007-05-14 19:46:21 +00:00
Luboš Luňák
d1b6aaacdf Avoid crashes during shutdown.
svn path=/trunk/KDE/kdebase/workspace/; revision=662929
2007-05-09 16:10:49 +00:00
Luboš Luňák
8d9f931cfd Build properly without OpenGL/XRender.
svn path=/trunk/KDE/kdebase/workspace/; revision=662052
2007-05-07 11:46:01 +00:00
Harri Porten
1768b04b53 compile without Xfixes extension
svn path=/trunk/KDE/kdebase/workspace/; revision=661762
2007-05-06 14:38:28 +00:00
Luboš Luňák
f52b8e48cd branches/work/kwin_composite becomes new trunk kwin.
svn path=/trunk/KDE/kdebase/workspace/; revision=659202
2007-04-29 17:35:43 +00:00
Luboš Luňák
2b7e1f4993 Remove kwin, kwin_composite will become new trunk kwin, missing merges
from trunk will be merged in.


svn path=/trunk/KDE/kdebase/workspace/; revision=659200
2007-04-29 17:34:49 +00:00
Rivo Laks
9342f6902c Add EffectWindow::isPaintingEnabled() to check whether painting of that window is enabled (surprise!)
svn path=/branches/work/kwin_composite/; revision=658747
2007-04-28 12:21:14 +00:00
Rivo Laks
868719ed65 Port ExplosionEffect to plugin system
svn path=/branches/work/kwin_composite/; revision=656456
2007-04-21 12:57:15 +00:00
Luboš Luňák
f43b53ef7d Trigger TrackMouseEffect using Ctrl+Meta rather than mouse buttons.
svn path=/branches/work/kwin_composite/; revision=656455
2007-04-21 12:50:02 +00:00
Rivo Laks
7250a8edcd Support having multiple rendertarget-using effects active at once
svn path=/branches/work/kwin_composite/; revision=656210
2007-04-20 15:53:30 +00:00
Luboš Luňák
438b8ce045 toggleEffect() DBUS call
svn path=/branches/work/kwin_composite/; revision=655369
2007-04-18 06:57:49 +00:00
Luboš Luňák
d6d91cf88a Add the ability to move windows around in DesktopGridEffect.
svn path=/branches/work/kwin_composite/; revision=654796
2007-04-16 22:47:51 +00:00
Luboš Luňák
40002ec325 Allow changing the desktop in DesktopGridEffect by clicking.
svn path=/branches/work/kwin_composite/; revision=654680
2007-04-16 19:09:21 +00:00
Luboš Luňák
970f4c4d60 Get window class.
svn path=/branches/work/kwin_composite/; revision=654513
2007-04-16 11:48:14 +00:00
Luboš Luňák
76cb5de294 Support for effects taking control of the keyboard. Needs recent kdeui change
to work properly.


svn path=/branches/work/kwin_composite/; revision=654259
2007-04-15 16:31:13 +00:00
Luboš Luňák
f5fa11222a Effects that can keep thumbnails of selected windows permanently
visible at the side.


svn path=/branches/work/kwin_composite/; revision=654185
2007-04-15 10:56:17 +00:00
Luboš Luňák
10bfb82e8c Make PresentWindows effect work properly even with idle paint passes
(i.e. trigger next repaint properly and react on mouse events).


svn path=/branches/work/kwin_composite/; revision=653921
2007-04-14 15:33:12 +00:00
Luboš Luňák
15c8a4220e Fix and re-enable optimized cursorPos().
svn path=/branches/work/kwin_composite/; revision=653895
2007-04-14 14:15:43 +00:00
Luboš Luňák
5fc1d4c480 Tabbox effect also converted to plugins.
svn path=/branches/work/kwin_composite/; revision=653014
2007-04-12 14:12:34 +00:00
Luboš Luňák
2b82c88874 The rest ported to plugins, BoxSwich being the only exception.
svn path=/branches/work/kwin_composite/; revision=652991
2007-04-12 13:12:37 +00:00
Luboš Luňák
8e25dd6bfa Port to plugins.
svn path=/branches/work/kwin_composite/; revision=652956
2007-04-12 11:55:07 +00:00
Luboš Luňák
ca5451fef0 Convert WavyWindows to plugins (and move Vertex class to the effects lib).
svn path=/branches/work/kwin_composite/; revision=652628
2007-04-11 15:46:46 +00:00
Rivo Laks
02032f8587 Move most (all?) internal methods from EffectsHandler to EffectsHandlerImpl.
The ugly side effect of this is that there are tons of static_casts in the code now... maybe it
  would be better to add effectImpl() convenience method and use that?

svn path=/branches/work/kwin_composite/; revision=652348
2007-04-10 18:47:13 +00:00
Luboš Luňák
58fdb149a8 Convert ShowFps effect to plugins.
svn path=/branches/work/kwin_composite/; revision=652275
2007-04-10 15:38:36 +00:00
Luboš Luňák
d2dbc77323 Add support for dimming of inactive windows (accessibility).
FEATURE: 46226


svn path=/branches/work/kwin_composite/; revision=652255
2007-04-10 14:48:55 +00:00
Rivo Laks
0353f3376e Make effects actual plugins, so it's possible to load them on runtime.
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
2007-04-10 13:02:08 +00:00
Luboš Luňák
e3b865cd5f namespace KWinInternal -> KWin - shorter typing of names in gdb, yay
svn path=/branches/work/kwin_composite/; revision=650770
2007-04-05 12:07:35 +00:00
Luboš Luňák
35bbf89aed Add support for activating features using window borders/corners.
Enabled it for PresentWindowsEffect for now.


svn path=/branches/work/kwin_composite/; revision=650532
2007-04-04 19:08:03 +00:00
Rivo Laks
1f167d8d15 Add EffectWindow::isDeleted() method.
Don't draw shadow for deleted windows.

svn path=/branches/work/kwin_composite/; revision=648149
2007-03-30 16:12:07 +00:00
Rivo Laks
56a2a995d1 Add an effect to render live thumbnails of windows next to their taskbar entries when the cursor is
above the corresponding taskbar entry.
It's a "demo" effect because in the future the taskbar itself (or any other application) should be able to
  request a window's thumbnail to be rendered at a specified position. So once we'll support such
  functionality, the taskbar will replace this effect.

svn path=/branches/work/kwin_composite/; revision=647144
2007-03-27 14:26:30 +00:00
Luboš Luňák
8b5b40e4e8 Shadows. Right not it's only flat black rectangle, but otherwise
everything should work.


svn path=/branches/work/kwin_composite/; revision=646315
2007-03-25 10:48:07 +00:00
Luboš Luňák
d09096a784 The window-burning-down effect (gee), except that there's no actual
flame, since I'm lame at graphics. Should be easy to add anyway.
Besides the apparent unusefulness this effect should be for testing
some new changes to the core.


svn path=/branches/work/kwin_composite/; revision=645111
2007-03-21 17:35:48 +00:00
Rivo Laks
aae967c5f9 Make your windows explode!
Add ExplosionEffect which makes the windows blow up into small pieces when they're closed.
  In the future this could be used only when user kills (an unresponsive) window.

svn path=/branches/work/kwin_composite/; revision=643135
2007-03-16 13:02:47 +00:00
Luboš Luňák
5cabf743ae The official excuse for this effect is that I wanted to try
drawing a window several times.


svn path=/branches/work/kwin_composite/; revision=642577
2007-03-14 18:21:11 +00:00
Luboš Luňák
d4a58f4152 QMap -> QHash
svn path=/branches/work/kwin_composite/; revision=642532
2007-03-14 16:50:19 +00:00
Luboš Luňák
de8f39accf Hmm, I think I now understand this vertices stuff. Added a silly
effect that destroys a window by spliting it into many small pieces.


svn path=/branches/work/kwin_composite/; revision=642152
2007-03-13 13:42:01 +00:00
Philip Falkner
6f122ecd3e Add BoxSwitch effect: a tabbox replacement. It's still rough, but works reasonably well.
svn path=/branches/work/kwin_composite/; revision=640630
2007-03-08 16:52:09 +00:00
Philip Falkner
ce89ed0716 Allow effects to replace the tabbox.
svn path=/branches/work/kwin_composite/; revision=640628
2007-03-08 16:49:44 +00:00
Luboš Luňák
f6ad1881e1 Support for window thumbnails.
svn path=/branches/work/kwin_composite/; revision=640344
2007-03-07 17:50:33 +00:00
Luboš Luňák
5f02d68fb9 FadeIn/FadeOut effects are succeeded by Fade.
CCMAIL: philip.falkner@gmail.com


svn path=/branches/work/kwin_composite/; revision=636634
2007-02-23 16:34:57 +00:00
Luboš Luňák
0498cd7785 Add VideoRecordEffect for saving video captures.
Requires external lib to compile, see the videorecord.cpp .


svn path=/branches/work/kwin_composite/; revision=636625
2007-02-23 16:20:22 +00:00
Philip Falkner
8299541652 Add build checks for XComposite, XDamage, XRender, OpenGL, and XShm.
KWin should now build and run with/without any or all of the above.

svn path=/branches/work/kwin_composite/; revision=633387
2007-02-13 23:28:36 +00:00
Philip Falkner
a71753e5cd Change effects->windowOpacityChanged to also pass the old opacity; thanks Lubos!
Clean up FadeEffect a bit, and make it replace FadeOut in the default effects list.

svn path=/branches/work/kwin_composite/; revision=633032
2007-02-12 23:14:50 +00:00
Philip Falkner
2fdc57ccd6 Fade effect. Unified version of FadeIn and FadeOut; also fades on window opacity changes.
The fade_in_speed and fade_out_speed settings work like they did in kompmgr, but aren't currently configurable.

svn path=/branches/work/kwin_composite/; revision=632583
2007-02-11 17:41:21 +00:00
Philip Falkner
8d0f15e655 Hook up windowOpacityChanged for effects. Note that this only affects when the window opacity atom is changed; if an effect alters data.opacity in WindowPaintData, no notification will happen.
svn path=/branches/work/kwin_composite/; revision=632582
2007-02-11 17:38:56 +00:00
Philip Falkner
c16656d66d Rework how window painting is disabled; now effects can indicate reasons they want particular windows painted or not.
This solves a few problems, but may need revisiting in the future.

svn path=/branches/work/kwin_composite/; revision=632581
2007-02-11 17:36:32 +00:00
Philip Falkner
bcfa67e91a Fix DesktopChangeSlide effect creation.
svn path=/branches/work/kwin_composite/; revision=631344
2007-02-07 19:21:33 +00:00
Luboš Luňák
00136f014f Configurable effects loading by Cedric Borgese.
svn path=/branches/work/kwin_composite/; revision=630276
2007-02-04 22:19:17 +00:00
Luboš Luňák
63a97b7d3d Add DesktopChangeSlideEffect, an effect that on virtual desktop
change slides the old desktop out and the new one in. Should not
be really technically different from the cube.


svn path=/branches/work/kwin_composite/; revision=629163
2007-02-01 17:20:48 +00:00
Rivo Laks
445ab8ca7a Add MinimizeAnimation effect which makes the window move onto/from its taskbar
entry when minimized/restored

svn path=/branches/work/kwin_composite/; revision=627003
2007-01-25 11:48:07 +00:00
Luboš Luňák
93de3d41d0 Add WavyWindowsEffect.
svn path=/branches/work/kwin_composite/; revision=626899
2007-01-24 21:46:43 +00:00
Luboš Luňák
0ae5a772e7 Add EffectWindow as a window representation for effects,
to hide the change from Client/Unmanaged and eventually also
act as the only API available to effects.


svn path=/branches/work/kwin_composite/; revision=626360
2007-01-22 22:57:22 +00:00
Luboš Luňák
77f803a563 Instead of the somewhat fragile way of trying to clean up Client/Unmanaged
instances and keeping them around after the window is closed, create
class Deleted as a representation of a closed window.


svn path=/branches/work/kwin_composite/; revision=626356
2007-01-22 22:51:30 +00:00
Luboš Luňák
ff6f889ffc Add support for showing effects for windows which have already been deleted.
Add a fade-out effect.


svn path=/branches/work/kwin_composite/; revision=623872
2007-01-15 18:03:04 +00:00
Luboš Luňák
fd3809e453 Add PresentWindowsEffect.
svn path=/branches/work/kwin_composite/; revision=623377
2007-01-14 17:05:25 +00:00
Philip Falkner
ee9e4ad715 Allow effects on window minimize and unminimize.
svn path=/branches/work/kwin_composite/; revision=622778
2007-01-12 23:23:41 +00:00
Luboš Luňák
1765551277 Support for "input windows" that let effects intercept mouse events
when they e.g. want to let the user select from window thumbnails.


svn path=/branches/work/kwin_composite/; revision=620305
2007-01-05 16:45:56 +00:00
Luboš Luňák
f93df78a79 Disable the zoom effect.
svn path=/branches/work/kwin_composite/; revision=610147
2006-12-03 13:48:09 +00:00
Luboš Luňák
6bf5d12108 Zoom effect, i.e. magnifying glass. The zoom is hardcoded
for now.


svn path=/branches/work/kwin_composite/; revision=610134
2006-12-03 13:36:40 +00:00
Luboš Luňák
0e53720687 Finish the showfps effect, including adding some configuration
and making it work even with XRender. I think it shows that
making non-trivial effects for both OpenGL and XRender
would be a) quite possible b) quite pain.


svn path=/branches/work/kwin_composite/; revision=606271
2006-11-19 20:25:04 +00:00
Luboš Luňák
4efa523375 A simple attempt at a showfps effect. OpenGL-only, only lame graphs,
still many TODO's.


svn path=/branches/work/kwin_composite/; revision=605497
2006-11-16 22:46:14 +00:00
Luboš Luňák
aeafa63a94 Move some OpenGL code to glutils.* .
Add support for changing window brightness.
Add DialogParent effect that makes windows that are unaccessible because
of modal dialogs darker.
Patch by Rivo Laks.


svn path=/branches/work/kwin_composite/; revision=603384
2006-11-08 19:10:07 +00:00
Luboš Luňák
85bc4b5ac7 Disable the howto effect.
svn path=/branches/work/kwin_composite/; revision=600554
2006-10-30 22:54:51 +00:00
Luboš Luňák
0f03921271 Add a commented howto effect.
svn path=/branches/work/kwin_composite/; revision=600553
2006-10-30 22:49:59 +00:00
Luboš Luňák
5f03c77514 Move effects to their own directory.
svn path=/branches/work/kwin_composite/; revision=600157
2006-10-29 19:08:09 +00:00
Luboš Luňák
3f9b754ee7 Add post-painting pass to be used for triggering
repaints with animations.


svn path=/branches/work/kwin_composite/; revision=600156
2006-10-29 19:07:10 +00:00
Luboš Luňák
6b41c062c8 Remove the WrapperEffect hack, it's ugly.
svn path=/branches/work/kwin_composite/; revision=600155
2006-10-29 19:06:32 +00:00
Luboš Luňák
3f46d36bb9 Add convenience functions for damaging full area.
svn path=/branches/work/kwin_composite/; revision=598834
2006-10-24 19:28:17 +00:00
Luboš Luňák
10b31e7222 Support for animations, still some todo's pending.
svn path=/branches/work/kwin_composite/; revision=598831
2006-10-24 19:17:48 +00:00
Luboš Luňák
dec6dc3acd Disable the window transforming effects.
svn path=/branches/work/kwin_composite/; revision=597998
2006-10-22 10:16:54 +00:00
Luboš Luňák
1d7b94acfc Basic window transformations.
svn path=/branches/work/kwin_composite/; revision=597997
2006-10-22 10:15:19 +00:00
Luboš Luňák
74ab9819de Disable the screen transforming effect.
svn path=/branches/work/kwin_composite/; revision=597817
2006-10-21 18:08:58 +00:00
Luboš Luňák
779597a648 Basic screen transformation.
svn path=/branches/work/kwin_composite/; revision=597815
2006-10-21 18:07:00 +00:00
Luboš Luňák
caed149f40 Add pre-paint passes that will allow finding out how the painting will be done.
svn path=/branches/work/kwin_composite/; revision=596109
2006-10-16 18:46:07 +00:00
Luboš Luňák
338adc9ad5 Throw away old code for effects and start anew.
svn path=/branches/work/kwin_composite/; revision=595965
2006-10-16 10:12:48 +00:00
Luboš Luňák
b168c35384 Don't cache window pixmap, it's used only after it
changes.


svn path=/branches/work/kwin_composite/; revision=593453
2006-10-07 21:20:23 +00:00
Luboš Luňák
06203d0652 Don't bother with trying to transform window damage,
when there are any transformations, it should simply
repaint everything (todo).


svn path=/branches/work/kwin_composite/; revision=593450
2006-10-07 21:18:36 +00:00
Luboš Luňák
2c892791e4 No workspace shifting.
svn path=/branches/work/kwin_composite/; revision=561967
2006-07-13 18:24:51 +00:00
Luboš Luňák
e24815411a Keep damage info separately for every window.
svn path=/branches/work/kwin_composite/; revision=561966
2006-07-13 18:17:49 +00:00
Luboš Luňák
03fedc56dd No effects when not compositing.
svn path=/branches/work/kwin_composite/; revision=560594
2006-07-10 18:34:57 +00:00
Luboš Luňák
28e3726f2e Basic transformations on the whole workspace.
svn path=/branches/work/kwin_composite/; revision=559204
2006-07-06 19:02:14 +00:00
Luboš Luňák
e6c23e4cd3 Ok, I give up, whoever wants more complicated transformations than just
translation are welcome to implement it themselves. I'm no graphics guy
after all and this seems to be far beyond me.


svn path=/branches/work/kwin_composite/; revision=559182
2006-07-06 18:22:01 +00:00
Luboš Luňák
a9cec042cb Fix matrix multiplication, add transform function.
svn path=/branches/work/kwin_composite/; revision=559061
2006-07-06 14:20:03 +00:00
Luboš Luňák
0516e1e73b Add support for translation and add two "plugins" that
make windows transparent or shake them while moving.


svn path=/branches/work/kwin_composite/; revision=559013
2006-07-06 13:17:44 +00:00
Luboš Luňák
391bb6b28d Support for effects that affect opacity.
svn path=/branches/work/kwin_composite/; revision=558921
2006-07-06 09:55:10 +00:00
Luboš Luňák
7d67cf42c4 Data like transf. matrix that the effects can affect.
svn path=/branches/work/kwin_composite/; revision=558454
2006-07-05 12:56:04 +00:00
Luboš Luňák
4f12c1e606 Some first attempt at effects interface.
svn path=/branches/work/kwin_composite/; revision=558191
2006-07-04 20:51:01 +00:00