Added Window menu action to toggle floating/tiled state of the client and the relevant Operation enum entry
svn path=/trunk/KDE/kdebase/workspace/; revision=1124058
This commit is contained in:
parent
d8af8d02a9
commit
8892169a86
3 changed files with 40 additions and 0 deletions
|
@ -110,6 +110,7 @@ public:
|
||||||
CloseClientGroupOp, // Close the group
|
CloseClientGroupOp, // Close the group
|
||||||
MoveClientInGroupLeftOp, // Move left in the group
|
MoveClientInGroupLeftOp, // Move left in the group
|
||||||
MoveClientInGroupRightOp, // Move right in the group
|
MoveClientInGroupRightOp, // Move right in the group
|
||||||
|
ToggleClientTiledStateOp, // put a floating client into tiling
|
||||||
ClientGroupDragOp
|
ClientGroupDragOp
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -30,6 +30,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
#include "workspace.h"
|
#include "workspace.h"
|
||||||
#include "effects.h"
|
#include "effects.h"
|
||||||
|
#include "tile.h"
|
||||||
|
#include "tilinglayout.h"
|
||||||
|
|
||||||
#include <fixx11h.h>
|
#include <fixx11h.h>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
@ -190,6 +192,22 @@ QMenu* Workspace::clientPopup()
|
||||||
popup->addSeparator();
|
popup->addSeparator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create it anyway
|
||||||
|
mTilingStateOpAction = popup->addAction( i18nc("When in tiling mode, toggle's the window's floating/tiled state", "&Float Window") );
|
||||||
|
// then hide it
|
||||||
|
mTilingStateOpAction->setVisible(false);
|
||||||
|
// actions for window tiling
|
||||||
|
if( tilingEnabled() )
|
||||||
|
{
|
||||||
|
kaction = qobject_cast<KAction*>( keys->action("Toggle Floating") );
|
||||||
|
mTilingStateOpAction->setCheckable( true );
|
||||||
|
mTilingStateOpAction->setData( Options::ToggleClientTiledStateOp );
|
||||||
|
if( kaction!=0 )
|
||||||
|
mTilingStateOpAction->setShortcut( kaction->globalShortcut().primary() );
|
||||||
|
}
|
||||||
|
|
||||||
|
popup->addSeparator();
|
||||||
|
|
||||||
action = popup->addMenu( advanced_popup );
|
action = popup->addMenu( advanced_popup );
|
||||||
action->setText( i18n("Ad&vanced") );
|
action->setText( i18n("Ad&vanced") );
|
||||||
|
|
||||||
|
@ -266,6 +284,18 @@ void Workspace::clientPopupAboutToShow()
|
||||||
mMinimizeOpAction->setEnabled( active_popup_client->isMinimizable() );
|
mMinimizeOpAction->setEnabled( active_popup_client->isMinimizable() );
|
||||||
mCloseOpAction->setEnabled( active_popup_client->isCloseable() );
|
mCloseOpAction->setEnabled( active_popup_client->isCloseable() );
|
||||||
|
|
||||||
|
if( tilingEnabled() )
|
||||||
|
{
|
||||||
|
int desktop = active_popup_client->desktop();
|
||||||
|
if( tilingLayouts.value(desktop) )
|
||||||
|
{
|
||||||
|
Tile *t = tilingLayouts[desktop]->findTile(active_popup_client);
|
||||||
|
if( t )
|
||||||
|
mTilingStateOpAction->setChecked( t->floating() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mTilingStateOpAction->setVisible( tilingEnabled() );
|
||||||
|
|
||||||
delete switch_to_tab_popup;
|
delete switch_to_tab_popup;
|
||||||
switch_to_tab_popup = 0;
|
switch_to_tab_popup = 0;
|
||||||
delete add_tabs_popup;
|
delete add_tabs_popup;
|
||||||
|
@ -787,6 +817,14 @@ void Workspace::performWindowOperation( Client* c, Options::WindowOperation op )
|
||||||
}
|
}
|
||||||
case Options::CloseClientGroupOp:
|
case Options::CloseClientGroupOp:
|
||||||
c->clientGroup()->closeAll();
|
c->clientGroup()->closeAll();
|
||||||
|
case Options::ToggleClientTiledStateOp:
|
||||||
|
{
|
||||||
|
int desktop = c->desktop();
|
||||||
|
if( tilingLayouts.value( desktop ) )
|
||||||
|
{
|
||||||
|
tilingLayouts[desktop]->toggleFloatTile( c );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -924,6 +924,7 @@ class Workspace : public QObject, public KDecorationDefines
|
||||||
QAction* mMoveOpAction;
|
QAction* mMoveOpAction;
|
||||||
QAction* mMaximizeOpAction;
|
QAction* mMaximizeOpAction;
|
||||||
QAction* mShadeOpAction;
|
QAction* mShadeOpAction;
|
||||||
|
QAction* mTilingStateOpAction;
|
||||||
QAction* mKeepAboveOpAction;
|
QAction* mKeepAboveOpAction;
|
||||||
QAction* mKeepBelowOpAction;
|
QAction* mKeepBelowOpAction;
|
||||||
QAction* mFullScreenOpAction;
|
QAction* mFullScreenOpAction;
|
||||||
|
|
Loading…
Reference in a new issue