Skip to content
  • Peter Tyser's avatar
    Only transfer focus once when opening multiple file diffs · 2bbeda64
    Peter Tyser authored and Kai Willadsen's avatar Kai Willadsen committed
    
    
    Currently if a user opens multiple file diffs at the same time from a
    DirDiff or VcView the following happens:
    - the 1st diff is opened in a new tab and focus is moved to this tab
    - the 2nd diff is opened in a new tab and focus is moved to this tab
    - the 3rd diff is opened in a new tab and focus is moved to this tab
    - etc...
    
    This behavior has 2 shortcomings:
    1. The user is presented with a window that cycles focus through
       multiple diff tabs which is visually jarring.
    2. During this period of time when tabs are being cycled through the
       user can't interact with Meld - the focus shifts too fast to allow
       the user to do anything.  This is especially painful if the user
       initiates a large number of diffs, the diffs are on a slow filesystem
       (eg over a slow NFS share), or if the diffs are of version-controlled
       files (VC-diffs have more overhead, which slows them down).
    
    To resolve these issues, only transfer focus to a new tab if the current
    tab is a DirDiff or VcView.  This results in the following behavior:
    - the 1st diff is opened in a new tab and focus is moved to this tab
    - the 2nd diff is opened in a new background tab
    - the 3rd diff is opened in a new background tab
    - etc...
    
    While the background tabs are being opened Meld is still usable.
    
    Signed-off-by: default avatarPeter Tyser <ptyser@gmail.com>
    2bbeda64