Skip to content
  • Martin Flöser's avatar
    Toplevel::windowType becomes a pure virtual function · 700bccde
    Martin Flöser authored
    The method windowType needs actually two implementations:
    * one for Clients
    * one for Unmanaged
    
    as for Clients also the window rules are checked and hacks are applied
    which is both not needed for Unmanaged windows.
    
    To have the Client specific behavior in windowType the function used to
    perform two dynamic_casts which made this method one of the most
    expensive during compositing, e.g. for ~1000 frames
    * called ~43000 times
    * ~85000 dynamic casts
    * incl. cost of method: 0.24
    * self cost of method: 0.05
    * incl. cost of the casts: 0.12
    
    After the change to remove the dynamic casts we have for ~1500 frames
    in Client::windowType:
    * called ~31000 times
    * incl. cost of 0.06
    * self cost of 0.02
    
    Calls on Unmanaged and Deleted are so low that we do not need to consider
    them.
    
    BUG: 306384
    FIXED-IN: 4.10
    REVIEW: 106349
    700bccde