summaryrefslogtreecommitdiffstats
path: root/twin/geometry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'twin/geometry.cpp')
-rw-r--r--twin/geometry.cpp51
1 files changed, 28 insertions, 23 deletions
diff --git a/twin/geometry.cpp b/twin/geometry.cpp
index 581c07ac1..bf8dfeee3 100644
--- a/twin/geometry.cpp
+++ b/twin/geometry.cpp
@@ -223,12 +223,12 @@ TQRect Workspace::clientArea( clientAreaOption opt, int screen, int desktop ) co
{
if( desktop == NETWinInfo::OnAllDesktops || desktop == 0 )
desktop = currentDesktop();
- TQDesktopWidget *desktopwidget = kapp->desktop();
+ TQDesktopWidget *desktopwidget = tdeApp->desktop();
TQRect sarea = screenarea // may be NULL during KWin initialization
? screenarea[ desktop ][ screen ]
: desktopwidget->screenGeometry( screen );
TQRect warea = workarea[ desktop ].isNull()
- ? kapp->desktop()->geometry()
+ ? tdeApp->desktop()->geometry()
: workarea[ desktop ];
switch (opt)
{
@@ -802,7 +802,7 @@ TQRect Client::adjustedClientArea( const TQRect &desktopArea, const TQRect& area
// HACK: workarea handling is not xinerama aware, so if this strut
// reserves place at a xinerama edge that's inside the virtual screen,
// ignore the strut for workspace setting.
- if( area == kapp->desktop()->geometry())
+ if( area == tdeApp->desktop()->geometry())
{
if( stareaL.left() < screenarea.left())
stareaL = TQRect();
@@ -1379,7 +1379,7 @@ void Client::sendSyntheticConfigureNotify()
c.border_width = 0;
c.above = None;
c.override_redirect = 0;
- XSendEvent( tqt_xdisplay(), c.event, TRUE, StructureNotifyMask, (XEvent*)&c );
+ XSendEvent( tqt_xdisplay(), c.event, True, StructureNotifyMask, (XEvent*)&c );
}
const TQPoint Client::calculateGravitation( bool invert, int gravity ) const
@@ -1692,7 +1692,7 @@ bool Client::isMaximizable() const
return false;
}
if ( maximizeMode() != MaximizeRestore )
- return TRUE;
+ return true;
TQSize max = maxSize();
#if 0
if( max.width() < 32767 || max.height() < 32767 ) // sizes are 16bit with X
@@ -2328,26 +2328,19 @@ bool Client::startMoveResize()
moveResizeMode = true;
initialMoveResizeGeom = geometry();
- if (activeTiled)
+ if ( maximizeMode() != MaximizeRestore )
{
- // Restore original geometry
- activeTiled = false;
if (options->resetMaximizedWindowGeometry() && isMove()) {
/* Original geometry might be smaller than the tiled one, so the
* mouse pointer might appear off-window when untiling.
* Here we center the window horizontally under the mouse pointer.
* This should work with most window decorations.
*/
- activeTiledOrigGeom.moveLeft(TQCursor::pos().x() - (activeTiledOrigGeom.width() / 2));
- moveOffset.setX(TQCursor::pos().x() - activeTiledOrigGeom.x());
+ geom_restore.moveLeft(TQCursor::pos().x() - (geom_restore.width() / 2));
+ moveOffset.setX(TQCursor::pos().x() - geom_restore.x());
- setGeometry(activeTiledOrigGeom);
- }
- }
+ setGeometry(geom_restore);
- if ( maximizeMode() != MaximizeRestore )
- {
- if (options->resetMaximizedWindowGeometry() && isMove()) {
maximize(MaximizeRestore);
}
else {
@@ -2369,21 +2362,21 @@ bool Client::startMoveResize()
if (rules()->checkMoveResizeMode( options->moveMode ) == Options::Opaque)
{
savedOpacity_ = opacity_;
- setOpacity(options->translucentMovingWindows, options->movingWindowOpacity);
+ setOpacity(options->translucentMovingWindows ? options->movingWindowOpacity : Opacity::Opaque);
}
if ( ( isMove() && rules()->checkMoveResizeMode( options->moveMode ) != Options::Opaque )
|| ( isResize() && rules()->checkMoveResizeMode( options->resizeMode ) != Options::Opaque ) )
{
grabXServer();
- kapp->sendPostedEvents();
+ tdeApp->sendPostedEvents();
// we have server grab -> nothing should cause paint events
// unfortunately, that's not completely true, Qt may generate
// paint events on some widgets due to FocusIn(?)
// eat them, otherwise XOR painting will be broken (#58054)
// paint events for the geometrytip need to be allowed, though
// eater = new EatAllPaintEvents;
-// not needed anymore? kapp->installEventFilter( eater );
+// not needed anymore? tdeApp->installEventFilter( eater );
}
Notify::raise( isResize() ? Notify::ResizeStart : Notify::MoveStart );
@@ -2411,7 +2404,7 @@ void Client::finishMoveResize( bool cancel )
kdDebug() <<"finishing moveresize in active mode, cancel is " << cancel << endl;
activeMaximizing = false;
activeTiled = true;
- activeTiledOrigGeom = initialMoveResizeGeom;
+ geom_restore = initialMoveResizeGeom;
switch (activeMode)
{
case ActiveMaximizeMode: {
@@ -2425,7 +2418,6 @@ void Client::finishMoveResize( bool cancel )
setGeometry(cancel ? initialMoveResizeGeom
: activeBorderMaximizeGeometry());
}
- activeTiledOrigGeom.moveTopLeft(rect().topLeft());
}
checkMaximizeGeometry();
@@ -2437,7 +2429,7 @@ void Client::leaveMoveResize()
{
// rule out non opaque windows from useless translucency settings, maybe resizes?
if (rules()->checkMoveResizeMode( options->moveMode ) == Options::Opaque)
- setOpacity(true, savedOpacity_);
+ setOpacity(savedOpacity_);
if ((isResize() && options->removeShadowsOnResize) || (isMove() && options->removeShadowsOnMove))
updateShadowSize();
clearbound();
@@ -2726,6 +2718,16 @@ ActiveMaximizingMode Client::activeBorderMode() const
return activeMode;
}
+void Client::setActiveBorderPos( TQPoint pos )
+{
+ activePos = pos;
+}
+
+TQPoint Client::activeBorderPos() const
+{
+ return activePos;
+}
+
void Client::setActiveBorder(ActiveBorder border) {
currentActiveBorder = border;
}
@@ -2766,7 +2768,7 @@ void Client::cancelActiveBorderMaximizing() {
TQRect Client::activeBorderMaximizeGeometry()
{
TQRect ret;
- TQRect max = workspace()->clientArea(MaximizeArea, TQCursor::pos(), workspace()->currentDesktop());
+ TQRect max = workspace()->clientArea(MaximizeArea, activePos, workspace()->currentDesktop());
switch (activeBorderMode())
{
case ActiveMaximizeMode:
@@ -2831,7 +2833,10 @@ TQRect Client::activeBorderMaximizeGeometry()
void Client::tileToBorder(ActiveBorder border) {
if (!isResizable()) return;
activeTiled = true;
+ if (maximizeMode() == MaximizeRestore)
+ geom_restore = geometry();
setActiveBorderMode(ActiveTilingMode);
+ setActiveBorderPos(TQCursor().pos());
setActiveBorder(border);
TQRect geo = activeBorderMaximizeGeometry();
if (geo.isValid() && !geo.isEmpty()) {