Commit graph

90 commits

Author SHA1 Message Date
Lucas Murray
68d958c237 Added reset methods to WindowMotionManager.
Fixed bug in present windows when if there is only one window on a Xinerama screen it is zoomed into nothingness when using the natural layout.
CCBUG: 171812

svn path=/trunk/KDE/kdebase/workspace/; revision=865798
2008-09-29 02:25:02 +00:00
Lucas Murray
283a16b13b Attempt at correcting the motion formula at low framerates. Still needs improvement.
svn path=/trunk/KDE/kdebase/workspace/; revision=863784
2008-09-23 07:10:27 +00:00
Lucas Murray
51aef64cd7 Added motion dynamic physics helper classes to the KWin effects API. These
classes are intended to be used to help effect authors move windows across
the screen smoothly and naturally.

Although not 100% complete the classes can be used for 2D operations in its
current state, an example of which is the included present windows update.
These classes can be expanded upon when the new modifiers are required.

I would like a generic, template-based motion manager class that can be used
for non-window objects as well as another 3D-enabled manager to be available
sometime in the future.

CCMAIL: kwin@kde.org

svn path=/trunk/KDE/kdebase/workspace/; revision=863561
2008-09-22 13:03:00 +00:00
Luboš Luňák
d0c1f5dd62 Disable shadow with effects that transform windows, such as wobbly,
since shadow currently can't handle that.
CCBUG: 161330


svn path=/trunk/KDE/kdebase/workspace/; revision=862309
2008-09-18 15:26:17 +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
Luboš Luňák
8e5f95a9d6 Make a more explicit distinction between using normalized and non-normalized
texture coordinates - it cost me hours to find out why something was misdrawing :(.


svn path=/trunk/KDE/kdebase/workspace/; revision=854546
2008-08-29 18:54:28 +00:00
Lucas Murray
00c95be210 Added text alignment support to paintText() functions
svn path=/trunk/KDE/kdebase/workspace/; revision=842497
2008-08-05 12:26:16 +00:00
Martin Gräßlin
cb4ed769aa Change from orthographic projection to a perspective projection. This allows to change z-values and rotations.
Therefore zScale, zTranslate and new RotationData are added to ScreenPaintData and WindowPaintData. So it is possible to define zTranslation and rotations without using OpenGL directly. The change only affects OpenGL compositing. XRender is not changed.

svn path=/trunk/KDE/kdebase/workspace/; revision=842018
2008-08-04 14:07:45 +00:00
Luboš Luňák
8bbc6af734 Keep 0.20-0.49 versions for 4.1.
svn path=/trunk/KDE/kdebase/workspace/; revision=842011
2008-08-04 13:35:10 +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
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
Luboš Luňák
62d2631422 EffectsHandler::saturationSupported(), so that this is not OpenGL-only call.
svn path=/trunk/KDE/kdebase/workspace/; revision=805574
2008-05-08 19:06:28 +00:00
Luboš Luňák
6527f9c0b6 Start counting 4.1 API versions from 20, to leave room for 4.0.
svn path=/trunk/KDE/kdebase/workspace/; revision=805092
2008-05-07 15:02:21 +00:00
Luboš Luňák
5efac21537 XRenderPicture, a wrapper around XRender's Picture, which
should act just like Picture, except for proper initialization
and resource freeing (i.e. it's sane and easy from C++ point of view).


svn path=/trunk/KDE/kdebase/workspace/; revision=805085
2008-05-07 14:43:13 +00:00
Sebastian Kügler
cac8ff3072 Make sure m_Progress is always double. Fixes restoring of
windows for me. Minimizing still doesn't animate here. :/

If someone sees the same problem, please let me know. There
also seems to be something fishy with the desktopgrid --
it's not showing windows on inactive desktops, sliding
animation and the grid-zoomout expose this.

svn path=/trunk/KDE/kdebase/workspace/; revision=804806
2008-05-06 23:03:23 +00:00
Sebastian Kügler
d09306ae55 Improve API docs of the TimeLine class.
CCMAIL: ubuntu@martin-graesslin.com

svn path=/trunk/KDE/kdebase/workspace/; revision=803464
2008-05-02 23:29:56 +00:00
Sebastian Kügler
b953f0a046 Introduce TimeLine, a class providing non-linear animation patterns
to KWin effects.

The class basically wraps QTimeLine right now, but it's easy to pop
in function implementing different animation timeline patterns.

Patches to the first effects using this TimeLine are coming up ...

svn path=/trunk/KDE/kdebase/workspace/; revision=798719
2008-04-18 23:57:05 +00:00
Luboš Luňák
75623e889a Documentation for window types functions.
svn path=/trunk/KDE/kdebase/workspace/; revision=784766
2008-03-12 10:46:41 +00:00
Rivo Laks
3f581b4d0c Add a method to subdivide the window into regular grid.
Will be used by wobbly windows effect.

svn path=/trunk/KDE/kdebase/workspace/; revision=781469
2008-03-02 22:28:50 +00:00
Laurent Montel
b844bcae41 Fix compile (need to export it)
svn path=/trunk/KDE/kdebase/workspace/; revision=779292
2008-02-25 19:53:43 +00:00
Luboš Luňák
cff2b0e6cd Abstract paint clipping into PaintClipper helper class that allows
stacking of clipping regions.
(http://lists.kde.org/?l=kwin&m=120138051215450&w=2)
BUG: 156798


svn path=/trunk/KDE/kdebase/workspace/; revision=779045
2008-02-25 11:32:21 +00:00
Rivo Laks
5b38737dee Add apidox for kwineffects group, showing the necessary steps for
adding a new effect.

svn path=/trunk/KDE/kdebase/workspace/; revision=767202
2008-01-27 14:43:05 +00:00
Luboš Luňák
3c3b5f4b2d Split kdecoration and kwineffects libraries as two modules for doxygen.
svn path=/trunk/KDE/kdebase/workspace/; revision=762274
2008-01-16 18:13:24 +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
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
Luboš Luňák
d43b34aa0b Remove old comments.
svn path=/trunk/KDE/kdebase/workspace/; revision=749629
2007-12-17 14:15:32 +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
Rivo Laks
85961ce0a3 Add KWin::GlobalShortcutsEditor which is a KShortcutsEditor that only edits global shortcuts.
This allows shortcut editor widgets to be added in Designer (for 4.1 KShortcutsEditor should
  probably get setActionTypes() method so that it needn't be set in it's ctor).

  libkwineffects also links to kdeui now, I hope it's ok since it linked to QtGUI and kdecore already anyway.

svn path=/trunk/KDE/kdebase/workspace/; revision=740954
2007-11-24 13:43:52 +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
ceb07f1c5c -Woverloaded-virtual
svn path=/trunk/KDE/kdebase/workspace/; revision=739149
2007-11-20 16:19:06 +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
Rivo Laks
0ac3b393b1 Add some apidocs.
Lots more are still needed but it's a start.

svn path=/trunk/KDE/kdebase/workspace/; revision=737896
2007-11-17 10:20:19 +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
a2801f1ba1 Add #define with KWin effects API version so that 3rd party effects can check for compatibility
svn path=/trunk/KDE/kdebase/workspace/; revision=736187
2007-11-13 17:03:24 +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
Pino Toscano
54289af3ea #include fixup
svn path=/trunk/KDE/kdebase/workspace/; revision=722244
2007-10-07 00:08:11 +00:00
Rivo Laks
7ad70d9c83 Fix compilation
svn path=/trunk/KDE/kdebase/workspace/; revision=714831
2007-09-20 18:06:36 +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
Rivo Laks
d618ba8d23 Turn paintText() into two generic methods: one just paints the text, the other also paints
background. Move the methods into kwineffects.*

svn path=/trunk/KDE/kdebase/workspace/; revision=707699
2007-09-02 18:20:36 +00:00
Arto Hytönen
b494cddaa9 includes, include guards and typos fixed
svn path=/trunk/KDE/kdebase/workspace/; revision=705066
2007-08-27 04:31:52 +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