Add "SkipSwitcher" to API
Summary: Adding "SkipSwitcher" to the API, following discussion in BUG 375921 Depends on / related to D11925 and D11924 Reviewers: hein, #kwin, graesslin Reviewed By: #kwin, graesslin Subscribers: davidedmundson, #plasma, ngraham, kwin, #kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D11926icc-effect-5.14.5
parent
ebfc713936
commit
8a2a00a4ca
|
@ -142,6 +142,7 @@ void AbstractClient::setSkipSwitcher(bool set)
|
|||
if (set == skipSwitcher())
|
||||
return;
|
||||
m_skipSwitcher = set;
|
||||
doSetSkipSwitcher();
|
||||
updateWindowRules(Rules::SkipSwitcher);
|
||||
emit skipSwitcherChanged();
|
||||
}
|
||||
|
@ -186,6 +187,11 @@ void AbstractClient::doSetSkipTaskbar()
|
|||
|
||||
}
|
||||
|
||||
void AbstractClient::doSetSkipSwitcher()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void AbstractClient::setIcon(const QIcon &icon)
|
||||
{
|
||||
m_icon = icon;
|
||||
|
@ -703,6 +709,7 @@ void AbstractClient::setupWindowManagementInterface()
|
|||
};
|
||||
updateAppId();
|
||||
w->setSkipTaskbar(skipTaskbar());
|
||||
w->setSkipSwitcher(skipSwitcher());
|
||||
w->setPid(pid());
|
||||
w->setShadeable(isShadeable());
|
||||
w->setShaded(isShade());
|
||||
|
@ -716,6 +723,11 @@ void AbstractClient::setupWindowManagementInterface()
|
|||
w->setSkipTaskbar(skipTaskbar());
|
||||
}
|
||||
);
|
||||
connect(this, &AbstractClient::skipSwitcherChanged, w,
|
||||
[w, this] {
|
||||
w->setSkipSwitcher(skipSwitcher());
|
||||
}
|
||||
);
|
||||
connect(this, &AbstractClient::captionChanged, w, [w, this] { w->setTitle(caption()); });
|
||||
connect(this, &AbstractClient::desktopChanged, w,
|
||||
[w, this] {
|
||||
|
|
|
@ -786,6 +786,7 @@ protected:
|
|||
|
||||
virtual void doSetSkipTaskbar();
|
||||
virtual void doSetSkipPager();
|
||||
virtual void doSetSkipSwitcher();
|
||||
|
||||
void setupWindowManagementInterface();
|
||||
void destroyWindowManagementInterface();
|
||||
|
|
|
@ -1196,6 +1196,11 @@ void Client::doSetSkipPager()
|
|||
info->setState(skipPager() ? NET::SkipPager : NET::States(0), NET::SkipPager);
|
||||
}
|
||||
|
||||
void Client::doSetSkipSwitcher()
|
||||
{
|
||||
info->setState(skipSwitcher() ? NET::SkipSwitcher : NET::States(0), NET::SkipSwitcher);
|
||||
}
|
||||
|
||||
void Client::doSetDesktop(int desktop, int was_desk)
|
||||
{
|
||||
Q_UNUSED(desktop)
|
||||
|
|
1
client.h
1
client.h
|
@ -388,6 +388,7 @@ protected:
|
|||
void doMinimize() override;
|
||||
void doSetSkipPager() override;
|
||||
void doSetSkipTaskbar() override;
|
||||
void doSetSkipSwitcher() override;
|
||||
bool belongsToDesktop() const override;
|
||||
void setGeometryRestore(const QRect &geo) override;
|
||||
void updateTabGroupStates(TabGroup::States states) override;
|
||||
|
|
|
@ -756,7 +756,7 @@ void RulesWidget::prefillUnusedValues(const KWindowInfo& info)
|
|||
CHECKBOX_PREFILL(noborder, , info.frameGeometry() == info.geometry());
|
||||
CHECKBOX_PREFILL(skiptaskbar, , info.state() & NET::SkipTaskbar);
|
||||
CHECKBOX_PREFILL(skippager, , info.state() & NET::SkipPager);
|
||||
CHECKBOX_PREFILL(skipswitcher, , false);
|
||||
CHECKBOX_PREFILL(skipswitcher, , info.state() & NET::SkipSwitcher);
|
||||
//CHECKBOX_PREFILL( acceptfocus, );
|
||||
//CHECKBOX_PREFILL( closeable, );
|
||||
//CHECKBOX_PREFILL( autogroup, );
|
||||
|
|
|
@ -159,6 +159,7 @@ bool Client::manage(xcb_window_t w, bool isMapped)
|
|||
|
||||
setOriginalSkipTaskbar((info->state() & NET::SkipTaskbar) != 0);
|
||||
setSkipPager((info->state() & NET::SkipPager) != 0);
|
||||
setSkipSwitcher((info->state() & NET::SkipSwitcher) != 0);
|
||||
readFirstInTabBox(firstInTabBoxCookie);
|
||||
|
||||
setupCompositing();
|
||||
|
@ -557,7 +558,7 @@ bool Client::manage(xcb_window_t w, bool isMapped)
|
|||
setKeepBelow(rules()->checkKeepBelow(info->state() & NET::KeepBelow, !isMapped));
|
||||
setOriginalSkipTaskbar(rules()->checkSkipTaskbar(info->state() & NET::SkipTaskbar, !isMapped));
|
||||
setSkipPager(rules()->checkSkipPager(info->state() & NET::SkipPager, !isMapped));
|
||||
setSkipSwitcher(rules()->checkSkipSwitcher(false, !isMapped));
|
||||
setSkipSwitcher(rules()->checkSkipSwitcher(info->state() & NET::SkipSwitcher, !isMapped));
|
||||
if (info->state() & NET::DemandsAttention)
|
||||
demandAttention();
|
||||
if (info->state() & NET::Modal)
|
||||
|
|
|
@ -95,7 +95,8 @@ RootInfo *RootInfo::create()
|
|||
NET::Hidden |
|
||||
NET::FullScreen |
|
||||
NET::KeepBelow |
|
||||
NET::DemandsAttention;
|
||||
NET::DemandsAttention |
|
||||
NET::SkipSwitcher;
|
||||
NET::Properties2 properties2 = NET::WM2UserTime |
|
||||
NET::WM2StartupId |
|
||||
NET::WM2AllowedActions |
|
||||
|
@ -284,6 +285,8 @@ void WinInfo::changeState(NET::States state, NET::States mask)
|
|||
m_client->setOriginalSkipTaskbar((state & NET::SkipTaskbar) != 0);
|
||||
if (mask & NET::SkipPager)
|
||||
m_client->setSkipPager((state & NET::SkipPager) != 0);
|
||||
if (mask & NET::SkipSwitcher)
|
||||
m_client->setSkipSwitcher((state & NET::SkipSwitcher) != 0);
|
||||
if (mask & NET::DemandsAttention)
|
||||
m_client->demandAttention((state & NET::DemandsAttention) != 0);
|
||||
if (mask & NET::Modal)
|
||||
|
|
|
@ -1299,6 +1299,11 @@ void ShellClient::installPlasmaShellSurface(PlasmaShellSurfaceInterface *surface
|
|||
connect(surface, &PlasmaShellSurfaceInterface::skipTaskbarChanged, this, [this] {
|
||||
setSkipTaskbar(m_plasmaShellSurface->skipTaskbar());
|
||||
});
|
||||
|
||||
setSkipSwitcher(surface->skipSwitcher());
|
||||
connect(surface, &PlasmaShellSurfaceInterface::skipSwitcherChanged, this, [this] {
|
||||
setSkipSwitcher(m_plasmaShellSurface->skipSwitcher());
|
||||
});
|
||||
}
|
||||
|
||||
void ShellClient::updateShowOnScreenEdge()
|
||||
|
|
Loading…
Reference in New Issue