Commit graph

461 commits

Author SHA1 Message Date
Martin Gräßlin
a6b12108c9 Merge branch 'KDE/4.11'
Conflicts:
	kwin/clients/oxygen/config/oxygendetectwidget.cpp
2014-02-02 12:01:38 +01:00
Marek Marczykowski-Górecki
2ccf1bc3f0 kwin: fix handling of window size hints with PResizeInc
Use base_width/base_height if provided by the application and fallback to
min_width/min_height only if not (according to ICCCM 4.1.2.3).

This fixes long standing bug with shrinking gnome-terminal window.

REVIEW: 115396
2014-02-02 11:57:19 +01:00
Thomas Lübking
ffaa9d336e Merge branch 'KDE/4.11'
Conflicts:
	kcontrol/workspaceoptions/workspaceoptions.desktop
	kwin/sm.cpp
2014-01-29 20:28:27 +01:00
Thomas Lübking
edf0ed895f 1-pass change maximized <-> quicktiled geometry
REVIEW: 115307
2014-01-29 19:57:32 +01:00
Thomas Lübking
4bb88df714 Merge branch 'KDE/4.11' 2014-01-14 22:51:24 +01:00
Thomas Lübking
9de60604c0 properly reset quick_tile_mode on MaxRestore
BUG: 329864
FIXED-IN: 4.11.6
2014-01-14 22:28:50 +01:00
Thomas Lübking
3d389961ff preserve offsets when sending client to screen
for that purpose, move sendToScreen and updateLayer
functions from Workspace to Client, keep wrappers

BUG: 327361
FIXED-IN: 4.11.6
REVIEW: 114078
2014-01-14 22:28:46 +01:00
Thomas Lübking
c4d014eb8c do not ask the deco for borders on every move
REVIEW: 114126
2014-01-14 22:24:38 +01:00
Thomas Lübking
03b23e21d9 fix shortcut driven quicktiling
1. swapping direction would rather toggle tiling
2. the next screen was calculated wrongly (found outmost)
3. the electrictborder geometry was not updated when swapping the mode on screen changes

BUG: 329136
FIXED-IN: 4.11.6
CCBUG: 222921
REVIEW: 114648
2014-01-14 22:23:09 +01:00
Martin Gräßlin
d6a69aea4f [kwin] NETRootInfo::setDesktopGeometry doesn't expect a desktop argument any more 2013-11-18 13:57:06 +01:00
Martin Gräßlin
ba66fd9ef6 [kwin] NETWinInfo2 becomes NETWinInfo
And takes a xcb_connection_t instead of Display. Also our own class
is adjusted to no longer need the connection being passed in.
2013-11-18 13:56:28 +01:00
Martin Gräßlin
0056302652 [kwin] updateXTime before establishing grab for move resize mode
Grabbing the pointer failed causing unrestricted move resize to
operate incorrectly (position didn't update).
2013-11-13 11:28:05 +01:00
Bhushan Shah
935851a2b5 kDebug -> qDebug in kwin 2013-11-01 17:00:41 +05:30
Thomas Lübking
3594550b14 Merge branch 'KDE/4.11'
Conflicts:
	kwin/eglonxbackend.cpp
	kwin/glxbackend.cpp
2013-09-25 23:21:36 +02:00
Thomas Lübking
cb88bc8848 keepInArea, client geometry containment condition
Since windows can place the decoration outside the screen
this needs to be still a valid condition when checking
whether we've to keep in area

In addition: calculate tx, ty and perform one move call
(include rule check and XMoveWindow unless there's a geometry
blocker ...)

BUG: 324792
FIXED-IN: 4.11.2
REVIEW: 112805
2013-09-25 23:09:18 +02:00
Thomas Lübking
4c170a2fdb snap to deco, not client on inner screen borders
client snapping is ultimately reasoned by fitt's law
and inner borders are not infinite

BUG: 323504
FIXED-IN: 4.11
REVIEW: 112103
2013-09-25 23:09:17 +02:00
Thomas Lübking
feafbca941 Merge branch 'KDE/4.11' 2013-09-24 21:33:46 +02:00
Thomas Lübking
6303c8d573 sanitize user/fullscreenable condition
whether or not a window is maximizable does really not
matter (it's not if the size is locked, so the
maximized size is the only size) but only if the
window can take the fullscreen geometry.

otoh, the size restrictions (maximum size, fixed aspect)
should be honored by default but still ignorable by rule

BUG: 324733
FIXED-IN: 4.11.2
REVIEW: 112654
2013-09-24 21:30:49 +02:00
Martin Gräßlin
969e6b85e7 Merge branch 'master' into frameworks-scratch
Conflicts:
	CMakeLists.txt
	kwin/client.cpp
	kwin/effects/highlightwindow/highlightwindow.cpp
	kwin/libkwineffects/kwingltexture.cpp
	kwin/libkwineffects/kwinxrenderutils.cpp
	kwin/scene_opengl.cpp
	kwin/workspace.cpp
	plasma/desktop/applets/kickoff/CMakeLists.txt
	plasma/desktop/applets/taskmanager/package/contents/code/tools.js
	plasma/desktop/applets/taskmanager/package/contents/ui/Task.qml
	plasma/desktop/applets/taskmanager/package/contents/ui/main.qml
	plasma/desktop/applets/taskmanager/package/metadata.desktop
	plasma/desktop/applets/taskmanager/plugin/textlabel.h
	plasma/desktop/applets/tasks/CMakeLists.txt
	plasma/desktop/applets/tasks/package/metadata.desktop
	plasma/desktop/applets/tasks/tasks.cpp
	plasma/desktop/toolboxes/plasma-toolbox-desktoptoolbox.desktop
	plasma/generic/applets/activitybar/activitybar.cpp
	plasma/generic/wallpapers/color/plasma-wallpaper-color.desktop
	plasma/generic/wallpapers/image/plasma-wallpaper-image.desktop
2013-09-24 11:28:38 +02:00
Martin Gräßlin
4576a0b6db Port last UngrabPointer to XCB 2013-09-10 15:30:11 +02:00
Martin Gräßlin
484c61a81e Use Window wrapper methods for manipulating the frame
And by that it's also mostly ported to XCB.
2013-09-10 15:30:10 +02:00
Martin Gräßlin
ba7c5936fe Use Client::m_client instead of Toplevel::window() where useful
Allows to use .setGeometry() instead of XMoveResizeWindow.
2013-09-10 15:30:10 +02:00
Martin Gräßlin
c616dd45fd Use xcb for move/resize the wrapper 2013-09-10 15:30:10 +02:00
Martin Gräßlin
4ddfd2d4ef Remove no longer needed includes from kwin/geometry.cpp 2013-09-09 06:03:35 +02:00
Thomas Lübking
ef351070e7 snap max'd windows to maximize, not movement area
Because that's where it's placed. Notable esp. when there're panels on opposing sides.
Since snapping keeps max'd windows in position, it should preferably keep it in the proper position ;-)

REVIEW: 112322
2013-09-08 23:41:55 +02:00
Martin Gräßlin
211682ab67 KGlobalSettings::dndEventDelay() -> QApplication::startDragDistance() 2013-09-04 16:35:16 +02:00
Martin Gräßlin
139201a2e2 KGlobal::config() -> KSharedConfig::openConfig()
KWin Core says good bye to KGlobal. We will not miss the threading
issues.
2013-09-04 16:11:40 +02:00
Martin Gräßlin
57905c0cc2 And we got rid of KDebug
Usages of kBacktrace got dropped.
2013-09-02 13:14:39 +02:00
Thomas Lübking
2568fcb149 guide partially max'd windows against corner snaps
BUG: 323598
FIXED-IN: 4.11.1
REVIEW: 112124
2013-08-27 07:53:02 +02:00
Martin Gräßlin
9291b18cee Merge branch 'master' into frameworks-scratch
Conflicts:
	CMakeLists.txt
	kwin/effects.cpp
	kwin/effects/logout/logout.cpp
	kwin/effects/presentwindows/main.qml
	kwin/effects/presentwindows/presentwindows.cpp
	kwin/effects/presentwindows/presentwindows.h
	kwin/effects/zoom/zoom_config.cpp
	kwin/libkwineffects/kwinglutils_funcs.cpp
	kwin/libkwineffects/kwinxrenderutils.cpp
	kwin/nvidiahack.cpp
	kwin/xcbutils.h
	plasma/desktop/containments/desktop/plasma-containment-desktop.desktop
	plasma/generic/wallpapers/image/image.cpp
	plasma/generic/wallpapers/image/plasma-wallpaper-image.desktop
2013-08-07 10:10:06 +02:00
Martin Gräßlin
94e4a31370 Port from XLib XSync to xcb sync 2013-07-31 14:05:24 +02:00
Thomas Lübking
0f57c9407a depend titlebar protection dir pref on cap dir
when visualPixels is not 0, this means the titlebar does
not touch an upper/lower border, thus moving that direction
is ok and protection should be sought horizontally

BUG: 322507
FIXED-IN: 4.11
REVIEW: 111573
2013-07-19 21:16:15 +02:00
Thomas Lübking
02ed20662d prevent shrinking away titlebar f. bottom corners
it's the same condition as shriking away from plain edges
(one can resize exclusively in that direction as well)

REVIEW: 111573
2013-07-19 21:14:43 +02:00
Thomas Lübking
eb647c7489 do not emit maximizeChange if mode didn't change
BUG: 321638
FIXED-IN: 4.11
REVIEW: 111262
2013-07-01 21:19:53 +02:00
Martin Gräßlin
fa6b46ef30 Remove dead assignments
Variable deltaX and deltaY are assigned in the if-else branches, but not
read again after being set in the branches.
2013-06-26 17:58:43 +02:00
Thomas Lübking
725534471e exclude padding from snap delta of screen snap
using the actual delta this casewise causes false
preference for window snapping (less to move)
this restores the pre snap-to-content behavior
in that regard and delta isn't used for anything else.

BUG: 321325
FIXED-IN: 4.11
REVIEW: 111139
2013-06-26 12:42:10 +02:00
Thomas Lübking
774e3ec05b ignore desktops and splashes for snapping
Desktops cannot be resonably snapped or cause
implicit screen snapping and splashes are undemanded
short term clients

REVIEW: 111139
2013-06-26 12:42:10 +02:00
Thomas Lübking
cf6acf84b9 deny configure requests to leave QuickTiling
similar to maximization blocking
also ensure the user can permit configure requests
for quick tiled and maximized windows

REVIEW: 111186
BUG: 321491
FIXED-IN: 4.11
2013-06-26 12:42:09 +02:00
Thomas Lübking
e4d9ea9209 prevent NW resizing when window has fixed position
CCBUG: 320908
REVIEW: 110895
2013-06-10 16:37:46 +02:00
Thomas Lübking
516ea86341 block quick tiling unless actually moved
REVIEW: 109485
BUG: 289494
FIXED-IN: 4.11
2013-06-05 14:11:00 +02:00
Martin Gräßlin
aa55cf98ae Port Client's move resize grab window to XCB
Using Xcb::Window to wrap this helper window and port all the used XLib
calls to XCB.

Also renaming the variable to m_ and camel case to follow general naming
scheme.
2013-05-28 11:55:38 +02:00
Martin Gräßlin
59690ee625 Revert the change for when to emit the maximizedChanged signal
It broke the maximize window effect.

REVIEW: 110468
2013-05-17 11:09:49 +02:00
Martin Gräßlin
4022de7075 Use signal/slots instead of deep function calls into decoration
For all the decoration updates called from Client into the decoration we
also have a signal being emitted. So turning the pure virtual public
functions into slots means we can just connect our existing signals and
get rid off the deep function calls.

The keepAbove/Below signals are changed to take a boolean argument as
needed by KDecoration and a few emitted signals are moved to a better
fitting location.

REVIEW: 110335
2013-05-07 16:53:58 +02:00
Martin Gräßlin
8bd3b28335 Remove dead code path from GeometryTip
Ctor parameter save_under is always false.

In additon include proper needed header instead of client.h.

REVIEW: 110272
2013-05-03 08:20:28 +02:00
Martin Gräßlin
cc5d553d65 Change the visual appearance of the composited outline
Uses widgets/translucentbackground as FrameSvg item to ensure that we
don't get a huge black square on the screen.

When bordering a screen edge we disable the border except if all edges
are bordered. This makes a little bit more clear in the quick tiling case
what will be the geometry.

REVIEW: 110176
2013-05-01 19:17:01 +02:00
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
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
Thomas Lübking
7eaacfab18 fix screen update in finishMoveResize
REVIEW: 110056
2013-04-28 17:39:16 +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
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