Commit graph

9137 commits

Author SHA1 Message Date
Martin Gräßlin
b49356bc33 Do not perform setupCompositing on Client if Toplevel is not setup
Toplevel::setupCompositing returns a boolean value and returns
false in the cases where it has not setup compositing.

This is used by the specialization on Client to not perform the
Client specific setup if Toplevel has not setup.

REVIEW: 104767
2012-04-28 09:42:26 +02:00
Martin Gräßlin
be55ac5c60 Introduce post Workspace init phase
Workspace emits a signal when the initialization finished and
interested parties can connect to this signal to perform post
init actions. That is everything that does not have to be
performed to have a completely working Window Manager.

As an example loading the scripts is moved into this post init
phase.

REVIEW: 104580
2012-04-27 19:02:21 +02:00
Martin Gräßlin
5803fa2353 Drop CompositingPrefs detection from screenedges kcm
CompositingPrefs have only be used to get the default
value when reading whether the Compositing Enabled
config option.

But CompositingPrefs always returns true which makes
it useless to create an OpenGL context for this.

REVIEW: 104752
2012-04-27 16:41:34 +02:00
Script Kiddy
ee27f4d744 SVN_SILENT made messages (.desktop file) 2012-04-25 10:30:51 +02:00
Martin Gräßlin
55980513e7 Fix regressions related to stacking order changes
The change to have stacking order containing
Toplevel inestead of Clients (431aad6d6994695e72697fcc3299ec2cb6f0684e)
introduced possible crashers as recognized in:
http://git.reviewboard.kde.org/r/104519/#review12714

This change fixes these issues by adding missing
null pointer checks after casting to Client.

BUG: 298669
FIXED-IN: 4.9.0
REVIEW: 104714
2012-04-24 22:06:33 +02:00
Thomas Lübking
2fce451be5 allow to sync dynamic Qt props on tabgroups
REVIEW: 104695
2012-04-24 20:41:06 +02:00
Thomas Lübking
ae769906de fix quick unmaximization position
CCBUG: 298646
REVIEW: 104702
2012-04-24 20:40:53 +02:00
Lamarque V. Souza
44b2b1e493 Revert "Merge branch 'kwin/active-kconf_update'"
This reverts commit 3676b8dcc9d33155881085ebff6073c372dcd0c9, reversing
changes made to 125533b36bd009b23f659a54d486d73d29081b4f.
2012-04-24 14:57:57 -03:00
Mathias Gottschlag
1d2e3aa327 Let kwin scripts add dynamic properties to client objects.
This enables the script wrapper objects to automatically create new
dynamic properties for Client objects so that scripts can register custom
properties.

REVIEW: 104697
2012-04-24 17:42:16 +02:00
Lamarque V. Souza
64a714b812 Merge branch 'kwin/active-kconf_update' 2012-04-23 17:32:28 -03:00
Hugo Pereira Da Costa
2f9834ad04 Merge branch 'master' of git://anongit.kde.org/kde-workspace 2012-04-23 13:00:36 +02:00
Hugo Pereira Da Costa
f76b087b33 mark title transition as dirty when resizing client, to avoid flicker.
CCBUG: 298428
2012-04-23 11:48:30 +02:00
Martin Gräßlin
ed7d612ef3 Ensure that Extension::init() is only performed once
And call init from Workspace ctor before it gets called
somewhere else (e.g. in the compositor).

REVIEW: 104578
2012-04-22 22:29:17 +02:00
Martin Gräßlin
3ed63d4c45 Reparse Configuration at startup asynchronous
Options loading is split into three parts:
* reparse configuration
* loading of non-compositing related options
* loading of composited related options not needing CompositingPrefs

At startup the reparsing of configuration is done through a Thread
to gain a little bit of less waiting.

Before something else accesses the KConfig for the first time we
wait for the thread to finish and perform the other two loading
operations of Options.

The settings depending on CompositingPrefs will only be invoked
if a compositor is going to be needed.

REVIEW: 104562
2012-04-22 22:29:07 +02:00
Martin Gräßlin
818714432f Move Scripting from main to Workspace
Scripting can be started after everything else is started, there
is no reason to have it in main.cpp.
2012-04-22 22:28:56 +02:00
Martin Gräßlin
563dc7fb8e Do not create Deleted on Workspace Shutdown
When the Workspace is shutting down the compositor is torn down
before Clients and Unmanaged are released. This means that there
is no need to create the Deleted windows.

Furthermore creating the Deleted manipulates the stacking_order
while Workspace dtor loops over this list to release all clients.
This may cause crashes.

BUG: 282933
FIXED-IN: 4.9.0
REVIEW: 104690
2012-04-22 17:50:20 +02:00
Martin Gräßlin
7073b0af40 Export workspace as global property on ScriptEngine in QML bindings
If workspace is exported as a context property there seem to be
issues with the signals which are not bound to a property of
WorkspaceWrapper.

This problems seems to be fixable by exporting the workspace
property as a global property on the script engine.

As a side-effect this also resolves the issue with the clientList,
so we can drop the hack again.

REVIEW: 104682
2012-04-21 15:34:37 +02:00
Martin Gräßlin
175668f2b3 Unexport TabGroup property on Client for scripts
TabGroup is not (and should not be) a QObject which
makes it rather useless in scripting. In order to use
window tabs in KWin scripts the methods to interact
with tabs from Client should be used.

REVIEW: 104685
2012-04-21 12:19:52 +02:00
Thomas Lübking
9ca81a2f79 move sync dbus calls to kactivitymanagerd into extra thread
to prevent broken dbus chain from blocking the compositor

CCBUG: 293104
REVIEW: 104563
2012-04-20 23:59:37 +02:00
Thomas Lübking
0f2bde11b0 allow "under mouse" as regular placement strategy
BUG: 272162
REVIEW: 104650
2012-04-20 23:59:36 +02:00
Thomas Lübking
b12279b6ed implement mousemark effect for xrender
BUG: 298338
FIXED-IN: 4.8.3
REVIEW: 104674
2012-04-20 23:59:32 +02:00
Thomas Lübking
93729709e6 merge geom_pretile & geom_restore
remove some patch bodies
checkWorkspacePosition on geom_restore

CCBUG: 80265
reviewed-by: graesslin
2012-04-20 23:59:25 +02:00
Martin Gräßlin
c4d8a54e98 Keep position in stacking order for deleted windows
Workspace::addDeleted swaps the Client with the Deleted in the
stacking order. For Unmanaged windows the Deleted is appended
to the stacking order which is the same layer.

When the deleted is closed the window is removed from the stacking
order.

The result is that a deleted window is no longer raised above all
other clients.

REVIEW: 104519
BUG: 158262
FIXED-IN: 4.9.0
2012-04-20 08:36:24 +02:00
Martin Gräßlin
f0c6f06241 Stacking Order becomes a list of Toplevel Windows
The common usage of stacking order is to loop through
the list and find a specific Client. All these usages
still need to find a Client. For that the loops are
adjusted to first cast the Toplevel into a Client and
continue if the current item is no Client.

At the moment all entries in the stacking order should
still be Clients as the Deleted are not yet added.
2012-04-20 08:36:24 +02:00
Martin Gräßlin
c175e75939 ConstrainedStackingOrder() return ToplevelList 2012-04-20 08:36:23 +02:00
Martin Gräßlin
f8fd648a61 Move Client::layer() to Toplevel
This allows to copy the layer to the deleted window in order to
keep the deleted window in the same layer.

Additionally a new layer is added for unmanaged windows.
2012-04-20 08:36:23 +02:00
Philipp Knechtges
93b2674313 kwin: dropping several gl(Push|Pop)(Attrib|Matrix) calls
This makes kwin in OpenGL2 mode more coherent with kwin_gles.
Despite some fullscreen effects they should now make the same
(pure) OpenGL calls.

REVIEW: 103804
2012-04-19 21:01:46 +02:00
Script Kiddy
2ebc52e0a5 SVN_SILENT made messages (.desktop file) 2012-04-19 11:15:13 +02:00
Lamarque V. Souza
50169d65c7 Fix compilation. 2012-04-18 10:54:39 -03:00
Lamarque V. Souza
bb4616497a Add kwin/data/active (kconf_update configuration for Plasma Active). 2012-04-18 09:00:24 -03:00
Lamarque V. Souza
365b86f0ce Move kwin/data to kwin/data/desktop so that I can add kwin/data/active. 2012-04-18 08:59:40 -03:00
Script Kiddy
d84316b20d SVN_SILENT made messages (.desktop file) 2012-04-18 09:37:58 +02:00
Thomas Lübking
ab86f0e837 add screen inversion through XF86VidModeSetGammaRamp or XRRSetCrtcGamma
use opengl invert effect as fallback

REVIEW: 104371
2012-04-17 21:11:03 +02:00
Thomas Lübking
1d00436ea4 fix off-by-one on checkUnrestrictedMoveResize
BUG:  210926
FIXED-IN: 4.9
REVIEW: 104632
2012-04-17 21:10:19 +02:00
Thomas Lübking
92939b13d7 detach killHelper process from KWin
BUG: 295940
FIXED-IN: 4.9
REVIEW: 104627
2012-04-17 21:09:44 +02:00
Thomas Lübking
5d6613eb99 withdraw _NET_WM_STATE_DEMANDS_ATTENTION from windows which are attempted t be focus'd but cannot
BUG: 232423
FIXED-IN: 4.9
REVIEW: 104620
2012-04-17 21:09:27 +02:00
Thomas Lübking
3cbdca162a make the rmb popup move trigger an unrestricted move
BUG: 229942
FIXED-IN: 4.9
REVIEW: 104620
2012-04-17 21:09:09 +02:00
Thomas Lübking
7bdf96c2f3 export clientpopup mapping state and use it to skip mouse driven focus changes
BUG: 81743
FIXED-IN: 4.9
REVIEW: 104620
2012-04-17 21:08:35 +02:00
Thomas Lübking
603eaca9d4 store focusMousePosition on unmapNotify events
BUG: 92290
FIXED-IN: 4.9
REVIEW: 104620
2012-04-17 21:07:57 +02:00
Thomas Lübking
651d4e4fbf do not setActive clients which don't take focus on ShadeHover - by this resort re-shade restacking code
BUG: 242217
FIXED-IN: 4.9
REVIEW: 104622
2012-04-17 21:07:16 +02:00
Martin Gräßlin
5c71a75e8e Use setters for parsing the config options
Use setter when changing a value to ensure that signal gets emitted
and the option dependencies are applied.
Also use the default values as provided by the static getters.

REVIEW: 104561
2012-04-16 18:08:25 +02:00
Martin Gräßlin
53a36b3757 Implement relationship between options in setters
Ensure that depending options are set to correct values.
2012-04-16 18:06:25 +02:00
Martin Gräßlin
67425b8a5d Initialize member variables in Options 2012-04-16 18:06:25 +02:00
Martin Gräßlin
7b45ff9a73 Static getters for Options default values
For each option a static getter is introduced returning the
default value.

Some GL compositing related options do not have a proper default
value but depend on the actual GL driver. Sane default values are
assumed for those options.
2012-04-16 18:06:25 +02:00
Martin Gräßlin
f7bcdaa6dd Introduce setters and change signals for all KWin Options
For most of the properties defined in Options a setter and dedicated
change signal is added.
2012-04-16 18:06:25 +02:00
Martin Gräßlin
ca25da7089 Scripting binding to show/hide an outline
REVIEW: 104540
2012-04-16 17:45:49 +02:00
Martin Gräßlin
611e225fd6 Horizontal center the Thumbnail ListView
This ensures that also for a small TabBox with just one item
the thumbnail is nicely centered.

REVIEW: 104541
CCBUG: 297856
2012-04-16 17:42:10 +02:00
Martin Gräßlin
3193b46108 Constrain width of text element in Thumbnail Layout
Fixes a layouting issue when caption does not fit into
the window switcher box.

REVIEW: 104507
CCBUG: 297028
2012-04-16 17:41:57 +02:00
Script Kiddy
9771700b18 SVN_SILENT made messages (.desktop file) 2012-04-16 09:17:32 +02:00
Thomas Lübking
0fe48f971d use compositor to elevate current tabbox window
BUG: 297809
REVIEW: 104538
2012-04-14 23:22:05 +02:00