Commit graph

9715 commits

Author SHA1 Message Date
Martin Gräßlin
bcfc0269ae Create the decoration listing after the KCModule has been shown
If the decoration listing gets initialized directly in the ctor as it
used to be, there is the chance of the list being not rendered in case
that there are multiple KCMs in one container and one has to switch to
the decoration KCM. This is the case for e.g. opening the KWin
configuration through the Alt+F3 menu. But that never happened when
going through Systemsettings as there (at least with English) it is
listed as the first module.

BUG: 310613
FIXED-IN: 4.10
2012-11-26 10:05:17 +01:00
Script Kiddy
e6f0f5bcf7 SVN_SILENT made messages (.desktop file) 2012-11-26 07:08:50 +01:00
Martin Gräßlin
18cccad806 Introduce a templated animationTime overload for the KConfigXT case
This method can be used to get the animationTime in case a configuration
class generated through KConfigXT is used. In general the configuration
stores the magic value 0 for a property "duration". This magic value
indicates that a hard-coded default value should be used.

So the common logic to test the stored value for 0 and then either pass
the stored value or the default value to animationTime is encapsulated
in this method in a generic way.

A MyEffect can use it in the following way:
animationTime<MyEffectConfig>(200);

BUG: 310646
FIXED-IN: 4.10
REVIEW: 107460
2012-11-25 20:19:31 +01:00
Martin Gräßlin
40400167b9 Only wrap duration once in animationTime()
The zoomDuration is already wrapped in animationTime() during
reconfigure. So doing it twice is wrong.

REVIEW: 107463
2012-11-25 20:18:07 +01:00
Script Kiddy
313b1833bc SVN_SILENT made messages (.desktop file) 2012-11-25 07:01:07 +01:00
Dario Cambié
a7fa887e49 Disable fallapart effect for not-visible windows
REVIEW: 106823
2012-11-24 16:24:26 +01:00
Martin Gräßlin
420e226b12 Pass the parameter passed to KDecoration::region() to KCommonDecoration
Adjusts for possible future use.
REVIEW: 107443
2012-11-24 11:35:29 +01:00
Martin Gräßlin
85d2f1cb61 Export QEasingCurve to scripted Effects
That allows reference QEasingCurve::Type to be used in the animate
functions.

REVIEW: 107265
2012-11-24 10:19:59 +01:00
Script Kiddy
378aadcb1d SVN_SILENT made messages (.desktop file) 2012-11-24 07:33:07 +01:00
Cedric Bellegarde
89d35aa958 Use a real Qt::Popup menu => TODO: fix workaround 2012-11-23 12:44:53 +01:00
Martin Gräßlin
feb352c84c Suppress unused variable warning
SVN_SILENT
2012-11-22 14:34:34 +01:00
Martin Gräßlin
b2512b1479 Increase KWIN_EFFECT_API_VERSION_MINOR for 4.10 2012-11-22 12:49:22 +01:00
Martin Gräßlin
533e3e5adf Move circulateDesktopApplications into DBusInterface
It is not used anywhere inside KWin at all and the DBus method is not
used anywhere inside KDE's repositories (according to lxr). Because of
that marked as deprecated and going to die with Qt 5.

REVIEW: 107406
2012-11-22 09:49:08 +01:00
Martin Gräßlin
5a2504b19e Remove not implemented method from Workspace 2012-11-22 09:44:12 +01:00
Emil Sedgh
3108112cbf Revert "Window shortcuts now toggle (raise/minimize) windows."
We're in a feature freeze.

This reverts commit 776d131206c20097b5ad672179598373f7d8ac8e.
2012-11-22 11:42:11 +03:30
Emil Sedgh
f1b497e2b0 Window shortcuts now toggle (raise/minimize) windows.
This allows me to use all applications in a Yakuake-like method.
I can define a shortcut for an application, press it, window shows up, do my work, press it again and it hides.
This is specifically good for a Text Editor<-->Browser switching workflow.
Also my first kwin patch.
2012-11-22 02:57:39 +03:30
Martin Gräßlin
5d7b3b6df5 Remove not implemented methods from Workspace class definition
Methods are nowhere implemented and in general placement related code is
in Placement.
2012-11-21 18:29:02 +01:00
Martin Gräßlin
2ba5e1d6ad Remove unused variable in CubeEffect::loadShader
--warnings
2012-11-21 14:44:45 +01:00
Martin Gräßlin
99411ce7b1 Merge CubeEffect::loadConfig with reconfigure
Only called from inside reconfigure and reconfigure does nothing else
than calling loadConfig.
2012-11-21 14:42:21 +01:00
Martin Gräßlin
aac42d04db Remove unused variables transSlider and transButton
Whatever those have been...
2012-11-21 14:29:42 +01:00
Ralf Jung
96bc979ca8 Fix buffer swap prototypes
BUG: 309647
REVIEW: 107302
2012-11-18 12:50:31 +01:00
Script Kiddy
2b0453d82c SVN_SILENT made messages (.desktop file) 2012-11-17 07:39:31 +01:00
Pino Toscano
2032c8d886 add/improve TESTNAME in kde4_add_unit_test()
add or improve prefixes for tests, based on the "module" they belong to
2012-11-16 14:37:01 +01:00
Hugo Pereira Da Costa
2023fb58f4 Fixed writting of configuration so that hidden options are not overridden by default values. 2012-11-16 11:59:58 +01:00
Script Kiddy
b24b9a99f3 SVN_SILENT made messages (.desktop file) 2012-11-16 07:21:38 +01:00
Montel Laurent
2ed928b5f4 Fix compile with strict iterator 2012-11-15 07:52:49 +01:00
Montel Laurent
90c21b33dd Fix order 2012-11-15 07:48:08 +01:00
Montel Laurent
7fb7f2b5e1 Merge branch 'master' of git.kde.org:kde-workspace 2012-11-14 21:43:42 +01:00
Montel Laurent
6d278c1665 Pedantic 2012-11-14 21:43:13 +01:00
Thomas Lübking
7bc5832429 use QELapsedTimer to measure animation delay
QElapsedTimer uses a monotic clock on all relevant systems
and is thus invarant against date/time changes (while the
bug was likely caused by daybreaks)

BUG: 306186
REVIEW: 107250
FIXED-IN: 4.10

use monitc clock
2012-11-14 21:16:32 +01:00
Thomas Lübking
b28cf2adc9 xrender for mouseclick
REVIEW: 107181
2012-11-14 21:16:32 +01:00
Thomas Lübking
d4f2740ce3 don't leave quick tiling for FS windows
REVIEW: 107317
BUG: 309170
2012-11-14 21:15:48 +01:00
Thomas Lübking
d6d82b2a08 unlink ExtendedBorderRegion from unstable API
also fix initial mapping state

BUG: 307721
BUG: 308994
FOXED-IN: 4.10
REVIEW: 106715
2012-11-14 21:11:36 +01:00
Thomas Lübking
320c5cc287 activateNextClient precedence for next client in tabgroup
BUG: 309765
FIXED-IN: 4.10
REVIEW: 107258
2012-11-14 21:11:36 +01:00
Casian Andrei
01adbe6dc5 Implement color correction (per output)
Add an option to kcmcompositing in the 'Advanced' tab, to enable or
disable color correction. It is specified that it's experimental and it
needs Kolor Manager.

Before painting for a particular screen, ColorCorrection::setupForOutput
should be called.

A screen property is added for WindowPaintData.

In kwinglutils, The fragment shaders are intercepted before being
compiled and they get a couple of lines of code inserted in order to do
the color correction. This happens only when color correction is enabled, of
course.

For D-Bus communication with KolorServer, everything is async.

The implementation basically manages a set of color lookup tables for
different outputs and for different window regions. These are taken via
D-Bus. Each lookup table has around 700 KB.

This commit reintroduces the changes from the former merge with the
"color2" branch. In this form, it can be easily reverted.

REVIEW: 106141
2012-11-13 22:47:09 +02:00
Casian Andrei
22569f7eb9 Remove forceAlpha uniform, which is no longer needed
This was originally added by d467fc1bdbcf69bd6ef213bd909633c2edfb6878,
to prevent alpha ending up to be 0 with blending disabled. Apparently,
that was a driver issue that is no longer present.

REVIEW: 107090
2012-11-13 22:23:18 +02:00
Casian Andrei
a46d247702 Revert "Merge branch 'color2'"
This merge is incomplete and it does not include the review number of
the associated review request. It should have been pushed as a single
commit, because the merged commits were not intended to be published in
their form.

This reverts commit dcba90263069a221a5489b1915c5cf1ca39d090c, reversing
changes made to 50ae07525c7fde07794e7548c3d6e5a69cb1a89d.

Conflicts:
	kwin/scene_opengl.cpp
	kwin/scene_opengl.h
2012-11-13 22:19:32 +02:00
Ignat Semenov
32dffca2bd fix building with KWIN_BUILD_KAPPMENU set to off
Forgot to fix the header file kwin/workspace.h in ed0eead6.
2012-11-13 15:23:56 +04:00
Ignat Semenov
fa4bbea419 fix building with KWIN_BUILD_KAPPMENU set to off 2012-11-13 14:43:07 +04:00
Hugo Pereira Da Costa
6db2407334 Added hidden option to disable extended window borders. 2012-11-11 13:15:47 +01:00
Script Kiddy
b2bf54f859 SVN_SILENT made messages (.desktop file) 2012-11-11 06:50:24 +01:00
Brian Nguyen
a04e9cbc6f Optimize away XMoveWindow() calls in the common click-and-drag case
This implements an optimization similar to one in compiz which defers updating
the backing X window during a window move until the move is terminated. This
helps alleviate some choppiness when using composite + vsync.

REVIEW: 107256
2012-11-10 11:29:49 +01:00
Jekyll Wu
6979e0a9eb Merge remote-tracking branch 'origin/KDE/4.9'
Conflicts:
	CMakeLists.txt
	plasma/generic/applets/batterymonitor/metadata.desktop
2012-11-10 14:05:20 +08:00
Hugo Pereira Da Costa
f4cdf47c93 implemented extended border region for oxygen 2012-11-09 18:05:25 +01:00
Hugo Pereira Da Costa
98a68c3bfe added necessary changes to enable ::region() slot for kcommondecoration
REVIEW: 107253
2012-11-09 18:03:33 +01:00
Cedric Bellegarde
53ae2b91e2 GUI: Kwin appmenu support:
- Add support for application menu button in Kwin
- Add kded appmenu configuration in kcm_style
2012-11-09 13:44:50 +01:00
Martin Gräßlin
9308028fa4 Decoration can announce whether it currently requires an alpha channel
A decoration can provide the AbilityAnnounceAlphaChannel in addition to
AbilityUsesAlphaChannel. If this ability is provided the decoration can
enable/disable the use of the alpha channel through setAlphaEnabled().

The base idea behind this mechanism is to be able to tell the compositor
that currently alpha is not needed. An example is the maximized state in
which the decoration is fully opaque so that there is no need to use the
translucency code path which would render all windows behind the deco.

In addition also the blur effect honors this setting so that behind a
known opaque decoration no blurring is performed.

Oxygen is adjusted to disable translucency in maximized state and Aurorae
is adjusted to allow themes to enable/disable translucency. For Plastik
translucency and with that also blurring is disabled.

REVIEW: 106810
2012-11-09 10:36:43 +01:00
Martin Gräßlin
e66eb08140 Migration for Translucency Settigns
Translucency configuration values changed from [0.0,1.0] to [0,100].
2012-11-09 08:53:47 +01:00
Martin Gräßlin
509daa60a1 Use KConfigXT in Translucency Effect
Port the KCM to use KConfigXT which means that the complete custom code
for loading, saving and setting to defaults can be dropped.

Also in the effect in brings some advantages as we basically get compile
time checks whether the accessed config is named correctly.

The saved values for translucency are now UInts in [0,100] instead of
doubles in [0.0,1.0], so an update script is needed.

REVIEW: 106310
2012-11-09 08:53:22 +01:00
Martin Gräßlin
7ad25b663e Adding more declarative way to animate a window in JavaScript
The current API call to animate a window does not feel very JavaScripty.
Therefore a new method "animate" is added to the global scope, which
takes a JavaScript object of the following structure:

{
    window: EffectWindow, /* the window to animate, required */
    duration: int, /* duration in msec, required */
    curve: QEasingCurve.Type, /* global easing curve, optional */
    type: Effect.Attribute, /* for first animation, optional */
    from: FPx2, /* for first animation, optional */
    to: FPx2, /* for first animation, optional */
    delay: int, /* for first animation, optional */
    animations: [ /* additional animations, optional */
        {
        curve: QEasingCurve.Type, /* overrides global */
        type: Effect.Attribute,
        from: FPx2,
        to: FPx2,
        delay: int
        }
    ]
}

At least one animation needs to be specified either on the root level
or in the array of animations. Curve is the only property on root level
which is used in the animations, if not provided.

REVIEW: 107079
2012-11-09 08:05:02 +01:00