Commit graph

8382 commits

Author SHA1 Message Date
Hugo Pereira Da Costa
238ab544a4 Merge branch 'master' of git.kde.org:kde-workspace 2011-08-08 10:49:45 +02:00
Allen Winter
8584104bf0 Improve Find OpenGLES.cmake a bit by only setting the FOUND varaible
if both the GLES and EGL libs and headers are found.
Fold all the includes and libraries into 1 varaible each and use those.

in other words, you need to have both OpenGLES and EGL to do a successful build.
2011-08-06 09:29:20 -04:00
Hugo Pereira Da Costa
ce0862d726 Merge branch 'master' of git.kde.org:kde-workspace 2011-08-05 17:02:41 +02:00
Script Kiddy
857a61e30f SVN_SILENT made messages (.desktop file) 2011-08-04 10:39:45 +02:00
Martin Gräßlin
9f78276dc7 Detect Driver "Software Rasterizer"
Fixes a major regression which allowed OpenGL
compositing to be used with software rasterizer, which
either did not work or crashed directly.

Cherry-picked from cf2f572 in branch KDE/4.7.
2011-08-03 20:02:15 +02:00
Martin Gräßlin
df75644817 Fix compilation with OpenGL ES and without OpenGL
If we have OpenGL ES but not OpenGL the KWIN_HAVE_OPENGL is set
causing the first compile pass to fail as it tries to build
against OpenGL. As a solution the first pass links against
OpenGL ES if OpenGL is not found.

This means both kwin and kwin_gles are built against GLES.
2011-08-03 16:39:36 +02:00
Martin Gräßlin
ebdb0f00ff Use QLatin1String where possible
Krazy--
SVN_SILENT
2011-08-03 08:25:11 +02:00
Martin Gräßlin
f72f465c13 Fix Typos
Krazy--
SVN_SILENT
2011-08-03 08:25:10 +02:00
Martin Gräßlin
055b4d032f Include own header first line
Krazy--
SVN_SILENT
2011-08-03 08:25:10 +02:00
Martin Gräßlin
3232c2cb2a Remove duplicate includes
Krazy--
SVN_SILENT
2011-08-03 08:25:10 +02:00
Martin Gräßlin
371f5b30e2 Adding missing newlines at end of file
Krazy--
SVN_SILENT
2011-08-03 08:25:02 +02:00
Martin Gräßlin
fe4744c1e9 Single quotes instead of double quotes
Krazy--
SVN_SILENT
2011-08-03 08:24:27 +02:00
Thomas Lübking
734052a784 implement and fix scaled XRender shadows
(cherry picked from commit 5fa1a06fd8fdd3081a48ba921b2e670a60a49695)
2011-08-02 23:11:02 +02:00
Martin Gräßlin
1f89dcf25d All effects need to link X11
The Plasma Active build of kwin was broken because of that.
We really should get the effects X free...
2011-08-02 19:44:35 +02:00
Jaime Torres
c7004ca3b7 remove a memory leak
When the library is not loaded right, delete the pointer to it.
It must be safe, the destructor does nothing.

REVIEW: 102057
2011-08-02 17:27:06 +02:00
Jaime Torres
26a492eb4a reduce the scope of two variables
reduce the scope of two variables

REVIEW: 102057
2011-08-02 17:26:21 +02:00
Jaime Torres
646954ed9d rules must never be null
if rules were null, it was pointing to a local structure, prabably a
crash after leaving if rules where used.

REVIEW: 102057
2011-08-02 17:24:38 +02:00
Jaime Torres
16bcfb0114 Avoid a null pointer dereference
Do not use deco pointer until we are sure it is not null.

REVIEW: 102057
2011-08-02 17:23:40 +02:00
Jaime Torres
664aaa1b60 ++ prefix for non-trivial data-types
change suffix ++ to prefix ++ to speed up a little bit not-trivial
data-types. discovered by cppcheck

REVIEW: 102057
2011-08-02 17:21:56 +02:00
Kai Uwe Broulik
79844f0ae7 Disable new login effect.
I could swear I disabled the effect by default.
2011-08-02 15:14:55 +02:00
Kai Uwe Broulik
ca2a019bc8 Add option to make login effect fade via black instead of a long transition to your desktop.
Nuno has to decide whether the new option will become default or not, for now it is disabled by default.
You can enable it in effects kcm, now Login effect has a configuration dialog.

It does not (yet) however check for non-fullscreen effects, so they might look weird when this is enabled.

REVIEW: 101812
CCMAIL: nuno@oxygen-icons.org
2011-08-02 15:09:31 +02:00
Arthur Arlt
e985201114 Fix broken build if tiling is disabled 2011-08-02 14:13:08 +02:00
Martin Gräßlin
5213c4aff6 Drop direct rendering setting
The advanced compositing option "direct rendering" could only
correctly be honored in the case of proprietary NVIDIA drivers.
In all other cases playing with the setting was most likely
harmful as it could result in inconsistent states and the
option not to be honored at all.

This patch resolves this issue by moving the detection whether
to use a direct rendering context completely into the hands of
 the set environment variables or the helper program:
* if LIBGL_ALWAYS_INDIRECT is set, we use an indirect context
* if KWIN_DIRECT_GL is set, we use a direct context
* if none of the two are set, we use the helper program, if it
  returns 0 we create a direct context, otherwise we set
  LIBGL_ALWAYS_INDIRECT and create an indirect context

If a user really wants to influence the behavior the
environment variables can be used.

REVIEW: 102074
2011-07-31 17:40:03 +02:00
Martin Gräßlin
fb4d148f53 Move control of desktop layout from pager to KWin
The desktop layout (number of rows) should be
controlled by the window manager as it is also
responsible for the number of desktops and the
names of them.

The setting for the rows is moved from the pager
UI to the virtual desktops KCM. The desktop layout
is set when KWin starts and updated by the KCM.

With this change there is no process claiming the
manager selection for pager any more. This means
the KDE Plasma Workspaces are no longer compliant
to the complete section of _NET_DESKTOP_LAYOUT in
the EWMH.

REVIEW: 102073
BUG: 277965
FEATURE: 105779
FEATURE: 213353
FIXED-IN: 4.8.0
2011-07-31 16:47:27 +02:00
Script Kiddy
c37c9de57b SVN_SILENT made messages (.desktop file) 2011-07-30 09:44:58 +02:00
Arthur Arlt
9a18de0171 Move creation of Tiling some lines up
Since there was a crash caused by calling a function of
the not yet initialized class Tiling, the creation was
just moved some lines up. The problem does not occur anymore.

BUG: 278740
2011-07-29 11:03:34 +02:00
Alex Fiestas
78783bfb49 use checkOffscreenClient for half-maximized clients 2011-07-28 22:19:39 +02:00
Alex Fiestas
c0b89870b9 Move the "noOffscreensWindow" into a method so we can reuse it 2011-07-28 22:19:38 +02:00
Hugo Pereira Da Costa
e9f37729fb Merge branch 'master' of git.kde.org:kde-workspace 2011-07-28 14:38:48 -04:00
Arthur Arlt
e79cf50087 Rename some functions and variables in class Tiling
Some functions and variables were given more proper names and are now
following the naming scheme. 'Redundant' naming information was also removed.

REVIEW: 102020
2011-07-28 13:55:30 +02:00
Arthur Arlt
8c3a0e218a Move tile.cpp, tile.h, tilinglayout.cpp and tiling.h to directory tiling/
The three files are moved to the directory tiling/ and the includes were
adjusted as well as the CMakeLists.txt file.
2011-07-28 13:39:28 +02:00
Arthur Arlt
1326316049 Introduce Build Option for Tiling
A build option is introduced to file CMakeLists.txt. Classes Tiling,
Tile and TilingLayouts are only built if the option is set to ON. #ifdef's
are added to the classes where functions of the excluded classes are called.
2011-07-28 13:39:21 +02:00
Arthur Arlt
0c5da9f96f Remove tiling dependency from activation.cpp
Instead of directly calling notifyTilingWindowActivated() the signal
clientActivated() is used and connected. Including tiling.h is no longer
needed in activation.cpp.
2011-07-28 13:06:31 +02:00
Arthur Arlt
85c5439b5d Remove tiling dependency from Client
The direct method calls from class Client were removed and replaced by
connecting to the appropriate signals emitted by class Client. The
affected methods in class Tiling are notifyTilingWindowMinimizeToggle() and
updateAllTiles() which are now private Q_SLOTS.
Including tiling.h in class Client is no longer needed and was removed.
2011-07-28 13:06:30 +02:00
Arthur Arlt
b1e3c7ba38 Move initialization of shortcuts to separate method in new Tiling class 2011-07-28 13:06:30 +02:00
Arthur Arlt
f29d151220 Use configChanged() signal in TilingLayouts
Since there is a signal triggered if configurations are changed, the
reconfiguration method in TilingLayouts was made a slot and is connected
to the appropriate signal in Workspace.
2011-07-28 13:06:30 +02:00
Arthur Arlt
bc4fea10f3 Replace direct method calls with signal and slot mechanism
The direct method calls for createTile(), removeTile() and resizeing the
tiling layouts from class Workspace are replaced by connecting to the
appropriate signal. The methods are slots now and a new slot for resizeing
the tiling layouts was introduced.
2011-07-28 13:06:21 +02:00
Arthur Arlt
3634525613 Refactoring Tiling
This initial commit introduces a new class Tiling. It is provided by
the files tiling/tiling.h and tiling/tiling.cpp. It covers all the
Tiling functionality which was provided by Workspace. In this initial
commit, all the functions were just moved and adjusted.
A  new member variable m_tiling is introduced to Workspace, which
makes the new class Tiling accessible from Workspace.
The Tiling pointer is created in the constructor and deleted in
the deconstructor. Also a getter method tiling() is provided.
All calls from other classes are updated to use the methods in class
Tiling now.
2011-07-28 12:35:51 +02:00
Arthur Arlt
6db74c8d66 Original Tiling.cpp moved to directory tiling/ 2011-07-28 12:31:33 +02:00
Hugo Pereira Da Costa
2dbfac9e1d Merge branch 'master' of git.kde.org:kde-workspace 2011-07-27 19:37:57 -04:00
Alex Fiestas
a2aad27a78 Make sure that not maximized clients are offscreen on xrandr events
Added a small check in Client::checkWorkspacePosition which will assure
us that no window ("client") is left in a offscreen position. this is
more a workaround than a proper fix but is the only thing we can do that
will be backportable to the 4.7 branch.
2011-07-27 20:13:54 +02:00
Martin Gräßlin
68bba98e5f Remove duplicated xfixes include 2011-07-27 18:34:32 +02:00
Martin Gräßlin
997634c813 Remove a not working include directory
The kwin/lib directory does not exist for one
release cycle now.
2011-07-27 18:34:32 +02:00
Martin Gräßlin
92d32de087 Effects do not need kephal 2011-07-27 18:34:32 +02:00
Martin Gräßlin
1493dfd94f Load GLES effects instead of GL effects in GLES build
Just replacing the library name.
2011-07-27 18:34:32 +02:00
Martin Gräßlin
af27c83d0a Build an additional kwin_gles binary
KWin gets compiled twice if OpenGL ES is available
and a second binary is created. It is linked against
the GLES effects and kwinglesutils and does not link
against OpenGL. The normal OpenGL variant is still
the "kwin" binary.

This is an intermediate step till we have the scene
as a loadable plugin. Then we will determine whether
OpenGL ES is supported in an external application
and load it as a plugin, otherwise we load the
OpenGL/GLX scene as a plugin.

REVIEW: 101979
2011-07-27 18:34:32 +02:00
Martin Gräßlin
680a0bad64 KCMs need to link kwingl(es)compositing 2011-07-27 18:34:31 +02:00
Martin Gräßlin
808c29109a Build effects twice - once with GL, once with GLES 2011-07-27 18:34:31 +02:00
Martin Gräßlin
c807e97e0a Split glutils out of kwineffects
All OpenGL related files are build as a kwinglutils library for OpenGL
and as a kwinglesutils library for OpenGL ES. The appropriate defines
are set using target_properties and removed from kwinconfig.h.cmake.
2011-07-27 18:34:31 +02:00
Martin Gräßlin
7e4e43d203 Make ShowFpsEffectConfig build without GL dep
Forward declarations to the help!
2011-07-27 18:34:31 +02:00