[kwin] Remove support for _NET_WM_TAKE_ACTIVITY protocol
As can be seen in [1] the patches to KWin were in CVS HEAD before the protocol got standardized and it never got any adoption. It's neither in the NETWM spec, nor implemented in Qt4 nor in Qt5. KWin did not even add the protocol to the NET::Supported property. Thus it doesn't make much sense to keep a protocol which nobody speaks. Still the code around the protocol is kept and also the names are kept. Only difference is that Client::takeActivity got removed and the code moved to the only calling place in Workspace. Motivated by that change the enum defined in utils.h is moved into Workspace, it's turned into a proper QFlags class and used as a type in the method argument instead of a generic long. [1] https://mail.gnome.org/archives/wm-spec-list/2004-April/msg00013.html REVIEW: 116922
This commit is contained in:
parent
a3878f2c7f
commit
970e8765f0
12 changed files with 25 additions and 94 deletions
|
@ -262,7 +262,6 @@ void Workspace::setActiveClient(Client* c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pending_take_activity = NULL;
|
|
||||||
|
|
||||||
updateToolWindows(false);
|
updateToolWindows(false);
|
||||||
if (c)
|
if (c)
|
||||||
|
@ -336,10 +335,10 @@ void Workspace::activateClient(Client* c, bool force)
|
||||||
*/
|
*/
|
||||||
void Workspace::requestFocus(Client* c, bool force)
|
void Workspace::requestFocus(Client* c, bool force)
|
||||||
{
|
{
|
||||||
takeActivity(c, ActivityFocus | (force ? ActivityFocusForce : 0), false);
|
takeActivity(c, force ? ActivityFocusForce : ActivityFocus);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Workspace::takeActivity(Client* c, int flags, bool handled)
|
void Workspace::takeActivity(Client* c, ActivityFlags flags)
|
||||||
{
|
{
|
||||||
// the 'if ( c == active_client ) return;' optimization mustn't be done here
|
// the 'if ( c == active_client ) return;' optimization mustn't be done here
|
||||||
if (!focusChangeEnabled() && (c != active_client))
|
if (!focusChangeEnabled() && (c != active_client))
|
||||||
|
@ -365,7 +364,6 @@ void Workspace::takeActivity(Client* c, int flags, bool handled)
|
||||||
if (flags & ActivityRaise)
|
if (flags & ActivityRaise)
|
||||||
raiseClient(c);
|
raiseClient(c);
|
||||||
c = modal;
|
c = modal;
|
||||||
handled = false;
|
|
||||||
}
|
}
|
||||||
cancelDelayFocus();
|
cancelDelayFocus();
|
||||||
}
|
}
|
||||||
|
@ -378,7 +376,6 @@ void Workspace::takeActivity(Client* c, int flags, bool handled)
|
||||||
focusToNull();
|
focusToNull();
|
||||||
}
|
}
|
||||||
flags &= ~ActivityFocus;
|
flags &= ~ActivityFocus;
|
||||||
handled = false; // no point, can't get clicks
|
|
||||||
}
|
}
|
||||||
if (c->tabGroup() && c->tabGroup()->current() != c)
|
if (c->tabGroup() && c->tabGroup()->current() != c)
|
||||||
c->tabGroup()->setCurrent(c);
|
c->tabGroup()->setCurrent(c);
|
||||||
|
@ -386,22 +383,16 @@ void Workspace::takeActivity(Client* c, int flags, bool handled)
|
||||||
qWarning() << "takeActivity: not shown" ;
|
qWarning() << "takeActivity: not shown" ;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
c->takeActivity(flags, handled);
|
|
||||||
|
if (flags & ActivityFocus)
|
||||||
|
c->takeFocus();
|
||||||
|
if (flags & ActivityRaise)
|
||||||
|
workspace()->raiseClient(c);
|
||||||
|
|
||||||
if (!c->isOnActiveScreen())
|
if (!c->isOnActiveScreen())
|
||||||
screens()->setCurrent(c->screen());
|
screens()->setCurrent(c->screen());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Workspace::handleTakeActivity(KWin::Client *c, xcb_timestamp_t /*timestamp*/, int flags)
|
|
||||||
{
|
|
||||||
if (pending_take_activity != c) // pending_take_activity is reset when doing restack or activation
|
|
||||||
return;
|
|
||||||
if ((flags & ActivityRaise) != 0)
|
|
||||||
raiseClient(c);
|
|
||||||
if ((flags & ActivityFocus) != 0 && c->isShown(false))
|
|
||||||
c->takeFocus();
|
|
||||||
pending_take_activity = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Informs the workspace that the client \a c has been hidden. If it
|
Informs the workspace that the client \a c has been hidden. If it
|
||||||
was the active client (or to-become the active client),
|
was the active client (or to-become the active client),
|
||||||
|
|
|
@ -347,7 +347,7 @@ void Bridge::untab(long id, const QRect& newGeom)
|
||||||
if (Client* client = clientForId(id))
|
if (Client* client = clientForId(id))
|
||||||
if (client->untab(newGeom)) {
|
if (client->untab(newGeom)) {
|
||||||
if (options->focusPolicyIsReasonable())
|
if (options->focusPolicyIsReasonable())
|
||||||
workspace()->takeActivity(client, ActivityFocus | ActivityRaise, true);
|
workspace()->takeActivity(client, Workspace::ActivityFocus | Workspace::ActivityRaise);
|
||||||
workspace()->raiseClient(client);
|
workspace()->raiseClient(client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
34
client.cpp
34
client.cpp
|
@ -273,7 +273,6 @@ Client::Client()
|
||||||
|
|
||||||
Pdeletewindow = 0;
|
Pdeletewindow = 0;
|
||||||
Ptakefocus = 0;
|
Ptakefocus = 0;
|
||||||
Ptakeactivity = 0;
|
|
||||||
Pcontexthelp = 0;
|
Pcontexthelp = 0;
|
||||||
Pping = 0;
|
Pping = 0;
|
||||||
input = false;
|
input = false;
|
||||||
|
@ -1731,36 +1730,6 @@ void Client::setOnAllActivities(bool on)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Performs activation and/or raising of the window
|
|
||||||
*/
|
|
||||||
void Client::takeActivity(int flags, bool handled)
|
|
||||||
{
|
|
||||||
if (!handled || !Ptakeactivity) {
|
|
||||||
if (flags & ActivityFocus)
|
|
||||||
takeFocus();
|
|
||||||
if (flags & ActivityRaise)
|
|
||||||
workspace()->raiseClient(this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef NDEBUG
|
|
||||||
static Time previous_activity_timestamp;
|
|
||||||
static Client* previous_client;
|
|
||||||
|
|
||||||
//if ( previous_activity_timestamp == xTime() && previous_client != this )
|
|
||||||
// {
|
|
||||||
// qDebug() << "Repeated use of the same X timestamp for activity";
|
|
||||||
// qDebug() << kBacktrace();
|
|
||||||
// }
|
|
||||||
|
|
||||||
previous_activity_timestamp = xTime();
|
|
||||||
previous_client = this;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
workspace()->sendTakeActivity(this, xTime(), flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Performs the actual focusing of the window using XSetInputFocus and WM_TAKE_FOCUS
|
* Performs the actual focusing of the window using XSetInputFocus and WM_TAKE_FOCUS
|
||||||
*/
|
*/
|
||||||
|
@ -2160,7 +2129,6 @@ void Client::getWindowProtocols()
|
||||||
|
|
||||||
Pdeletewindow = 0;
|
Pdeletewindow = 0;
|
||||||
Ptakefocus = 0;
|
Ptakefocus = 0;
|
||||||
Ptakeactivity = 0;
|
|
||||||
Pcontexthelp = 0;
|
Pcontexthelp = 0;
|
||||||
Pping = 0;
|
Pping = 0;
|
||||||
|
|
||||||
|
@ -2170,8 +2138,6 @@ void Client::getWindowProtocols()
|
||||||
Pdeletewindow = 1;
|
Pdeletewindow = 1;
|
||||||
else if (p[i] == atoms->wm_take_focus)
|
else if (p[i] == atoms->wm_take_focus)
|
||||||
Ptakefocus = 1;
|
Ptakefocus = 1;
|
||||||
else if (p[i] == atoms->net_wm_take_activity)
|
|
||||||
Ptakeactivity = 1;
|
|
||||||
else if (p[i] == atoms->net_wm_context_help)
|
else if (p[i] == atoms->net_wm_context_help)
|
||||||
Pcontexthelp = 1;
|
Pcontexthelp = 1;
|
||||||
else if (p[i] == atoms->net_wm_ping)
|
else if (p[i] == atoms->net_wm_ping)
|
||||||
|
|
4
client.h
4
client.h
|
@ -414,7 +414,6 @@ public:
|
||||||
bool isMovableAcrossScreens() const;
|
bool isMovableAcrossScreens() const;
|
||||||
bool isCloseable() const; ///< May be closed by the user (May have a close button)
|
bool isCloseable() const; ///< May be closed by the user (May have a close button)
|
||||||
|
|
||||||
void takeActivity(int flags, bool handled); // Takes ActivityFlags as arg (in utils.h)
|
|
||||||
void takeFocus();
|
void takeFocus();
|
||||||
bool isDemandingAttention() const {
|
bool isDemandingAttention() const {
|
||||||
return demands_attention;
|
return demands_attention;
|
||||||
|
@ -465,7 +464,7 @@ public:
|
||||||
void setShortcut(const QString& cut);
|
void setShortcut(const QString& cut);
|
||||||
|
|
||||||
WindowOperation mouseButtonToWindowOperation(Qt::MouseButtons button);
|
WindowOperation mouseButtonToWindowOperation(Qt::MouseButtons button);
|
||||||
bool performMouseCommand(Options::MouseCommand, const QPoint& globalPos, bool handled = false);
|
bool performMouseCommand(Options::MouseCommand, const QPoint& globalPos);
|
||||||
|
|
||||||
QRect adjustedClientArea(const QRect& desktop, const QRect& area) const;
|
QRect adjustedClientArea(const QRect& desktop, const QRect& area) const;
|
||||||
|
|
||||||
|
@ -907,7 +906,6 @@ private:
|
||||||
uint original_skip_taskbar : 1; ///< Unaffected by KWin
|
uint original_skip_taskbar : 1; ///< Unaffected by KWin
|
||||||
uint Pdeletewindow : 1; ///< Does the window understand the DeleteWindow protocol?
|
uint Pdeletewindow : 1; ///< Does the window understand the DeleteWindow protocol?
|
||||||
uint Ptakefocus : 1;///< Does the window understand the TakeFocus protocol?
|
uint Ptakefocus : 1;///< Does the window understand the TakeFocus protocol?
|
||||||
uint Ptakeactivity : 1; ///< Does it support _NET_WM_TAKE_ACTIVITY
|
|
||||||
uint Pcontexthelp : 1; ///< Does the window understand the ContextHelp protocol?
|
uint Pcontexthelp : 1; ///< Does the window understand the ContextHelp protocol?
|
||||||
uint Pping : 1; ///< Does it support _NET_WM_PING?
|
uint Pping : 1; ///< Does it support _NET_WM_PING?
|
||||||
uint input : 1; ///< Does the window want input in its wm_hints
|
uint input : 1; ///< Does the window want input in its wm_hints
|
||||||
|
|
|
@ -1066,7 +1066,6 @@ bool Client::buttonPressEvent(xcb_window_t w, int button, int state, int x, int
|
||||||
|
|
||||||
Options::MouseCommand com = Options::MouseNothing;
|
Options::MouseCommand com = Options::MouseNothing;
|
||||||
bool was_action = false;
|
bool was_action = false;
|
||||||
bool perform_handled = false;
|
|
||||||
if (bModKeyHeld) {
|
if (bModKeyHeld) {
|
||||||
was_action = true;
|
was_action = true;
|
||||||
switch(button) {
|
switch(button) {
|
||||||
|
@ -1088,7 +1087,6 @@ bool Client::buttonPressEvent(xcb_window_t w, int button, int state, int x, int
|
||||||
// inactive inner window
|
// inactive inner window
|
||||||
if (!isActive() && w == wrapperId() && button < 6) {
|
if (!isActive() && w == wrapperId() && button < 6) {
|
||||||
was_action = true;
|
was_action = true;
|
||||||
perform_handled = true;
|
|
||||||
switch(button) {
|
switch(button) {
|
||||||
case XCB_BUTTON_INDEX_1:
|
case XCB_BUTTON_INDEX_1:
|
||||||
com = options->commandWindow1();
|
com = options->commandWindow1();
|
||||||
|
@ -1110,11 +1108,10 @@ bool Client::buttonPressEvent(xcb_window_t w, int button, int state, int x, int
|
||||||
&& options->isClickRaise() && button < 4) { // exclude wheel
|
&& options->isClickRaise() && button < 4) { // exclude wheel
|
||||||
com = Options::MouseActivateRaiseAndPassClick;
|
com = Options::MouseActivateRaiseAndPassClick;
|
||||||
was_action = true;
|
was_action = true;
|
||||||
perform_handled = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (was_action) {
|
if (was_action) {
|
||||||
bool replay = performMouseCommand(com, QPoint(x_root, y_root), perform_handled);
|
bool replay = performMouseCommand(com, QPoint(x_root, y_root));
|
||||||
|
|
||||||
if (isSpecialWindow())
|
if (isSpecialWindow())
|
||||||
replay = true;
|
replay = true;
|
||||||
|
|
|
@ -384,7 +384,6 @@ void Workspace::raiseClient(Client* c, bool nogroup)
|
||||||
|
|
||||||
if (!c->isSpecialWindow()) {
|
if (!c->isSpecialWindow()) {
|
||||||
most_recently_raised = c;
|
most_recently_raised = c;
|
||||||
pending_take_activity = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -193,13 +193,6 @@ void RootInfo::restackWindow(xcb_window_t w, RequestSource src, xcb_window_t abo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RootInfo::gotTakeActivity(xcb_window_t w, xcb_timestamp_t timestamp, long flags)
|
|
||||||
{
|
|
||||||
Workspace *workspace = Workspace::self();
|
|
||||||
if (Client* c = workspace->findClient(WindowMatchPredicate(w)))
|
|
||||||
workspace->handleTakeActivity(c, timestamp, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
void RootInfo::closeWindow(xcb_window_t w)
|
void RootInfo::closeWindow(xcb_window_t w)
|
||||||
{
|
{
|
||||||
Client* c = Workspace::self()->findClient(WindowMatchPredicate(w));
|
Client* c = Workspace::self()->findClient(WindowMatchPredicate(w));
|
||||||
|
|
|
@ -53,7 +53,6 @@ protected:
|
||||||
virtual void moveResizeWindow(xcb_window_t w, int flags, int x, int y, int width, int height) override;
|
virtual void moveResizeWindow(xcb_window_t w, int flags, int x, int y, int width, int height) override;
|
||||||
virtual void gotPing(xcb_window_t w, xcb_timestamp_t timestamp) override;
|
virtual void gotPing(xcb_window_t w, xcb_timestamp_t timestamp) override;
|
||||||
virtual void restackWindow(xcb_window_t w, RequestSource source, xcb_window_t above, int detail, xcb_timestamp_t timestamp) override;
|
virtual void restackWindow(xcb_window_t w, RequestSource source, xcb_window_t above, int detail, xcb_timestamp_t timestamp) override;
|
||||||
virtual void gotTakeActivity(xcb_window_t w, xcb_timestamp_t timestamp, long flags) override;
|
|
||||||
virtual void changeShowingDesktop(bool showing) override;
|
virtual void changeShowingDesktop(bool showing) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -1088,7 +1088,7 @@ void Workspace::performWindowOperation(Client* c, Options::WindowOperation op)
|
||||||
break;
|
break;
|
||||||
case Options::RemoveTabFromGroupOp:
|
case Options::RemoveTabFromGroupOp:
|
||||||
if (c->untab(c->geometry().translated(cascadeOffset(c))) && options->focusPolicyIsReasonable())
|
if (c->untab(c->geometry().translated(cascadeOffset(c))) && options->focusPolicyIsReasonable())
|
||||||
takeActivity(c, ActivityFocus | ActivityRaise, true);
|
takeActivity(c, ActivityFocus | ActivityRaise);
|
||||||
break;
|
break;
|
||||||
case Options::ActivateNextTabOp:
|
case Options::ActivateNextTabOp:
|
||||||
if (c->tabGroup())
|
if (c->tabGroup())
|
||||||
|
@ -1133,7 +1133,7 @@ Options::WindowOperation Client::mouseButtonToWindowOperation(Qt::MouseButtons b
|
||||||
/*!
|
/*!
|
||||||
Performs a mouse command on this client (see options.h)
|
Performs a mouse command on this client (see options.h)
|
||||||
*/
|
*/
|
||||||
bool Client::performMouseCommand(Options::MouseCommand command, const QPoint &globalPos, bool handled)
|
bool Client::performMouseCommand(Options::MouseCommand command, const QPoint &globalPos)
|
||||||
{
|
{
|
||||||
bool replay = false;
|
bool replay = false;
|
||||||
switch(command) {
|
switch(command) {
|
||||||
|
@ -1184,7 +1184,7 @@ bool Client::performMouseCommand(Options::MouseCommand command, const QPoint &gl
|
||||||
mustReplay = !(c->isOnCurrentDesktop() && c->isOnCurrentActivity() && c->geometry().intersects(geometry()));
|
mustReplay = !(c->isOnCurrentDesktop() && c->isOnCurrentActivity() && c->geometry().intersects(geometry()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
workspace()->takeActivity(this, ActivityFocus | ActivityRaise, handled && replay);
|
workspace()->takeActivity(this, Workspace::ActivityFocus | Workspace::ActivityRaise);
|
||||||
screens()->setCurrent(globalPos);
|
screens()->setCurrent(globalPos);
|
||||||
replay = replay || mustReplay;
|
replay = replay || mustReplay;
|
||||||
break;
|
break;
|
||||||
|
@ -1197,17 +1197,17 @@ bool Client::performMouseCommand(Options::MouseCommand command, const QPoint &gl
|
||||||
break;
|
break;
|
||||||
case Options::MouseActivate:
|
case Options::MouseActivate:
|
||||||
replay = isActive(); // for clickraise mode
|
replay = isActive(); // for clickraise mode
|
||||||
workspace()->takeActivity(this, ActivityFocus, handled && replay);
|
workspace()->takeActivity(this, Workspace::ActivityFocus);
|
||||||
screens()->setCurrent(globalPos);
|
screens()->setCurrent(globalPos);
|
||||||
replay = replay || !rules()->checkAcceptFocus(input);
|
replay = replay || !rules()->checkAcceptFocus(input);
|
||||||
break;
|
break;
|
||||||
case Options::MouseActivateRaiseAndPassClick:
|
case Options::MouseActivateRaiseAndPassClick:
|
||||||
workspace()->takeActivity(this, ActivityFocus | ActivityRaise, handled);
|
workspace()->takeActivity(this, Workspace::ActivityFocus | Workspace::ActivityRaise);
|
||||||
screens()->setCurrent(globalPos);
|
screens()->setCurrent(globalPos);
|
||||||
replay = true;
|
replay = true;
|
||||||
break;
|
break;
|
||||||
case Options::MouseActivateAndPassClick:
|
case Options::MouseActivateAndPassClick:
|
||||||
workspace()->takeActivity(this, ActivityFocus, handled);
|
workspace()->takeActivity(this, Workspace::ActivityFocus);
|
||||||
screens()->setCurrent(globalPos);
|
screens()->setCurrent(globalPos);
|
||||||
replay = true;
|
replay = true;
|
||||||
break;
|
break;
|
||||||
|
|
7
utils.h
7
utils.h
|
@ -89,13 +89,6 @@ inline void operator++(Layer& lay)
|
||||||
lay = static_cast< Layer >(lay + 1);
|
lay = static_cast< Layer >(lay + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// for Client::takeActivity()
|
|
||||||
enum ActivityFlags {
|
|
||||||
ActivityFocus = 1 << 0, // focus the window
|
|
||||||
ActivityFocusForce = 1 << 1, // focus even if Dock etc.
|
|
||||||
ActivityRaise = 1 << 2 // raise the window
|
|
||||||
};
|
|
||||||
|
|
||||||
enum StrutArea {
|
enum StrutArea {
|
||||||
StrutAreaInvalid = 0, // Null
|
StrutAreaInvalid = 0, // Null
|
||||||
StrutAreaTop = 1 << 0,
|
StrutAreaTop = 1 << 0,
|
||||||
|
|
|
@ -115,7 +115,6 @@ Workspace::Workspace(bool restore)
|
||||||
, last_active_client(0)
|
, last_active_client(0)
|
||||||
, most_recently_raised(0)
|
, most_recently_raised(0)
|
||||||
, movingClient(0)
|
, movingClient(0)
|
||||||
, pending_take_activity(NULL)
|
|
||||||
, delayfocus_client(0)
|
, delayfocus_client(0)
|
||||||
, force_restacking(false)
|
, force_restacking(false)
|
||||||
, x_stacking_dirty(true)
|
, x_stacking_dirty(true)
|
||||||
|
@ -591,8 +590,6 @@ void Workspace::removeClient(Client* c)
|
||||||
Q_ASSERT(c != active_client);
|
Q_ASSERT(c != active_client);
|
||||||
if (c == last_active_client)
|
if (c == last_active_client)
|
||||||
last_active_client = 0;
|
last_active_client = 0;
|
||||||
if (c == pending_take_activity)
|
|
||||||
pending_take_activity = NULL;
|
|
||||||
if (c == delayfocus_client)
|
if (c == delayfocus_client)
|
||||||
cancelDelayFocus();
|
cancelDelayFocus();
|
||||||
|
|
||||||
|
@ -1203,12 +1200,6 @@ void Workspace::sendPingToWindow(xcb_window_t window, xcb_timestamp_t timestamp)
|
||||||
rootInfo()->sendPing(window, timestamp);
|
rootInfo()->sendPing(window, timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Workspace::sendTakeActivity(KWin::Client *c, xcb_timestamp_t timestamp, long int flags)
|
|
||||||
{
|
|
||||||
rootInfo()->takeActivity(c->window(), timestamp, flags);
|
|
||||||
pending_take_activity = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delayed focus functions
|
* Delayed focus functions
|
||||||
*/
|
*/
|
||||||
|
|
12
workspace.h
12
workspace.h
|
@ -105,8 +105,13 @@ public:
|
||||||
|
|
||||||
void activateClient(Client*, bool force = false);
|
void activateClient(Client*, bool force = false);
|
||||||
void requestFocus(Client* c, bool force = false);
|
void requestFocus(Client* c, bool force = false);
|
||||||
void takeActivity(Client* c, int flags, bool handled); // Flags are ActivityFlags
|
enum ActivityFlag {
|
||||||
void handleTakeActivity(Client* c, xcb_timestamp_t timestamp, int flags); // Flags are ActivityFlags
|
ActivityFocus = 1 << 0, // focus the window
|
||||||
|
ActivityFocusForce = 1 << 1 | ActivityFocus, // focus even if Dock etc.
|
||||||
|
ActivityRaise = 1 << 2 // raise the window
|
||||||
|
};
|
||||||
|
Q_DECLARE_FLAGS(ActivityFlags, ActivityFlag)
|
||||||
|
void takeActivity(Client* c, ActivityFlags flags);
|
||||||
bool allowClientActivation(const Client* c, xcb_timestamp_t time = -1U, bool focus_in = false,
|
bool allowClientActivation(const Client* c, xcb_timestamp_t time = -1U, bool focus_in = false,
|
||||||
bool ignore_desktop = false);
|
bool ignore_desktop = false);
|
||||||
void restoreFocus();
|
void restoreFocus();
|
||||||
|
@ -235,7 +240,6 @@ public:
|
||||||
bool showingDesktop() const;
|
bool showingDesktop() const;
|
||||||
|
|
||||||
void sendPingToWindow(xcb_window_t w, xcb_timestamp_t timestamp); // Called from Client::pingWindow()
|
void sendPingToWindow(xcb_window_t w, xcb_timestamp_t timestamp); // Called from Client::pingWindow()
|
||||||
void sendTakeActivity(Client* c, xcb_timestamp_t timestamp, long flags); // Called from Client::takeActivity()
|
|
||||||
|
|
||||||
void removeClient(Client*); // Only called from Client::destroyClient() or Client::releaseWindow()
|
void removeClient(Client*); // Only called from Client::destroyClient() or Client::releaseWindow()
|
||||||
void setActiveClient(Client*);
|
void setActiveClient(Client*);
|
||||||
|
@ -457,7 +461,6 @@ private:
|
||||||
Client* last_active_client;
|
Client* last_active_client;
|
||||||
Client* most_recently_raised; // Used ONLY by raiseOrLowerClient()
|
Client* most_recently_raised; // Used ONLY by raiseOrLowerClient()
|
||||||
Client* movingClient;
|
Client* movingClient;
|
||||||
Client* pending_take_activity;
|
|
||||||
|
|
||||||
// Delay(ed) window focus timer and client
|
// Delay(ed) window focus timer and client
|
||||||
QTimer* delayFocusTimer;
|
QTimer* delayFocusTimer;
|
||||||
|
@ -726,5 +729,6 @@ inline Workspace *workspace()
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
Q_DECLARE_OPERATORS_FOR_FLAGS(KWin::Workspace::ActivityFlags)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue