Commit Graph

29 Commits (5803fa23539f617b36283f425175751b3592dae5)

Author SHA1 Message Date
Thomas Lübking 0fe48f971d use compositor to elevate current tabbox window
BUG: 297809
REVIEW: 104538
2012-04-14 23:22:05 +02:00
Martin Gräßlin c2ebd35cad Use Show desktop item instead of empty text in TabBox
If there are no windows for Alt+Tab the Show Desktop entry
is shown. This works better with both layouts and effects.
Before this change effects were not activated at all but
a fallback to the layouts was used. Concerning the layouts
some looked rather bad. E.g. Thumbnails did not show a
thumbnail but a legacy text had been shown.

When a window gets added to the empty list, the show desktop
window is removed and consequently when the last window goes
away the show desktop entry is added again.

There is a not considered corner case: if there is no desktop
window, the show desktop functionality is not available and
the behavior is unfortunately undefined. It is a corner case
as we can expect that there is always a desktop window when
using KWin. E.g. there is either Plasma Desktop or Netbook
and on PA there is always at least one window.

BUG: 260938
FIXED-IN: 4.9.0
REVIEW: 104379
2012-03-25 12:00:26 +02:00
Martin Gräßlin d03c73a223 Add proper key navigation to layout based window switchers
The grabbed key events inside TabBox are forwarded to the declarative
view which passes it to the normal keyPressedEvent() method. This
allows the QML files to handle keyboard navigation themselves.

The views support key navigation natively, though this cannot be
used as we need to update the ModelIndex when a new item is selected.
Also there seems to be a problem if the tabbox is shown again, in
that case the focus seems to be somehow lost. Because of that the
navigation is handled in the Item embedding the list.

REVIEW: 104357
FEATURE: 291916
FIXED-IN: 4.9.0
2012-03-25 11:55:35 +02:00
Albert Astals Cid e3d2cb9a61 Do not animate the highlight the first time the tabbox is shown
REVIEW: 104340
Acked by Martin Gräßlin
(cherry picked from commit 56345a9f158790e5f7102618c55c600cc688c855)

Conflicts:

	kwin/tabbox/declarative.cpp
	kwin/tabbox/declarative.h
2012-03-21 00:02:21 +01:00
Martin Gräßlin 2e69668f99 Fix TabBoxHandler::containsPos for desktop switching box 2012-01-14 15:02:30 +01:00
Martin Gräßlin 58725981eb Drop more unused TabBox related code
Especially we do no longer need to invoke JavaScript methods from C++.
2012-01-14 15:01:42 +01:00
Martin Gräßlin 9bb59dc1ed Fix incorrect merge from KDE/4.8 branch
CCMAIL afiestas@kde.org
2012-01-14 14:10:46 +01:00
Alex Fiestas 9e943bf39e Merge branch 'KDE/4.8'
Conflicts:
	kwin/tabbox/tabboxhandler.cpp
2012-01-14 13:25:19 +01:00
Martin Gräßlin a243d0b0b8 Delete highlight windows property from correct window
TabBox is always declarative view.
2012-01-14 11:55:39 +01:00
Martin Gräßlin c85452d517 Drop old (non QML) TabBox
This includes the delegates, the layout configuration for the delegates
and the custom view for the TabBox.

This can now finally be done as desktop tabbox is based on QML, too.
2012-01-14 11:51:35 +01:00
Martin Gräßlin e1cbb33631 Desktop Box support for QML based TabBox
First very simple layout just rendering icon and name.
Good enough for the start.
2012-01-14 11:51:35 +01:00
Martin Gräßlin ff8c0e3f8f Emit a signal when an item gets selected 2011-12-02 10:48:04 +01:00
Martin Gräßlin 5eb5a60cc5 Embedded mode for TabBox
DBus method to embedd the TabBox into another window. It follows
the geometry changes and keeps a defined offset to the borders of
the parent window.

Required for Plasma Active's window strip.
2011-12-01 08:48:18 +01:00
Martin Gräßlin d2c7123dc6 TabBox becomes activatable through a DBus interface
Therefore TabBox is changed to be controlled without pressing a
modifier key. Tab and Backtab are valid keys now which can be
used to navigate in the list and return, enter and space can be
used to close the box (and select the client).

The TabBox is exported as object /TabBox on the kwin interface
providing start and close methods and signal when the TabBox got
closed.
2011-11-27 16:38:11 +01:00
Martin Gräßlin ba98af770a Add safety check for invalid ModelIndex
With the new QML tabbox it could happen that the index is not
valid and nothing is selected in the view.
2011-11-04 19:27:02 +01:00
Martin Gräßlin 8b9e7f56cf Pass mouse events to declarative Tabbox
The ListViews have therefore to emit a signal when the item changed
due to a mouse click event.
2011-10-31 14:34:37 +01:00
Martin Gräßlin aa17081fe8 TabBox in QML
All the default layouts (informative, compact, text, small and big icons)
are rewritten in QML and replace the ListView used before. The old code
is still around for the desktop switching modes which are not yet ported.

Next steps include to update the configuration module to not show now
obsoleted settings as well as providing a better way to choose the layout.

REVIEW: 102948
2011-10-30 16:07:14 +01:00
Martin Gräßlin 9cb53d5d30 Create TabBoxView when first used
When effects are active we never need the "classic" TabBoxView.
Nevertheless it was always created when KWin started up. By
delaying the creation some ressources should be saved if the user
only uses effects.

REVIEW: 101897
2011-07-12 21:02:57 +02:00
Martin Gräßlin 2ce4d166a1 Move loading of the TabBox Config XML into a thread
This should improve the KWin startup time as some IO is moved
into another thread. Till the config is loaded the TabBox blocks
all signals to activate the TabBox, but it is unlikely that alt+tab
is tried to be used before KWin is completely started.
2011-07-12 21:02:48 +02:00
Martin Gräßlin c703dca4b2 Remove leftover from splitting out the Outline handling
Should have been removed with 44b83f951aeb3221c43ef3356e46650248b673cd
2011-07-09 11:25:49 +02:00
Martin Gräßlin ff3900d825 Refactor KWin Outline code into an own class
This change unduplicates some code and merges it into one class
allowing us to use an replacement effect for the outline in
future.
CCMAIL: a.arlt@stud.uni-heidelberg.de
REVIEW: 100848
2011-04-28 11:19:05 +02:00
Thomas Lübking 096691db01 secure referenced windows in uncomposited tabbox highlighting
forward port of 8aa28760efc3a77d0e8f48b6ede142d898b44856
BUG: 263250
2011-02-14 21:17:49 +01:00
Martin Gräßlin 0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Thomas Lübking 647eaa8afb raise alt+tab selected window w/o compositing (requires highlight windows option to be checked)
unlink composited window highlighting from the tabbox
-> results in semi-legacy behaviour w/o activating the selected window

BUG: 227344

svn path=/trunk/KDE/kdebase/workspace/; revision=1186871
2010-10-17 19:49:07 +00:00
Martin Gräßlin 646c7909d3 Do not activate highlight windows in desktop switching. This fixes a crash in walk through desktops.
BUG: 223432

svn path=/trunk/KDE/kdebase/workspace/; revision=1096422
2010-02-26 16:50:45 +00:00
Martin Gräßlin 4591f8bacd Less warnings please
svn path=/trunk/KDE/kdebase/workspace/; revision=1042345
2009-10-29 17:03:02 +00:00
Martin Gräßlin f538de9b1d Fix broken navigation in tabbox if a tabular layout is used and there is an odd number of items.
svn path=/trunk/KDE/kdebase/workspace/; revision=1042344
2009-10-29 17:02:54 +00:00
Andreas Kling c4b279eed5 Fixed two uninitialized reads on startup ({m_,}isShown)
svn path=/trunk/KDE/kdebase/workspace/; revision=1022869
2009-09-13 12:15:04 +00:00
Martin Gräßlin 76f17e6de1 Here comes the new TabBox. It is a complete rewrite using a MVC approach. Here some highlights:
* Models and Delegates for Clients and Desktops
 * Horizontal, vertical and tabular layout
 * Layout of one item can be configured by an XML definition
 * A desktop item can include a client list
 * An optional second list view showing only the selected item
 * A new KCM "kwintabbox"
 * An alternative TabBox with independent settings and keybindings
 * Optional Highlight Windows effect integration
 * List scrolls instead of removing items
 * Scroll wheel support
 * Cursor key support
 * Middle click on item closes window
BUG: 195745
BUG: 197187
BUG: 201103
FEATURE: 118184
FEATURE: 156723
FEATURE: 177441
FEATURE: 182897
FEATURE: 193882
GUI:

svn path=/trunk/KDE/kdebase/workspace/; revision=1022861
2009-09-13 11:36:45 +00:00