D18494: Discard Force Temporarily rules for shell clients
Vlad Zagorodniy <[email protected]>
| Newsgroups | gmane.comp.kde.devel.kwin |
|---|---|
| Message-ID | <[email protected]> |
zzag added a comment.
I currently try to implement Position and Size rules. Would it be feasible to implement them as follows?
- At the start of ShellClient::init, we block requesting geometry;
- When we are about to finish initializing ShellClient, we do something like
void ShellClient::init()
{
if (!m_internal) {
blockRequestGeometry(); // Similar to the constructor of RequestGeometryBlocker
}
...
if (!m_internal) {
QTimer::singleShot(0, this, &ShellClient::finishInitialization);
}
}
- When finishInitialization will be called, ShellClient most likely will have all necessary information to match window rules against it, so we can check window rules with `init=true` in finishInitialization
void ShellClient::finishInitialization()
{
evaluateWindowRulesInit(); // see D18550
// Send the configure event.
unblockRequestGeometry(); // Similar to the destructor of RequestGeometryBlocker
}
(I'm still not quite sure how to apply both rules correctly if a client is mapped back again or if a client changes app id after we send the configure event)
REPOSITORY
R108 KWin
REVISION DETAIL
https://phabricator.kde.org/D18494
To: zzag, #kwin
Cc: graesslin, kwin, jraleigh, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, ngraham, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart