9 Commits

Author SHA1 Message Date
Aleix Pol
556c1e321a Remove random qDebug output
Makes it easier to spot the actual problems on the output. If there's
something that's actually indicating a problem, we should make it a
qWarning.
2014-05-06 19:57:37 +02:00
Martin Gräßlin
491befb850 Add safety checks to XCB functions in WindowThumbnail
Prevents XCB warnings about BadWindow when a tooltip is shown for the
first time.

REVIEW: 117822
2014-05-05 07:18:06 +02:00
Martin Gräßlin
af5a855da4 Discard window thumbnail pixmap after texture got destroyed by SceneGraph
If the window holding the WindowThumbnail item goes away the texture hold
by the node is destroyed but our bound window pixmap is not yet freed.
This results in incorrect state the next time the WindowThumbnail is
shown.

To get back into a clean state discardPixmap() is called if there is no
texture but a bound low level pixmap.

BUG: 333482
REVIEW: 117824
2014-04-30 13:14:44 +02:00
Kevin Ottens
72ba7b4146 Apply the astyle-kdelibs script 2014-04-26 01:48:37 +02:00
Martin Gräßlin
9ecdcf5ae0 Don't crash in WindowThumbnail if XCB is not available
In case that XCB is not available we need to use the window icon.
2014-03-21 22:07:56 +01:00
Martin Gräßlin
d2452e2917 EGL/X11 backend for WindowThumbnail QQuickItem
Introduces a new optional dependency to EGL. If EGL is found the
WindowThumbnail gets compiled with EGL support. The EGL support is
unlike Qt's XCB plugin not mutual exclusive to the GLX backend, thus
it's possible to compile with EGL and GLX at the same time.
By that this implementation is prepared for the case that Qt supports
EGL or GLX through runtime selection.

In practice EGL support is only useful if Qt is compiled with GLESv2.
In that case the corebindingsplugin gets linked against Qt5::Gui_GLESv2
to get the dependency to GLES.

The implementation makes use of the EGL_KHR_image extension
(or EGL_KHR_image_base and EGL_KHR_Image_pixmap) and
the GL_OES_EGL_image extension to bind the X pixmap to an EGLImageKHR.

REVIEW: 116627
2014-03-17 09:09:23 +01:00
Sebastian Kügler
3c81603a8b Crudely make corebindings kde4support free 2013-10-05 02:48:09 +02:00
Martin Gräßlin
52e96b41df Ensure that the WindowThumbnail is not trying to render a thumbnail of itself
Recursive window thumbnails would look awesome on the screen, but reality
is that X/OpenGL or $DEITY doesn't like it at all and decided to just
freeze the view.

So let's delay all the redirecting till the WindowThumbnail has been
added to its QQuickWindow and if the window id is the one of the own
window we just render the icon instead.
2013-09-11 13:57:40 +02:00
Martin Gräßlin
91d306d2e8 QQuick item for live updating window thumbnails
New qquick item in PlasmaCore to render a live updating window
thumbnail. The implementation uses XCB to redirect the specified
window using the composite extension. This means a running compositor
is not required. Through the damage extension the item tracks changes
to the window and triggers updates of the texture. Furthermore the
item tracks geometry changes of the window to recreate the window
pixmap.

If the pixmap of the window is valid, a texture is generated from it
using the glx texture from pixmap extension. For this a new optional
dependency for glx is added. On platform where glx is not available
(e.g. Windows, Linux with OpenGL ES) this will not get compiled and
the window's icon is used instead as a fallback.

REVIEW: 112142
2013-09-11 09:45:47 +02:00