Commit graph

12200 commits

Author SHA1 Message Date
Martin Gräßlin
fd0fd82ad6 Use NETWM to get updates on blocking compositing
Adds NET::WM2BlockCompositing to the Client's properties which allows to
read the state from the NETWinInfo object and get updates without having
to resolve the atom ourselve.

REVIEW: 117561
2014-04-14 15:34:39 +02:00
Martin Gräßlin
c63e3533f4 Get Toplevel::resourceName() and ::resourceClass() from NETWinInfo
It's provided by the NETWinInfo, no need to keep an own implementation.
To keep compatibility with existing KWin code using the window class or
resource it's always converted to lower.

In addition a notify signal Toplevel::windowClassChanged is added and
emitted from the event handler whenever the WM2WindowClass property is
set.

REVIEW: 117496
2014-04-14 08:46:38 +02:00
Martin Gräßlin
b8cc10ffab [kwinglutils] Improve cleanup handling
* add static cleanup handlers to GLTexturePrivate and GLRenderTarget
* revert the runtime resolved features (e.g. RenderTargets are not
  supported once we run the cleanup code)
* clear the extension lists
* reset the version variables

REVIEW: 117484
2014-04-14 08:33:19 +02:00
Martin Gräßlin
c837ffddf4 Add a cleanup() method to GLPlatform
Adds a cleanup() method to GLPLatform which deletes the static instance.
It gets invoked from cleanupGL() in kwinglutils on tear-down of the
OpenGL backend. Thus the backend doesn't leave incorrect GL info around.

E.g. if KWin starts with llvmpipe the recommended compositor is XRender.
So the backend and the platform is created. Now KWin starts the XRender
Compositor and the GLPlatform is still valid and when trying to load the
Blur or Contrast effect this will succeed as the GLPlatform data would
allow it. But on first try to use the Effect it will fail due to no
valid OpenGL context and even crash.

REVIEW: 117480
2014-04-14 08:31:39 +02:00
l10n daemon script
09d421fbb4 SVN_SILENT made messages (.desktop file) 2014-04-14 05:00:20 +00:00
l10n daemon script
d117d38efa SVN_SILENT made messages (.desktop file) 2014-04-13 05:18:57 +00:00
Marco Martin
7380379fcf we don't have different widgets for vd anymore 2014-04-11 16:46:28 +02:00
Martin Gräßlin
651ea9f374 [blur|contrast] Explicitly check for openglCompositing in ::supported()
Ensures that the further checks are not performed on XRender compositing.

REVIEW: 117497
2014-04-11 08:36:43 +02:00
Martin Gräßlin
1c0d0211ca Add const method variants to Xcb::Wrapper
Adding a const variant for ::data() to remove an unexpected copy.
To complete also the bool cast operator and isNull get a const
variant.

REVIEW: 117469
2014-04-11 07:36:18 +02:00
Martin Gräßlin
acdff6ea52 Drop static getStringProperty wrappers in Toplevel
The methods Toplevel::staticWmCommand and Toplevel::staticSessionId were
both only used from one method and just wrapping an invocation to
getStringProperty.

REVIEW: 117474
2014-04-10 18:10:58 +02:00
Martin Gräßlin
f1f6d6eea8 Get windowRole from NETWinInfo instead doing it ourself
NETWinInfo provides windowRole if NET::WM2WindowRole is added to the
properties2. Thus KWin doesn't need to monitor and fetch itself, but
can just wrap the data provided by NETWinInfo.

In addition a signal is added to Toplevel whenever the window role
changes.

REVIEW: 117470
2014-04-10 15:57:00 +02:00
Martin Gräßlin
cf498cc14b Use KWindowInfo::clientMachine in ClientMachine::resolve
Let's use the available API instead of duplicating code.

Nice side effect: client_machine.cpp doesn't include utils.h any more
which simplifies the unit test.

REVIEW: 117473
2014-04-10 15:55:17 +02:00
Martin Gräßlin
4a79cec8a6 Drop hacks and default rule for XV
Apparently it's not about mplayer but about XV [1], not really a relevant
application nowadays which would be important enough for having hacks.

REVIEW: 117479

[1] https://en.wikipedia.org/wiki/Xv
2014-04-10 15:04:19 +02:00
Martin Gräßlin
6828f33548 Remove hack for "mozilla"
It's dead, since 2006 it's "SeaMonkey" and it has a proper window class:
WM_CLASS(STRING) = "Navigator", "Seamonkey"

(Yes, I installed it. No, my distro doesn't have a package.)

REVIEW: 117472
2014-04-10 11:36:37 +02:00
l10n daemon script
003ba3f343 SVN_SILENT made messages (.desktop file) 2014-04-10 05:10:58 +00:00
Martin Gräßlin
b07dbedfdb [effects/slidingpopups] Don't update property on window closed
If the property changes the animation data is updated. As the last
property change event will definately be delivered before an unmap notify
we can be sure that the animation data is up to data. Reading the
property again does not have any advantages.

By removing it we get rid of at least one roundtrip to the X Server and
it fixes one failed GetProperty error when it tries to read the property
for an already destroyed unmanaged.

REVIEW: 117431
2014-04-09 08:35:39 +02:00
l10n daemon script
d630b657cd SVN_SILENT made messages (.desktop file) 2014-04-09 04:58:31 +00:00
l10n daemon script
f13d89a9b6 SVN_SILENT made messages (.desktop file) 2014-04-08 06:22:50 +00:00
Martin Gräßlin
a622d5300a [wayland] Properly create WaylandScreens
Rebase error - caused KWin to just crash when started in Wayland mode.
2014-04-07 08:01:46 +02:00
Martin Gräßlin
8a2df7ac4d Add a build option to compile with gcov support
New build option KWIN_BUILD_COVERAGE which adds
"-fprofile-arcs -ftest-coverage" to CMAKE_CXX_FLAGS and "-lgcov" to
CMAKE_EXE_LINKER_FLAGS.

REVIEW: 117369
2014-04-07 08:01:25 +02:00
Martin Gräßlin
fbec8ea12c [scene-xrender] Do not render deco part if it doesn't end on screen
If the deco part doesn't exist or the target rect is empty, KWin should
not try to composite the deco part on the screen. It can be an empty
rect for maximized windows. If the render composite is tried it results
in an error (note - man page says "This request does never generate any
errors.").

To simplify the macro is turned into a lambda.

The root cause for this problem is that PaintRedirector creates an
XRenderPicture for those invalid geometries and this requests arleady
fails. Thus RasterXRenderPaintRedirector is adjusted to not create the
XRenderPicture in that case and set it to nullptr. For a null
XRenderPicture XCB_RENDER_PICTURE_NONE is returned.

BUG: 332247
REVIEW: 117373
2014-04-07 08:00:52 +02:00
l10n daemon script
bd7047929c SVN_SILENT made messages (.desktop file) 2014-04-07 04:54:14 +00:00
l10n daemon script
43fd082b0a SVN_SILENT made messages (.desktop file) 2014-04-06 05:11:55 +00:00
l10n daemon script
c92da6202f SVN_SILENT made messages (.desktop file) 2014-04-05 04:53:22 +00:00
Martin Gräßlin
aa7db138e8 Remove unused variables
Thanks to clang for better warnings than g++.
2014-04-04 13:55:57 +02:00
Martin Gräßlin
c390a94261 Use new connect syntax in client.cpp
Excluded are the signals to Appmenu as that's currently excluded from
build.

Private slots with only one connection are turned into lambdas.

REVIEW: 117355
2014-04-04 12:10:56 +02:00
l10n daemon script
e6db000065 SVN_SILENT made messages (.desktop file) 2014-04-04 05:29:27 +00:00
Martin Gräßlin
1992b97ae3 Fix KWIN_VERSION_STRING in config-kwin.h.cmake
Left-over from pre-splitting.
2014-04-03 13:45:57 +02:00
Martin Gräßlin
2d2e1976cb Fix EffectsHandlerImpl::getProxy
Internal name of effects no longer starts with kwin4_effect.
2014-04-03 11:00:25 +02:00
Martin Gräßlin
bce964cca6 Add reviewboardrc 2014-04-03 10:46:33 +02:00
Martin Gräßlin
28b4cfaa9a Drop build dependency on kde4support for the build system
* Ported last qt4_wrap thingy to qt5_wrap thingy
* Include KF5Init (needed for kdeinit_executable
* Optionally include KF5DocTools and bind the docs subdirectory to it
* Include GenerateExportHeaders
2014-04-03 10:15:57 +02:00
Martin Gräßlin
ceecc5be27 [kwincompositing] Integrate the new kcmkwin subdirectory into build tree
* root CMakeLists.txt finds Declarative and Qt5Multimedia (Runtime)
* kwincompositing CMakeLists.txt is cleaned up to not be a project
2014-04-03 07:23:17 +02:00
Martin Gräßlin
388cd21adf Add Reset, Default and Apply button to config dialog
Makes it more like when starting KCMShell.

REVIEW: 117110
2014-04-03 07:23:17 +02:00
Martin Gräßlin
b14cae83a0 Translate the names of the categories
The category gets read from the KService and is not translated.
Because of that the KCM needs to do the translation of the categories.
This was also the case in the old KCM.

REVIEW: 117111
2014-04-03 07:23:17 +02:00
Martin Gräßlin
30dd9b7820 Fix the initial size of the KCMs
Both KCMs had a hard coded default which is obviously bad. Instead we
now calculate a useable implicitWidth and implicitHeight and use this
as the minimum size for the KCM. Which means we need also track changes
to these two root object properties and update the QWidget container
accordingly.

BUG: 332518
BUG: 332519
REVIEW: 117079
2014-04-03 07:23:17 +02:00
Martin Gräßlin
1b7f66243d qtextracomponents becomes kquickcontrolsaddons 2014-04-03 07:23:16 +02:00
l10n daemon script
a50e5da307 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
Martin Gräßlin
39b61238e5 Load generic scripted config plugin for scripted effects
We check whether the effect is scripted and provides a config. If that
is the case our normal approach for getting the config plugin fails and
we use this case to try to load it again through the generic scripted
config plugin.

REVIEW: 116863
BUG: 332186
2014-04-03 07:23:16 +02:00
Martin Gräßlin
ca725b437f Use KPluginTrader to find the effect configuration and show it
The model data contains a new role ConfigurableRole. This is used to
decide whether the configure button is available.

The value for the role is set by searching for a KPlugin which has the
effect's service name as X-KDE-ParentComponents. All available configs
are expected to be in kf5/kwin/effects/configs/ and are located through
the KPluginTrader thus binary effect configs need to provide json meta
data.

REVIEW: 116855
2014-04-03 07:23:16 +02:00
l10n daemon script
e5ef7602ba SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
l10n daemon script
1cbdb96c9a SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
l10n daemon script
5ef9359f6f SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
l10n daemon script
de968730e3 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
l10n daemon script
75ccceef47 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
l10n daemon script
211e5c2ab9 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
Martin Gräßlin
cd5c5498af Fix spacing of Effect row
Using implicitHeight of the row layout as the height.

REVIEW: 116757
2014-04-03 07:23:16 +02:00
Martin Gräßlin
7166bdad61 Filter on internal effects
By default internal effects are excluded from the list, but by
checking the option in the config menu, they get included in the
list.

REVIEW: 116755
2014-04-03 07:23:16 +02:00
Martin Gräßlin
24626b8cb0 Accept row if filter can be found in the Category name
Idea: searching for virtual did not return all effects in the
"Virtual Desktop Switching Animation" category.

REVIEW: 116752
2014-04-03 07:23:16 +02:00
l10n daemon script
b9f00690e6 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
Martin Gräßlin
38e18a1d4c Improve the sorting of the effects list
Sort by:
* category
 ** exclusive group
  *** name

Thus we have an alphabetic order of all categories, in the categories
we have again an alphabetic order of all effects in the same group and
the effects in one group are listed at the bottom of the category.

REVIEW: 116753
2014-04-03 07:23:16 +02:00