kstart: implement option to not use temporary rules

for simulating clients actually demanding attention (not done by kwin
rule)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2024-05-25 09:35:44 +03:00
parent e3ae38991c
commit 5f54837b9a

View file

@ -66,12 +66,13 @@ static unsigned long state = 0;
static unsigned long mask = 0;
static NET::WindowType windowtype = NET::Unknown;
static Atom wm_state_atom = None;
static bool norule = false;
KStart::KStart()
: QObject()
{
NETRootInfo i(QX11Info::display(), NET::Supported);
bool useRule = i.isSupported(NET::WM2KDETemporaryRules);
bool useRule = (!norule && i.isSupported(NET::WM2KDETemporaryRules));
if (useRule) {
sendRule();
@ -353,6 +354,7 @@ int main(int argc, char *argv[])
options.add("keepbelow", ki18n("Try to keep the window below other windows"));
options.add("skiptaskbar", ki18n("The window does not get an entry in the taskbar"));
options.add("skippager", ki18n("The window does not get an entry on the pager"));
options.add("norule", ki18n("Do not use temporary KWin rule, on by default"));
KCmdLineArgs::addCmdLineOptions(options); // Add our own options.
KComponentData componentData( &aboutData);
@ -458,6 +460,8 @@ int main(int argc, char *argv[])
}
}
norule = !args->isSet("rule");
fcntl(ConnectionNumber(QX11Info::display()), F_SETFD, 1);
args->clear();