Remove drawbound move/resize functionality
Drawbound was nowadays only used when compositing is disabled. For the composited case, the drawbound was replaced by the resize effect and in fact we should always just use the resize effect. REVIEW: 101411icc-effect-5.14.5
parent
494edbe76f
commit
12d3b354fc
|
@ -626,32 +626,6 @@ void Workspace::clientAttentionChanged(Client* c, bool set)
|
||||||
attention_chain.removeAll(c);
|
attention_chain.removeAll(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is used when a client should be shown active immediately after requestFocus(),
|
|
||||||
// without waiting for the matching FocusIn that will really make the window the active one.
|
|
||||||
// Used only in special cases, e.g. for MouseActivateRaiseandMove with transparent windows,
|
|
||||||
bool Workspace::fakeRequestedActivity(Client* c)
|
|
||||||
{
|
|
||||||
if (should_get_focus.count() > 0 && should_get_focus.last() == c) {
|
|
||||||
if (c->isActive())
|
|
||||||
return false;
|
|
||||||
c->setActive(true);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Workspace::unfakeActivity(Client* c)
|
|
||||||
{
|
|
||||||
if (should_get_focus.count() > 0 && should_get_focus.last() == c) {
|
|
||||||
// TODO this will cause flicker, and probably is not needed
|
|
||||||
if (last_active_client != NULL)
|
|
||||||
last_active_client->setActive(true);
|
|
||||||
else
|
|
||||||
c->setActive(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//********************************************
|
//********************************************
|
||||||
// Client
|
// Client
|
||||||
//********************************************
|
//********************************************
|
||||||
|
|
|
@ -91,7 +91,6 @@ Client::Client(Workspace* ws)
|
||||||
, wrapper(None)
|
, wrapper(None)
|
||||||
, decoration(NULL)
|
, decoration(NULL)
|
||||||
, bridge(new Bridge(this))
|
, bridge(new Bridge(this))
|
||||||
, move_faked_activity(false)
|
|
||||||
, move_resize_grab_window(None)
|
, move_resize_grab_window(None)
|
||||||
, move_resize_has_keyboard_grab(false)
|
, move_resize_has_keyboard_grab(false)
|
||||||
, transient_for (NULL)
|
, transient_for (NULL)
|
||||||
|
|
6
client.h
6
client.h
|
@ -439,11 +439,6 @@ private:
|
||||||
Position mousePosition(const QPoint&) const;
|
Position mousePosition(const QPoint&) const;
|
||||||
void updateCursor();
|
void updateCursor();
|
||||||
|
|
||||||
// Transparent stuff
|
|
||||||
void drawbound(const QRect& geom);
|
|
||||||
void clearbound();
|
|
||||||
void doDrawbound(const QRect& geom, bool clear);
|
|
||||||
|
|
||||||
// Handlers for X11 events
|
// Handlers for X11 events
|
||||||
bool mapRequestEvent(XMapRequestEvent* e);
|
bool mapRequestEvent(XMapRequestEvent* e);
|
||||||
void unmapNotifyEvent(XUnmapEvent* e);
|
void unmapNotifyEvent(XUnmapEvent* e);
|
||||||
|
@ -581,7 +576,6 @@ private:
|
||||||
QStringList activityList;
|
QStringList activityList;
|
||||||
bool buttonDown;
|
bool buttonDown;
|
||||||
bool moveResizeMode;
|
bool moveResizeMode;
|
||||||
bool move_faked_activity;
|
|
||||||
Window move_resize_grab_window;
|
Window move_resize_grab_window;
|
||||||
bool move_resize_has_keyboard_grab;
|
bool move_resize_has_keyboard_grab;
|
||||||
bool unrestrictedMoveResize;
|
bool unrestrictedMoveResize;
|
||||||
|
|
106
geometry.cpp
106
geometry.cpp
|
@ -2505,53 +2505,8 @@ void Client::updateFullScreenHack(const QRect& geom)
|
||||||
workspace()->updateClientLayer(this); // active fullscreens get different layer
|
workspace()->updateClientLayer(this); // active fullscreens get different layer
|
||||||
}
|
}
|
||||||
|
|
||||||
static QRect* visible_bound = 0;
|
|
||||||
static GeometryTip* geometryTip = 0;
|
static GeometryTip* geometryTip = 0;
|
||||||
|
|
||||||
void Client::drawbound(const QRect& geom)
|
|
||||||
{
|
|
||||||
assert(visible_bound == NULL);
|
|
||||||
visible_bound = new QRect(geom);
|
|
||||||
doDrawbound(*visible_bound, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Client::clearbound()
|
|
||||||
{
|
|
||||||
if (visible_bound == NULL)
|
|
||||||
return;
|
|
||||||
doDrawbound(*visible_bound, true);
|
|
||||||
delete visible_bound;
|
|
||||||
visible_bound = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Client::doDrawbound(const QRect& geom, bool clear)
|
|
||||||
{
|
|
||||||
if (effects && static_cast<EffectsHandlerImpl*>(effects)->provides(Effect::Resize))
|
|
||||||
return; // done by effect
|
|
||||||
if (decoration != NULL && decoration->drawbound(geom, clear))
|
|
||||||
return; // done by decoration
|
|
||||||
XGCValues xgc;
|
|
||||||
xgc.function = GXxor;
|
|
||||||
xgc.foreground = WhitePixel(display(), DefaultScreen(display()));
|
|
||||||
xgc.line_width = 5;
|
|
||||||
xgc.subwindow_mode = IncludeInferiors;
|
|
||||||
GC gc = XCreateGC(display(), DefaultRootWindow(display()),
|
|
||||||
GCFunction | GCForeground | GCLineWidth | GCSubwindowMode, &xgc);
|
|
||||||
// the line is 5 pixel thick, so compensate for the extra two pixels
|
|
||||||
// on outside (#88657)
|
|
||||||
QRect g = geom;
|
|
||||||
if (g.width() > 5) {
|
|
||||||
g.setLeft(g.left() + 2);
|
|
||||||
g.setRight(g.right() - 2);
|
|
||||||
}
|
|
||||||
if (g.height() > 5) {
|
|
||||||
g.setTop(g.top() + 2);
|
|
||||||
g.setBottom(g.bottom() - 2);
|
|
||||||
}
|
|
||||||
XDrawRectangle(display(), DefaultRootWindow(display()), gc, g.x(), g.y(), g.width(), g.height());
|
|
||||||
XFreeGC(display(), gc);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Client::positionGeometryTip()
|
void Client::positionGeometryTip()
|
||||||
{
|
{
|
||||||
assert(isMove() || isResize());
|
assert(isMove() || isResize());
|
||||||
|
@ -2560,10 +2515,7 @@ void Client::positionGeometryTip()
|
||||||
return; // some effect paints this for us
|
return; // some effect paints this for us
|
||||||
if (options->showGeometryTip()) {
|
if (options->showGeometryTip()) {
|
||||||
if (!geometryTip) {
|
if (!geometryTip) {
|
||||||
// save under is not necessary with opaque, and seem to make things slower
|
geometryTip = new GeometryTip(&xSizeHint, false);
|
||||||
bool save_under = (isMove() && rules()->checkMoveResizeMode(options->moveMode) != Options::Opaque)
|
|
||||||
|| (isResize() && rules()->checkMoveResizeMode(options->resizeMode) != Options::Opaque);
|
|
||||||
geometryTip = new GeometryTip(&xSizeHint, save_under);
|
|
||||||
}
|
}
|
||||||
QRect wgeom(moveResizeGeom); // position of the frame, size of the window itself
|
QRect wgeom(moveResizeGeom); // position of the frame, size of the window itself
|
||||||
wgeom.setWidth(wgeom.width() - (width() - clientSize().width()));
|
wgeom.setWidth(wgeom.width() - (width() - clientSize().width()));
|
||||||
|
@ -2577,17 +2529,6 @@ void Client::positionGeometryTip()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class EatAllPaintEvents
|
|
||||||
: public QObject
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
virtual bool eventFilter(QObject* o, QEvent* e) {
|
|
||||||
return e->type() == QEvent::Paint && o != geometryTip;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static EatAllPaintEvents* eater = 0;
|
|
||||||
|
|
||||||
bool Client::startMoveResize()
|
bool Client::startMoveResize()
|
||||||
{
|
{
|
||||||
assert(!moveResizeMode);
|
assert(!moveResizeMode);
|
||||||
|
@ -2643,18 +2584,6 @@ bool Client::startMoveResize()
|
||||||
workspace()->setClientIsMoving(this);
|
workspace()->setClientIsMoving(this);
|
||||||
initialMoveResizeGeom = moveResizeGeom = geometry();
|
initialMoveResizeGeom = moveResizeGeom = geometry();
|
||||||
checkUnrestrictedMoveResize();
|
checkUnrestrictedMoveResize();
|
||||||
if ((isMove() && rules()->checkMoveResizeMode(options->moveMode) != Options::Opaque)
|
|
||||||
|| (isResize() && rules()->checkMoveResizeMode(options->resizeMode) != Options::Opaque)) {
|
|
||||||
grabXServer();
|
|
||||||
kapp->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 );
|
|
||||||
}
|
|
||||||
Notify::raise(isResize() ? Notify::ResizeStart : Notify::MoveStart);
|
Notify::raise(isResize() ? Notify::ResizeStart : Notify::MoveStart);
|
||||||
emit clientStartUserMovedResized(this);
|
emit clientStartUserMovedResized(this);
|
||||||
if (options->electricBorders() == Options::ElectricMoveOnly ||
|
if (options->electricBorders() == Options::ElectricMoveOnly ||
|
||||||
|
@ -2737,15 +2666,11 @@ void Client::finishMoveResize(bool cancel)
|
||||||
|
|
||||||
void Client::leaveMoveResize()
|
void Client::leaveMoveResize()
|
||||||
{
|
{
|
||||||
clearbound();
|
|
||||||
if (geometryTip) {
|
if (geometryTip) {
|
||||||
geometryTip->hide();
|
geometryTip->hide();
|
||||||
delete geometryTip;
|
delete geometryTip;
|
||||||
geometryTip = NULL;
|
geometryTip = NULL;
|
||||||
}
|
}
|
||||||
if ((isMove() && rules()->checkMoveResizeMode(options->moveMode) != Options::Opaque)
|
|
||||||
|| (isResize() && rules()->checkMoveResizeMode(options->resizeMode) != Options::Opaque))
|
|
||||||
ungrabXServer();
|
|
||||||
if (move_resize_has_keyboard_grab)
|
if (move_resize_has_keyboard_grab)
|
||||||
ungrabXKeyboard();
|
ungrabXKeyboard();
|
||||||
move_resize_has_keyboard_grab = false;
|
move_resize_has_keyboard_grab = false;
|
||||||
|
@ -2753,12 +2678,7 @@ void Client::leaveMoveResize()
|
||||||
XDestroyWindow(display(), move_resize_grab_window);
|
XDestroyWindow(display(), move_resize_grab_window);
|
||||||
move_resize_grab_window = None;
|
move_resize_grab_window = None;
|
||||||
workspace()->setClientIsMoving(0);
|
workspace()->setClientIsMoving(0);
|
||||||
if (move_faked_activity)
|
|
||||||
workspace()->unfakeActivity(this);
|
|
||||||
move_faked_activity = false;
|
|
||||||
moveResizeMode = false;
|
moveResizeMode = false;
|
||||||
delete eater;
|
|
||||||
eater = 0;
|
|
||||||
delete sync_timeout;
|
delete sync_timeout;
|
||||||
sync_timeout = NULL;
|
sync_timeout = NULL;
|
||||||
if (options->electricBorders() == Options::ElectricMoveOnly ||
|
if (options->electricBorders() == Options::ElectricMoveOnly ||
|
||||||
|
@ -3093,16 +3013,8 @@ void Client::handleMoveResize(int x, int y, int x_root, int y_root)
|
||||||
|
|
||||||
void Client::performMoveResize()
|
void Client::performMoveResize()
|
||||||
{
|
{
|
||||||
bool haveResizeEffect = false;
|
|
||||||
bool transparent = false;
|
|
||||||
if (isResize()) {
|
|
||||||
haveResizeEffect = effects && static_cast<EffectsHandlerImpl*>(effects)->provides(Effect::Resize);
|
|
||||||
transparent = haveResizeEffect || rules()->checkMoveResizeMode(options->resizeMode) != Options::Opaque;
|
|
||||||
} else if (isMove())
|
|
||||||
transparent = rules()->checkMoveResizeMode(options->moveMode) != Options::Opaque;
|
|
||||||
|
|
||||||
#ifdef HAVE_XSYNC
|
#ifdef HAVE_XSYNC
|
||||||
if (isResize() && !transparent && sync_counter != None && !sync_resize_pending) {
|
if (isResize() && sync_counter != None && !sync_resize_pending) {
|
||||||
sync_timeout = new QTimer(this);
|
sync_timeout = new QTimer(this);
|
||||||
connect(sync_timeout, SIGNAL(timeout()), SLOT(syncTimeout()));
|
connect(sync_timeout, SIGNAL(timeout()), SLOT(syncTimeout()));
|
||||||
sync_timeout->setSingleShot(true);
|
sync_timeout->setSingleShot(true);
|
||||||
|
@ -3110,17 +3022,9 @@ void Client::performMoveResize()
|
||||||
sendSyncRequest();
|
sendSyncRequest();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (transparent) {
|
if (!workspace()->tilingEnabled())
|
||||||
if (!haveResizeEffect)
|
setGeometry(moveResizeGeom);
|
||||||
clearbound(); // it's necessary to move the geometry tip when there's no outline
|
positionGeometryTip();
|
||||||
positionGeometryTip(); // shown, otherwise it would cause repaint problems in case
|
|
||||||
if (!haveResizeEffect)
|
|
||||||
drawbound(moveResizeGeom); // they overlap; the paint event will come after this,
|
|
||||||
} else {
|
|
||||||
if (!workspace()->tilingEnabled())
|
|
||||||
setGeometry(moveResizeGeom);
|
|
||||||
positionGeometryTip();
|
|
||||||
}
|
|
||||||
emit clientStepUserMovedResized(this, moveResizeGeom);
|
emit clientStepUserMovedResized(this, moveResizeGeom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,6 @@
|
||||||
// kwin config keywords
|
// kwin config keywords
|
||||||
#define KWIN_FOCUS "FocusPolicy"
|
#define KWIN_FOCUS "FocusPolicy"
|
||||||
#define KWIN_PLACEMENT "Placement"
|
#define KWIN_PLACEMENT "Placement"
|
||||||
#define KWIN_MOVE "MoveMode"
|
|
||||||
#define KWIN_RESIZE_OPAQUE "ResizeMode"
|
|
||||||
#define KWIN_GEOMETRY "GeometryTip"
|
#define KWIN_GEOMETRY "GeometryTip"
|
||||||
#define KWIN_AUTORAISE_INTERVAL "AutoRaiseInterval"
|
#define KWIN_AUTORAISE_INTERVAL "AutoRaiseInterval"
|
||||||
#define KWIN_AUTORAISE "AutoRaise"
|
#define KWIN_AUTORAISE "AutoRaise"
|
||||||
|
@ -935,18 +933,6 @@ KMovingConfig::KMovingConfig(bool _standAlone, KConfig *_config, const KComponen
|
||||||
QBoxLayout *bLay = new QVBoxLayout;
|
QBoxLayout *bLay = new QVBoxLayout;
|
||||||
wLay->addLayout(bLay);
|
wLay->addLayout(bLay);
|
||||||
|
|
||||||
opaque = new QCheckBox(i18n("Di&splay content in moving windows"), windowsBox);
|
|
||||||
bLay->addWidget(opaque);
|
|
||||||
opaque->setWhatsThis(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 QCheckBox(i18n("Display content in &resizing windows"), windowsBox);
|
|
||||||
bLay->addWidget(resizeOpaqueOn);
|
|
||||||
resizeOpaqueOn->setWhatsThis(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 QCheckBox(i18n("Display window &geometry when moving or resizing"), windowsBox);
|
geometryTipOn = new QCheckBox(i18n("Display window &geometry when moving or resizing"), windowsBox);
|
||||||
bLay->addWidget(geometryTipOn);
|
bLay->addWidget(geometryTipOn);
|
||||||
geometryTipOn->setWhatsThis(i18n("Enable this option if you want a window's geometry to be displayed"
|
geometryTipOn->setWhatsThis(i18n("Enable this option if you want a window's geometry to be displayed"
|
||||||
|
@ -1039,8 +1025,6 @@ KMovingConfig::KMovingConfig(bool _standAlone, KConfig *_config, const KComponen
|
||||||
load();
|
load();
|
||||||
|
|
||||||
// Any changes goes to slotChanged()
|
// Any changes goes to slotChanged()
|
||||||
connect(opaque, SIGNAL(clicked()), SLOT(changed()));
|
|
||||||
connect(resizeOpaqueOn, SIGNAL(clicked()), SLOT(changed()));
|
|
||||||
connect(geometryTipOn, SIGNAL(clicked()), SLOT(changed()));
|
connect(geometryTipOn, SIGNAL(clicked()), SLOT(changed()));
|
||||||
connect(moveResizeMaximized, SIGNAL(toggled(bool)), SLOT(changed()));
|
connect(moveResizeMaximized, SIGNAL(toggled(bool)), SLOT(changed()));
|
||||||
connect(BrdrSnap, SIGNAL(valueChanged(int)), SLOT(changed()));
|
connect(BrdrSnap, SIGNAL(valueChanged(int)), SLOT(changed()));
|
||||||
|
@ -1057,16 +1041,6 @@ KMovingConfig::KMovingConfig(bool _standAlone, KConfig *_config, const KComponen
|
||||||
slotCntrSnapChanged(CntrSnap->value());
|
slotCntrSnapChanged(CntrSnap->value());
|
||||||
}
|
}
|
||||||
|
|
||||||
int KMovingConfig::getMove()
|
|
||||||
{
|
|
||||||
return (opaque->isChecked()) ? OPAQUE : TRANSPARENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
void KMovingConfig::setMove(int trans)
|
|
||||||
{
|
|
||||||
opaque->setChecked(trans == OPAQUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
void KMovingConfig::setGeometryTip(bool showGeometryTip)
|
void KMovingConfig::setGeometryTip(bool showGeometryTip)
|
||||||
{
|
{
|
||||||
geometryTipOn->setChecked(showGeometryTip);
|
geometryTipOn->setChecked(showGeometryTip);
|
||||||
|
@ -1077,16 +1051,6 @@ bool KMovingConfig::getGeometryTip()
|
||||||
return geometryTipOn->isChecked();
|
return geometryTipOn->isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
int KMovingConfig::getResizeOpaque()
|
|
||||||
{
|
|
||||||
return (resizeOpaqueOn->isChecked()) ? RESIZE_OPAQUE : RESIZE_TRANSPARENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
void KMovingConfig::setResizeOpaque(int opaque)
|
|
||||||
{
|
|
||||||
resizeOpaqueOn->setChecked(opaque == RESIZE_OPAQUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
void KMovingConfig::setMoveResizeMaximized(bool a)
|
void KMovingConfig::setMoveResizeMaximized(bool a)
|
||||||
{
|
{
|
||||||
moveResizeMaximized->setChecked(a);
|
moveResizeMaximized->setChecked(a);
|
||||||
|
@ -1122,19 +1086,6 @@ void KMovingConfig::load(void)
|
||||||
|
|
||||||
KConfigGroup cg(config, "Windows");
|
KConfigGroup cg(config, "Windows");
|
||||||
|
|
||||||
key = cg.readEntry(KWIN_MOVE, "Opaque");
|
|
||||||
if (key == "Transparent")
|
|
||||||
setMove(TRANSPARENT);
|
|
||||||
else if (key == "Opaque")
|
|
||||||
setMove(OPAQUE);
|
|
||||||
|
|
||||||
// DF: please keep the default consistent with kwin (options.cpp line 145)
|
|
||||||
key = cg.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
|
//KS 10Jan2003 - Geometry Tip during window move/resize
|
||||||
bool showGeomTip = cg.readEntry(KWIN_GEOMETRY, false);
|
bool showGeomTip = cg.readEntry(KWIN_GEOMETRY, false);
|
||||||
setGeometryTip(showGeomTip);
|
setGeometryTip(showGeomTip);
|
||||||
|
@ -1169,20 +1120,6 @@ void KMovingConfig::save(void)
|
||||||
|
|
||||||
KConfigGroup cg(config, "Windows");
|
KConfigGroup cg(config, "Windows");
|
||||||
|
|
||||||
v = getMove();
|
|
||||||
if (v == TRANSPARENT)
|
|
||||||
cg.writeEntry(KWIN_MOVE, "Transparent");
|
|
||||||
else
|
|
||||||
cg.writeEntry(KWIN_MOVE, "Opaque");
|
|
||||||
|
|
||||||
cg.writeEntry(KWIN_GEOMETRY, getGeometryTip());
|
|
||||||
|
|
||||||
v = getResizeOpaque();
|
|
||||||
if (v == RESIZE_OPAQUE)
|
|
||||||
cg.writeEntry(KWIN_RESIZE_OPAQUE, "Opaque");
|
|
||||||
else
|
|
||||||
cg.writeEntry(KWIN_RESIZE_OPAQUE, "Transparent");
|
|
||||||
|
|
||||||
cg.writeEntry(KWIN_MOVE_RESIZE_MAXIMIZED, moveResizeMaximized->isChecked());
|
cg.writeEntry(KWIN_MOVE_RESIZE_MAXIMIZED, moveResizeMaximized->isChecked());
|
||||||
|
|
||||||
|
|
||||||
|
@ -1205,8 +1142,6 @@ void KMovingConfig::save(void)
|
||||||
|
|
||||||
void KMovingConfig::defaults()
|
void KMovingConfig::defaults()
|
||||||
{
|
{
|
||||||
setMove(OPAQUE);
|
|
||||||
setResizeOpaque(RESIZE_TRANSPARENT);
|
|
||||||
setGeometryTip(false);
|
setGeometryTip(false);
|
||||||
setMoveResizeMaximized(false);
|
setMoveResizeMaximized(false);
|
||||||
|
|
||||||
|
|
|
@ -39,18 +39,12 @@ class KButtonGroup;
|
||||||
class KColorButton;
|
class KColorButton;
|
||||||
class KIntNumInput;
|
class KIntNumInput;
|
||||||
|
|
||||||
#define TRANSPARENT 0
|
|
||||||
#define OPAQUE 1
|
|
||||||
|
|
||||||
#define CLICK_TO_FOCUS 0
|
#define CLICK_TO_FOCUS 0
|
||||||
#define FOCUS_FOLLOW_MOUSE 1
|
#define FOCUS_FOLLOW_MOUSE 1
|
||||||
|
|
||||||
#define TITLEBAR_PLAIN 0
|
#define TITLEBAR_PLAIN 0
|
||||||
#define TITLEBAR_SHADED 1
|
#define TITLEBAR_SHADED 1
|
||||||
|
|
||||||
#define RESIZE_TRANSPARENT 0
|
|
||||||
#define RESIZE_OPAQUE 1
|
|
||||||
|
|
||||||
#define SMART_PLACEMENT 0
|
#define SMART_PLACEMENT 0
|
||||||
#define MAXIMIZING_PLACEMENT 1
|
#define MAXIMIZING_PLACEMENT 1
|
||||||
#define CASCADE_PLACEMENT 2
|
#define CASCADE_PLACEMENT 2
|
||||||
|
@ -149,18 +143,12 @@ private slots:
|
||||||
void slotCntrSnapChanged(int);
|
void slotCntrSnapChanged(int);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int getMove(void);
|
|
||||||
int getResizeOpaque(void);
|
|
||||||
bool getGeometryTip(void); //KS
|
bool getGeometryTip(void); //KS
|
||||||
|
|
||||||
void setMove(int);
|
|
||||||
void setResizeOpaque(int);
|
|
||||||
void setGeometryTip(bool); //KS
|
void setGeometryTip(bool); //KS
|
||||||
void setMoveResizeMaximized(bool);
|
void setMoveResizeMaximized(bool);
|
||||||
|
|
||||||
KButtonGroup *windowsBox;
|
KButtonGroup *windowsBox;
|
||||||
QCheckBox *opaque;
|
|
||||||
QCheckBox *resizeOpaqueOn;
|
|
||||||
QCheckBox *geometryTipOn;
|
QCheckBox *geometryTipOn;
|
||||||
QCheckBox *moveResizeMaximized;
|
QCheckBox *moveResizeMaximized;
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,6 @@ RulesWidget::RulesWidget(QWidget* parent)
|
||||||
SETUP(shortcut, force);
|
SETUP(shortcut, force);
|
||||||
// workarounds tab
|
// workarounds tab
|
||||||
SETUP(fsplevel, force);
|
SETUP(fsplevel, force);
|
||||||
SETUP(moveresizemode, force);
|
|
||||||
SETUP(type, force);
|
SETUP(type, force);
|
||||||
SETUP(ignoreposition, force);
|
SETUP(ignoreposition, force);
|
||||||
SETUP(minsize, force);
|
SETUP(minsize, force);
|
||||||
|
@ -165,7 +164,6 @@ void RulesWidget::updateEnableshortcut()
|
||||||
}
|
}
|
||||||
// workarounds tab
|
// workarounds tab
|
||||||
UPDATE_ENABLE_SLOT(fsplevel)
|
UPDATE_ENABLE_SLOT(fsplevel)
|
||||||
UPDATE_ENABLE_SLOT(moveresizemode)
|
|
||||||
UPDATE_ENABLE_SLOT(type)
|
UPDATE_ENABLE_SLOT(type)
|
||||||
UPDATE_ENABLE_SLOT(ignoreposition)
|
UPDATE_ENABLE_SLOT(ignoreposition)
|
||||||
UPDATE_ENABLE_SLOT(minsize)
|
UPDATE_ENABLE_SLOT(minsize)
|
||||||
|
@ -319,16 +317,6 @@ static Placement::Policy comboToPlacement(int val)
|
||||||
return conv[ val ];
|
return conv[ val ];
|
||||||
}
|
}
|
||||||
|
|
||||||
static int moveresizeToCombo(Options::MoveResizeMode mode)
|
|
||||||
{
|
|
||||||
return mode == Options::Opaque ? 0 : 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Options::MoveResizeMode comboToMoveResize(int val)
|
|
||||||
{
|
|
||||||
return val == 0 ? Options::Opaque : Options::Transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int typeToCombo(NET::WindowType type)
|
static int typeToCombo(NET::WindowType type)
|
||||||
{
|
{
|
||||||
if (type < NET::Normal || type > NET::Splash ||
|
if (type < NET::Normal || type > NET::Splash ||
|
||||||
|
@ -450,7 +438,6 @@ void RulesWidget::setRules(Rules* rules)
|
||||||
COMBOBOX_FORCE_RULE(tilingoption, tilingToCombo);
|
COMBOBOX_FORCE_RULE(tilingoption, tilingToCombo);
|
||||||
LINEEDIT_SET_RULE(shortcut,);
|
LINEEDIT_SET_RULE(shortcut,);
|
||||||
COMBOBOX_FORCE_RULE(fsplevel,);
|
COMBOBOX_FORCE_RULE(fsplevel,);
|
||||||
COMBOBOX_FORCE_RULE(moveresizemode, moveresizeToCombo);
|
|
||||||
COMBOBOX_FORCE_RULE(type, typeToCombo);
|
COMBOBOX_FORCE_RULE(type, typeToCombo);
|
||||||
CHECKBOX_FORCE_RULE(ignoreposition,);
|
CHECKBOX_FORCE_RULE(ignoreposition,);
|
||||||
LINEEDIT_FORCE_RULE(minsize, sizeToStr);
|
LINEEDIT_FORCE_RULE(minsize, sizeToStr);
|
||||||
|
@ -547,7 +534,6 @@ Rules* RulesWidget::rules() const
|
||||||
COMBOBOX_FORCE_RULE(tilingoption, comboToTiling);
|
COMBOBOX_FORCE_RULE(tilingoption, comboToTiling);
|
||||||
LINEEDIT_SET_RULE(shortcut,);
|
LINEEDIT_SET_RULE(shortcut,);
|
||||||
COMBOBOX_FORCE_RULE(fsplevel,);
|
COMBOBOX_FORCE_RULE(fsplevel,);
|
||||||
COMBOBOX_FORCE_RULE(moveresizemode, comboToMoveResize);
|
|
||||||
COMBOBOX_FORCE_RULE(type, comboToType);
|
COMBOBOX_FORCE_RULE(type, comboToType);
|
||||||
CHECKBOX_FORCE_RULE(ignoreposition,);
|
CHECKBOX_FORCE_RULE(ignoreposition,);
|
||||||
LINEEDIT_FORCE_RULE(minsize, strToSize);
|
LINEEDIT_FORCE_RULE(minsize, strToSize);
|
||||||
|
@ -668,7 +654,6 @@ void RulesWidget::prefillUnusedValues(const KWindowInfo& info)
|
||||||
COMBOBOX_PREFILL(tilingoption, tilingToCombo, 0);
|
COMBOBOX_PREFILL(tilingoption, tilingToCombo, 0);
|
||||||
//LINEEDIT_PREFILL( shortcut, );
|
//LINEEDIT_PREFILL( shortcut, );
|
||||||
//COMBOBOX_PREFILL( fsplevel, );
|
//COMBOBOX_PREFILL( fsplevel, );
|
||||||
//COMBOBOX_PREFILL( moveresizemode, moveresizeToCombo );
|
|
||||||
COMBOBOX_PREFILL(type, typeToCombo, info.windowType(SUPPORTED_MANAGED_WINDOW_TYPES_MASK));
|
COMBOBOX_PREFILL(type, typeToCombo, info.windowType(SUPPORTED_MANAGED_WINDOW_TYPES_MASK));
|
||||||
//CHECKBOX_PREFILL( ignoreposition, );
|
//CHECKBOX_PREFILL( ignoreposition, );
|
||||||
LINEEDIT_PREFILL(minsize, sizeToStr, info.frameGeometry().size());
|
LINEEDIT_PREFILL(minsize, sizeToStr, info.frameGeometry().size());
|
||||||
|
|
|
@ -81,7 +81,6 @@ private slots:
|
||||||
void updateEnabletilingoption();
|
void updateEnabletilingoption();
|
||||||
// workarounds tab
|
// workarounds tab
|
||||||
void updateEnablefsplevel();
|
void updateEnablefsplevel();
|
||||||
void updateEnablemoveresizemode();
|
|
||||||
void updateEnabletype();
|
void updateEnabletype();
|
||||||
void updateEnableignoreposition();
|
void updateEnableignoreposition();
|
||||||
void updateEnableminsize();
|
void updateEnableminsize();
|
||||||
|
|
|
@ -731,32 +731,15 @@ Q_SIGNALS:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* This function may be reimplemented to provide custom bound drawing
|
* This method is not any more invoked from KWin core since version 4.8.
|
||||||
* for transparent moving or resizing of the window.
|
* There is no need to implement it.
|
||||||
* @a False should be returned if the default implementation should be used.
|
|
||||||
* Note that if you e.g. paint the outline using a 5 pixels wide line,
|
|
||||||
* you should compensate for the 2 pixels that would make the window
|
|
||||||
* look larger.
|
|
||||||
* It is the decoration's responsibility to do the painting, using
|
|
||||||
* e.g. code like:
|
|
||||||
* @code
|
|
||||||
* Display* dpy = QX11Info::display();
|
|
||||||
* XGCValues xgc;
|
|
||||||
* xgc.function = GXxor;
|
|
||||||
* xgc.foreground = WhitePixel( dpy, DefaultScreen( dpy ));
|
|
||||||
* xgc.line_width = width;
|
|
||||||
* xgc.subwindow_mode = IncludeInferiors;
|
|
||||||
* GC gc = XCreateGC( dpy, DefaultRootWindow( dpy ),
|
|
||||||
* GCFunction | GCForeground | GCLineWidth | GCSubwindowMode, &xgc );
|
|
||||||
* XDrawRectangle( dpy, DefaultRootWindow( dpy ), gc, r.x(), r.y(), r.width(), r.height());
|
|
||||||
* XFreeGC( dpy, gc );
|
|
||||||
* @endcode
|
|
||||||
*
|
*
|
||||||
* @param geom The geometry at this the bound should be drawn
|
* @param geom The geometry at this the bound should be drawn
|
||||||
* @param clear @a true if the bound should be cleared (when doing the usual XOR
|
* @param clear @a true if the bound should be cleared (when doing the usual XOR
|
||||||
* painting this argument can be simply ignored)
|
* painting this argument can be simply ignored)
|
||||||
*
|
*
|
||||||
* @see geometry()
|
* @see geometry()
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
virtual bool drawbound(const QRect& geom, bool clear);
|
virtual bool drawbound(const QRect& geom, bool clear);
|
||||||
/**
|
/**
|
||||||
|
|
12
options.cpp
12
options.cpp
|
@ -114,8 +114,6 @@ unsigned long Options::updateSettings()
|
||||||
changed |= KDecorationOptions::updateSettings(_config.data()); // read decoration settings
|
changed |= KDecorationOptions::updateSettings(_config.data()); // read decoration settings
|
||||||
|
|
||||||
KConfigGroup config(_config, "Windows");
|
KConfigGroup config(_config, "Windows");
|
||||||
moveMode = stringToMoveResizeMode(config.readEntry("MoveMode", "Opaque"));
|
|
||||||
resizeMode = stringToMoveResizeMode(config.readEntry("ResizeMode", "Opaque"));
|
|
||||||
show_geometry_tip = config.readEntry("GeometryTip", false);
|
show_geometry_tip = config.readEntry("GeometryTip", false);
|
||||||
|
|
||||||
QString val;
|
QString val;
|
||||||
|
@ -510,16 +508,6 @@ Options::MouseCommand Options::wheelToMouseCommand(MouseWheelCommand com, int de
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Options::MoveResizeMode Options::stringToMoveResizeMode(const QString& s)
|
|
||||||
{
|
|
||||||
return s == "Opaque" ? Opaque : Transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* Options::moveResizeModeToString(MoveResizeMode mode)
|
|
||||||
{
|
|
||||||
return mode == Opaque ? "Opaque" : "Transparent";
|
|
||||||
}
|
|
||||||
|
|
||||||
double Options::animationTimeFactor() const
|
double Options::animationTimeFactor() const
|
||||||
{
|
{
|
||||||
const double factors[] = { 0, 0.2, 0.5, 1, 2, 4, 20 };
|
const double factors[] = { 0, 0.2, 0.5, 1, 2, 4, 20 };
|
||||||
|
|
11
options.h
11
options.h
|
@ -149,17 +149,6 @@ public:
|
||||||
// number, or -1 = active screen (Workspace::activeScreen())
|
// number, or -1 = active screen (Workspace::activeScreen())
|
||||||
int xineramaPlacementScreen;
|
int xineramaPlacementScreen;
|
||||||
|
|
||||||
/**
|
|
||||||
MoveResizeMode, either Tranparent or Opaque.
|
|
||||||
*/
|
|
||||||
enum MoveResizeMode { Transparent, Opaque };
|
|
||||||
|
|
||||||
MoveResizeMode resizeMode;
|
|
||||||
MoveResizeMode moveMode;
|
|
||||||
|
|
||||||
static MoveResizeMode stringToMoveResizeMode(const QString& s);
|
|
||||||
static const char* moveResizeModeToString(MoveResizeMode mode);
|
|
||||||
|
|
||||||
Placement::Policy placement;
|
Placement::Policy placement;
|
||||||
|
|
||||||
bool focusPolicyIsReasonable() {
|
bool focusPolicyIsReasonable() {
|
||||||
|
|
|
@ -69,7 +69,6 @@ Rules::Rules()
|
||||||
, blockcompositingrule(UnusedForceRule)
|
, blockcompositingrule(UnusedForceRule)
|
||||||
, fsplevelrule(UnusedForceRule)
|
, fsplevelrule(UnusedForceRule)
|
||||||
, acceptfocusrule(UnusedForceRule)
|
, acceptfocusrule(UnusedForceRule)
|
||||||
, moveresizemoderule(UnusedForceRule)
|
|
||||||
, closeablerule(UnusedForceRule)
|
, closeablerule(UnusedForceRule)
|
||||||
, autogrouprule(UnusedForceRule)
|
, autogrouprule(UnusedForceRule)
|
||||||
, autogroupfgrule(UnusedForceRule)
|
, autogroupfgrule(UnusedForceRule)
|
||||||
|
@ -177,7 +176,6 @@ void Rules::readFromCfg(const KConfigGroup& cfg)
|
||||||
READ_FORCE_RULE(blockcompositing, , false);
|
READ_FORCE_RULE(blockcompositing, , false);
|
||||||
READ_FORCE_RULE(fsplevel, limit0to4, 0); // fsp is 0-4
|
READ_FORCE_RULE(fsplevel, limit0to4, 0); // fsp is 0-4
|
||||||
READ_FORCE_RULE(acceptfocus, , false);
|
READ_FORCE_RULE(acceptfocus, , false);
|
||||||
READ_FORCE_RULE(moveresizemode, Options::stringToMoveResizeMode, QString());
|
|
||||||
READ_FORCE_RULE(closeable, , false);
|
READ_FORCE_RULE(closeable, , false);
|
||||||
READ_FORCE_RULE(autogroup, , false);
|
READ_FORCE_RULE(autogroup, , false);
|
||||||
READ_FORCE_RULE(autogroupfg, , true);
|
READ_FORCE_RULE(autogroupfg, , true);
|
||||||
|
@ -267,7 +265,6 @@ void Rules::write(KConfigGroup& cfg) const
|
||||||
WRITE_FORCE_RULE(blockcompositing,);
|
WRITE_FORCE_RULE(blockcompositing,);
|
||||||
WRITE_FORCE_RULE(fsplevel,);
|
WRITE_FORCE_RULE(fsplevel,);
|
||||||
WRITE_FORCE_RULE(acceptfocus,);
|
WRITE_FORCE_RULE(acceptfocus,);
|
||||||
WRITE_FORCE_RULE(moveresizemode, Options::moveResizeModeToString);
|
|
||||||
WRITE_FORCE_RULE(closeable,);
|
WRITE_FORCE_RULE(closeable,);
|
||||||
WRITE_FORCE_RULE(autogroup,);
|
WRITE_FORCE_RULE(autogroup,);
|
||||||
WRITE_FORCE_RULE(autogroupfg,);
|
WRITE_FORCE_RULE(autogroupfg,);
|
||||||
|
@ -309,7 +306,6 @@ bool Rules::isEmpty() const
|
||||||
&& blockcompositingrule == UnusedForceRule
|
&& blockcompositingrule == UnusedForceRule
|
||||||
&& fsplevelrule == UnusedForceRule
|
&& fsplevelrule == UnusedForceRule
|
||||||
&& acceptfocusrule == UnusedForceRule
|
&& acceptfocusrule == UnusedForceRule
|
||||||
&& moveresizemoderule == UnusedForceRule
|
|
||||||
&& closeablerule == UnusedForceRule
|
&& closeablerule == UnusedForceRule
|
||||||
&& autogrouprule == UnusedForceRule
|
&& autogrouprule == UnusedForceRule
|
||||||
&& autogroupfgrule == UnusedForceRule
|
&& autogroupfgrule == UnusedForceRule
|
||||||
|
@ -619,7 +615,6 @@ APPLY_RULE(noborder, NoBorder, bool)
|
||||||
APPLY_FORCE_RULE(blockcompositing, BlockCompositing, bool)
|
APPLY_FORCE_RULE(blockcompositing, BlockCompositing, bool)
|
||||||
APPLY_FORCE_RULE(fsplevel, FSP, int)
|
APPLY_FORCE_RULE(fsplevel, FSP, int)
|
||||||
APPLY_FORCE_RULE(acceptfocus, AcceptFocus, bool)
|
APPLY_FORCE_RULE(acceptfocus, AcceptFocus, bool)
|
||||||
APPLY_FORCE_RULE(moveresizemode, MoveResizeMode, Options::MoveResizeMode)
|
|
||||||
APPLY_FORCE_RULE(closeable, Closeable, bool)
|
APPLY_FORCE_RULE(closeable, Closeable, bool)
|
||||||
APPLY_FORCE_RULE(autogroup, Autogrouping, bool)
|
APPLY_FORCE_RULE(autogroup, Autogrouping, bool)
|
||||||
APPLY_FORCE_RULE(autogroupfg, AutogroupInForeground, bool)
|
APPLY_FORCE_RULE(autogroupfg, AutogroupInForeground, bool)
|
||||||
|
@ -686,7 +681,6 @@ void Rules::discardUsed(bool withdrawn)
|
||||||
DISCARD_USED_FORCE_RULE(blockcompositing);
|
DISCARD_USED_FORCE_RULE(blockcompositing);
|
||||||
DISCARD_USED_FORCE_RULE(fsplevel);
|
DISCARD_USED_FORCE_RULE(fsplevel);
|
||||||
DISCARD_USED_FORCE_RULE(acceptfocus);
|
DISCARD_USED_FORCE_RULE(acceptfocus);
|
||||||
DISCARD_USED_FORCE_RULE(moveresizemode);
|
|
||||||
DISCARD_USED_FORCE_RULE(closeable);
|
DISCARD_USED_FORCE_RULE(closeable);
|
||||||
DISCARD_USED_FORCE_RULE(autogroup);
|
DISCARD_USED_FORCE_RULE(autogroup);
|
||||||
DISCARD_USED_FORCE_RULE(autogroupfg);
|
DISCARD_USED_FORCE_RULE(autogroupfg);
|
||||||
|
@ -810,7 +804,6 @@ CHECK_RULE(NoBorder, bool)
|
||||||
CHECK_FORCE_RULE(BlockCompositing, bool)
|
CHECK_FORCE_RULE(BlockCompositing, bool)
|
||||||
CHECK_FORCE_RULE(FSP, int)
|
CHECK_FORCE_RULE(FSP, int)
|
||||||
CHECK_FORCE_RULE(AcceptFocus, bool)
|
CHECK_FORCE_RULE(AcceptFocus, bool)
|
||||||
CHECK_FORCE_RULE(MoveResizeMode, Options::MoveResizeMode)
|
|
||||||
CHECK_FORCE_RULE(Closeable, bool)
|
CHECK_FORCE_RULE(Closeable, bool)
|
||||||
CHECK_FORCE_RULE(Autogrouping, bool)
|
CHECK_FORCE_RULE(Autogrouping, bool)
|
||||||
CHECK_FORCE_RULE(AutogroupInForeground, bool)
|
CHECK_FORCE_RULE(AutogroupInForeground, bool)
|
||||||
|
@ -866,7 +859,6 @@ void Client::applyWindowRules()
|
||||||
if (workspace()->mostRecentlyActivatedClient() == this
|
if (workspace()->mostRecentlyActivatedClient() == this
|
||||||
&& !client_rules.checkAcceptFocus(true))
|
&& !client_rules.checkAcceptFocus(true))
|
||||||
workspace()->activateNextClient(this);
|
workspace()->activateNextClient(this);
|
||||||
// MoveResizeMode
|
|
||||||
// Closeable
|
// Closeable
|
||||||
QSize s = adjustedSize();
|
QSize s = adjustedSize();
|
||||||
if (s != size())
|
if (s != size())
|
||||||
|
|
4
rules.h
4
rules.h
|
@ -78,7 +78,6 @@ public:
|
||||||
bool checkBlockCompositing(bool block) const;
|
bool checkBlockCompositing(bool block) const;
|
||||||
int checkFSP(int fsp) const;
|
int checkFSP(int fsp) const;
|
||||||
bool checkAcceptFocus(bool focus) const;
|
bool checkAcceptFocus(bool focus) const;
|
||||||
Options::MoveResizeMode checkMoveResizeMode(Options::MoveResizeMode mode) const;
|
|
||||||
bool checkCloseable(bool closeable) const;
|
bool checkCloseable(bool closeable) const;
|
||||||
bool checkAutogrouping(bool autogroup) const;
|
bool checkAutogrouping(bool autogroup) const;
|
||||||
bool checkAutogroupInForeground(bool fg) const;
|
bool checkAutogroupInForeground(bool fg) const;
|
||||||
|
@ -136,7 +135,6 @@ public:
|
||||||
bool applyBlockCompositing(bool& block) const;
|
bool applyBlockCompositing(bool& block) const;
|
||||||
bool applyFSP(int& fsp) const;
|
bool applyFSP(int& fsp) const;
|
||||||
bool applyAcceptFocus(bool& focus) const;
|
bool applyAcceptFocus(bool& focus) const;
|
||||||
bool applyMoveResizeMode(Options::MoveResizeMode& mode) const;
|
|
||||||
bool applyCloseable(bool& closeable) const;
|
bool applyCloseable(bool& closeable) const;
|
||||||
bool applyAutogrouping(bool& autogroup) const;
|
bool applyAutogrouping(bool& autogroup) const;
|
||||||
bool applyAutogroupInForeground(bool& fg) const;
|
bool applyAutogroupInForeground(bool& fg) const;
|
||||||
|
@ -252,8 +250,6 @@ private:
|
||||||
ForceRule fsplevelrule;
|
ForceRule fsplevelrule;
|
||||||
bool acceptfocus;
|
bool acceptfocus;
|
||||||
ForceRule acceptfocusrule;
|
ForceRule acceptfocusrule;
|
||||||
Options::MoveResizeMode moveresizemode;
|
|
||||||
ForceRule moveresizemoderule;
|
|
||||||
bool closeable;
|
bool closeable;
|
||||||
ForceRule closeablerule;
|
ForceRule closeablerule;
|
||||||
bool autogroup;
|
bool autogroup;
|
||||||
|
|
|
@ -943,8 +943,6 @@ bool Client::performMouseCommand(Options::MouseCommand command, const QPoint &gl
|
||||||
workspace()->raiseClient(this);
|
workspace()->raiseClient(this);
|
||||||
workspace()->requestFocus(this);
|
workspace()->requestFocus(this);
|
||||||
workspace()->setActiveScreenMouse(globalPos);
|
workspace()->setActiveScreenMouse(globalPos);
|
||||||
if (options->moveMode == Options::Transparent && isMovableAcrossScreens())
|
|
||||||
move_faked_activity = workspace()->fakeRequestedActivity(this);
|
|
||||||
// fallthrough
|
// fallthrough
|
||||||
case Options::MouseMove:
|
case Options::MouseMove:
|
||||||
case Options::MouseUnrestrictedMove: {
|
case Options::MouseUnrestrictedMove: {
|
||||||
|
|
|
@ -140,8 +140,6 @@ public:
|
||||||
void restoreFocus();
|
void restoreFocus();
|
||||||
void gotFocusIn(const Client*);
|
void gotFocusIn(const Client*);
|
||||||
void setShouldGetFocus(Client*);
|
void setShouldGetFocus(Client*);
|
||||||
bool fakeRequestedActivity(Client* c);
|
|
||||||
void unfakeActivity(Client* c);
|
|
||||||
bool activateNextClient(Client* c);
|
bool activateNextClient(Client* c);
|
||||||
bool focusChangeEnabled() {
|
bool focusChangeEnabled() {
|
||||||
return block_focus == 0;
|
return block_focus == 0;
|
||||||
|
|
Loading…
Reference in New Issue