Commit graph

10133 commits

Author SHA1 Message Date
Martin Gräßlin
4f536c7f3d Extend ScopedCPointer from QScopedPointer with QScopedPointerPodDeleter
REVIEW: 108242
2013-01-25 08:56:33 +01:00
Martin Gräßlin
6c213d4392 Make use of new Xcb Wrapper classes
Use WindowAttributes and WindowGeometry everywhere where the xcb commands
had already been used.

Introduces another wrapper for overlay window and a subclass for query
tree which also wrapps the children command.
2013-01-25 08:51:38 +01:00
Martin Gräßlin
2d4b67d361 Do not use a shared pointer for the Xcb::Wrapper
It's not really needed, the required functionality can be achieved in a
more implicit way. The reply pointer is managed by the Wrapper class as
long as the method take() is not invoked. This method follows the
semantics of QScopedPointer::take(). That is the pointer is set to null
and the responsibility to free the pointer is passed to the callee.

By this change we do not have the overhead of creating a QSharedPointer.

In addition the Wrapper provides a copy ctor and assignment operator also
using the semantics of take().
2013-01-25 08:51:38 +01:00
Martin Gräßlin
1e47911ab0 Discard reply in ~Wraper if not yet retrieved
Ensures that we don't leak replies.
2013-01-25 08:51:37 +01:00
Martin Gräßlin
b3885dcb99 Adjusting some of the default values in kwin.kcfg
* using the existing enum types
* adjusting the settings which recently changed.
2013-01-24 14:17:19 +01:00
Alexander Jones
15bb0c26a6 KConfigXT for Windows, ElectricBorders, MouseBindings, and Compositing groups
REVIEW: 108347
2013-01-24 09:42:46 +01:00
Jekyll Wu
9f359e3016 Merge branch 'KDE/4.10' 2013-01-24 16:37:06 +08:00
Yuri Chornoivan
cb345dfbd7 Fix spacing 2013-01-24 07:32:54 +02:00
Thomas Lübking
9ae3cd3618 turn labels into checkboxes
BUG: 313228
2013-01-23 21:28:26 +01:00
Thomas Lübking
664f06e005 re-fix resetShowingDesktop invocation
was fixed with f9e182068f380fc67b89501bf40f16aa35dd861b
broke it with 3433b31a085a6d3f9439532777cab8fdf1cdf663

REVIEW: 108452
BUG: 302248
2013-01-23 21:28:26 +01:00
Thomas Lübking
6ea8909ae4 keep tabbox kcm more on the left
CC: kde@privat.broulik.de
2013-01-23 21:28:26 +01:00
Thomas Lübking
ad36e510e4 don't zoom or clamp windows on effect start/end
REVIEW: 108477
BUG: 294428
2013-01-23 21:28:25 +01:00
Thomas Lübking
5d0e383924 don't stopMousePolling when not started
REVIEW: 108536
BUG: 313655
2013-01-23 21:28:25 +01:00
Thomas Lübking
671f84debc turn labels into checkboxes
BUG: 313228
2013-01-23 21:27:47 +01:00
Thomas Lübking
36378925e7 Check max viewport and texture dimensions
REVIEW: 106917
2013-01-23 21:27:46 +01:00
Thomas Lübking
c8e2b61f48 32 bit compositing suspension
REVIEW: 108304
BUG: 308438
2013-01-23 21:27:46 +01:00
Thomas Lübking
31f20cb4b1 push zoomregion on contact
BUG: 312956
2013-01-23 21:27:46 +01:00
Thomas Lübking
1a5640cfc5 continuous zoom animation support, constant time driven 2013-01-23 21:27:46 +01:00
Thomas Lübking
74fa33497f reset generic shader after zoom
REVIEW: 108252
BUG: 304435
2013-01-23 21:27:45 +01:00
Thomas Lübking
e642c5cb9d Use the NULL Uuid instead of "ALL"
to indicate "on all activities"

REVIEW: 107855
2013-01-23 21:27:45 +01:00
Thomas Lübking
e51e0112c4 re-fix resetShowingDesktop invocation
was fixed with f9e182068f380fc67b89501bf40f16aa35dd861b
broke it with 3433b31a085a6d3f9439532777cab8fdf1cdf663

REVIEW: 108452
BUG: 302248
2013-01-23 21:27:45 +01:00
Thomas Lübking
d4e12dc815 keep tabbox kcm more on the left
CC: kde@privat.broulik.de
2013-01-23 21:27:44 +01:00
Thomas Lübking
c312914f6e don't zoom or clamp windows on effect start/end
REVIEW: 108477
BUG: 294428
2013-01-23 21:27:43 +01:00
Thomas Lübking
9a5db24cdf don't stopMousePolling when not started
REVIEW: 108536
BUG: 313655
2013-01-23 21:27:43 +01:00
Weng Xuetian
4252671095 Merge remote-tracking branch 'origin/KDE/4.10' 2013-01-23 14:26:49 -05:00
Script Kiddy
d9a7b6023d SVN_SILENT made messages (.desktop file) 2013-01-23 13:10:44 +01:00
Martin Gräßlin
fdbf89dac8 Ensure we destroy our test windows 2013-01-23 11:47:55 +01:00
Script Kiddy
9b508d15e4 SVN_SILENT made messages (.desktop file) 2013-01-23 08:28:11 +01:00
Martin Gräßlin
ed4bd2dd5b Suppress animation in Aurorae on creation
Introducing a global animate flag which will be set to enabled once the
Component completed and all border values, etc. are set.
2013-01-23 07:37:25 +01:00
Martin Gräßlin
99e39c8654 Introduce a dedicated borders element in Aurorae
The Borders element provides the four properties:
* left
* right
* top
* bottom

And is used directly in Decoration for all the different kind of settings
following this pattern:
* normal borders
* maximized borders
* padding
* extended borders

These properties replace the existing used borderLeft & co. This makes
the code in the C++ side easier as the various border elements can now be
read with a shared implementation.

The Borders provide some convenient methods to set the sizes of the
borders. E.g. it's possible to just set the side borders to a specific
value. This should simplify the implementation of the no-side-borders
feature in new decoration.

The aurorae qml and plastik are adjusted to use the new way. Existing
3rd party decorations would break, but there's a good reason why there's
no documentation for QML based decorations ;-)

REVIEW: 108436
2013-01-23 07:36:41 +01:00
Script Kiddy
382c2a309b SVN_SILENT made messages (.desktop file) 2013-01-22 20:36:49 +01:00
Script Kiddy
7245237062 SVN_SILENT made messages (.desktop file) 2013-01-22 16:17:03 +01:00
Martin Gräßlin
f2028efe91 Fix another compile error with Extensions hidden in an assert 2013-01-22 14:01:35 +01:00
Marco Martin
240dd25d8d Merge branch 'KDE/4.10'
Conflicts:
	plasma/generic/applets/lock_logout/metadata.desktop
2013-01-22 13:20:13 +01:00
Martin Gräßlin
c2943c63a5 Port KWin::errorMessage to new Xcb::Extensions
Code section had been in an #ifndef NDEBUG which is the reason why I did
not find the usage of Extensions there and why it always compiled
successfully.

Some data elements which got dropped needed to be added again like a name
for the extension and errorBase, etc.

Sorry for the inconvenience of a semi-broken master.
2013-01-22 13:17:07 +01:00
Martin Gräßlin
b967527db3 Use XCB to resolve the X11 Extensions
The extension handling is removed from kwinglobals and moved into the
xcbutils in KWin core in namespace KWin::Xcb. The motivation for this
change is that the Extensions are only used in KWin core and are marked
as internal. So there is no need to have them in the library.

What remains in Extensions are the non-native pixmaps. This will be
removed once we are on Qt 5 as QPixmap can no longer reference an XPixmap.

The remaining code in kwinglobals also still initialize the XLib versions
of extensions emitting events. It seems like there are no XEvents emitted
if not done so even if the extension is correctly initialized with xcb.
This needs to be removed once the event handling is ported over to xcb.

REVIEW: 107832
2013-01-22 07:50:03 +01:00
Martin Gräßlin
5cd223f051 Improved resolving whether a window is on local machine
Most windows use the hostname in WM_CLIENT_MACHINE, but there are windows
using the FQDN (for example libreoffice). So instead of "foo" it is
"foo.local.net" or similar. The logic so far has been unable to properly
determine whether windows with FQDN are on the local system.

In order to solve this problem the handling is split out into an own
class which stores the information of hostname and whether it is a local
machine. This is to not query multiple times. To determine whether the
Client is on the local system getaddrinfo is used for the own hostname
and the FQDN provided in WM_CLIENT_MACHINE. If one of the queried
names matches, we know that it is on the local machine. The old logic to
compare the hostname is still used and getaddrinfo is only a fallback in
case hostname does not match.

The problem with getaddrinfo is, that it accesses the network and by that
could block. To circumvent this problem the calls are moved into threads
by using QtConcurrent::run.

Obviously this brings disadvantages. When trying to resolve whether a
Client is on the local machine and a FQDN is used, the information is
initially wrong. The new ClientMachine class emits a signal when the
information that the system is local becomes available, but for some
things this is just too late:
* window rules are already gathered
* Session Management has already taken place

In both cases this is an acceptable loss. For window rules it just needs
a proper matching of the machine in case of localhost (remote hosts are
not affected). And the case of session management is very academic as it
is unlikely that a restoring session contains remote windows.

BUG: 308391
FIXED-IN: 4.11
REVIEW: 108235
2013-01-21 16:00:49 +01:00
Martin Gräßlin
819b474a79 Introduce property "visible" on EffectWindow
This property can be used to check whether a window is currently visible
to the user, that is:
* not minimized
* on the current desktop
* on current activity

This is a common need for various effects.

REVIEW: 108341
2013-01-21 15:56:58 +01:00
Script Kiddy
763a953d4a SVN_SILENT made messages (.desktop file) 2013-01-21 12:47:21 +01:00
Script Kiddy
2781f240b6 SVN_SILENT made messages (.desktop file) 2013-01-21 08:20:27 +01:00
Script Kiddy
26a316d044 SVN_SILENT made messages (.desktop file) 2013-01-20 11:57:59 +01:00
Script Kiddy
eb22a0ea1c SVN_SILENT made messages (.desktop file) 2013-01-20 07:52:28 +01:00
Script Kiddy
61e92cf442 SVN_SILENT made messages (.desktop file) 2013-01-18 12:35:32 +01:00
Script Kiddy
96f88dda18 SVN_SILENT made messages (.desktop file) 2013-01-18 08:08:47 +01:00
Script Kiddy
589ed300d1 SVN_SILENT made messages (.desktop file) 2013-01-17 12:53:52 +01:00
Martin Gräßlin
debb71285f Support arrays in callDBus method of KWin Scripting
Thanks to Jan Palus for providing the patch.

BUG: 311896
FIXED-IN: 4.10
2013-01-17 09:30:09 +01:00
Script Kiddy
8154d50dec SVN_SILENT made messages (.desktop file) 2013-01-17 08:15:16 +01:00
Aaron Seigo
de008fe200 Merge branch 'KDE/4.10' 2013-01-16 16:17:20 +01:00
Script Kiddy
3cddfdecff SVN_SILENT made messages (.desktop file) 2013-01-16 12:37:47 +01:00
Script Kiddy
f49ad23e8a SVN_SILENT made messages (.desktop file) 2013-01-16 08:25:39 +01:00