Commit graph

10647 commits

Author SHA1 Message Date
Martin Gräßlin
b6681ddc3a Turn RootInfo into a KWIN_SINGLETON
It's not a typical singleton as the ctor is not taking a Workspace* and
needs addtional data to be passed to NETRootInfo.

All the initialization code is moved to RootInfo::create() and the tear-
down code is moved to RootInfo::destroyed(). This includes the support
window which used to be a member of Workspace. It's only needed by
RootInfo, so there is no need to have the ownership inside Workspace.

Instead of using a QWidget we just create a normal window through xcb.
It gets destroyed again in the tear-down code after the RootInfo got
destroyed.

REVIEW: 110238
2013-05-01 19:14:38 +02:00
Martin Gräßlin
2320b71cb7 Port Workspace's null focus window to xcb
Adding wrappers to Xcb::Window for setInputFocus.

REVIEW: 110246
2013-05-01 19:10:06 +02:00
Martin Gräßlin
23b395059f s/Time/xcb_timestamp_t/g in workspace.h
REVIEW: 110249
2013-05-01 19:08:00 +02:00
Martin Gräßlin
28d7b3c563 s/Window/xcb_window_t/g in workspace.h 2013-05-01 19:07:56 +02:00
Script Kiddy
52a831d89f SVN_SILENT made messages (.desktop file) 2013-05-01 13:47:48 +02:00
Script Kiddy
ffc0e62f9d SVN_SILENT made messages (.desktop file) 2013-05-01 09:12:42 +02:00
Script Kiddy
0922410d5b SVN_SILENT made messages (.desktop file) 2013-04-30 17:35:40 +02:00
Martin Gräßlin
db18c08dd0 Move RootInfo and WinInfo into an own header and impl file
Main motivation for this change is that it's unhandy to have the class
definition in workspace.h and client.h while the implementation is in
events.cpp although nothing in events.cpp uses it directly.

By getting it out of workspace.h we get the header a little bit smaller
which should improve compile time given that it's included almost
everywhere.

In events.cpp the enum usage is changed to NETWinInfo as that's the class
where they are defined.

RootInfo does no longer hold a workspace pointer. Where it's needed it
uses the singleton accessor of Workspace.

REVIEW: 110199
2013-04-30 08:06:12 +02:00
Martin Gräßlin
65ec86113a Split out Rules related code from Workspace into class RuleBook
Workspace is hardly interacting with Rules and all the Rules related code
is already in rules.cpp. This highly qualifies to move all the code out
of Workspace and improve the names.

REVIEW: 110207
2013-04-30 07:52:08 +02:00
Jaime Torres
4ec0f64ea3 initialize a member and initialize a boolean
one less valgrind warning and one cppcheck warning less

REVIEW: 107603
2013-04-29 18:14:50 +02:00
Martin Gräßlin
6dc64841a7 Cleanup and reorder includes in client.cpp
REVIEW: 110205
2013-04-29 08:42:44 +02:00
Martin Gräßlin
4a48325de5 Cleanup and reorder includes in client.h
Removing the workspace include required to include it in many other
places.
2013-04-29 08:42:36 +02:00
Thomas Lübking
c380acca3f fix screen count alignment
REVIEW: 110119
2013-04-28 17:39:17 +02:00
Thomas Lübking
4ec1a9bb3a rules kcm, detection use X11 to grab the pointer
BUG: 318437
REVIEW: 110078
FIXED-IN: 4.11
2013-04-28 17:39:16 +02:00
Thomas Lübking
d2f9d8feee validate screen and max'd state on packing windows
REVIEW: 110054
BUG: 304506
FIXED-IN: 4.11
2013-04-28 17:39:16 +02:00
Thomas Lübking
7eaacfab18 fix screen update in finishMoveResize
REVIEW: 110056
2013-04-28 17:39:16 +02:00
Thomas Lübking
2cc6712564 keep electric edges 1/3" away from the corners
BUG: 318294
FIXED: 4.11
REVIEW: 110013
2013-04-28 17:39:16 +02:00
Thomas Lübking
551c9f4c22 expose ElectricBorderCornerRatio to config GUI
BUG: 308993
FIXED-IN: 4.11
REVIEW: 109683
2013-04-28 17:39:16 +02:00
Will Stephenson
aa8fd5f86c Fix copy and paste error in desktop file 2013-04-26 23:40:26 +02:00
Martin Gräßlin
4351d6ce44 Cleanup and reorder includes in toplevel.h
REVIEW: 110202
2013-04-26 12:33:44 +02:00
Martin Gräßlin
67b59f693c Uninline Toplevel::pid()
It's only used from one method and requires to have NETWinInfo being
included in the header.
2013-04-26 12:32:09 +02:00
Martin Gräßlin
94470f1ea2 Change Toplevel::damage_handle to xcb_damage_damage_t
Damage handling has already been ported to XCB - no need to keep it on an
XLib datatype.
2013-04-26 12:32:08 +02:00
Martin Gräßlin
2ab0de12e9 Remove dead code 2013-04-26 12:32:08 +02:00
Martin Gräßlin
eb6ce2b7c4 Remove XDamageNotifyEvent* argument from Toplevel::damageNotifyEvent
It's not used...

REVIEW: 110201
2013-04-26 12:31:07 +02:00
Martin Gräßlin
89c2fd5598 Remove YesIKnowWhatImDoing from internal API
No need to have Allowed everywhere.

REVIEW: 110197
2013-04-26 12:29:42 +02:00
Script Kiddy
8e8a18748d SVN_SILENT made messages (.desktop file) 2013-04-26 08:56:47 +02:00
Martin Gräßlin
4a28d000cf Move ShortcutDialog to useractions
It's only used from useractions.cpp which means that it's not the best
fit in utils. We can see the problems with it given that it was in an
ifdef and it included quite some headers into everything.

REVIEW: 110189
2013-04-26 08:53:13 +02:00
Martin Gräßlin
22ecba3b7d Cleanup of includes in utils.h
* removed unneeded includes
* reordered
* camel case

REVIEW: 110188
2013-04-26 08:50:24 +02:00
Martin Gräßlin
929ba0d9c8 Re-order includes in workspace.cpp
* own > kwin > KDE > Qt
* camel case for KDE includes
* alphabetic order in the various groups
2013-04-26 08:49:51 +02:00
Martin Gräßlin
8a2357d89e Remove unused includes from workspace.cpp 2013-04-26 08:48:36 +02:00
Martin Gräßlin
c094c7e7cd Cleanup includes and forward declarations in workspace.h 2013-04-26 08:47:33 +02:00
Martin Gräßlin
03656a2abe Remove ShapeInput define from utils.h
It's nowhere used inside KWin.

REVIEW: 110190
2013-04-26 08:39:01 +02:00
Martin Gräßlin
ee537050dd Remove extern initing from utils.h
It's only used in main.cpp where the static variable is defined.

REVIEW: 110191
2013-04-26 08:38:00 +02:00
Script Kiddy
832f2b5a89 SVN_SILENT made messages (.desktop file) 2013-04-25 09:25:02 +02:00
Martin Gräßlin
2e758ed6a7 Add an elevate() method to Toplevel
Shortcut to set an elevated window without the need to check whether
effects pointer is valid and retrieving EffectWindow etc.

REVIEW: 110147
2013-04-25 09:08:27 +02:00
Martin Gräßlin
cd025c7526 Make Outline a KWIN_SINGLETON
Given that Outline is now a QObject hold by Workspace, but not used in
Workspace, it can also be a KWIN_SINGLETON.

REVIEW: 110146
2013-04-25 09:04:02 +02:00
Martin Gräßlin
1a3bc3f60c Split Outline in a composited and non-composited part
The non-composited part handles the showWithX case with the four small
windows. The composited part shows a translucent QWidget with the
FrameSvg as done by the selection effect frame.

Outline connects to the Compositor toggled signal to switch the mode if
compositing gets suspended/resumed. This works fine also in the case that
the switch happens while the outline is shown. To support this Outline
is now a QObject and created with Workspace as a parent.

Given that the Outline handles both cases by itself, the outline effect
is no longer needed and is dropped together with all the hooks into the
effect system.
2013-04-25 09:04:02 +02:00
Martin Gräßlin
83e3f18014 Drop BoxSwitch Effect
BoxSwitch effect has been obsoleted by QML based
Window and Desktop Switchers.

FEATURE: 296071
FIXED-IN: 4.11.0
REVIEW: 104454
2013-04-24 12:03:58 +02:00
Martin Gräßlin
8c4d695907 Remove thumbnail bar from CoverSwitch Effect
The usage has always been questionable as the thumbnails are
too small to properly recognize something.

Now BoxSwitch Effect has reach its end of life which would have
required to keep most of the code just for this thumbnail bar.

If required it would be better to integrate the normal QML based
TabBox to be rendered together with an effect.

BUG: 296070
FIXED-IN: 4.11.0
2013-04-24 12:03:46 +02:00
Martin Gräßlin
5046345da0 New desktop switcher layout showing previews of the desktops
Inspired by the desktop switching mode of the boxswitch effect.

REVIEW: 110037
BUG: 296069
FIXED-IN: 4.11
2013-04-24 11:47:26 +02:00
Martin Gräßlin
0eff8a81c1 Role names for Desktop Tabbox model 2013-04-24 11:47:15 +02:00
Martin Gräßlin
466bef3a6d Adding a DesktopThumbnailItem declarative item
Similar to WindowThumbnailItem for rendering a desktop thumbnail.
Uses the new paintDesktop hook.

FEATURE: 296067
FIXED-IN: 4.11.0
REVIEW: 104441
2013-04-24 11:45:47 +02:00
Martin Gräßlin
ae7be07d0f Effects Hook to paint a desktop
A specialised paintScreen method to render all windows of one
desktop. It's intended to be called during an already started
paintScreen process to get e.g. a thumbnail of a desktop.

Currently not yet exported to the Effects.
2013-04-24 11:43:23 +02:00
Martin Gräßlin
8037e6529c Rename ThumbnailItem to WindowThumbnailItem
This is for discrimination from the to be added DesktopThumbnailItem.
The name for QML is unchanged to keep the public API stable.
2013-04-24 11:43:22 +02:00
Martin Gräßlin
db91db3a4f Refactoring: break out a base class for ThumbnailItem
Everything that has nothing to do with rendering the window thumbnail
goes into an AbstractThumbnailItem.

This is a preparation step for adding a DesktopThumbnailItem.
2013-04-24 11:43:22 +02:00
Martin Gräßlin
7c489e43d9 Plasma Package support for desktop switcher layouts
The existing desktop switcher becomes the first available layout called
"informative". For both variants of desktop switchers a new config key is
introduced to define the desktop switcher layout.

Desktop layouts are installed into a different directory than window
switcher layout and use a different service type.

For the moment it's basically a hidden config option as there are no
further layouts yet.

BUG: 296068
FIXED-IN: 4.11
REVIEW: 110021
2013-04-24 11:33:06 +02:00
Martin Gräßlin
badc7a2bc4 Remove show outline from TabBox
It's an option doing pretty much the same as the highlight of selected
window option. But it is known to conflict especially with some Plasma
themes.

BUG: 310935
FIXED-IN: 4.11
REVIEW: 110140
2013-04-24 10:02:57 +02:00
Martin Gräßlin
6d0d9cfe43 Remove KWin::Notifications
Overall all notifications except compositing suspended by DBus were
configured by default to not have any action. This means all the time we
emit a notification we keep DBus and KDED busy for nothing.

All the cases when a notification is triggered ire also exported to
KWin scripting, so if one really needs to handle something in case a
window is moved, it could be done through a KWin script with much more
context about the event.

REVIEW: 110113
BUG: 258097
FIXED-IN: 4.11
2013-04-23 16:23:55 +02:00
Martin Gräßlin
a836612a92 Move Composite suspended by dbus notification directly to where it's used 2013-04-23 16:21:30 +02:00
Martin Gräßlin
5b56cff520 Remove demands attention notification 2013-04-23 16:21:30 +02:00