Commit Graph

12715 Commits (607b3f0bc9163d5964a746cb6e55fcfcb188614d)

Author SHA1 Message Date
Nick Shaforostoff 607b3f0bc9 small string optimizations 2015-01-24 02:13:45 +00:00
Thomas Lübking 923d2894af Merge branch 'Plasma/5.2'
Conflicts:
	kcmkwin/kwincompositing/kcmkwineffects.desktop
2015-01-22 01:51:20 +01:00
Thomas Lübking ce2fa727e8 Overhaul of deco kcm
- align with system palette
- base color for buttons and preview individually
  to create a visual gap (make them more standalone)
- downsized button config buttons to match up w/ preview
  appearance (and because it was simply to huge for a desktop thing)
- upsized preview to preferably show two elements at once
  (current + 2*1/2context)
- made the titlebar a visible visual element
- label the titlebar "Titlebar"
- move the (altered) hint to the drag-from area
- hint draggability with a pointing hand cursor
- less hardcoded values
- brief animations on button adding/removing

BUG: 337544
REVIEW: 122064
2015-01-22 01:31:31 +01:00
l10n daemon script 56b830202e SVN_SILENT made messages (.desktop file) 2015-01-21 09:49:18 +00:00
Martin Gräßlin 7e4307b263 Use new KWindowSystem::icon overload taking a NETWinInfo*
Removes roundtrips to the X-server when reading the icons.

Requires kwindowsystem.git as of 6f941a5 (version 5.7).

CCBUG: 329979
2015-01-21 10:19:35 +01:00
l10n daemon script 2734f709ad SVN_SILENT made messages (.desktop file) 2015-01-21 08:55:56 +00:00
Martin Gräßlin 14659a9907 Split Client::checkActivities into two parts
REVIEW: 122087
CCBUG: 329979
2015-01-21 09:25:18 +01:00
Martin Gräßlin 5abccbec7d Split Client::readTransient into two parts 2015-01-21 09:25:15 +01:00
Martin Gräßlin 584bdbce71 Split Client::updateFirstInTabBox into two parts 2015-01-21 09:25:15 +01:00
Martin Gräßlin 327dd406e6 Split Client::updateColorScheme into two parts 2015-01-21 09:25:15 +01:00
Martin Gräßlin a55c7ba0d5 Split Client::updateShowOnScreenEdge into two parts 2015-01-21 09:25:15 +01:00
Martin Gräßlin 24688f8dae Split Client::detectGtkFrameExtents into two parts 2015-01-21 09:25:14 +01:00
Martin Gräßlin 770c723c61 Split Toplevel::getSkipCloseAnimation into two parts 2015-01-21 09:25:14 +01:00
Martin Gräßlin b27d3d20e7 Split Toplevel::getWmClientLeader in two parts
First part (fetch) just creates the Xcb::Property while the
second part (read) reads the property. This allows to better
schedule the commands in Client::manage to reduce the number of
roundtrips. This reduces the time spent for fetching the client
leader property by about half a millisecond on my system.
2015-01-21 09:25:14 +01:00
Martin Gräßlin de573edd1d Merge branch 'Plasma/5.2' 2015-01-21 09:25:00 +01:00
Martin Gräßlin 6e67badfab Handle case that XCURSOR_SIZE environment variable is not set
In a default startup startkde does not set XCURSOR_SIZE environment
variable. Only XCURSOR_THEME is set. The size should be DPI dependent.
With this patch Cursor is able to handle this situation and does not
fall back to loading the config from file. Logic is taken from
KHintsSettings in frameworkintegration which in turn is from
KApplication.

REVIEW: 122139
2015-01-21 09:24:01 +01:00
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
2015-01-20 15:25:16 +01:00
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
2015-01-19 15:30:06 +01:00
Martin Gräßlin 3ae6d420af Merge branch 'Plasma/5.2' 2015-01-19 09:31:06 +01:00
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
2015-01-19 09:30:01 +01:00
Tobias C. Berner ef3f0f753b Add <array> include where needed, to make it build on FreeBSD.
REVIEW: 122090
2015-01-17 15:22:11 +02:00
Elias Probst d00d3ea83c
Deprecate kservice_desktop_to_json(), use kcoreaddons_desktop_to_json() instead.
Get rid of deprecation warnings in effects KCM.

REVIEW: 121957
2015-01-16 22:52:26 +01:00
Martin Gräßlin 5c6b89876a Merge branch 'Plasma/5.2' 2015-01-16 12:50:42 +01:00
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
2015-01-16 12:28:44 +01:00
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
2015-01-16 07:58:32 +01:00
Martin Gräßlin f643b71902 Use NET::WM2InitialMappingState instead of XWMHints
One roundtrip to X Server during Client::manage removed.

REVIEW: 122068
2015-01-15 13:22:02 +01:00
l10n daemon script bf7bf73464 SVN_SILENT made messages (.desktop file) 2015-01-15 09:02:26 +00:00
Martin Gräßlin a22ea244db Merge branch 'Plasma/5.2' 2015-01-14 13:56:15 +01:00
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.
2015-01-14 08:59:18 +01:00
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
2015-01-14 08:45:22 +01:00
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
2015-01-14 08:33:33 +01:00
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
2015-01-14 08:25:20 +01:00
l10n daemon script d173ff7412 SVN_SILENT made messages (.desktop file) 2015-01-13 12:47:17 +00:00
Jonathan Riddell 91fc71b243 Update version number for 5.2.90 2015-01-13 11:18:53 +01:00
Martin Gräßlin 32cea73843 Merge branch 'Plasma/5.2' 2015-01-13 08:46:54 +01:00
Martin Gräßlin 5e47d41f7b [effects/startupfeedback] Use dedicated shader for bouncing cursor
BUG: 342203
REVIEW: 121941
2015-01-13 08:46:11 +01:00
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
2015-01-12 21:10:38 +02:00
Martin Gräßlin e609429e9b Merge branch 'Plasma/5.2' 2015-01-12 14:32:13 +01:00
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
2015-01-12 14:30:30 +01:00
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
2015-01-12 14:30:02 +01:00
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
2015-01-12 11:43:29 +01:00
Martin Gräßlin 8f1975b906 Merge branch 'Plasma/5.2' 2015-01-12 08:55:11 +01:00
Martin Gräßlin 6f0e4b2d5a [glxbackend] Add default values for member variables 2015-01-12 08:54:25 +01:00
Martin Gräßlin 6b0ae95b80 Increase so-version for kwineffect libraries
Known ABI changes in at least GLTexture, probably more places.
2015-01-09 16:03:23 +01:00
Martin Gräßlin 4f80a3d3a8 Increase so-version for kwineffect libraries
Known ABI changes in at least GLTexture, probably more places.
2015-01-09 14:13:02 +01:00
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
2015-01-08 14:20:10 +01:00
David Edmundson 9fe660ac5c Notify when the client palette changes and proxy this to kdecoration
BUG: 341921
REVIEW: 121917
2015-01-08 13:16:20 +01:00
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
2015-01-08 12:50:05 +01:00
Jonathan Riddell 3f6524da8b Update version number for 5.1.95 2015-01-08 11:43:14 +01:00
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
2015-01-08 09:07:21 +01:00