Commit graph

8403 commits

Author SHA1 Message Date
Script Kiddy
976f396fc7 SVN_SILENT made messages (.desktop file) 2011-07-06 10:41:48 +02:00
Martin Gräßlin
c4cd4e8c96 Replace getYInverted by the new isYInverted of parent class 2011-07-05 20:42:45 +02:00
Martin Gräßlin
eae91e189c Remove include to kwinglutils.h from kwineffects
No more OpenGL is used in the effects library itself.
2011-07-05 20:40:27 +02:00
Martin Gräßlin
3524e70fe2 Drop EffectsHandler::saturationSupported
Not used by any effect or anywhere in core.
2011-07-05 20:35:32 +02:00
Martin Gräßlin
e6b5a428ea Disable build of MagnifierEffect
Magnifier is broken without PaintClipper.
Needs a better implementation, see:
http://lists.kde.org/?l=kwin&m=130972453005390&w=2
2011-07-05 20:22:44 +02:00
Martin Gräßlin
fa30d774af Paint windows on edge without Lanczos filger
This makes it possible to use BoxSwitch in animated mode wihout
PaintClipper.
2011-07-05 20:18:21 +02:00
Martin Gräßlin
a360d59f7e Remove intersection of region with visible rect
No longer needed as the splitting into quads will perform the
intersection.
2011-07-05 20:18:21 +02:00
Martin Gräßlin
1793343847 Make Slideback work on OpenGL without PaintClipper 2011-07-05 20:18:21 +02:00
Martin Gräßlin
8fa22d0f6a Remove PaintClipper from CoverSwitch
Reflection in a vertical multiscreen setup are kind of broken without
PaintClipper. But we have to ask ourselfe whether CoverSwitch in a
vertical multi screen setup makes sense and whether it's useful to
have reflections in such a setup.

Horizontal multiscreen setup works fine (also with reflections).
2011-07-05 20:18:20 +02:00
Martin Gräßlin
9c8ebfc1fd Remove PaintClipper in GL mode from DesktopGrid
Seems to not be needed at all.
2011-07-05 20:18:20 +02:00
Martin Gräßlin
55c1f3ae96 Include transformed windows in quad transition
Only transformed quads may not be changed, so we skip those.
2011-07-05 20:18:20 +02:00
Martin Gräßlin
572368ea27 Make Slidingpopus work without PaintClipper
Add correct region to repaint, this just used to be clipped before.
2011-07-05 20:18:20 +02:00
Martin Gräßlin
76eb3c3391 Remove clipping against the bounding rect of paint region 2011-07-05 20:18:19 +02:00
Martin Gräßlin
050ea5010b Remove PaintClipper from Cube
Seems to be a relict from the time when we scaled the cube on one screen.
2011-07-05 20:18:19 +02:00
Martin Gräßlin
9b9f4619b0 Remove scissoring code from PaintClipper
Not used any more and means we don't have OpenGL code in kwineffects.
2011-07-05 20:18:19 +02:00
Martin Gräßlin
cd82616ece Remove PaintClipper from OpenGL Scene rendering
Construct window quads which will end on the screen instead of
rendering the windows several times and using scissoring to
restrict to the area which will end on screen.

REVIEW: 101765
2011-07-05 20:17:29 +02:00
Martin Gräßlin
bb8b92f93d Don't render shadows if there are no quads 2011-07-05 20:15:11 +02:00
Arthur Arlt
a9dcadfd33 Including scene.h is no longer necessary in client.cpp
REVIEW: 101847
2011-07-05 11:46:40 +02:00
Arthur Arlt
02e08be5bd Merge signals clientClosed() and unmanagedClosed() to windowClosed()
This commit merges the two signals clientClosed() and unmanagedClosed() to windowClosed() which
is now provided by Toplevel.
The approriate slots in effects.h and effects.cpp were merges as well, since they did the
same.
The direct method calls of the method windowClosed() in SceneOpenGL and SceneXRender were
removed and are now connected to the appropriate signal in windowAdded().
2011-07-05 11:46:13 +02:00
Arthur Arlt
859dacb8b5 Make Scene::windowClosed() a Q_SLOT
This commit just makes the declaration of windowClosed() in Class Scene be a Q_SLOT.
The inheriting classes SceneOpenGL and SceneXRender are updated as well.
2011-07-05 11:46:13 +02:00
Arthur Arlt
e6d8585559 Do not include scene.h in workspace.cpp and events.cpp anymore
It is no longer necessary to include scene.h in workspace.cpp and
events.cpp.

REVIEW: 101706
2011-07-05 11:35:27 +02:00
Arthur Arlt
14af45cc04 Make Q slots public in class Scene
This commit just makes the slots public that are used in Scene class and its inheriting subclasses.
2011-07-05 11:34:12 +02:00
Arthur Arlt
b63c9c1af8 Make mothod windowGeometryShapeChanged() a slot
The method windowGeometryShapeChanged() from the class Scene is now a slot. It is now connected to the signal geometryShapeChanged() which is sent from Toplevel instances Client and Unmanaged.
All direct method calls were deleted.
2011-07-05 11:34:12 +02:00
Arthur Arlt
59a8aac752 Make windowOpacityChanged() a slot
The method windowOpacityChanged is now a protected slot in class Scene. The implementations in the subclasses SceneOpenGL and SceneXRender are the same. The slots are connected to the singal opacityChanged() from Toplevel. The connection is done in the method windowAdded() in both SceneOpenGL and SceneXRender.
2011-07-05 11:34:12 +02:00
Arthur Arlt
d88cb00b0b Make class Scene inherit from QObject
The class Scene now inherits from QObject and has the Q_OBJECT macro. The inheriting classes SceneOpenGL and SceneXRender are provided with the Q_OBJECT macro. Now it is possible to use signals and slots and replace direct method calls.
2011-07-05 11:34:12 +02:00
Arthur Arlt
903bcb42fb Provide build option for TabBox functionality
Since the TabBox functionality is not feasible for any platform KWin is
used on (e.g. tablet PCs), a build option is added to decide, if the
TabBox functionality should be build or not.

REVIEW: 101511

@Sebastian: Martin wanted me to let you know that it is now possible
to disable building Tabbox
CCMAIL: sebas@kde.org
2011-07-05 11:00:23 +02:00
Arthur Arlt
d1b5d00129 Refactoring TabBox
Move the funtionality of TabBox from class Workspace to class TabBox to make
it possible to deactivate this feature by setting a compile flag.
All methods and variables are now provided by class TabBox and calls from other
classes go directly to TabBox.
The code for configuring the shortcut keys has also been moved to class TabBox
from kwinbindings.cpp.
2011-07-05 10:59:53 +02:00
Philipp Knechtges
ec1df109d9 kwin: cleaning up KWin::GLTexture::convertToGLFormat
Now convertToGLFormat does no longer mirror the texture, so that we can
avoid a deep copy in case we render a GL_BGRA texture on a little endian system.

REVIEW: 101739
2011-07-04 18:06:45 +02:00
Philipp Knechtges
827f9219be kwin: add support for y-inverted textures to the Cube effect 2011-07-04 17:50:12 +02:00
Arthur Arlt
aa14d53b71 Rename raiseWindows() to ensureOnTop()
REVIEW: 101789
2011-07-04 13:24:51 +02:00
Arthur Arlt
c8cf1e4c7e Removed method destroy()
Since the method destroy() was called only from one location in the code
followed by update(), the funtionality has been moved to the method update()
which now takes an boolean argument 'force'. This argument is false by default
and set to true only at that location where destroy() was called formerly.
2011-07-04 13:24:51 +02:00
Arthur Arlt
baf6de3a2f Use QVector<int> for m_screenEdgeReserved istead of int array
for cosmetic reasons only; to get rid of the initialization for loop
2011-07-04 13:24:51 +02:00
Arthur Arlt
cc43928a97 Use QVector<Window> for screen edge windows instead of Window array
The code was updated to use a QVector for the screen edge windows instead of
an ordinary Window array. The getter method windows() was updated to return
now this QVector.
In the method propagateClients() in layers.cpp the newWindowStack QVector is
filled by iteration through the screen edge windows and only adding Windows that
are not None.
2011-07-04 13:24:51 +02:00
Arthur Arlt
f73fb783ca Document new class ScreenEdge
Documentation for each function in the class ScreenEdge was added.
2011-07-04 13:24:51 +02:00
Arthur Arlt
6e7a249cd0 Rename functions in class ScreenEdge
Since the functions were moved from Workspace to its own class ScreenEdge
and the functionality was formerly called ElectricWindows, the functions still
had the old names. They are now consistenly renamed without redundand naming.
The function calls were updated as well in all classes where ScreenEdge is used.
2011-07-04 13:24:51 +02:00
Arthur Arlt
7aecca019f Rename member variables
Renaming member variables to consistent naming scheme and using phrase
"screenEdge" instead of electric window.
2011-07-04 13:24:51 +02:00
Arthur Arlt
bf419c256d Introduced init() method to class ScreenEdge
The initialization was done in class Workspace before but is now
moved to class ScreenEdge in its own init() method. Is is called from
Workspace at the same position where the initialization took place before.
2011-07-04 13:24:51 +02:00
Arthur Arlt
83e8f65679 Use new getter method screenEdgeWindows() in propagateClients()
Since the functionality of screen edge handling was moved to its own class,
the screen edge windows are now provided by the getter method screenEdgeWindows().
The new getter method screenEdgeWindows() returns a reference to a QVector,
which includes the screen edge windows.
The Workspace method propagateClients() implemented in layers.cpp needs these
screen edge windows to restack the windows. The code was also modified to use
QVector instead of a Window array.
2011-07-04 13:24:51 +02:00
Arthur Arlt
5ead1d90a1 Remove screen edge handling methods from workspace
Since the newly introduced class ScreenEdge and its calls work fine,
the redundand methods from workspace are now removed.
2011-07-04 13:24:51 +02:00
Arthur Arlt
76e5f0e08b Introduce new getter method screenEdgeWindows() to class ScreenEdge
A new getter method screenEdgeWindows() is provided by class ScreenEdge
since the screen edge windows are needed in class Workspace in the function
propagateClients() which is implemented in layers.cpp
2011-07-04 13:24:51 +02:00
Arthur Arlt
2f11337d98 Refactoring Screen Edge handling
This commit change the screen edge function calls to be called in the
new class ScreenEdge. The old methods are still in Workspace and will
be removed in a further commit.
2011-07-04 13:24:51 +02:00
Arthur Arlt
7533bfac75 Introduce member variable ScreenEdge to Workspace
This commit adds a new member variable m_screenEdge to Workspace. It is
initialized in the constructor and deleted in the deconstructor.
A getter is introduced as well.
2011-07-04 13:24:51 +02:00
Arthur Arlt
55cbff052f Refactor Screen Edge Handling
This initial commit introduces a two new files screenedge.h and screenedge.cpp which cover a new
class ScreenEdge. The code for screen edge handling was copied from Workspace to this class.
Workspace had to be extended by a getter for movingWindow. CMakeList was updated to build the
new class.
2011-07-04 13:24:51 +02:00
Martin Gräßlin
aa3f7a6f4e Merge branch 'KDE/4.7' 2011-07-03 12:36:54 +02:00
Martin Gräßlin
78dd6e6859 Fix rendering glitch in screenshot effect with Raster
We have to set the bit depth of the XPixmap to 32 in order to get
an alpha channel and we have to render the grabbed image using
composition mode Source in order to just copy all pixels to the
destination pixmap.

BUG: 276719
FIXED-IN: 4.7.0
2011-07-03 12:23:11 +02:00
Martin Gräßlin
7e3f6931e4 Merge branch 'KDE/4.7' 2011-07-03 11:09:14 +02:00
Martin Gräßlin
5c0d24c7bf Fix a rendering glitch caused by the reflections in CoverSwitch
Seems like we need to use drawWindow instead of paintWindow or
KWin will keep some parts of the paint data.

BUG: 276810
FIXED-IN: 4.7.0
2011-07-03 11:07:27 +02:00
Martin Gräßlin
08b2aebd30 Merge branch 'KDE/4.7'
Conflicts:
	kwin/libkwineffects/kwinglutils.cpp
	kwin/libkwineffects/kwinglutils.h
2011-07-03 09:30:38 +02:00
Martin Gräßlin
b837a3fca1 Render Shadow with only one GL texture
Copies the shadow parts into one image and creates a GLTexture
from the image, so that we can render the complete shadow with
just one texture and one painting pass.

Should remove most of the overhead involved when rendering the new Shadows.

As a side effect this should fix missing shadows with non-NPOT GPUs and
a rendering glitch reported with NVIDIA.

REVIEW: 101742
2011-07-03 09:24:28 +02:00
Martin Gräßlin
4898ac4b93 Merge branch 'KDE/4.7'
@Thomas: please try to only commit to KDE/4.7 and forward port to master
CCMAIL: thomas.luebking@gmail.com
2011-07-03 09:09:16 +02:00