diff options
Diffstat (limited to 'twin/geometry.cpp')
| -rw-r--r-- | twin/geometry.cpp | 51 |
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()) { |
