Commit Graph

12715 Commits (607b3f0bc9163d5964a746cb6e55fcfcb188614d)

Author SHA1 Message Date
Martin Gräßlin ca1354e8af [effects/blur] Disable cached blur for deleted windows
This is a kind of workaround for the flicker of fading out windows.
When a window is faded out it is a deleted and can by that be used
as a sufficient solution to work around the problem.

BUG: 307112
FIXED-IN: 5.2.0
REVIEW: 121909
2015-01-08 09:07:21 +01:00
Thomas Lübking f61d3ade84 shortcut rendering textures for empty an rect
it makes no sense and there's a good chance
that in this case m_vbo is still nullptr and
it will not be created since d->m_cachedSize
will be an empty size as well
-> nullptr access -> crash

BUG: 337090
FIXED-IN: 5.2
2015-01-08 00:29:04 +01:00
Thomas Lübking 8de4e4d84e determine screenArea by geom_restore in checkWSP
checkWorkspacePosition() operates on geom_restore
to preserve window positions on temporary
(without moving/resizing the window by the user)
screen layout/geometry changes.

Therefore, in the multiscreen case the
screenbound check must be done towards
the screen the window *would* be on
according to geom_restore, not the one
it is right now.

CCBUG: 161325
REVIEW: 121320
FIXED-IN: 5.2
2015-01-08 00:09:11 +01:00
Thomas Lübking 38eb260478 Sync GetAddrInfo thread cancel in destructor
QFutureWatcher::cancel() might be still processed
(it's another thread) while the inherited ~QObject()
deletes the FutureWatcher

BUG: 327287
REVIEW: 121225
2015-01-08 00:06:47 +01:00
Thomas Lübking f3a1d1bd3d updateXTime for kde_net_wm_user_creation_time
explicitly

CCBUG: 340994
CCBUG: 337798
2015-01-08 00:06:35 +01:00
l10n daemon script debe14d04e SVN_SILENT made messages (.desktop file) 2015-01-06 10:55:59 +00:00
Fredrik Höglund 38f1945c6c Use swap events to drive repaints
Don't start the composite timer at the end of performPaint() when a
buffer swap is pending and vsync is enabled.  Instead set
m_composeAtSwapCompletion to true so performPaint() gets called again
as soon as the swap completes.

This makes the repaint cycle look like this:

    scene->paint()
    SwapBuffers()
    Process events
          ·
          ·
    Swap completes
    Fetch and reset damage (if applicable)
    scene->paint()
    SwapBuffers()
    Process events
          ·
          ·
    Swap completes
    ...

This results in a noticeable improvement in animation smoothness with
drivers that support GLX_INTEL_swap_event, since we're now able to
consistently render at the monitor refresh rate.
2015-01-06 07:51:50 +01:00
Hugo Pereira Da Costa 02d0a5bb7d Also send a QHoverEvent to the decoration when MotionNotify event occurs in input window, in order to get the right cursor shape and resize mode from extended borders
REVIEW: 121556
2015-01-03 18:02:08 +01:00
Kai Uwe Broulik 2153174dc0 Add OnScreenDisplayLayer which is placed even ontop of the active fullscreen window
It is to be used for volume change feedback and similar confirmation popups

REVIEW: 121300
2015-01-02 12:11:54 +01:00
Fredrik Höglund 2cebf523aa Store shadows in GL_R8 textures when possible 2014-12-30 21:22:04 +01:00
Fredrik Höglund 35110d72c6 Avoid converting images in GLTexture when possible
Don't convert the QImage when the image format can be specified as
a format/type combination to glTex(Sub)Image().
2014-12-30 21:22:00 +01:00
Fredrik Höglund 7fd4cf0227 Add GLTexture::setSwizzle()
This method allows the caller to specify which component of a texel
is placed in each respective component of the vector returned to the
shader.
2014-12-30 21:19:49 +01:00
Fredrik Höglund 4d738b86ea Add an internalFormat parameter to the GLTexture ctor
This parameter is ignored on GLES.
2014-12-30 21:19:49 +01:00
Lukáš Tinkl 20a1cb2e33 extract the strings also from QML 2014-12-16 21:02:27 +01:00
Martin Gräßlin 233730e8bf [aurorae] Send MouseButtonDblClicked to the QQuickWindow
Needed to make MouseArea on MenuButton accept double click events.
2014-12-16 08:44:26 +01:00
Martin Gräßlin e8a52bbe65 [aurorae] Use mousePressAndHoldInterval from StyleHints 2014-12-16 08:27:11 +01:00
Fredrik Höglund 74b65fcd00 Add support for GL_ARB_texture_storage
Use glTexStorage2D() to allocate storage for the texture. The structure
of the resulting texture becomes immutable and the texture is always
mipmap complete.  This allows the driver to skip the mipmap consistency
checks when validating the texture at draw time.
2014-12-14 18:33:52 +01:00
Fredrik Höglund 450be6a378 Add a levels parameter to the GLTexture ctor
Prior to this commit we didn't know if mipmaps were going to be used
when we created the GL texture, which meant that we couldn't tell the
driver whether to allocate storage for mipmaps or not.

This resulted in one of two things happening depending on the driver;
either it would allocate storage for mipmaps that in most cases would
never be used, or it wouldn't and would later be forced to reallocate
the texture when mipmaps were added.

By adding this parameter we can now explicitly tell the driver how
many mipmap levels will be used.

The parameter is only added to the non-image constructor for now. The
image constructor is changed to only allocate a single level, which
matches how textures created from images are used in kwin. This may
need to be revisited in the future.
2014-12-14 18:33:52 +01:00
Fredrik Höglund ccf1bad426 Make mipmap filters other than GL_LINEAR_MIPMAP_LINEAR work
GLTexture would set both the minification and magnification filters
to GL_NEAREST if the texture filter was set to any mipmap filter other
than GL_LINEAR_MIPMAP_LINEAR.
2014-12-14 18:33:52 +01:00
Fredrik Höglund aefadfaa6a Don't generate mipmaps in GLTexture::bind()
This code is broken in a number of different ways; firstly by assuming
that the mipmaps need to be regenerated when the texture filter has
changed. Secondly by preventing mipmaps from being specified by other
means.

This commit removes the code from bind() and adds a generateMipmaps()
method instead.
2014-12-14 18:33:52 +01:00
Fredrik Höglund 5ac159d47e Fix cross-fading
We have to bind a modulation shader when we're cross-fading.

BUG: 341715
2014-12-14 18:33:52 +01:00
Martin Gräßlin 060b310082 [aurorae] Do not update shadow from ::paint
Paint is in the middle of the compositor rendering loop. Updating
the shadow at that point breaks KWin. Thus we delay the update to
the next event cycle. Obviously it would be even better to only
update the shadow if it changed, but that might be too expensive.
2014-12-12 22:12:11 +01:00
Hugo Pereira Da Costa 97de9856ea Fixed data type for _KDE_NET_WM_BLUR_BEHIND_REGION
REVIEW: 121459
2014-12-12 17:02:38 +01:00
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