From a64c48384870e07d06bc87ff14dfe711e2922f74 Mon Sep 17 00:00:00 2001 From: Mavridis Philippe Date: Wed, 12 Jul 2023 11:54:45 +0300 Subject: [PATCH] twin: Add opaque tiling option Signed-off-by: Mavridis Philippe (cherry picked from commit bc6893644c1ae2dc82c9a30b5c1d6cb3d0f193e1) --- twin/client.h | 1 + twin/geometry.cpp | 93 +++++++++-------- twin/kcmtwin/twinoptions/windows.cpp | 147 ++++++++++++++++----------- twin/kcmtwin/twinoptions/windows.h | 35 +++---- twin/options.cpp | 5 +- twin/options.h | 3 +- twin/workspace.cpp | 2 +- 7 files changed, 163 insertions(+), 123 deletions(-) diff --git a/twin/client.h b/twin/client.h index d895fc441..98ff68c1a 100644 --- a/twin/client.h +++ b/twin/client.h @@ -237,6 +237,7 @@ class Client : public TQObject, public KDecorationDefines ActiveMaximizingMode activeBorderMode() const; ActiveBorder activeBorder() const; void setActiveBorderMaximizing(bool maximizing); + void cancelActiveBorderMaximizing(); bool isActiveBorderMaximizing() const; TQRect activeBorderMaximizeGeometry(); diff --git a/twin/geometry.cpp b/twin/geometry.cpp index 4bb6714ae..2dd752b02 100644 --- a/twin/geometry.cpp +++ b/twin/geometry.cpp @@ -2216,8 +2216,8 @@ void Client::updateFullScreenHack( const TQRect& geom ) workspace()->updateClientLayer( this ); // active fullscreens get different layer } -static TQRect* visible_bound = 0; -static GeometryTip* geometryTip = 0; +static TQRect* visible_bound = nullptr; +static GeometryTip* geometryTip = nullptr; void Client::drawbound( const TQRect& geom ) { @@ -2258,34 +2258,33 @@ void Client::doDrawbound( const TQRect& geom, bool clear ) p.drawRect( g ); } -void Client::positionGeometryTip() - { - assert( isMove() || isResize()); +void Client::positionGeometryTip() { + assert(isMove() || isResize()); + // Position and Size display - if (options->showGeometryTip()) - { - if( !geometryTip ) - { // save under is not necessary with opaque, and seem to make things slower + if (options->showGeometryTip()) { + if (!geometryTip) { + // save under is not necessary with opaque, and seem to make things slower bool save_under = ( isMove() && rules()->checkMoveResizeMode( options->moveMode ) != Options::Opaque ) - || ( isResize() && rules()->checkMoveResizeMode( options->resizeMode ) != Options::Opaque ); + || ( isResize() && rules()->checkMoveResizeMode( options->resizeMode ) != Options::Opaque ); geometryTip = new GeometryTip( &xSizeHint, save_under ); - } - TQRect wgeom( moveResizeGeom ); // position of the frame, size of the window itself - wgeom.setWidth( wgeom.width() - ( width() - clientSize().width())); - wgeom.setHeight( wgeom.height() - ( height() - clientSize().height())); - if( isShade()) - wgeom.setHeight( 0 ); - geometryTip->setGeometry( wgeom ); - if( !geometryTip->isVisible()) - { + } + + // position of the frame, size of the window itself + TQRect wgeom(isActiveBorderMaximizing() ? activeBorderMaximizeGeometry() : moveResizeGeom); + wgeom.setWidth(wgeom.width() - (width() - clientSize().width())); + wgeom.setHeight(isShade() ? 0 : wgeom.height() - (height() - clientSize().height())); + + geometryTip->setGeometry(wgeom); + if (!geometryTip->isVisible()) { geometryTip->show(); geometryTip->raise(); - } } } +} class EatAllPaintEvents - : public QObject + : public TQObject { protected: virtual bool eventFilter( TQObject* o, TQEvent* e ) @@ -2373,7 +2372,7 @@ bool Client::startMoveResize() // 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; + // eater = new EatAllPaintEvents; // not needed anymore? kapp->installEventFilter( eater ); } Notify::raise( isResize() ? Notify::ResizeStart : Notify::MoveStart ); @@ -2403,10 +2402,9 @@ void Client::finishMoveResize( bool cancel ) activeMaximizing = false; activeTiled = true; activeTiledOrigGeom = initialMoveResizeGeom; - switch(activeMode) + switch (activeMode) { - case ActiveMaximizeMode: - { + case ActiveMaximizeMode: { if (!cancel) { bool full = (maximizeMode() == MaximizeFull); setMaximize(!full, !full); @@ -2511,26 +2509,21 @@ void Client::checkUnrestrictedMoveResize() } } -void Client::handleMoveResize( int x, int y, int x_root, int y_root ) - { +void Client::handleMoveResize(int x, int y, int x_root, int y_root) { if ( (mode == PositionCenter && !isMovable()) || (mode != PositionCenter && (isShade() || !isResizable())) ) return; - if (!moveResizeMode) - { + if (!moveResizeMode) { TQPoint p(TQPoint( x, y ) - moveOffset); - if (p.manhattanLength() >= 6) - { - if(!startMoveResize()) - { + if (p.manhattanLength() >= 6) { + if (!startMoveResize()) { buttonDown = false; setCursor( mode ); return; } } - else - return; + else return; } // ShadeHover or ShadeActive, ShadeNormal was already avoided above @@ -2686,13 +2679,16 @@ void Client::handleMoveResize( int x, int y, int x_root, int y_root ) if (update) { - if (rules()->checkMoveResizeMode(isResize() ? options->resizeMode : options->moveMode) == Options::Opaque - && !isActiveBorderMaximizing()) + bool active = isActiveBorderMaximizing(); + auto mode = active ? options->tilingMode + : isResize() ? options->resizeMode : options->moveMode; + + if (rules()->checkMoveResizeMode(mode) == Options::Opaque) { - setGeometry( moveResizeGeom ); + setGeometry(active ? activeBorderMaximizeGeometry() : moveResizeGeom); positionGeometryTip(); } - else if (rules()->checkMoveResizeMode(isResize() ? options->resizeMode : options->moveMode) == Options::Transparent ) + else if (rules()->checkMoveResizeMode(mode) == Options::Transparent) { /* It's necessary to move the geometry tip when there's no outline * shown, otherwise it would cause repaint problems in case @@ -2701,11 +2697,12 @@ void Client::handleMoveResize( int x, int y, int x_root, int y_root ) */ clearbound(); positionGeometryTip(); - drawbound(isActiveBorderMaximizing() ? activeBorderMaximizeGeometry() : moveResizeGeom); + drawbound(active ? activeBorderMaximizeGeometry() : moveResizeGeom); } } - if (isMove()) - workspace()->checkActiveBorder(globalPos, GET_QT_X_TIME()); + if (isMove()) { + workspace()->checkActiveBorder(globalPos, GET_QT_X_TIME()); + } } void Client::setActiveBorderMode( ActiveMaximizingMode mode ) @@ -2734,16 +2731,24 @@ bool Client::isActiveBorderMaximizing() const void Client::setActiveBorderMaximizing( bool maximizing ) { activeMaximizing = maximizing; + bool opaque = rules()->checkMoveResizeMode(options->tilingMode) == Options::Opaque; - if (maximizing || rules()->checkMoveResizeMode(isResize() ? options->resizeMode : options->moveMode) == Options::Opaque) { + if (maximizing || opaque) { clearbound(); } - if (maximizing) { + if (maximizing && !opaque) { drawbound(activeBorderMaximizeGeometry()); } } +void Client::cancelActiveBorderMaximizing() { + activeMaximizing = false; + if (rules()->checkMoveResizeMode(options->tilingMode) == Options::Transparent) { + clearbound(); + } +} + TQRect Client::activeBorderMaximizeGeometry() { TQRect ret; diff --git a/twin/kcmtwin/twinoptions/windows.cpp b/twin/kcmtwin/twinoptions/windows.cpp index b4f51401c..4731f43d9 100644 --- a/twin/kcmtwin/twinoptions/windows.cpp +++ b/twin/kcmtwin/twinoptions/windows.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include #include #include @@ -58,10 +58,11 @@ // twin config keywords #define KWIN_FOCUS "FocusPolicy" #define KWIN_PLACEMENT "Placement" -#define KWIN_MOVE "MoveMode" +#define KWIN_MOVE_MODE "MoveMode" +#define KWIN_RESIZE_MODE "ResizeMode" +#define KWIN_TILING_MODE "TilingMode" #define KWIN_MINIMIZE_ANIM "AnimateMinimize" #define KWIN_MINIMIZE_ANIM_SPEED "AnimateMinimizeSpeed" -#define KWIN_RESIZE_OPAQUE "ResizeMode" #define KWIN_GEOMETRY "GeometryTip" #define KWIN_AUTORAISE_INTERVAL "AutoRaiseInterval" #define KWIN_AUTORAISE "AutoRaise" @@ -644,8 +645,15 @@ KActiveBorderConfig::KActiveBorderConfig(bool _standAlone, TDEConfig *_config, T active_tile_conf = new TQWidget(active_box); TQHBoxLayout *active_tile_conf_hbox = new TQHBoxLayout(active_tile_conf); active_tile_conf_hbox->addSpacing(20); - active_tile_conf_hbox->setAutoAdd(true); - active_maximize = new TQCheckBox(i18n("Maximize windows by dragging them to the &top of the screen"), active_tile_conf); + TQVBox *active_tile_conf_vbox = new TQVBox(active_tile_conf); + active_tile_conf_hbox->addWidget(active_tile_conf_vbox); + active_maximize = new TQCheckBox(i18n("Maximize windows by dragging them to the &top of the screen"), active_tile_conf_vbox); + tilingOpaque = new TQCheckBox(i18n("Display content &while tiling windows"), active_tile_conf_vbox); + TQWhatsThis::add(tilingOpaque, i18n("Enable this option if you want a window's" + " content to be shown while tiling it," + " instead of just showing a window" + " 'skeleton'. The result may not be " + " satisfying on slow machines.")); delays = new KIntNumInput(10, active_box); delays->setRange(0, MAX_EDGE_RES, 50, true); @@ -675,15 +683,18 @@ KActiveBorderConfig::KActiveBorderConfig(bool _standAlone, TDEConfig *_config, T active_vbox->addSpacing(15); active_vbox->addWidget(delays); active_vbox->addWidget(distance); + active_vbox->addSpacing(15); + active_vbox->addWidget(tilingOpaque); connect(active_box, TQT_SIGNAL(clicked(int)), this, TQT_SLOT(updateActiveBorders())); - // Any changes goes to slotChanged() + // Any changes go to slotChanged() connect(active_box, TQT_SIGNAL(clicked(int)), this, TQT_SLOT(changed())); connect(active_move, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed())); connect(active_maximize, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed())); connect(delays, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(changed())); connect(distance, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(changed())); + connect(tilingOpaque, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed())); lay->addWidget(active_box); lay->addStretch(); @@ -708,6 +719,12 @@ void KActiveBorderConfig::load() { setActiveBorderDelay(active_borders_delay); setActiveBorderDistance(config->readNumEntry(KWIN_ACTIVE_BORDER_DISTANCE, 10)); + TQString tilingMode = config->readEntry(KWIN_TILING_MODE, "Opaque"); + if (tilingMode == "Opaque") + setTilingMode(OPAQUE); + else if (tilingMode == "Transparent") + setTilingMode(TRANSPARENT); + emit TDECModule::changed(false); } @@ -722,6 +739,12 @@ void KActiveBorderConfig::save() { config->deleteEntry(KWIN_OLD_ACTIVE_BORDERS); config->deleteEntry(KWIN_OLD_ACTIVE_BORDER_DELAY); + int tilingMode = getTilingMode(); + if (tilingMode == OPAQUE) + config->writeEntry(KWIN_TILING_MODE, "Opaque"); + else + config->writeEntry(KWIN_TILING_MODE, "Transparent"); + if (standAlone) { config->sync(); @@ -736,9 +759,18 @@ void KActiveBorderConfig::defaults() { setActiveBorders(0); setActiveBorderDelay(150); setActiveBorderDistance(10); + setTilingMode(TRANSPARENT); emit TDECModule::changed(true); } +int KActiveBorderConfig::getTilingMode() { + return tilingOpaque->isChecked() ? OPAQUE : TRANSPARENT; +} + +void KActiveBorderConfig::setTilingMode(int opaque) { + tilingOpaque->setChecked(opaque == OPAQUE); +} + void KActiveBorderConfig::updateActiveBorders() { active_desktop_conf->setEnabled(active_desktop->isChecked()); active_tile_conf->setEnabled(active_tile->isChecked()); @@ -958,17 +990,17 @@ KMovingConfig::KMovingConfig (bool _standAlone, TDEConfig *_config, TQWidget *pa TQBoxLayout *bLay = new TQVBoxLayout; wLay->addLayout(bLay); - opaque = new TQCheckBox(i18n("Di&splay content in moving windows"), windowsBox); - bLay->addWidget(opaque); - TQWhatsThis::add( opaque, i18n("Enable this option if you want a window's content to be fully shown" - " while moving it, instead of just showing a window 'skeleton'. The result may not be satisfying" - " on slow machines without graphic acceleration.") ); + moveOpaque = new TQCheckBox(i18n("Di&splay content in moving windows"), windowsBox); + bLay->addWidget(moveOpaque); + TQWhatsThis::add(moveOpaque, i18n("Enable this option if you want a window's content to be fully shown" + " while moving it, instead of just showing a window 'skeleton'. The result may not be satisfying" + " on slow machines without graphic acceleration.")); - resizeOpaqueOn = new TQCheckBox(i18n("Display content in &resizing windows"), windowsBox); - bLay->addWidget(resizeOpaqueOn); - TQWhatsThis::add( resizeOpaqueOn, i18n("Enable this option if you want a window's content to be shown" - " while resizing it, instead of just showing a window 'skeleton'. The result may not be satisfying" - " on slow machines.") ); + resizeOpaque = new TQCheckBox(i18n("Display content in &resizing windows"), windowsBox); + bLay->addWidget(resizeOpaque); + TQWhatsThis::add(resizeOpaque, i18n("Enable this option if you want a window's content to be shown" + " while resizing it, instead of just showing a window 'skeleton'. The result may not be satisfying" + " on slow machines.")); geometryTipOn = new TQCheckBox(i18n("Display window &geometry when moving or resizing"), windowsBox); bLay->addWidget(geometryTipOn); @@ -988,7 +1020,7 @@ KMovingConfig::KMovingConfig (bool _standAlone, TDEConfig *_config, TQWidget *pa " windows are minimized or restored." ) ); rLay->addWidget(minimizeAnimOn,0,0); - minimizeAnimSlider = new TQSlider(0,10,10,0,Qt::Horizontal, windowsBox); + minimizeAnimSlider = new TQSlider(0,10,10,0,TQt::Horizontal, windowsBox); minimizeAnimSlider->setSteps(1, 1); // TQSlider::Below clashes with a X11/X.h #define #undef Below @@ -1111,8 +1143,8 @@ KMovingConfig::KMovingConfig (bool _standAlone, TDEConfig *_config, TQWidget *pa load(); // Any changes goes to slotChanged() - connect( opaque, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); - connect( resizeOpaqueOn, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect( moveOpaque, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect( resizeOpaque, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); connect( geometryTipOn, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); connect( minimizeAnimOn, TQT_SIGNAL(clicked() ), TQT_SLOT(changed())); connect( minimizeAnimSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); @@ -1130,16 +1162,6 @@ KMovingConfig::KMovingConfig (bool _standAlone, TDEConfig *_config, TQWidget *pa slotWndwSnapChanged(WndwSnap->value()); } -int KMovingConfig::getMove() -{ - return (opaque->isChecked())? OPAQUE : TRANSPARENT; -} - -void KMovingConfig::setMove(int trans) -{ - opaque->setChecked(trans == OPAQUE); -} - void KMovingConfig::setGeometryTip(bool showGeometryTip) { geometryTipOn->setChecked(showGeometryTip); @@ -1184,14 +1206,23 @@ void KMovingConfig::setMinimizeAnimSpeed(int speed) minimizeAnimSlider->setValue(speed); } -int KMovingConfig::getResizeOpaque() +int KMovingConfig::getMoveMode() { + return moveOpaque->isChecked() ? OPAQUE : TRANSPARENT; +} + +void KMovingConfig::setMoveMode(int opaque) +{ + moveOpaque->setChecked(opaque == OPAQUE); +} + +int KMovingConfig::getResizeMode() { - return (resizeOpaqueOn->isChecked())? RESIZE_OPAQUE : RESIZE_TRANSPARENT; + return resizeOpaque->isChecked() ? OPAQUE : TRANSPARENT; } -void KMovingConfig::setResizeOpaque(int opaque) +void KMovingConfig::setResizeMode(int opaque) { - resizeOpaqueOn->setChecked(opaque == RESIZE_OPAQUE); + resizeOpaque->setChecked(opaque == OPAQUE); } void KMovingConfig::setMoveResizeMaximized(bool a) { @@ -1216,11 +1247,18 @@ void KMovingConfig::load( void ) config->setGroup( "Windows" ); - key = config->readEntry(KWIN_MOVE, "Opaque"); - if( key == "Transparent") - setMove(TRANSPARENT); - else if( key == "Opaque") - setMove(OPAQUE); + // DF: please keep the default consistent with twin (options.cpp) + key = config->readEntry(KWIN_MOVE_MODE, "Opaque"); + if (key == "Opaque") + setMoveMode(OPAQUE); + else if (key == "Transparent") + setMoveMode(TRANSPARENT); + + key = config->readEntry(KWIN_RESIZE_MODE, "Opaque"); + if (key == "Opaque") + setResizeMode(OPAQUE); + else if (key == "Transparent") + setResizeMode(TRANSPARENT); //CT 17Jun1998 - variable animation speed from 0 (none!!) to 10 (max) bool anim = config->readBoolEntry(KWIN_MINIMIZE_ANIM, true ); @@ -1230,13 +1268,6 @@ void KMovingConfig::load( void ) setMinimizeAnim( anim ); setMinimizeAnimSpeed( animSpeed ); - // DF: please keep the default consistent with twin (options.cpp line 145) - key = config->readEntry(KWIN_RESIZE_OPAQUE, "Opaque"); - if( key == "Opaque") - setResizeOpaque(RESIZE_OPAQUE); - else if ( key == "Transparent") - setResizeOpaque(RESIZE_TRANSPARENT); - //KS 10Jan2003 - Geometry Tip during window move/resize bool showGeomTip = config->readBoolEntry(KWIN_GEOMETRY, false); setGeometryTip( showGeomTip ); @@ -1301,16 +1332,22 @@ void KMovingConfig::save( void ) config->setGroup( "Windows" ); - v = getMove(); - if (v == TRANSPARENT) - config->writeEntry(KWIN_MOVE,"Transparent"); + v = getMoveMode(); + if (v == OPAQUE) + config->writeEntry(KWIN_MOVE_MODE, "Opaque"); + else + config->writeEntry(KWIN_MOVE_MODE, "Transparent"); + + v = getResizeMode(); + if (v == OPAQUE) + config->writeEntry(KWIN_RESIZE_MODE, "Opaque"); else - config->writeEntry(KWIN_MOVE,"Opaque"); + config->writeEntry(KWIN_RESIZE_MODE, "Transparent"); config->writeEntry(KWIN_GEOMETRY, getGeometryTip()); // placement policy --- CT 31jan98 --- - v =getPlacement(); + v = getPlacement(); if (v == RANDOM_PLACEMENT) config->writeEntry(KWIN_PLACEMENT, "Random"); else if (v == CASCADE_PLACEMENT) @@ -1334,12 +1371,6 @@ void KMovingConfig::save( void ) config->writeEntry(KWIN_MINIMIZE_ANIM, getMinimizeAnim()); config->writeEntry(KWIN_MINIMIZE_ANIM_SPEED, getMinimizeAnimSpeed()); - v = getResizeOpaque(); - if (v == RESIZE_OPAQUE) - config->writeEntry(KWIN_RESIZE_OPAQUE, "Opaque"); - else - config->writeEntry(KWIN_RESIZE_OPAQUE, "Transparent"); - config->writeEntry(KWIN_MOVE_RESIZE_MAXIMIZED, moveResizeMaximized->isChecked()); config->writeEntry(KWIN_RESET_MAX_WIN_GEOM, resetMaximizedWindowGeometry->isChecked()); @@ -1360,8 +1391,8 @@ void KMovingConfig::save( void ) void KMovingConfig::defaults() { - setMove(OPAQUE); - setResizeOpaque(RESIZE_TRANSPARENT); + setMoveMode(OPAQUE); + setResizeMode(TRANSPARENT); setGeometryTip(false); setPlacement(SMART_PLACEMENT); setMoveResizeMaximized(false); diff --git a/twin/kcmtwin/twinoptions/windows.h b/twin/kcmtwin/twinoptions/windows.h index 819035b9b..80c9e76d7 100644 --- a/twin/kcmtwin/twinoptions/windows.h +++ b/twin/kcmtwin/twinoptions/windows.h @@ -50,9 +50,6 @@ class KIntNumInput; #define TITLEBAR_PLAIN 0 #define TITLEBAR_SHADED 1 -#define RESIZE_TRANSPARENT 0 -#define RESIZE_OPAQUE 1 - #define SMART_PLACEMENT 0 #define MAXIMIZING_PLACEMENT 1 #define CASCADE_PLACEMENT 2 @@ -147,30 +144,30 @@ public: private slots: void setMinimizeAnim( bool ); void setMinimizeAnimSpeed( int ); - void changed() { emit TDECModule::changed(true); } + void changed() { emit TDECModule::changed(true); } void slotBrdrSnapChanged( int ); void slotWndwSnapChanged( int ); private: - int getMove( void ); + int getMoveMode( void ); + int getResizeMode ( void ); bool getMinimizeAnim( void ); - int getMinimizeAnimSpeed( void ); - int getResizeOpaque ( void ); + int getMinimizeAnimSpeed( void ); bool getGeometryTip( void ); //KS - int getPlacement( void ); //CT + int getPlacement( void ); //CT - void setMove(int); - void setResizeOpaque(int); + void setMoveMode(int); + void setResizeMode(int); void setGeometryTip(bool); //KS void setPlacement(int); //CT void setMoveResizeMaximized(bool); void setResetMaximizedWindowGeometry(bool); TQButtonGroup *windowsBox; - TQCheckBox *opaque; - TQCheckBox *resizeOpaqueOn; + TQCheckBox *moveOpaque; + TQCheckBox *resizeOpaque; TQCheckBox *geometryTipOn; - TQCheckBox* minimizeAnimOn; + TQCheckBox *minimizeAnimOn; TQSlider *minimizeAnimSlider; TQLabel *minimizeAnimSlowLabel, *minimizeAnimFastLabel; TQCheckBox *moveResizeMaximized; @@ -211,12 +208,15 @@ class KActiveBorderConfig : public TDECModule void changed() { emit TDECModule::changed(true); } private: - int getActiveBorders( void ); + int getActiveBorders(); int getActiveBorderDelay(); int getActiveBorderDistance(); - void setActiveBorders( int ); - void setActiveBorderDelay( int ); - void setActiveBorderDistance( int ); + int getTilingMode(); + + void setActiveBorders(int); + void setActiveBorderDelay(int); + void setActiveBorderDistance(int); + void setTilingMode(int); TQButtonGroup *active_box; TQRadioButton *active_disable; @@ -228,6 +228,7 @@ class KActiveBorderConfig : public TDECModule KIntNumInput *distance; TQWidget *active_desktop_conf; TQWidget *active_tile_conf; + TQCheckBox *tilingOpaque; TDEConfig *config; bool standAlone; diff --git a/twin/options.cpp b/twin/options.cpp index 6a0963910..60d8cd145 100644 --- a/twin/options.cpp +++ b/twin/options.cpp @@ -51,8 +51,9 @@ unsigned long Options::updateSettings() changed |= d->updateKWinSettings( config ); // read decoration settings config->setGroup( "Windows" ); - moveMode = stringToMoveResizeMode( config->readEntry("MoveMode", "Opaque" )); - resizeMode = stringToMoveResizeMode( config->readEntry("ResizeMode", "Opaque" )); + moveMode = stringToMoveResizeMode(config->readEntry("MoveMode", "Opaque")); + resizeMode = stringToMoveResizeMode(config->readEntry("ResizeMode", "Opaque")); + tilingMode = stringToMoveResizeMode(config->readEntry("TilingMode", "Opaque")); show_geometry_tip = config->readBoolEntry("GeometryTip", false); reset_maximized_window_geometry = config->readBoolEntry("ResetMaximizedWindowGeometry", false); tabboxOutline = config->readBoolEntry("TabboxOutline", true); diff --git a/twin/options.h b/twin/options.h index 3227e57d7..41d1340a7 100644 --- a/twin/options.h +++ b/twin/options.h @@ -147,8 +147,9 @@ class Options : public KDecorationOptions */ enum MoveResizeMode { Transparent, Opaque }; - MoveResizeMode resizeMode; MoveResizeMode moveMode; + MoveResizeMode resizeMode; + MoveResizeMode tilingMode; static MoveResizeMode stringToMoveResizeMode( const TQString& s ); static const char* moveResizeModeToString( MoveResizeMode mode ); diff --git a/twin/workspace.cpp b/twin/workspace.cpp index d7abcd3a3..70308af3e 100644 --- a/twin/workspace.cpp +++ b/twin/workspace.cpp @@ -2552,7 +2552,7 @@ void Workspace::checkActiveBorder(const TQPoint &pos, Time now) (options->activeBorders() == Options::ActiveTileMaximize || options->activeBorders() == Options::ActiveTileOnly)) { - movingClient->setActiveBorderMaximizing(false); + movingClient->cancelActiveBorderMaximizing(); return; } }