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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.