Commit graph

511 commits

Author SHA1 Message Date
Martin Gräßlin
b7a8bb4f52 Drop build option KWIN_BUILD_SCREENEDGES
The build option got introduced for Plasma Active back in a time
when we did not properly aim for convergence. In a Plasma 5 world
we want to have only one shell and one window manager which adjust
itself. This means we don't want a differently compiled kwin for
plasma active, but the same one. Thus the build option doesn't
make much sense any more. A KWin for touch interface needs to support
screenedges for the case that mouse is plugged in.

CCBUG: 340960
REVIEW: 121200
2014-11-24 10:48:49 +01:00
Martin Gräßlin
4419b3debf Desktop switchers moved to kdeplasma-addons
Last but not least.
2014-10-31 09:34:48 +01:00
Martin Gräßlin
905c1f8f9d [tabbox/qml] Default desktop switcher moved to look and feel package
REVIEW: 120884
2014-10-31 09:12:56 +01:00
Martin Gräßlin
e79f0d54f2 [tabbox] Get DesktopSwitcher from look and feel package
Like with WindowSwitcher the configured value might be for the
look and feel package and thus we should first try to locate it
from the look and feel package.
2014-10-31 09:11:23 +01:00
Martin Gräßlin
d9dc53e0ed [tabbox] Window Switcher layouts moved to kdeplasma-addons
REVIEW: 120881
2014-10-31 09:10:24 +01:00
Martin Gräßlin
6a8d2236eb [tabbox] Sidebar window switcher got moved to plasma-workspace
It's now part of the org.kde.breeze.desktop look and feel package.
2014-10-29 08:29:29 +01:00
Martin Gräßlin
ddc1e6de59 [tabbox] Try locating the WindowSwitcher QML through configured lnf package
We assume the configured layout name is a look and feel package. Thus
the Switcher is located at contents/windowswitcher/WindowSwitcher.qml
of that package.

REVIEW: 120849
2014-10-28 16:53:23 +01:00
Volker Krause
5db2d5a556 Make constants const, saves a few symbols in the .data section. 2014-09-27 20:30:49 +02:00
l10n daemon script
e340d1ba05 SVN_SILENT made messages (.desktop file) 2014-09-19 09:03:02 +00:00
l10n daemon script
493e9b3238 SVN_SILENT made messages (.desktop file) 2014-09-02 10:43:26 +00:00
Thomas Lübking
d44aedbcac always use establishTabBoxGrab instead un/grabX*
BUG: 337853
2014-08-11 21:27:40 +02:00
l10n daemon script
28c7f3c47d SVN_SILENT made messages (.desktop file) 2014-06-29 08:41:34 +00:00
l10n daemon script
4a88e1b005 SVN_SILENT made messages (.desktop file) 2014-06-16 08:24:58 +00:00
l10n daemon script
e73f6b2278 SVN_SILENT made messages (.desktop file) 2014-06-10 10:37:36 +00:00
Martin Gräßlin
1f4981fc0b [tabbox] Bring back disabled unit tests
SwitcherItem is disabled for the unit test to reduce pulled in deps.
2014-06-10 11:14:59 +02:00
Martin Gräßlin
f747f370b3 [tabbox] Fix key navigation in icons based tabbox 2014-06-05 08:11:34 +02:00
Martin Gräßlin
d1798202e8 [tabbox] Fix forwarding grabbed key event to QQuickItem
We need to send the event to a QQuickItem which accepts focus. Just
sending it to the Window or to the contentItem doesn't work as there is
no activeFocusItem (might be related to having the keyboard grabbed).

We try to send the event to all children of the Window's content item.
There should hopefully be one item which accepts the event and properly
reacts on cursor keys.

REVIEW: 118471
2014-06-05 08:11:34 +02:00
Martin Gräßlin
ec6a1810d4 [tabbox] Drop DBus interface and embedded functionality
Both were only added for the use case of Plasma Active. In the next
iteration we won't need the embedded any more as Plasma is able to draw
thumbnails by itself. So there is neither need for the embedded
functionality nor for the D-Bus interface.

REVIEW: 118464
2014-06-02 10:46:34 +02:00
Martin Gräßlin
b83f63edf2 [tabbox] Use XCB_CURRENT_TIME for xcb_allow_event
BUG: 335187
2014-06-01 17:20:01 +02:00
Martin Gräßlin
41b7b7f3e5 [tabbox] Pass parent to TabBoxHandler
Required to get it cleaned up on KWin tear down.

Fixes crash on restart.

REVIEW: 118344
2014-05-27 10:12:00 +02:00
Martin Gräßlin
3cd932f441 [tabbox] Fix cleanup of TabBoxHandlerPrivate
Iterating from constBegin to constBegin doesn't make any sense m(
2014-05-27 10:08:36 +02:00
Martin Gräßlin
97726a4b1f [TabBox] Fix forcedGlobalMouseGrab
Was incompletely moved to TabBox after splitting out from Workspace.

REVIEW: 118259
2014-05-23 07:31:00 +02:00
Martin Gräßlin
1a36364a05 [kwin/tabbox] New default window switcher layout is sidebar
CCMAIL: plasma-devel@kde.org
2014-05-22 09:00:42 +02:00
Marco Martin
6bd16ab166 fix some label layout issues 2014-05-16 14:20:21 +02:00
Marco Martin
bca1ea4f1d KWin.Switcher currentIndex follows listview one 2014-05-16 14:14:10 +02:00
Marco Martin
a9417c2d11 round positions
makes the text render correctly
2014-05-16 14:11:24 +02:00
Marco Martin
787b0d8cdf scroll the view to make the current item shown 2014-05-16 14:07:44 +02:00
Martin Gräßlin
83c76f21a4 [tabbox/sidebar] Mass improve layouting in sidebar
* Apply anchoring fixes to the Thumbnail
* Use RowLayout for the caption
* elide the text of the caption
* fix binding loops

Reviewed-By: Marco Martin
2014-05-16 11:50:05 +02:00
l10n daemon script
203d043a09 SVN_SILENT made messages (.desktop file) 2014-05-16 08:23:41 +00:00
Martin Gräßlin
365d75ad06 [tabbox] Fix layouting of thumbnail items
We don't have access to the margins specified in anchors resulting in
incorrect thumbnail position. To fix this we need to create a dummy item
which does the anchoring and the thumbnail needs to just be an
anchors.fill: parent.

REVIEW: 118113
2014-05-16 07:37:23 +02:00
Martin Gräßlin
e38a98ff04 [tabbox/grid] Use RowLayout for the item's caption
Simplifies the code quite a bit by no longer needing an extra item for
the selected caption.

As a nice side effect it fixes a binding loop.

BUG: 334537
REVIEW: 118112
2014-05-16 07:36:46 +02:00
Martin Gräßlin
1f30efb333 [tabbox/icons] Fix reference error 2014-05-15 10:41:52 +02:00
Martin Gräßlin
4142872da4 [tabbox/sidebar] Remove not needed data element in delagate
This fixes that the thumbnails do not get rendered.
2014-05-15 10:37:53 +02:00
Martin Gräßlin
2653160c5a [tabbox/qml] Do not export the item's model data as a variant
The hack to get the model data from the currently selected item to the
areas outside the list view apparently broke in Qt. Now we have to export
the model data elements we actually use.

BUG: 334478
REVIEW: 118047
2014-05-13 09:20:34 +02:00
l10n daemon script
a87567a271 SVN_SILENT made messages (.desktop file) 2014-05-07 08:26:38 +00:00
l10n daemon script
7553c411c2 SVN_SILENT made messages (.desktop file) 2014-05-03 08:32:58 +00:00
l10n daemon script
2f28437e24 SVN_SILENT made messages (.desktop file) 2014-05-02 08:51:14 +00:00
l10n daemon script
2838a9b606 SVN_SILENT made messages (.desktop file) 2014-04-29 10:12:33 +00:00
l10n daemon script
15aa971aab SVN_SILENT made messages (.desktop file) 2014-04-29 04:54:44 +00:00
Martin Gräßlin
5014e2874b Fix comparison between signed and unsigned integer expressions warning 2014-04-28 17:29:06 +02:00
l10n daemon script
e1f418f4d0 SVN_SILENT made messages (.desktop file) 2014-04-28 09:00:35 +00:00
l10n daemon script
f44575ddbf SVN_SILENT made messages (.desktop file) 2014-04-28 05:16:52 +00:00
l10n daemon script
69c3289c18 SVN_SILENT made messages (.desktop file) 2014-04-27 21:02:43 +00:00
l10n daemon script
43fd082b0a SVN_SILENT made messages (.desktop file) 2014-04-06 05:11:55 +00:00
l10n daemon script
e6db000065 SVN_SILENT made messages (.desktop file) 2014-04-04 05:29:27 +00:00
l10n daemon script
eef56c98b2 SVN_SILENT made messages (.desktop file) 2014-04-03 05:10:09 +00:00
David Faure
20bc3ff68b Include ksharedconfig.h (since it will be removed from kpluginfactory.h) 2014-03-29 09:32:06 +01:00
Marco Martin
16253d7fc3 qtextracomponents->kquickcontrolsaddons 2014-03-25 17:13:43 +01:00
Martin Gräßlin
12a4923959 [kwin] Use std::find_if and lambda functions for Workspace::findUnmanaged
Instead of passing the macro based Predicate to findUnmanaged it now
expects a function which can be passed to std::find_if.

Existing code like:
xcb_window_t window; // our test window
Unmanaged *u = findUnmanaged(WindowMatchPredicated(window));

becomes:
Unmanaged *u = findUnmanaged([window](const Unmanaged *u) {
    return u->window() == window;
});

In addition an overload is added which takes the window id to cover
the common case to search for an Unmanaged by its ID. The above example
becomes:
Unmanaged *u = findUnmanaged(window);

The advantage is that it is way more flexible and has the logic what
to check for directly with the code and not hidden in the macro
definition.
2014-03-25 15:17:10 +01:00
l10n daemon script
10f89d6019 SVN_SILENT made messages (.desktop file) 2014-03-24 04:35:26 +00:00
Martin Gräßlin
38201a8295 Properly support key events in TabBox over InputRedirection
Forward all key press events to the TabBox if it is currently grabbed and
connect the TabBox to the modifiers changed signal for checking if TabBox
should be ended.
2014-03-19 14:14:56 +01:00
Martin Gräßlin
d1d3401b9f Register KWin's global shortcuts with the new shortcut system
All the KWin core shortcuts get also registered inside the new global
shortcut system so that they are still triggered when running KWin on
Wayland.
2014-03-19 14:14:56 +01:00
Martin Gräßlin
46392a337d [kwin] Port autotests away from kde4_add_unit_test 2014-03-18 11:49:53 +01:00
l10n daemon script
07a5088f42 SVN_SILENT made messages (.desktop file) 2014-03-18 05:07:11 +00:00
Aleix Pol
c72e519d9c Remove KDE/ prefix in include directories
It's unneeded and deprecated since KF5.
2014-03-17 16:24:10 +01:00
l10n daemon script
2242efeb06 SVN_SILENT made messages (.desktop file) 2014-03-13 04:46:24 +00:00
Martin Gräßlin
869c087e21 [kwin] Use QQmlEngine from Scripting in TabBox
Instead of having it's own QQmlEngine TabBox just uses the newly
exposed engine from Scripting and creates a new context for it's
own usage.

REVIEW: 116565
2014-03-10 09:09:01 +01:00
l10n daemon script
b7a029619b SVN_SILENT made messages (.desktop file) 2014-03-03 04:35:02 +00:00
Matteo De Carlo
8a9cdba6ae Replace NULL with nullptr in tabbox folder
Replacing all NULL to nullptr in all the files in tabbox folder
(also substituting some "0" used as nullptr with nullptr)

REVIEW: 115917
2014-02-24 16:42:43 +01:00
l10n daemon script
9c8800249a SVN_SILENT made messages (.desktop file) 2014-02-24 04:38:53 +00:00
l10n daemon script
31d0cc055b SVN_SILENT made messages (.desktop file) 2014-02-22 04:23:30 +00:00
l10n daemon script
6f8c3dd771 SVN_SILENT made messages (.desktop file) 2014-02-18 05:12:30 +00:00
l10n daemon script
f67e67e5f0 SVN_SILENT made messages (.desktop file) 2014-02-09 05:45:40 +00:00
Martin Gräßlin
04716ae5e3 [kwin] Rename tests subdirectories to autotests
Follows the naming schemes in frameworks and opens up the possibility
to include test applications for KWin in the tests subdirectory.
2014-01-30 11:01:59 +01:00
l10n daemon script
2297dccdc6 SVN_SILENT made messages (.desktop file) 2014-01-21 04:13:28 +00:00
l10n daemon script
22a5e1109f SVN_SILENT made messages (.desktop file) 2014-01-19 04:06:03 +00:00
l10n daemon script
eac8a41fed SVN_SILENT made messages (.desktop file) 2014-01-15 04:10:52 +00:00
l10n daemon script
4ed47fd70b SVN_SILENT made messages (.desktop file) 2014-01-12 04:10:53 +00:00
l10n daemon script
ce8c99cbef SVN_SILENT made messages (.desktop file) 2014-01-06 04:01:54 +00:00
l10n daemon script
1fb1a178fd SVN_SILENT made messages (.desktop file) 2014-01-05 04:08:18 +00:00
Martin Gräßlin
8de72623c6 [kwin/tabbox] Use property binding for x and y properties
After changes in PlasmaCore.Dialog we can finally get rid of updating
the position on each visible change.

It's not 100 % perfect yet, seems the binding on screenGeometry is not
working properly. That needs investigation.
2014-01-03 12:59:14 +01:00
Martin Gräßlin
47f443479c [kwin] Port Plasma::Dialog from windowFlags to flags 2014-01-03 11:33:14 +01:00
l10n daemon script
e05a97f216 SVN_SILENT made messages (.desktop file) 2014-01-03 04:48:00 +00:00
Mihail Ivchenko
d7e2df674a [kwin] Add a method longestCaption() in TabBox::DesktopModel.
REVIEW: 114585
2013-12-22 10:40:28 +01:00
l10n daemon script
22640e26f3 SVN_SILENT made messages (.desktop file) 2013-12-22 04:09:59 +00:00
l10n daemon script
da9baf3de6 SVN_SILENT made messages (.desktop file) 2013-12-20 04:27:47 +00:00
l10n daemon script
d138d12261 SVN_SILENT made messages (.desktop file) 2013-12-17 04:08:15 +00:00
Martin Gräßlin
1d7ee61741 [kwin] Register QAbstractItemModel as a qml type in TabBox
It's needed if we don't import any Plasma components.
2013-12-16 11:48:41 +01:00
l10n daemon script
fcd15efb31 SVN_SILENT made messages (.desktop file) 2013-12-16 04:03:25 +00:00
l10n daemon script
3e5ce246d8 SVN_SILENT made messages (.desktop file) 2013-12-15 04:06:27 +00:00
l10n daemon script
a9d29b0d7c SVN_SILENT made messages (.desktop file) 2013-12-14 03:57:59 +00:00
l10n daemon script
4f1c1c2c83 SVN_SILENT made messages (.desktop file) 2013-12-13 04:38:28 +00:00
Martin Gräßlin
d6e1920be3 [kwin/tabbox] Delete no longer needed declarative.(h|cpp)
Used to be the QQuickView implementation for the tabbox. As it's now
controlled through opening windows from QML directly it's no longer
needed or used anywhere.
2013-12-12 11:32:57 +01:00
Martin Gräßlin
f5340a27c5 [kwin/tabbox] Drop define TABBOX_KCM
No longer needed as the preview does not include the tabboxhandler
any more.
2013-12-12 11:29:25 +01:00
Martin Gräßlin
f07209d685 [kwin/tabbox] Remove no longer needed tabbox.qml and ShadowedSvgItem.qml 2013-12-12 09:39:56 +01:00
Martin Gräßlin
af639d90e7 [kwin/tabbox] Adjust thumbnail desktop switcher to API changes 2013-12-12 09:37:30 +01:00
Martin Gräßlin
2f513476a6 [kwin/tabbox] Adjust informative desktop switcher to API change
Note: icon list seems broken
2013-12-12 09:37:30 +01:00
Martin Gräßlin
a24218a9a1 [kwin/tabbox] Drop window strip switcher
No longer needed in a Plasma2 world as the components have a thumbnail
component, so the hack to go over KWin to render the thumbnails is no
longer needed.

Approved by Aaron on mailinglist:
https://mail.kde.org/pipermail/active/2013-December/007254.html
2013-12-12 09:37:30 +01:00
Martin Gräßlin
5e41e13a39 [kwin/tabbox] Adjust icon tabboxes to API changes 2013-12-12 09:37:30 +01:00
Martin Gräßlin
a23b73cb02 [kwin/tabbox] Adjust sidebar to API changes 2013-12-12 09:37:30 +01:00
Martin Gräßlin
53e8aa1238 [kwin/tabbox] Adjust thumbnails to API change 2013-12-12 09:37:30 +01:00
Martin Gräßlin
f6eb594c2d [kwin/tabbox] Adjust Grid to API change 2013-12-12 09:37:30 +01:00
Martin Gräßlin
1c953821c1 [kwin/tabbox] Adjust Compact to API change 2013-12-12 09:37:30 +01:00
Martin Gräßlin
1deb986870 [kwin/tabbox] Fix naming of Text only tabbox 2013-12-12 09:37:30 +01:00
Martin Gräßlin
2448b8d4b2 [kwin/tabbox] Adjust text tabbox to new API 2013-12-12 09:37:30 +01:00
Martin Gräßlin
4ff2a5ea3e [kwin/tabbox] Informative qml uses new Switcher item and PlasmaCore.Dialog
Reference implementation for the adjustments to use a PlasmaCore.Dialog
and the new required switcher item.
2013-12-12 09:37:29 +01:00
Martin Gräßlin
d536532f66 [kwin/tabbox] Use a QmlComponent instead of a QQuickView for TabBox
By not using a QQuickView it becomes possible to just use a
PlasmaCore.Dialog or a Quick.Window in the TabBox qml and thus it's
possible to simplify the qml code.

To support this a new SwitcherItem is introduced and exported to QML.
It's a simple QObject providing all the properties which used to be
exported to the root context. A declarative TabBox is expected to
use one of these items. The C++ side finds the Switcher and for that
supports the case that the SwitcherItem is the rootItem or a child
item.

A declarative TabBox has also to create a QQuickWindow, e.g. a
PlasmaCore.Dialog. The visibility of that window should be controlled
through the visible property on the SwitcherItem. The underlying C++
implementation assumes that a TabBox only uses one window (it needs to
get destroyed once it's hidden and included in highlight windows).

Thanks to this change it's no longer needed to reload the TabBox
whenever it gets shown or the alternative TabBox gets shown. Instead
the same QML script can get reused. Other created switchers are ignored
as the visible property won't be changed to true.
2013-12-12 09:37:29 +01:00
Martin Gräßlin
3f7344501f [kwin/tabbox] Make ClientModel::longestClient() invokable
This allows to just invoke the method on the model instead of setting
it from the C++ side.
2013-12-12 09:37:29 +01:00
Martin Gräßlin
edeb8051e9 [kwin] Remove KActionCollection usage in TabBox
Only feature used by KActionCollection is setting the object name.
2013-12-10 09:34:11 +01:00
Martin Gräßlin
d9c29805b1 [kwin/tabbox] Remove the modalActionSwitch
The modalActionSwitch was used to disable all of KWin's actions during
Alt+Tab. This is not needed as Alt+Tab uses a keyboard grab and thus
no action will be triggered anyway.

Furthermore the functionality had been broken for years. The effects
use an own KActionCollection so their actions aren't considered and
neither the scripts.
2013-12-10 09:31:41 +01:00