12799 Commits (c59f911487a7325a1aaf29c9003990c84ff58ba3)
 

Author SHA1 Message Date
Martin Gräßlin 4a260c6f42 [kcmkwin/tabbox] Improve locating the services used in preview mode
Instead of hard coding the desktop files, let's try to use what the
user actually uses.
 * Browser mapped from text/html mime type
 * File manager mapped from inode/directory mime type
 * Email client mapped from message/rfc822 mime type

Only systemsettings is "hard coded" as there is no mime type to map.

The thumbnails are not changed, though. But they are so small that
it's hardly recognizable anyway. For future it could be considered to
map against appdata to get a better screenshot.

BUG: 310622
REVIEW: 122170
10 years ago
Martin Gräßlin 198ce47fec [scene-xrender] Trigger a full decoration repaint when sizes are dirty
When the pixmaps are re-created we should ensure that they are filled
with proper content.

BUG: 342980
REVIEW: 122148
10 years ago
Martin Gräßlin 3ae6d420af Merge branch 'Plasma/5.2' 10 years ago
Martin Gräßlin 2910645df0 [scene-xrender] Implement support for DecorationShadow
The DecorationShadow on XRender is implemented by creating the
required QPixmaps in ::prepareBackend. That way the rendering
infrastructure can be shared with the window based shadows.

BUG: 342758
REVIEW: 122009
10 years ago
Tobias C. Berner ef3f0f753b Add <array> include where needed, to make it build on FreeBSD.
REVIEW: 122090
10 years ago
Elias Probst d00d3ea83c
Deprecate kservice_desktop_to_json(), use kcoreaddons_desktop_to_json() instead.
Get rid of deprecation warnings in effects KCM.

REVIEW: 121957
10 years ago
Martin Gräßlin 5c6b89876a Merge branch 'Plasma/5.2' 10 years ago
Martin Gräßlin f7d7c246b8 Slightly optimize Workspace::xStackingOrder
Callgrind analysis showed that this method has room for improvement.
The bottle neck is mapping the Unmanaged against the list of windows
retreived from xcb_query_tree. The number of windows in that list is
rather large (>1000), which turns the loop into an expensive path.
Workspace::findUnmanaged seems to be too expensive for that due to the
overhead of using a functor and multiple method calls. The Inl. cost
before the optimization for checking ~55,000 windows is 2.46.

The change uses a good old const-iterator based loop over the unmanaged
list to check for the window. This reduces the Incl. cost for checking
~55,000 windows to 0.28.

REVIEW: 122067
10 years ago
Martin Gräßlin 60ebdbe352 Improve reading the color scheme in Client
Only emit paletteChanged signal and repaint decoration if the palette
actually changed. Even more important: check for path.isEmpty() instead
of path.isNull(). ::isNull() returns false for "" causing a costly
creation for default color scheme.

REVIEW: 122083
10 years ago
Martin Gräßlin f643b71902 Use NET::WM2InitialMappingState instead of XWMHints
One roundtrip to X Server during Client::manage removed.

REVIEW: 122068
10 years ago
l10n daemon script bf7bf73464 SVN_SILENT made messages (.desktop file) 10 years ago
Martin Gräßlin a22ea244db Merge branch 'Plasma/5.2' 10 years ago
Martin Gräßlin c565017720 [aurorae] Bring back configuration for button sizes
The config option got disabled during porting to kdecoration2.
This change re-adds the config option and adds a small config
interface for SVG based themes.
10 years ago
Martin Gräßlin 7dc2baf74d Update cursor theme when it changes at runtime
Connecting to the DBus signal emitted on KGlobalAccels by the
cursor kcm and forcing a reload of all cursors. For runtime
config change we need to take the config value and need to ignore
the now outdated environment variables.

REVIEW: 121928
BUG: 325763
FIXED-IN: 5.2.0
10 years ago
Martin Gräßlin ab4b1ba25a First try getting cursor theme from environment variable
If XCURSOR_THEME and XCURSOR_SIZE are set they are preferred over
reading the values from kcminputrc.

REVIEW: 121923
BUG: 334954
FIXED-IN: 5.2.0
10 years ago
Martin Gräßlin 0577dee236 [kcmkwin/options] Ensure rich text is recognized as rich text
The heuristic checks whether there is something which looks like a
tag before the first line break. So let's use a <br> instead of a \n
for the first line break.

BUG: 315282
FIXED-IN: 5.3.0
REVIEW: 122032
10 years ago
l10n daemon script d173ff7412 SVN_SILENT made messages (.desktop file) 10 years ago
Jonathan Riddell 91fc71b243 Update version number for 5.2.90 10 years ago
Martin Gräßlin 32cea73843 Merge branch 'Plasma/5.2' 10 years ago
Martin Gräßlin 5e47d41f7b [effects/startupfeedback] Use dedicated shader for bouncing cursor
BUG: 342203
REVIEW: 121941
10 years ago
Lasse Liehu 4963bf3d44 Fix QTranslator installation for Qt translations
The translator instance was uninstalled right away after installation
because it was destroyed when returning from the function.

REVIEW: 121977
10 years ago
Martin Gräßlin e609429e9b Merge branch 'Plasma/5.2' 10 years ago
Martin Gräßlin c4fb3cd55d [kdecoration] Try falling back to default plugin and Aurorae
If the configured decoration plugin fails to load, we try to load
the default decoration plugin. If that also fails to load, we try
to load Aurorae, which is shipped with KWin, so the chances are
higher that it is available.

Also the checks in Aurorae are improved to fall back to the Plastik
theme if the selected SVG theme is not available.

BUG: 341014
FIXED-IN: 5.2.0
REVIEW: 121859
10 years ago
Martin Gräßlin fcd8cf3ada [glxbackend] Introduce env variable KWIN_USE_INTEL_SWAP_EVENT
The feature is pretty much untested as it depends on Qt 5.4 and this
was not a requirement during the development of 5.2. On the other hand
regressions in this feature are very severe as it can freeze the screen
and by that render the system unusable.

This change disables the feature by default. To enable it use the
environment variable KWIN_USE_INTEL_SWAP_EVENT=1.

CCBUG: 342582
REVIEW: 122008
10 years ago
Martin Gräßlin 9fb27bc0ba [decoration] Use client's depth in X11Renderer for put_image
If the Client uses ARGB the depth is not 24, thus we should use
the actual depth from the Client.

BUG: 342757
10 years ago
Martin Gräßlin 8f1975b906 Merge branch 'Plasma/5.2' 10 years ago
Martin Gräßlin 6f0e4b2d5a [glxbackend] Add default values for member variables 10 years ago
Martin Gräßlin 6b0ae95b80 Increase so-version for kwineffect libraries
Known ABI changes in at least GLTexture, probably more places.
10 years ago
Martin Gräßlin 4f80a3d3a8 Increase so-version for kwineffect libraries
Known ABI changes in at least GLTexture, probably more places.
10 years ago
Fredrik Höglund 301a996563 glx: Fix the swap event filter for DRI3 drivers
The drawable field is set to the X drawable ID when the swap event is
synthesized by DRI2WireToEvent(), and the GLX drawable ID when the
event is received over the wire. The latter being the case with DRI3.

__glXWireToEvent() fixes this for Xlib clients by changing the field
to the X drawable ID. This doesn't work for xcb clients however,
so we have to expect the field to be set to either the X or the GLX
drawable ID.

BUG: 342582
10 years ago
David Edmundson 9fe660ac5c Notify when the client palette changes and proxy this to kdecoration
BUG: 341921
REVIEW: 121917
10 years ago
Martin Gräßlin 38849215d5 Recursion check while decoration updates the borders
Mostly a safety check, but fixes a crash with borderless maximized
windows. If that option is set we also do not notify the decoration
at all, as the deco will be destroyed anyway.

BUG: 341675
REVIEW: 121858
10 years ago
Jonathan Riddell 3f6524da8b Update version number for 5.1.95 10 years ago
Martin Gräßlin c69dec566c Use layerRepaint with visibleRect from Client::map
When map is called we need to repaint the complete area including
decoration shadows (e.g. might be called after unminimize). Therefore
we use a layer repaint with the visibleRect.

BUG: 342085
REVIEW: 121891
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
Thomas Lübking f3a1d1bd3d updateXTime for kde_net_wm_user_creation_time
explicitly

CCBUG: 340994
CCBUG: 337798
10 years ago
l10n daemon script debe14d04e SVN_SILENT made messages (.desktop file) 10 years ago
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.
10 years ago
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
10 years ago
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
10 years ago
Fredrik Höglund 2cebf523aa Store shadows in GL_R8 textures when possible 10 years ago
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().
10 years ago
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.
10 years ago
Fredrik Höglund 4d738b86ea Add an internalFormat parameter to the GLTexture ctor
This parameter is ignored on GLES.
10 years ago
Lukáš Tinkl 20a1cb2e33 extract the strings also from QML 10 years ago
Martin Gräßlin 233730e8bf [aurorae] Send MouseButtonDblClicked to the QQuickWindow
Needed to make MouseArea on MenuButton accept double click events.
10 years ago
Martin Gräßlin e8a52bbe65 [aurorae] Use mousePressAndHoldInterval from StyleHints 10 years ago