Commit graph

9596 commits

Author SHA1 Message Date
Filip Wieladek
378a4f8fe4 Mouse Click animation effect
An effect which visualy animates when a mouse button is pressed or
released.

REVIEW: 105780
BUG: 309006
FIXED-IN: 4.10
2012-10-26 09:47:22 +02:00
Martin Gräßlin
2e2aa199bc Save shortcut editor in FlipSwitch Effect Config 2012-10-26 09:46:53 +02:00
Thomas Lübking
0e69bdf0ed add ElectricBorderCornerRatio setting [0,1]
REVIEW: 106509
CCBUG: 308993
2012-10-25 20:16:53 +02:00
Thomas Lübking
6cba742315 Hardcode TabBox setting in boxswitch effect false
Boxswitch is activated as tabbox, possibly due to a downstream issue
This results in multiple effects being assigned to the tabbox and no
GUI way for the user to fix this.
Since the BoxSwitch effects nowadays only exists  as sidearm for
coverswitch, the tabbox setting is now hardcoded and disabled in the
effect, making it completely impossible to accidentally use it as tabbox.

BUG: 303387
REVIEW: 106695
FIXED-IN: 4.9.3
2012-10-25 19:17:26 +02:00
Thomas Lübking
dbf2623e87 respect screen rule in configure requests
REVIEW: 106960
2012-10-25 19:17:22 +02:00
Thomas Lübking
4a94561f68 preconnect client and compositor
the manage code will emit the composite blocking check trigger

REVIEW: 106894
2012-10-25 19:06:57 +02:00
Martin Gräßlin
26a9a35b2f Increase runtime requirement to Mesa 8.0
Adjustment to reality. KWin has had a dependency on Mesa 8.0 for quite
some time given that it is what basically all distributions ship.

It is better to clearly state what is required. For KWin Mesa 8.0 is a
more reliable dependency as all DRI drivers which do not support DRI2
have been removed.

Packagers have been informed about this intended change some weeks ago.

REVIEW: 106799
2012-10-25 11:45:36 +02:00
Martin Gräßlin
57c27c2e0b GLPlatform can recommend the compositor to use
During detecting the OpenGL capabilities also a recommended compositor
can be set. This recommendation is honoured by the OpenGL based
compositors. That is the SceneOpenGL2 requires a recommendation for at
least OpenGL2 and the SceneOpenGL1 requires at least a recommendation for
OpenGL1. If the driver recommends XRender compositing the SceneOpenGL
performs the existing fallback to XRender.

With this recommendation the hacks in the Scene are removed, e.g. it is
no longer checked whether the driver is software emulation as that is
provided through the recommendation.

To overrule the recommendation the environment variable KWIN_COMPOSE is
extended by the values O1 and O2 to enforce either OpenGL 1 or OpenGL 2.
This overwrites all other checks. As a side-effect this allows now to run
KWin on the llvmpipe:
LIBGL_ALWAYS_SOFTWARE=1 KWIN_COMPOSE=O2 kwin --replace &

But not that I would recommend to use it :-)

REVIEW: 106741
2012-10-25 11:40:18 +02:00
Martin Gräßlin
99db844912 Bind ARBBlurShader to OpenGL1
The logic has already ensured that the ARBBlurShader can only be used
when using the OpenGL1 compositor, the OpenGL 2 compositor needs to use
the GLSLBlurShader.

This change moves the complete ARBBlurShader into a KWIN_HAVE_OPENGL_1
ifdef section.

As a side-effect the ::create method can now return a NULL pointer which
makes more sense then returning an ARBBlurShader in case that the
GLSLShader is not supported.

REVIEW: 106738
2012-10-25 11:34:30 +02:00
Martin Gräßlin
cf5de22586 Introduce a build option KWIN_BUILD_OPENGL_1_COMPOSITING
If the build option is enabled KWIN_HAVE_OPENGL_1 is passed as a compile
flag when build against OpenGL.

This compile flag is meant to replace the KWIN_HAVE_OPENGLES. So far code
has been ifdefed for special behavior of OpenGL ES 2.0 and to remove
fixed functionality calls which are not available in OpenGL ES 2.0.

With this build flag the fixed functionality calls which are only used in
the OpenGL1 Compositor can be removed and keeping the KWIN_HAVE_OPENGLES
for the real differences between OpenGL 2.x and OpenGL ES 2.0.

E.g. a call like glColor4f should be in an
glColor4f(1.0, 1.0, 1.0, 1.0);

while a call like glPolygonMode should be in an
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

Building for OpenGL ES 2.0 of course implies that KWIN_HAVE_OPENGL_1 is
not defined.
2012-10-25 11:34:12 +02:00
Martin Gräßlin
b2922f6675 Remove compile flag KWIN_HAVE_OPENGL
KWIN_HAVE_OPENGL is not used anymore inside KWin, so no need to pass it
as a compile flag to the binaries.
2012-10-25 11:34:12 +02:00
Martin Gräßlin
2b6c4730b5 Re-enable Blur/Lanczos for Catalyst on OpenGL 2
Given that the Catalyst driver is now supporting direct rendering and by
that can use the OpenGL 2 code path we do no longer need to force
disable the Blur effect and Lanczos filters which used to crash in the
ARB shader path.

The ARB shader path - which can only be used in OpenGL 1 - is kept
disabled for Catalyst.

CCBUG: 270818
CCBUG: 286795
REVIEW: 106798
2012-10-25 11:30:18 +02:00
Martin Gräßlin
e84118d9f8 Add detection support for VMware driver (SVGA3D) to GLPlatform
VMware uses a Gallium driver which means that OpenGL based compositing
works out of the box without any adjustments to GLPlatform.

Just adding recognizing code for the SVGA3D driver.

REVIEW: 106826
2012-10-25 11:27:42 +02:00
Martin Gräßlin
388edab9e5 Add support for OpenGL in VirtualBox
OpenGL is properly working if there is a direct rendering context.
If LIBGL_ALWAYS_INDIRECT is set VirtualBox falls back to Mesa's software
rasterizer. So in order to get OpenGL the driver is now whitelisted in
the opengltest.

GLPlatform is extended to recognize the VirtualBox driver and has new
methods to report whether it is a virtual machine and VirtualBox. The
detection is rather limited as we don't get access to the underlying
hardware, so we do not know whether the features are really supported.
We need to trust the driver here in announcing the right extensions.

The driver does not provide glxQueryDrawable although it is part of
GLX 1.3. A hack is added in the glxbackend to set the function pointer to
NULL. This can unfortunately not be done in glxResolveFunctions() as
QueryDrawable seems not to be provided by an extension (at least not
listed in the OpenGL registry) and getProcAddress resolves a function but
it only prints an OpenGL Warning to stderr.

As a note: the driver reports that it is using XSHM for
GLX_EXT_texture_from_pixmap.

REVIEW: 106821
2012-10-25 11:27:28 +02:00
Martin Gräßlin
711b434970 Detect latest Intel hardware in GLPlatform
Added support for IvyBridge and Haswell.

REVIEW: 106819
2012-10-25 11:27:14 +02:00
Martin Gräßlin
986d9e5613 Delay releasing the compositor selection
When turning off the compositor do not release the compositor selection
directly but delay it through a timer. The idea is that the internal
change when e.g. restarting the compositor or switching from XRender to
OpenGL should not be visible to the outside world.

This hopefully makes restarting the compositor more robust in Plasma due
to the SelectionWatcher sometimes reporting incorrect results.

When restarting KWin the change does not matter as the selection gets
force claimed by the new instance anyway.

CCBUG: 179042
REVIEW: 106844
2012-10-25 11:23:34 +02:00
Martin Gräßlin
aa34dbd059 Remove the fallback to Platik in case defaultDepth is < 8
Plastik has been removed and the new Aurorae has the same requirement as
Oxygen. This fallback was anyway useless given that KWin nowadays uses
raster paint engine by default and hardly anything would work with such a
small QPixmap::defaultDepth().

REVIEW: 106613
2012-10-25 11:19:26 +02:00
Martin Gräßlin
a85ff67deb QML Plastik as fallback for incorrectly configured Aurorae
If a theme is configured which does not exist, Aurorae will load the
Plastik theme which is known to be around.
2012-10-25 11:18:53 +02:00
Martin Gräßlin
18acfc4436 Plastik theme for Aurorae replaces the classic Plastik
* Update script to migrate Plastik users to Aurorae
* Plastik QML renamed to Plastik
* Old Plastik is dropped
2012-10-25 11:18:52 +02:00
Martin Gräßlin
ae99d9bc6e Fix initial button flickering in Plastik QML
Disable animations till the decoration is completel loaded. This
ensures that the buttons do not flicker because of the animation from
black to their respective color.
2012-10-25 11:18:52 +02:00
Martin Gräßlin
728b47ef07 Use a Component for Explicit Spacers
A component has the advantage that the width property can depend from
other properties. This does not work with the previous on the fly
construction as the width does not update when the referenced property
changes.
2012-10-25 11:18:52 +02:00
Jurica Vukadin
bcdc74f8d6 Fix more C++11 narrowing warnings
REVIEW: 106997
2012-10-24 20:43:19 +02:00
Jurica Vukadin
e68955866d Fix C++11 narrowing warnings
REVIEW: 106992
2012-10-24 20:42:14 +02:00
Martin Gräßlin
5a33974bca Merge branch 'KDE/4.9'
Conflicts:
	plasma/desktop/shell/activitymanager/package/contents/ui/ActivityDelegate.qml
2012-10-24 20:40:07 +02:00
Martin Gräßlin
8176c91b2f Enable GHNS for Window Switcher
Thanks to the new category on kde-look.org we can now show the GHNS
button inside the KCM.

BUG: 297636
FIXED-IN: 4.9.3
REVIEW: 106991
2012-10-24 20:36:05 +02:00
Martin Gräßlin
7f26069f25 Enable GHNS button for KWin scripts
Functionality had already been present for quite some time and now that
the category on kde-look exists, we can just show the button.

BUG: 296774
FIXED-IN: 4.9.3
REVIEW: 106963
2012-10-24 20:35:12 +02:00
David Faure
5c7c455863 Merge remote-tracking branch 'origin/KDE/4.9' 2012-10-19 16:10:03 +02:00
Alexander Jones
bf2507b2fe Fixing author names in desktop files
BUG: 307928
FIXED-IN: 4.10
REVIEW: 106880
2012-10-18 07:29:14 +02:00
Script Kiddy
f476d76ece SVN_SILENT made messages (.desktop file) 2012-10-17 00:53:14 +02:00
Script Kiddy
2141dc821b SVN_SILENT made messages (.desktop file) 2012-10-16 18:43:37 +02:00
Martin Gräßlin
e0570f34da Merge branch 'KDE/4.9'
Conflicts:
	kwin/effects/diminactive/diminactive.cpp
2012-10-14 20:28:36 +02:00
David Weber
58e8bf2f12 Repaint screen after config update in diminactive effect
BUG: 308283
FIXED-IN: 4.9.3
REVIEW: 106814
2012-10-14 20:22:14 +02:00
David Faure
8d770726cb Merge remote-tracking branch 'origin/KDE/4.9' 2012-10-14 15:39:25 +02:00
Script Kiddy
816a069596 SVN_SILENT made messages (.desktop file) 2012-10-13 16:33:42 +02:00
Script Kiddy
2d36325197 SVN_SILENT made messages (.desktop file) 2012-10-13 11:13:24 +02:00
Martin Gräßlin
e962fd9ce2 Typo--
SVN_SILENT
2012-10-12 08:43:34 +02:00
Martin Gräßlin
777513a0c8 Merge branch 'KDE/4.9'
Conflicts:
	ksmserver/themes/contour/metadata.desktop
	ksmserver/themes/default/metadata.desktop
	kwin/kcmkwin/kwinscripts/kwinscripts.desktop
	kwin/scripts/videowall/metadata.desktop
	kwin/tabbox/qml/clients/compact/metadata.desktop
	kwin/tabbox/qml/clients/present_windows/metadata.desktop
	plasma/desktop/containments/desktop/plasma-containment-desktop.desktop
	plasma/generic/applets/system-monitor/plasma-applet-sm_hdd_activity.desktop
	plasma/generic/runners/nepomuksearch/plasma-runner-nepomuksearch.desktop
	plasma/generic/runners/places/plasma-runner-places.desktop
	plasma/generic/runners/webshortcuts/plasma-runner-webshortcuts.desktop
	powerdevil/kcmodule/activities/powerdevilactivitiesconfig.desktop
	powerdevil/kcmodule/global/powerdevilglobalconfig.desktop
	powerdevil/kcmodule/profiles/powerdevilprofilesconfig.desktop
2012-10-12 07:59:22 +02:00
Martin Gräßlin
798ccac19d Remove margins for decoration-maximized elements
Fixes incorrect rendering of decorations providing a maximized element.
BUG: 308248
FIXED-IN: 4.9.3
2012-10-12 07:47:07 +02:00
Martin Gräßlin
0d81d1d7c0 Move decoration pixmap handling from Client to PaintRedirector
The only task of the PaintRedirector is to redirect the painting of the
window decorations into Pixmaps. So it should actually do this by also
handling the four pixmaps for the decoration. This simplifies the code
as all the logic concerning redirecting the painting is now grouped
together.

Furthermore the PaintRedirector is now a child of the decoration widget,
which means it gets automatically destroyed whenever the decoration is
destroyed - the Client does not have to care about it.

Also the PaintRedirector gets only created if the Compositor is active as
it is not needed in the non-compositing case.

REVIEW: 106620
2012-10-12 07:45:31 +02:00
Script Kiddy
c129dc2d63 SVN_SILENT made messages (.desktop file) 2012-10-11 10:01:52 +02:00
Script Kiddy
fb7bb712fb SVN_SILENT made messages (.desktop file) 2012-10-10 21:24:01 +02:00
Script Kiddy
678f5e27cd SVN_SILENT made messages (.desktop file) 2012-10-10 16:15:38 +02:00
Martin Gräßlin
ba08ff6a14 Fix build error when GLES is not available
Note to me: always rebuild with all possible build options if something
is changed.

Sorry for the inconvenience and thanks to the early report of the issue.

BUG: 307866
FIXED-IN: 4.10
2012-10-06 13:44:12 +02:00
Pino Toscano
97a6bb139c fixuifiles 2012-10-05 00:54:11 +02:00
Martin Gräßlin
dcd1869887 Introduce ui-file for Advanced tab of KWin's configuration
Thanks to Alexander Jones for providing the ui file.

REVIEW: 106551
2012-10-04 17:26:38 +02:00
Martin Gräßlin
fe062f6ebb Introduce ui-file in moving tab of KWin's configuration
Thanks to Alexander Jones for creating the ui file.
2012-10-04 17:26:34 +02:00
Martin Gräßlin
7c2a0f2188 Introduce ui-file for inactive window mouse actions in KWin configuration
Thanks to Alexander Jones for creating the ui file.
2012-10-04 17:26:34 +02:00
Martin Gräßlin
142fa54b2b Introduce ui-file for titlebar mouse actions in KWin's configuration
Thanks to Alexander Jones for creating the ui file.
2012-10-04 17:26:34 +02:00
Martin Gräßlin
847e0f2f9a Introduce an ui-file for Focus configuration
Thanks to Alexander Jones for creating the ui file.
2012-10-04 17:26:34 +02:00
Martin Gräßlin
476adac337 Do not resolve glx functions specified in GLX 1.3
According to the OpenGL ABI for Linux GLX 1.3 is a minimum requirement.
Therefore we do not need to resolve the symbols which are present in that
version.

KWin did always require at least 1.3, for all the resolved functions
there were checks in the Scene, but they might have been incorrect.
Instead now the GLX version is checked and OpenGL compositing is blocked
if there is not at least GLX 1.3.

REVIEW: 106704
2012-10-04 17:17:51 +02:00