Commit graph

13242 commits

Author SHA1 Message Date
Martin Gräßlin
5ceb1b4f75 Merge branch 'Plasma/5.1'
Conflicts:
	CMakeLists.txt
	geometry.cpp
	kcmkwin/kwincompositing/kcmkwineffects.desktop
	kcmkwin/kwincompositing/kwincompositing.desktop
	kcmkwin/kwindecoration/kwindecoration.desktop
	kcmkwin/kwindesktop/desktop.desktop
	kcmkwin/kwinoptions/kwinactions.desktop
	kcmkwin/kwinoptions/kwinadvanced.desktop
	kcmkwin/kwinoptions/kwinfocus.desktop
	kcmkwin/kwinoptions/kwinmoving.desktop
	kcmkwin/kwinoptions/kwinoptions.desktop
	kcmkwin/kwinrules/kwinrules.desktop
	kcmkwin/kwinscreenedges/kwinscreenedges.desktop
	kcmkwin/kwintabbox/kwintabbox.desktop
	scripts/enforcedeco/metadata.desktop
2014-12-10 13:52:27 +01:00
Martin Gräßlin
a2393a5c84 [kcmkwin/screenedges] Drop check whether Compositing is enabled
Reading the configured value might be wrong, so it's better to not
check at all.

REVIEW: 121312
2014-12-10 13:49:07 +01:00
Pino Toscano
04305bf1e0 fixuifiles 2014-12-10 12:05:43 +01:00
Martin Gräßlin
d6014927e7 Cleanup electric border handling in leaveMoveResize
If a Client closed during move/resize with the outline being shown
for quick tile/maximize area, the outline never got removed.

BUG: 341673
FIXED-IN: 5.1.2
REVIEW: 121410
2014-12-10 07:45:39 +01:00
Fredrik Höglund
91c087e9da glx: Port GlxBackend::initBuffer() to xcb 2014-12-09 22:18:49 +01:00
Fredrik Höglund
2b8dba8429 glx: Improve the fbconfig debug output
Provide more information than just the depth and the visual ID.
2014-12-09 22:18:47 +01:00
Fredrik Höglund
ca777f38f1 glx: Do additional sorting of fbconfigs
Prefer configurations with smaller depth/stencil sizes.
2014-12-09 17:36:21 +01:00
Fredrik Höglund
fb4e733bcc glx: Don't allocate storage for mipmaps in TFP textures
We never use a mipmap filter when we render windows.
2014-12-09 17:35:50 +01:00
Martin Gräßlin
2fa0f2fecc [kcmkwin/deco] Drop outdated source and ui files
All the ui components no longer used in the decoration KCM.
2014-12-09 16:14:03 +01:00
Martin Gräßlin
d5233a6b6f [kcmkwin/deco] Bring back a decoration buttons configuration interface
The decoration button configuration interface is merged into the QML
part using two list views (left buttons, right buttons) and a grid
view for all the available buttons.
2014-12-09 16:07:27 +01:00
Martin Gräßlin
c8d814c11d Add ContextHelp button to default right buttons 2014-12-09 16:05:19 +01:00
Martin Gräßlin
d319a286e7 Improving printing of supportInformation
Custom conversion to QString for a few property types.
2014-12-08 16:46:54 +01:00
Martin Gräßlin
2ef0973a87 Declare metatype for KWin::OpenGLPlatformInterface
Fixes warning when invoking supportInformation.
2014-12-08 16:29:23 +01:00
Martin Gräßlin
468b5a32ff Add supportInformation for new Decorations
Following information is included:
* selected plugin
* selected theme
* all properties from KDecoration2::DecorationSettings
2014-12-08 16:14:05 +01:00
Pino Toscano
3f346a23ba fixuifiles 2014-12-08 11:50:20 +01:00
Martin Gräßlin
b6bb4e2548 Register metatype Options::WindowOperation
Fixes all actions not working from user actions menu.
2014-12-08 10:08:49 +01:00
Jan Grulich
bc2a138d92 Fix build due to undefined reference
effectModelTest had undefined reference to KWin:WindowPaintData::setProjectionMatrix() for me
2014-12-07 22:01:15 +01:00
Shayantan Pal
745bb18d7b Fix warnings in kwin/effects/glide/glide_config.ui
Change done as part of Google Code In.

REVIEW: 121353
2014-12-05 20:07:37 +01:00
Martin Gräßlin
d26b5a1739 [aurorae] Fix BorderSize for SVG based themes 2014-12-05 17:36:25 +01:00
Martin Gräßlin
f6a01c134e [aurorae] Fix BorderSize in Plastik 2014-12-05 17:19:46 +01:00
Martin Gräßlin
65fd014fdb [aurorae] Fix setting closeOnDoubleClickOnMenuButton
It's now a setting provided by DecorationSettings and doesn't need
to be configured per theme.
2014-12-05 16:43:13 +01:00
Martin Gräßlin
521627396f [kcmkwin/deco] Reconfigure deco after applying changes
Required hooks also added to KWin core and Aurorae.
2014-12-05 15:58:05 +01:00
Martin Gräßlin
798b1ad860 [aurorae] Fix loading of theme's config values 2014-12-05 14:53:55 +01:00
Daniel Pastushchak
0d997b1093 Introduce categorized logging for kwin core
Done by Daniel Pastushchak for KDE during GCI-2014.
2014-12-05 14:27:15 +01:00
Martin Gräßlin
7da6d3a41e [kcmkwin/deco] Add configuration for decoration plugin/themes
This brings back the configuration for decoration plugins. As a change
to the old variant the configure button is moved into the list view
together with the preview. It is enabled/disabled depending on data
provided by the DecorationModel. For a plugin the DecorationModel
queries for a boolean "kcmodule" key in the metadata. For a theme it
invokes the slot hasConfiguration with the theme name which returns
whether the theme provides configuration.

The actual opening of the configuration is triggered from the
PreviewBridge, which uses the existing KPluginFactory to load the
KCModule. The decoration plugin must provide the keyword "kcmodule"
for it.

So far Aurorae is adjusted and provides configuration for the Plastik
decoration. The interaction with the configuration module works, but
the configuration itself for Plastik seems to be currently broken.
2014-12-05 13:44:16 +01:00
Martin Gräßlin
2034e7e875 [kcmkwin/deco] Bring back KNewStuff support
KNewStuff is no longer hard-coded to Aurorae themes. Instead the
availability of KNewStuff is derived from the available plugin
metadata. If the section org.kde.kdecoration2 contains a key
"KNewStuff" it's value is interpreted as the knsrc config file name.
If there is at least one plugin with such a key KNS gets enabled.

If there are multiple plugins providing KNS support the download
button is turned into a button with a connected menu and each menu
entry points to one of the available resources. Of course this is
not optimal, but KNS doesn't allow the combining of multiple config
files.
2014-12-05 10:15:41 +01:00
Fredrik Höglund
f8d1a0868a Test the generated shaders on startup
Compile and bind each shader in turn and render a textured quad.
2014-12-04 19:19:30 +01:00
Fredrik Höglund
99f9d613e9 Change the default shader in SceneOpenGL2
Push a shader that just does texture lookups. This shader is the one
most likely to be used.
2014-12-04 19:19:30 +01:00
Fredrik Höglund
4394219cd6 cube: Always set the shader in WindowPaintData
The cube effect was relying on paintWindow() using the generic shader
without explicitly telling it to do so.  This makes the cube effect
work with dynamic shaders.
2014-12-04 19:19:30 +01:00
Fredrik Höglund
ef5b1c7f59 cube: Remove some checks that are always true
These are leftovers from the OpenGL 1.x backend.
2014-12-04 19:19:30 +01:00
Fredrik Höglund
e30b1212b6 screenshot: Use the new matrix API
This makes the screenshot effect work when the scene is using
dynamically generated shaders.
2014-12-04 19:19:30 +01:00
Fredrik Höglund
d2cb9f9bf6 Add a model-view and a projection matrix in WindowPaintData
Effects currently modify the matrices by reading back the uniform
values from the shader they assume will be used to paint the window,
set new values for the uniforms, call paintWindow(), and then restore
the uniforms to their previous values.

This is both slow and unreliable, and will not work with dynamically
generated shaders.

This patch solves the problem by putting the matrices in
WindowPaintData and making it the responsibility of the paintWindow()
implementation to set the uniforms.
2014-12-04 19:19:30 +01:00
Fredrik Höglund
0d2b2bc8b3 Use the new ShaderManager API in SceneOpenGL2 2014-12-04 19:19:29 +01:00
Fredrik Höglund
05c309da67 Add a ModelViewProjectionMatrix uniform 2014-12-04 19:19:29 +01:00
Fredrik Höglund
afcc8337de Add support for generating shaders at runtime
This adds new API in ShaderManager that makes it possible to request a
shader based on a set of traits. ShaderManager generates these shaders
on demand and caches them in a hash table.
2014-12-04 19:19:22 +01:00
Martin Gräßlin
623ac3faa3 [kcmkwin/deco] Fix defaults for border size and close window double click 2014-12-04 17:41:57 +01:00
Martin Gräßlin
6b7fd5b9bc [kcmkwin/deco] Only specify QStringLiteral("Normal") once 2014-12-04 17:41:18 +01:00
Martin Gräßlin
dc9437e59a [kcmkwin/deco] Add a filter and a QSortFilterProxyModel 2014-12-04 17:35:08 +01:00
Martin Gräßlin
39f9581d4f Bring back configuration options for Decorations
* Border Sizes
* Close menu double click

Both are added to the Settings and exposed in the decoration kcm.
As it started to no longer scale the kcm uses a ui file.

Still missing:
* buttons
* custom decoration configuration
* GHNS
* search
2014-12-04 16:28:06 +01:00
Martin Gräßlin
b5a626c2d7 Introduce a texture cache for DecorationShadows in SceneOpenGLShadow
The DecorationShadow supports the concept of sharing shadows between
multiple Decorations and this is supported by our Shadow class. But
still the created GLTextures were not shared.

This change introduces a sharing mechanismn for all GLTextures created
for a DecorationShadow. Thus if two decorations share the same
DecorationShadow they will also share the same GLTexture.
2014-12-04 10:36:19 +01:00
Fredrik Höglund
90dfb3ca8b Grow the persistently mapped VBO as needed
Reallocate the buffer when the average frame size is greater than half
the size of the buffer.
2014-12-03 19:50:59 +01:00
Fredrik Höglund
4b3fabbfc9 Add support for GL_ARB_buffer_storage
Use a persistently mapped buffer object for the vertex streaming buffer
when GL_ARB_buffer_storage is supported.
2014-12-03 19:50:59 +01:00
Martin Gräßlin
ca27bc09c5 [aurorae] Use QQuickRenderControl if compiled against Qt 5.4
QQuickRenderControl brings a few advantages for the usage in Aurorae:
* can create an offscreen window
* eliminate the need for mutex as we control the rendering
* control the tear down of the QML scene (no more crashes in Qt)

In future we can further improve this, by sharing the context, so
that we can use the FBO texture directly. But this first needs
some more work in KWin core.

As we don't hard depend on Qt 5.4 yet it's using ifdefs. Once we have
Qt 5.4 the old code will be removed.
2014-12-03 16:22:15 +01:00
Martin Gräßlin
f78ff8eaa5 Do not emit DecorationSettings::alphaChannelSupportedChanged on tear down
The Compositor is destroyed before the Client and Decorations are
destroyed on shutdown. This meant the Decorations reacted needlessly
on the alpha channel supported. E.g. Aurorae recreated the Decoration
and most likely crashed in Qt.

With this change the signal gets disconnected and the Decorations
just don't do anything.
2014-12-03 13:10:35 +01:00
Martin Gräßlin
c815775a0e [aurorae] Better specify y value of titleBar
It uses the borderBottom now to have at least an as large resize
border as at the bottom. This still needs improvement.
2014-12-03 12:09:24 +01:00
Martin Gräßlin
13dcafab42 Delay decoration repaint to end of event cycle on create
When a Client gets created the ::createDecoration method is invoked
from ::manage which is called before the Client is added to the
ClientList in Workspace. Thus processing the update fails in the
DecorationBridge as it cannot find the Client.

By delaying to the end of the event cycle we can be sure that the
Client is completely managed and that the scheduled repaint doesn't
fail.

This fixes the missing repaint when a Client starts as inactive.
2014-12-03 08:28:41 +01:00
Martin Gräßlin
ac664d8455 Delete libkdecorations
Not used anywhere in kwin any more.
2014-12-02 15:29:21 +01:00
Martin Gräßlin
63695e6fc3 Remove unused imports 2014-12-02 15:26:42 +01:00
Martin Gräßlin
0646c58fe2 [kcmkwin/kwindecoration] Exclude buttons.cpp and configdialog.cpp from build
With that we should not have anything pulling in kdecoration.h
2014-12-02 15:21:15 +01:00
Martin Gräßlin
d81e5697bf Ensure that the X11Renderer doesn't render after reparente to Deleted 2014-12-02 14:13:28 +01:00