Commit graph

390 commits

Author SHA1 Message Date
Lucas Murray
d69942d215 Reverted the text part of the previous commit, seems the bug is in Qt
(Premultiplied text painting on a non-premultiplied QImage). Fixed text
color of frameless and unstyled frames when using a Plasma theme that
has a non-white primary text color. Updated
GLTexture::convertToGLFormat() to use the latest version from Qt.

svn path=/trunk/KDE/kdebase/workspace/; revision=934008
2009-03-02 06:10:23 +00:00
Lucas Murray
6a9b6692e8 Fix rendering of text and unstyled frames in OpenGL mode. Now it looks
identical to what it is in XRender mode.

svn path=/trunk/KDE/kdebase/workspace/; revision=933999
2009-03-02 05:18:13 +00:00
Lucas Murray
0ffcc70c18 Add support for hardcoded non-KWin-related active screen edge actions,
first to be added is one to display the Plasma dashboard. Implemented
the "trigger cooldown" option. Fixed a few edge action conflicts such
as forcing desktop switches when moving windows and the like.
BUG: 170393

svn path=/trunk/KDE/kdebase/workspace/; revision=933166
2009-02-28 08:33:16 +00:00
Pino Toscano
4d66c9ce50 - slots -> Q_SLOTS
- KDE CamelCase includes should be in the form KDE/Foo

svn path=/trunk/KDE/kdebase/workspace/; revision=930393
2009-02-23 10:36:04 +00:00
Lucas Murray
baa3d7a1a5 SVN_SILENT Make EffectFrame actually work again.
svn path=/trunk/KDE/kdebase/workspace/; revision=930011
2009-02-22 14:55:56 +00:00
Lucas Murray
3b5ddddbc3 SVN_SILENT Fix excessive repainting in EffectFrame.
svn path=/trunk/KDE/kdebase/workspace/; revision=929979
2009-02-22 14:03:48 +00:00
Lucas Murray
1e91a66fd2 Added support for unstyled and frameless EffectFrames. Converted all
effects that display text or boxes to use the class. Minor speed
increase in XRender mode for those effects and a massive increase in
OpenGL mode (Double framerate in present windows in my case).

svn path=/trunk/KDE/kdebase/workspace/; revision=929951
2009-02-22 13:04:16 +00:00
Lucas Murray
58698d8c5d SVN_SILENT Fix XRenderless compile.
svn path=/trunk/KDE/kdebase/workspace/; revision=929761
2009-02-22 03:28:12 +00:00
Lucas Murray
699e8add4f SVN_SILENT Not required.
svn path=/trunk/KDE/kdebase/workspace/; revision=929586
2009-02-21 17:05:18 +00:00
Lucas Murray
e03748fba7 Added EffectFrame, a helper class that creates, manages and caches a
Plasma frame object. There are two ways to use this class: The first is
in "static" mode which gives the frame a set geometry and will not
change, the second is an automatic mode that creates the smallest
possible frame around the specified contents. Contents can either be
normal text and/or a QPixmap, useful for displaying the caption and icon
of the currently highlighed window.
Known bugs:
 - Does not detect Plasma theme changes, known to be in the Plasma
   library.
 - Slight graphical glitches, known to be in Qt 4.5.0 RC1.
Untested:
 - What happens when there is no Plasma theme installed.

svn path=/trunk/KDE/kdebase/workspace/; revision=929324
2009-02-21 04:53:13 +00:00
Lucas Murray
469c28b2eb Effect API version += 19. Add buffer zone for 4.2 backports.
svn path=/trunk/KDE/kdebase/workspace/; revision=927678
2009-02-18 04:09:55 +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
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
846496d2c1 Cleaned up the effects/ directory by moving each individual effect into
its own directory, cleaned up the effect config macros and renamed
"MakeTransparent" to "Translucency" so that it matches its visible name.

svn path=/trunk/KDE/kdebase/workspace/; revision=921749
2009-02-05 15:35:38 +00:00
Lucas Murray
71cdab755e Change motion dynamics algorithm and class structure. Animations are now
smoother and less "bouncy" than before and produce the same result at
any framerate. The Motion1D and Motion2D classes are now available and
replace the Motion<T> template for external use.

svn path=/trunk/KDE/kdebase/workspace/; revision=921104
2009-02-04 15:10:20 +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
Luboš Luňák
31e4e950b6 Handle Y inverting properly with normalized coordinates.
svn path=/trunk/KDE/kdebase/workspace/; revision=904306
2009-01-01 21:12:34 +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
Martin Gräßlin
fe9092dd89 Don't split window quads which have a size of zero. This should prevent crashes due to assert failing.
BUG: 177927

svn path=/trunk/KDE/kdebase/workspace/; revision=897801
2008-12-16 20:48:34 +00:00
Alexander Neundorf
58d4ae29ff -also export kephal, kdecorations, kwineffects and ksrgd (or so)
Alex

CCMAIL: christoph@maxiom.de


svn path=/trunk/KDE/kdebase/workspace/; revision=895041
2008-12-09 21:27:30 +00:00
Alexander Neundorf
99b4b9dd88 -make kdebase build with the reduced link interface using target_link_libraries(... LINK_INTERFACE_LIBRARIES ...)
Alex



svn path=/trunk/KDE/kdebase/workspace/; revision=891438
2008-12-02 02:01:14 +00:00
Lucas Murray
2b22689c45 Paint effect text onto a QImage instead of a QPixmap. Makes OpenGL mode
faster, XRender slower and works around a subpixel font rendering problem.
BUG: 173089

svn path=/trunk/KDE/kdebase/workspace/; revision=888946
2008-11-25 15:15:26 +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
Pino Toscano
20d67bbf90 revert workaround, correctly fixed in the parent CMakeLists.txt
svn path=/trunk/KDE/kdebase/workspace/; revision=884628
2008-11-15 15:34:45 +00:00
Tim Beaulen
6cb544e4c3 Should fix kwin from not finding kephal/screens.h
svn path=/trunk/KDE/kdebase/workspace/; revision=884616
2008-11-15 15:11:10 +00:00
Guillaume Pothier
f780e8b68b Kephalized plasma and kwin: replaced usage of QDesktopWidget by Kephal
svn path=/trunk/KDE/kdebase/workspace/; revision=884482
2008-11-15 03:04:44 +00:00
Laurent Montel
5535a9de5e Fix iterator
svn path=/trunk/KDE/kdebase/workspace/; revision=883047
2008-11-11 23:09:11 +00:00
Enrique Matías Sánchez
f5efd9ca28 SVN_SILENT Fix typos in kdebase
svn path=/trunk/KDE/kdebase/workspace/; revision=875089
2008-10-23 09:31:44 +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
af1b639a9d Rename the new decoration API and mark it as unstable. Supporting a hacked API is suicide.
Will correctly handle this in KDE 4.3 by using ARGB decorations, even if it's not pretty.

svn path=/trunk/KDE/kdebase/workspace/; revision=872795
2008-10-18 08:10:37 +00:00
Lucas Murray
0442bcf1f7 Increment effect API version.
Added Martin and myself to the shadow effect copyright header.

svn path=/trunk/KDE/kdebase/workspace/; revision=872474
2008-10-17 10:30:52 +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
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
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
a3a10632e6 Fix last commit.
svn path=/trunk/KDE/kdebase/workspace/; revision=866886
2008-10-02 07:15:48 +00:00
Luboš Luňák
727397181a Avoid QTimeLine warnings with invalid timeline duration.
svn path=/trunk/KDE/kdebase/workspace/; revision=866697
2008-10-01 17:50:41 +00:00
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
0cfe3b2c73 Fix indenting of decoration files.
svn path=/trunk/KDE/kdebase/workspace/; revision=863806
2008-09-23 07:54:28 +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
Bram Schoenmakers
a707d588c3 Forward port r851037: Respect option "Show window button tooltips"
svn path=/trunk/KDE/kdebase/workspace/; revision=851041
2008-08-22 19:24:43 +00:00