Commit graph

10192 commits

Author SHA1 Message Date
Martin Gräßlin
15aa42c565 Remove doNotManage hack for Java Applets
The hack used to be used to hide windows before they get embedded into
another window. This has been wrong on multiple levels:
1. it does not belong into a window manager - the window should take care
   of this by itself
2. Window title is not a proper way to identify windows
3. Using D-Bus to inform an X11 window manager about windows which should
   not get managed is rather strange
4. The hack only works with KWin, but not with any other X Window Manager
5. Windows identified with this hack still appear in Alt+Tab, that is
   they are managed after all. Only a flicker is suppressed
6. Such windows are shown in the taskbar which nicely illustrates how
   wrong a D-Bus call to the window manager is

That the hack has been introduced for Java Applets in KHTML also shows
that this is wrong. Why does Gecko and WebKit not need such a hack? Why
is KHTML tied so closely to X11 and KWin? Having a hack for a technology
which is obsoleted (Java Applets) and shouldn't be used due to security
issues is another reason to no longer support this hack. This usage has
been removed from KHTML as of 67939b1 of kdelibs git repo.

REVIEW: 109450
2013-03-22 09:54:45 +01:00
Martin Gräßlin
e107910b30 KDecorationBridge becomes private again
With 4933f08ae49328e36e2654434d28917310882ee5 the KDecorationBridge
interface became public to allow Compiz to easily implement the class.

From a KWin perspective this change did not make much sense. The Bridge
is meant to be the interface towards KWin. It is an internal interface
and exporting it doesn't change the fact that it is internal.

The change got introduced in a time when it was still common to use
Compiz in the kde-workspaces. This has changed. None of the top ten
distributions on distrowatch are shipping the integration parts of Compiz
in an up to date version. Most distros are still on Compiz 0.8, which
requires manual patching to keep up with changes in the decoration API.
Distros on Compiz 0.9 are not shipping the KDE integration - this
includes Ubuntu.

Given this development it is no longer justified to have additional work
on KWin side and because of that the API which should be internal is
marked as internal again.

In case Compiz is still interested in providing the kde-window-decorator
the header file can easily be pulled from our repository. In addition
this patch includes a method
int decoration_bridge_version()
which returns the current bridge API version. Kde-window-decorator can
resolve this method and verify that the version is not higher than what
is supported. The version number is provided in kdecoration.h by the
define KWIN_DECORATION_BRIDGE_API_VERSION. We will increate the version
number once per release in case the bridge changed. 4.11 will have the
version number 1.

This change in behavior has been discussed and agreed in [1].

The change also unexports KDecorationBridgeUnstable. This class should
have never been exported, it was incorrect and the parent class had not
been exported anyway. This is just a note to indicate that it is not an
ABI break and there is no reason to increase the so number.

[1] http://lists.kde.org/?l=kwin&m=136335502805911&w=2

CCMAIL: compiz@lists.freedesktop.org
CCMAIL: dev@lists.compiz.org

REVIEW: 109536
2013-03-22 09:09:48 +01:00
Fredrik Höglund
010b3c94de Merge branch 'KDE/4.10'
Conflicts:
	kwin/lanczosfilter.cpp
2013-03-21 17:13:34 +01:00
Fredrik Höglund
cd93f3c486 kwin/cube: Fix the panel shadow being clipped out
The shadow was being clipped out while the slide animation was running.
2013-03-21 16:43:45 +01:00
Fredrik Höglund
2cec03dede kwin: Fix the blend function in the lanczos filter
The alpha values are pre-multiplied.
2013-03-21 16:31:06 +01:00
Fredrik Höglund
e59867dd92 kwin/blur: Fetch all the blur regions in the ctor
Otherwise the content below windows that were created before the effect
was instantiated won't be blurred.
2013-03-21 16:22:02 +01:00
Martin Gräßlin
d021bf35c1 Skip framebuffer configs for depth 32 with no alpha
Fixes another problem on NVIDIA that RGBA windows were rendered
incorrectly.
2013-03-21 15:52:43 +01:00
Martin Gräßlin
0c4c16e93f Fix typo
Makes KWin work with NVIDIA again.
2013-03-21 12:40:49 +01:00
Martin Gräßlin
7e3809a3ca Split out Application Menu related code into own class
Following the approach to move out of Workspace what doesn't belong into
Workspace Appmenu support goes into an own class.

This also has the advantage of better compilation with Qt 5 as moc seems
to dislike ifdefs in the slot definitions.

REVIEW: 109497
2013-03-21 09:34:56 +01:00
Luca Beltrame
76cd9e6174 Merge remote-tracking branch 'origin/KDE/4.10' 2013-03-20 23:24:50 +01:00
Thomas Lübking
476ca65295 Depend fs layer upon active state, not stackorder
according to NETWM spec implementation notes suggests
"focused windows having state _NET_WM_STATE_FULLSCREEN" to be on the highest layer.
We'll also take the screen into account
The user set stacking (being raised) is not considered by the spec note
This behavior is also suggested by an old comment in activation.cpp, void Workspace::setActiveClient()

BUG: 296076
CCBUG: 224600
REVIEW: 109572
FIXED-IN: 4.11
2013-03-20 22:23:43 +01:00
Thomas Lübking
a5cce085af catch geometry updates of moving clients
and bind geometry change signals dynamically

REVIEW: 109570
2013-03-20 22:23:43 +01:00
Thomas Lübking
eab1166dbc set / withdraw iconic state for shaded clients
Should shaded windows be iconic?
I don't know. Apparently nobody does. (google found me discussions but no conclusion)

OpenBox, Metacity and Compiz set shaded Windows iconic, Sawfish and IceWM don't.

Either way kwin presently sets shaded windows iconic when you map them (client.cpp, void Client::map(allowed_t)) so to remain consistent with ourselves and half of the other WMs i set it.
Otherwise it should not be set when unshading a window
(no justification but noteworthy: the bug reporter seems to intend to pause expensive painting when the window is iconic and in that regard it's oc better to have it for shaded windows)

BUG: 317025
FIXED-IN: 4.11
REVIEW: 109593
2013-03-20 22:23:43 +01:00
Thomas Lübking
d6c652fd35 fix magnifier + xrender segfault 2013-03-20 22:23:43 +01:00
Thomas Lübking
c1bd7885cb catch maximized windows in ::keepInArea
BUG: 317068
FIXED-IN: 4.10.2
2013-03-20 22:23:41 +01:00
Thomas Lübking
5299f728fe catch geometry updates of moving clients
and bind geometry change signals dynamically

REVIEW: 109570
(cherry picked from commit eb2db41304f1ec1e597e9bd282a9c4f0b7dd1e54)

Conflicts:
	kwin/libkwineffects/kwinanimationeffect.cpp
2013-03-20 22:23:41 +01:00
Thomas Lübking
81931857b6 keep + track m_closeWindow to keep m_winData alive
BUG: 259640
FIXED-IN: 4.10.2
REVIEW: 109509
2013-03-20 22:23:40 +01:00
Thomas Lübking
c4d450455b catch maximized windows in ::keepInArea
BUG: 317068
FIXED-IN: 4.10.2
2013-03-20 21:11:36 +01:00
Thomas Lübking
4e1944ef53 catch geometry updates of moving clients
and bind geometry change signals dynamically

REVIEW: 109570
(cherry picked from commit eb2db41304f1ec1e597e9bd282a9c4f0b7dd1e54)

Conflicts:
	kwin/libkwineffects/kwinanimationeffect.cpp
2013-03-20 21:10:29 +01:00
Thomas Lübking
4babec9991 keep + track m_closeWindow to keep m_winData alive
BUG: 259640
FIXED-IN: 4.10.2
REVIEW: 109509
2013-03-20 21:04:59 +01:00
Script Kiddy
2515f30d6b SVN_SILENT made messages (.desktop file) 2013-03-19 16:40:02 +01:00
Script Kiddy
9ee5145fc9 SVN_SILENT made messages (.desktop file) 2013-03-18 08:58:15 +01:00
Fredrik Höglund
9c658a752c kwin: Simplify GLXBackend::initDrawableConfigs()
Use glXChooseFBConfig() instead of glXGetFBConfigs(), and prefer
the first usable configuration instead of the last.
2013-03-17 18:28:46 +01:00
Fredrik Höglund
00c0ad05d3 kwin: Require Xcomposite 0.3 for OpenGL compositing
Remove support for OpenGL compositing without using a composite
overlay window. With this change kwin now also requires a
double-buffered framebuffer configuration.
2013-03-17 18:28:46 +01:00
Fredrik Höglund
baeeb1b90b kwin: Simplify GLXBackend::initRenderingContext()
glXCreateNewContext() is supposed to return NULL on failure, so let's
assume that it does. Don't try to create an indirect context when
creating a direct context failed. glXCreateNewContext() should return
an indirect context when a direct context cannot be created.
2013-03-17 18:27:41 +01:00
Fredrik Höglund
96ed29497c kwin: Simplify GLXBackend::initBufferConfigs()
Use glXChooseFBConfig() instead of glXGetFBConfigs(), and prefer
the first usable configuration instead of the last.

Also rename initBufferConfigs() to initFbConfig().
2013-03-17 18:13:36 +01:00
Fredrik Höglund
8a14a0d610 kwin: Move some debug output to where it belongs 2013-03-17 18:08:54 +01:00
Fredrik Höglund
8446912502 kwin: Remove some left over support for GLX < 1.3
We require GLX_EXT_texture_from_pixmap which in turn requires GLX 1.3.
2013-03-17 18:01:52 +01:00
Fredrik Höglund
e393cc9069 kwin: Rename some variables in GLXBackend
ctxbuffer       → ctx
glxbuffer       → glxDrawable
buffer          → drawable
fbcbuffer       → fbconfig
fbcbuffer_db    → fbconfig_db
fbcbuffer_nondb → fbconfig_nondb
2013-03-17 17:53:38 +01:00
Martin Gräßlin
649264d738 Do not round integer values 2013-03-15 15:51:36 +01:00
Martin Gräßlin
9a6b1159fe Remove unused includes 2013-03-15 15:51:14 +01:00
Martin Gräßlin
d0cd0b1ce2 Add missing KIcon include 2013-03-15 15:44:08 +01:00
Martin Gräßlin
74f0ca2f00 Add missing KGlobal includes 2013-03-15 15:43:49 +01:00
Martin Gräßlin
600b3e3b91 Xcb port for egl backend
Noticed this one during test compile against Qt5 as QX11Info is no longer
exposing appVisual. Using the visual from root window which works just
fine for this use case.

REVIEW: 109411
2013-03-15 07:56:25 +01:00
Martin Gräßlin
0c86d31ff2 Remove kde4_no_enable_final from CMakeLists.txt
Tried to build KWin with enable final: it doesn't work. So if nobody uses
it, we don't need it in the CMakeLists to make it work.

Also it's removed in KF5 which means that removing it right now removes
differences in the build system.

REVIEW: 109357
2013-03-14 12:32:06 +01:00
Martin Gräßlin
1bb5a81292 Port SceneXRender to XCB
SceneXRender no longer uses XRender from XLib, but only XCB.

REVIEW: 109190
2013-03-13 08:19:14 +01:00
Martin Gräßlin
4e598ed641 Port SceneXRender::EffectFrame to XCB render 2013-03-13 08:12:40 +01:00
Martin Gräßlin
4a69ffb5c0 Do not use QPixmap::x11PictureHandle() to render shadow elements
The QPixmap's are wrapped using XRenderPicture.
2013-03-13 08:12:40 +01:00
Martin Gräßlin
ce930dfc8a Use xRenderBlendPicture as alpha mask in SceneXrender
Less duplicated functionality.
2013-03-13 08:12:40 +01:00
Martin Gräßlin
577a7030b6 Merge branch 'KDE/4.10'
Conflicts:
	kwin/clients/aurorae/src/aurorae.cpp
2013-03-13 08:09:53 +01:00
Martin Gräßlin
25fa3aac8c Disable animations in Plastik for native or non-compositing
Adding a new property on whether we want animations based on whether we
are on raster or with Compositing. The property is constant as the deco
gets recreated on compositing change state anyway.

REVIEW: 109456
BUG: 314532
FIXED-IN: 4.10.2
2013-03-13 08:07:21 +01:00
Martin Gräßlin
98a04893a6 Use mgraesslin@kde.org for my mail address in Copyright and AboutData 2013-03-12 13:17:53 +01:00
Ralf Jung
3a6d55b16e Get rid of the unreliable lastMask in the GL backend
REVIEW: 109396
2013-03-12 11:55:28 +01:00
Martin Gräßlin
abfc697b97 Merge branch 'KDE/4.10'
Conflicts:
	kmenuedit/main.cpp
	solid/solid-actions-kcm/device-actions/solid-device-SerialInterface.desktop
2013-03-12 09:31:06 +01:00
Martin Gräßlin
5891133111 Connect ThumbnailItem to Compositor::compositingToggled
If a KWin script uses a ThumbnailItem which gets created before the
Compositor is fully initialized the thumbnail is not shown at all because
the connect to windowAdded etc. will never happen.

Therefore connect to Compositor::compositingToggled to re-connect
whenever the compositing state changes.

REVIEW: 109310
2013-03-12 09:28:16 +01:00
Martin Gräßlin
30a3fade2b Fix incorrect Texture creation
The textures get created over QSize -> QPixmap conversation which is
obviously not intended here.

REVIEW: 109337
2013-03-12 09:24:44 +01:00
Martin Gräßlin
c3ec860a72 Drop ARB shader code path from Lanczos Filter
Since color correction got pushed merged in the Lanczos Filter is only
created for OpenGL2. Which means the complete ARB shader code path has
been dead since 4.10 anyway.

REVIEW: 108856
2013-03-12 08:48:37 +01:00
Martin Gräßlin
fb65c07bf7 Use a QDeclarativeView for button views in Present Windows and Desktop Grid
Declarative UI++

REVIEW: 109409
2013-03-12 08:40:46 +01:00
Martin Gräßlin
fbc11aad13 Temporarily revert to XDisplayWidth/Height
We don't like broken master. Proper fix coming later on.

BUG: 316040
2013-03-11 15:14:21 +01:00
Martin Gräßlin
7ab5df9de8 Define GL_UNPACK_* for gles if not defined
Should fix build error in build.kde.org.
2013-03-11 12:36:40 +01:00