Commit graph

293 commits

Author SHA1 Message Date
Luboš Luňák
a1fa5c4206 No interpolating when there's no old position, just fade in.
svn path=/branches/work/kwin_composite/; revision=654363
2007-04-15 21:50:00 +00:00
Luboš Luňák
f8c84d4310 Don't disable desktop from painting.
svn path=/branches/work/kwin_composite/; revision=654361
2007-04-15 21:42:36 +00:00
Luboš Luňák
257ce3ad99 Find-as-you-type filtering of presented windows.
svn path=/branches/work/kwin_composite/; revision=654360
2007-04-15 21:42:01 +00:00
Luboš Luňák
795de6c6d6 Centered placement in slots.
svn path=/branches/work/kwin_composite/; revision=654291
2007-04-15 18:12:24 +00:00
Luboš Luňák
b30180ca26 Compute scale factor properly.
svn path=/branches/work/kwin_composite/; revision=654285
2007-04-15 17:59: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
894d08a522 When the number of presented windows changes, do the rearranging smoothly.
Also rearrange only if the size of the grid would change.


svn path=/branches/work/kwin_composite/; revision=654209
2007-04-15 13:25:44 +00:00
Luboš Luňák
b65e6affd9 Build the list of windows to present when activating the effect
and don't change this list later (I suppose newly turned up
windows would just disturb anyway). This will later also allow
filtering of the presented windows.


svn path=/branches/work/kwin_composite/; revision=654201
2007-04-15 12:38:09 +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
812dd7238e Arrange windows to regularly spaced slots, try to find the closest one.
svn path=/branches/work/kwin_composite/; revision=654184
2007-04-15 10:53:01 +00:00
Luboš Luňák
e18e701f7f LMB activates, others cancel.
svn path=/branches/work/kwin_composite/; revision=654154
2007-04-15 09:14:37 +00:00
Luboš Luňák
672c95e435 Work properly even with idle paint passes (react on mouse events).
svn path=/branches/work/kwin_composite/; revision=653927
2007-04-14 16:10:58 +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
2d89e4304e Magnifier glass - like Zoom, but only for a small part of the screen.
svn path=/branches/work/kwin_composite/; revision=653542
2007-04-13 15:19:12 +00:00
Luboš Luňák
6c971a4462 ZoomIn/ZoomOut/ActualSize actions.
svn path=/branches/work/kwin_composite/; revision=653520
2007-04-13 14:42:37 +00:00
Luboš Luňák
a2a8c39a27 Small fixes.
svn path=/branches/work/kwin_composite/; revision=653431
2007-04-13 10:08:18 +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
0b4f83fc90 The rest ported to plugins, BoxSwich being the only exception.
svn path=/branches/work/kwin_composite/; revision=652990
2007-04-12 13:12:11 +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
6bf23a5c48 Convert to plugins (and make it a test, since it's more or less useless).
svn path=/branches/work/kwin_composite/; revision=652928
2007-04-12 10:16:02 +00:00
Luboš Luňák
74e97a2c9b Convert to plugins.
svn path=/branches/work/kwin_composite/; revision=652631
2007-04-11 15:53:32 +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
Luboš Luňák
f285fe4af8 Properly depend on opengl and/or xrender.
svn path=/branches/work/kwin_composite/; revision=652619
2007-04-11 15:31:14 +00:00
Luboš Luňák
8973e88245 Convert zoom and videorecord to plugins.
svn path=/branches/work/kwin_composite/; revision=652616
2007-04-11 15:22:36 +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
04a3787213 Non-inline functions should be in .cpp .
svn path=/branches/work/kwin_composite/; revision=652257
2007-04-10 14:53:13 +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
76eae77b57 Position fixes.
svn path=/branches/work/kwin_composite/; revision=651101
2007-04-06 14:51:55 +00:00
Luboš Luňák
c38dc5e099 Change the DesktopChangeSlideEffect so that the new desktop doesn't
always slide in from the top but from the position where it is
according to the desktop layout.


svn path=/branches/work/kwin_composite/; revision=651083
2007-04-06 13:46:29 +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
Philip Falkner
efa28b23f5 Don't crash when activating a window on another desktop.
svn path=/branches/work/kwin_composite/; revision=648171
2007-03-30 17:15:48 +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
9027b501c8 Interpolate between brightness changes when highlighting window under cursor.
svn path=/branches/work/kwin_composite/; revision=648132
2007-03-30 15:35:19 +00:00
Rivo Laks
64051d3cf8 Honor window transformations when drawing the shadow.
This makes the shadow effect play nice with e.g. MinimizeAnimation or Expose

svn path=/branches/work/kwin_composite/; revision=647821
2007-03-29 15:52:20 +00:00
Philip Falkner
574e562906 Some updates to the tabbox.
Provide a pair of methods, setCurrentClient() and setCurrentDesktop(),
to allow effects to select items in the tabbox without activating them.

Insulate effects from having to know the order of desktops, with
currentDesktopList().  DesktopMode and DesktopListMode should be
effectively identical as far as how effects work.

Some changes to how the tabbox refcounting is done, should work a little
better.  Other small cosmetic changes.

Update BoxSwitchEffect.


svn path=/branches/work/kwin_composite/; revision=647594
2007-03-28 20:29:45 +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
Rivo Laks
295477c4ad Try to load the data in prePaintWindow() instead of paintWindow() if it's not loaded yet.
This way we won't request the window to be painted when loading fails or has failed.
Also remove 2 lines of obsolete code.

svn path=/branches/work/kwin_composite/; revision=647139
2007-03-27 14:15:41 +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
Philip Falkner
aa6d8eabc5 Add GLTexture class. This is a convenient wrapper around managing an OpenGL texture, as well as loading an image into it. Includes support for loading from QImage, QPixmap, and a file. Defaults to a GL_TEXTURE_2D target, and will scale image if necessary.
Also add SceneOpenGL::Texture class, based on GLTexture.  Optimised for SceneOpenGL::Window, this adds support for loading from an X Pixmap, as well as taking advantage of texture_from_pixmap/shm when available.  Automatically detects what texture target should be used, so be sure to enableUnnormalizedTexCoords() before painting.

Make SceneOpenGL::Window, BoxSwitchEffect, and ExplosionEffect use the new classes.

svn path=/branches/work/kwin_composite/; revision=645125
2007-03-21 18:14:09 +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
d74c23ff17 Ctrl+F11 now does Expose effect with all window, including those on other desktops.
The downside is that sometimes it crashes when you want to activate a window in Expose mode. It seems
  to be some kind of memory problem, but I can't figure out what/where exactly, so I'd appreciate if
  someone took a look at it.

svn path=/branches/work/kwin_composite/; revision=645067
2007-03-21 16:24:28 +00:00
Luboš Luňák
61f99cf2f0 Ok, I couldn't resist - make the fragments also spin.
svn path=/branches/work/kwin_composite/; revision=644987
2007-03-21 13:28:35 +00:00
Luboš Luňák
b75f3dfeb0 Make the effect look better by adding certain randomness.
svn path=/branches/work/kwin_composite/; revision=644640
2007-03-20 16:28:23 +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
Luboš Luňák
52afddcaeb Don't unref a deleted window more than once.
svn path=/branches/work/kwin_composite/; revision=642067
2007-03-13 09:49:44 +00:00
Philip Falkner
1dc9715e45 Show effect even when only one option is available, like the default tabbox does.
svn path=/branches/work/kwin_composite/; revision=641579
2007-03-11 21:19:44 +00:00
Philip Falkner
04e488b0a7 Add XRender support to BoxSwitch.
This includes icon support for XRender.

svn path=/branches/work/kwin_composite/; revision=640729
2007-03-08 22:12:41 +00:00
Philip Falkner
6af1c36304 Actually add BoxSwitch effect.
svn path=/branches/work/kwin_composite/; revision=640631
2007-03-08 16:54:50 +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
29f9714a7e Capseo has moved.
svn path=/branches/work/kwin_composite/; revision=636916
2007-02-24 17:36:37 +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
9dda6936a7 Ok, plugins will be GPL as well.
svn path=/branches/work/kwin_composite/; revision=636633
2007-02-23 16:32:15 +00:00
Luboš Luňák
6d16df2007 This one has to be GPL because of libcaptury.
svn path=/branches/work/kwin_composite/; revision=636626
2007-02-23 16:26:20 +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
Luboš Luňák
4019dff500 Distinguish between damage and repaints - damage is when windows contents
change, repaint just triggers repaint of the area (without e.g. the texture
updating for OpenGL).
addDamage() -> addRepaint()
CCMAIL: kwin@kde.org


svn path=/branches/work/kwin_composite/; revision=632866
2007-02-12 15:22:43 +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
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
949aa1a778 Add PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS flag, to be called by effects in prePaintScreen(). Indicates that some window(s) may have transformed geometry, so the whole screen should be repainted.
svn path=/branches/work/kwin_composite/; revision=632580
2007-02-11 17:35:10 +00:00
Luboš Luňák
0a9e366038 Just use findModal().
svn path=/branches/work/kwin_composite/; revision=632379
2007-02-10 21:55:31 +00:00
Dirk Mueller
6c224134db porting simplifications regarding KConfig::readEntry
svn path=/branches/work/kwin_composite/; revision=632199
2007-02-10 09:12:35 +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
cc93b859e3 Make Client::iconGeometry() recursively use it's mainwindow's icongeometry if it
doesn't have one itself.

svn path=/branches/work/kwin_composite/; revision=628327
2007-01-29 19:28:53 +00:00
Rivo Laks
8669b298be Minimize e.g. dialogs onto taskbar entries of their mainwindows.
If everything else fails, minimize to the center of the screen.

svn path=/branches/work/kwin_composite/; revision=627172
2007-01-25 21:23:27 +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
Rivo Laks
a00b314b5a Temporarily-unminimize hack doesn't seem to be necessary anymore.
Use transparency for minimized windows in the fade-in and fade-out phases (when
  the effect is not fully active yet)

svn path=/branches/work/kwin_composite/; revision=626829
2007-01-24 17:43:36 +00:00
Rivo Laks
adb35ae446 Adding WavyWindows effect which makes all windows wavy.
Meant to demonstrate possibilities of vertex transforming and for cool screenshots ;-)

svn path=/branches/work/kwin_composite/; revision=626815
2007-01-24 17:19:00 +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
Rivo Laks
33f8a0758c Add Expose-like effect to show all windows of active desktop side by side.
Another window can then be activated by clicking on it.
Also add interpolate() utility function to Effect

svn path=/branches/work/kwin_composite/; revision=622634
2007-01-12 14:14:53 +00:00
Luboš Luňák
de4d1bc518 Implement cursorPos() as an optimized version of QCursor::pos()
that tries to reduce the number of X roundtrips.


svn path=/branches/work/kwin_composite/; revision=620326
2007-01-05 17:45:54 +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
f1be2aa724 Optimize XRender painting by manually doing clipping, even with transformations.
Since it's unlikely XRender code will use other transformations then the ones
provided this should be ok. Makes painting with obscured windows much faster
(i.e. it's just slow, not bloody slow).


svn path=/branches/work/kwin_composite/; revision=610613
2006-12-04 18:30:41 +00:00
Luboš Luňák
1c151d222b Fix the zoom effect to use time differences instead of a hardcoded step.
svn path=/branches/work/kwin_composite/; revision=610611
2006-12-04 18:29:16 +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
a4d6273de0 Do glFinish()/XSync() to make sure all painting has been also processed.
svn path=/branches/work/kwin_composite/; revision=608430
2006-11-27 15:13:10 +00:00
Luboš Luňák
f551826ae2 Wait for all XRender requests to be actually sent and processes, not just
queued.


svn path=/branches/work/kwin_composite/; revision=606788
2006-11-21 20:08:08 +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
0283b97a62 When no transformations are needed simple screen painting can be used
even for painting the whole screen, not just a region.


svn path=/branches/work/kwin_composite/; revision=605563
2006-11-17 08:43:24 +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
8036be5f52 Fix dialog<->parent handling to also work with group transient dialogs.
svn path=/branches/work/kwin_composite/; revision=603396
2006-11-08 19:29:29 +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
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
bed1c3c6b9 Fix a crash.
svn path=/branches/work/kwin_composite/; revision=600512
2006-10-30 20:33:06 +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