Commit Graph

9788 Commits (88f998a924f7533498039a802ffce10e071f3dc7)

Author SHA1 Message Date
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
Script Kiddy 25211a4598 SVN_SILENT made messages (.desktop file) 2012-11-12 10:51:44 +01: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
Thomas Lübking 03d782fa73 scripted title manipulation / stripping
REVIEW: 106896
BUG: 308995
2012-11-09 00:37:34 +01:00
Thomas Lübking cd368384f4 Clock unsynced resizes
For clients w/o XSYNC support, limit resizes to 30Hz
to take pointless load from client and X11

REVIEW: 107087
2012-11-09 00:37:33 +01:00
Kai-Uwe Behrmann 479be668d7 Merge branch 'color2'
Conflicts:
	kwin/libkwineffects/kwinglplatform.cpp
2012-11-07 23:54:18 +01:00
Fredrik Höglund bb9f59a89c kwin: Use xcb to optimize damage event handling
Use XDamageReportNonEmpty instead of XDamageReportRawRectangles.

In XDamageReportNonEmpty mode the server generates a single damage
event when the damage state transitions from not-damaged to damaged.
When the compositor is ready to paint the screen, it requests the
damage region for each window and resets the state to not-damaged.

With XCB we can request the damage regions for all windows in a
single roundtrip, making this the preferred mode.

This should reduce the number of wakeups and the time spent
processing damage events between repaints.
2012-11-07 22:17:14 +01:00
Fredrik Höglund 5f220bef2e Revert "delay unsynced window ready_for_painting state"
The next commit will solve this problem in a different way.

This reverts commit e617f176d1e293abcaafbb14d0afcf8aee24f054.
2012-11-07 22:16:49 +01:00
Fredrik Höglund 0e8b4ffb0c kwin: Link to libxcb-xfixes and libxcb-damage 2012-11-07 22:13:13 +01:00
Fredrik Höglund 19aaf48a02 kwin: Port Client::embedClient() to xcb 2012-11-07 22:13:13 +01:00
Fredrik Höglund c679ec6508 kwin: Port most of Workspace::init() to xcb 2012-11-07 22:13:13 +01:00
Fredrik Höglund 36f05628f8 kwin: Add a ScopedCPointer class
This class is functionally the same as QScopedPointer, but uses
free() instead of delete.
2012-11-07 22:13:12 +01:00
Fredrik Höglund 4821c15b97 kwin: Add a function that returns the xcb_connection_t 2012-11-07 22:13:12 +01:00
Script Kiddy 22be6de889 SVN_SILENT made messages (.desktop file) 2012-11-07 06:52:27 +01:00
Script Kiddy 8ed615b0bd SVN_SILENT made messages (.desktop file) 2012-11-05 06:39:10 +01:00
Hugo Pereira Da Costa d5326ea461 change std::vector into QList and updated code accordingly.
Fixed compilation warnings.
2012-11-04 20:54:22 +01:00
Script Kiddy bd7d7e7b01 SVN_SILENT made messages (.desktop file) 2012-11-04 10:41:25 +01:00
Script Kiddy 21463a9a91 SVN_SILENT made messages (.desktop file) 2012-11-04 06:38:24 +01:00
Marco Martin 36ed622a61 use a rules file dependednt from the kwin name
kwinacriverulesrc vs kwinrulesrc
2012-11-03 22:09:07 +01:00
Script Kiddy 93e9854674 SVN_SILENT made messages (.desktop file) 2012-11-03 07:01:48 +01:00
Fredrik Höglund ac0e85bf91 kwin: Link to libxcb and libX11-xcb 2012-11-01 23:56:32 +01:00
Thomas Lübking 2f63321c0b Merge branch 'KDE/4.9'
Conflicts:
	kwin/composite.cpp
2012-11-01 21:07:35 +01:00
Thomas Lübking 01d4fcec00 update deco borders on shade before aligning tabs
BUG: 308633
FIXED-IN: 4.9.3
2012-11-01 21:01:09 +01:00
Hugo Pereira Da Costa 15b51db1ab oxygenlistmodel: Added "contains" method to generic model, to check index validity better.
oxygenexceptionlistwidget: better check index validity in "edit" method. Also update buttons status after removing items, since
apparently selectionChanged signal is not sent by Qt.

CCBUG: 309388
2012-11-01 19:13:16 +01:00
Hugo Pereira Da Costa d1a914d8fb oxygenlistmodel: Added "contains" method to generic model, to check index validity better.
oxygenexceptionlistwidget: better check index validity in "edit" method. Also update buttons status after removing items, since
apparently selectionChanged signal is not sent by Qt.

CCBUG: 309388
2012-11-01 19:09:09 +01:00
Ralf Jung 805495c8ea do not resume compositing when it's suspended and a client blocks it
REVIEW: 106900
CCBUG: 308438
2012-11-01 14:03:11 +01:00
Fredrik Höglund 6e9901e5c3 Merge branch 'KDE/4.9'
Conflicts:
	kwin/eglonxbackend.cpp
	kwin/glxbackend.cpp
	kwin/libkwineffects/kwinglplatform.cpp
2012-10-30 23:26:06 +01:00
Fredrik Höglund 70c35b8284 kwin/glx: Avoid MSAA configs in initBufferConfigs()
It appears that we're accidentally choosing an MSAA config with the
Intel driver in Mesa 9.0. So change the algorithm to take the values
of GLX_SAMPLES and GLX_SAMPLE_BUFFERS into account.

Found by Kenneth Graunke.
2012-10-30 23:19:24 +01:00
Fredrik Höglund e4d970ef5f kwin: Don't hold an X server grab while painting the screen
According to Pierre-Loup Griffais (Plagman on IRC) this is causing
choppy VDPAU video playback when compositing is enabled.

Removing these calls doesn't seem to cause any regressions, and the
commit that added them doesn't give a reason.  So let's just get rid
of them for now.

(cherry picked from commit 20e6349843d9bb838673a301330d7dc5d08401a5)
2012-10-30 18:23:06 +01:00
Fredrik Höglund e262d4fde6 kwin: Enable loose binding with the Intel driver 2012-10-30 18:23:06 +01:00