Can new windows/tabs in BC3 be made not to steal focus?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • alenl
    Enthusiast
    • May 2005
    • 23

    Can new windows/tabs in BC3 be made not to steal focus?

    In BC2, a new diff opened in the background if you had another diff or some other application active in the foreground. In BC3, new diffs always pop up in the foreground and steal your focus. This is extremely irritating when starting dozens of diffs in a batch (e.g. from SCM applications). This behavior is exhibited regardless if you use tabbed interface or not.

    Is there any way to make it pop the new diffs in background, not in foreground? I have looked in the options and in the tweaks dialog, but have found nothing. Any kind of option or scripting solution would be greatly appreciated, as this is really driving me nuts lately. Thanks!
  • alenl
    Enthusiast
    • May 2005
    • 23

    #2
    Bump!

    Is there any workaround for this? Could this be fixed/added in an update? Can someone from Scooter Software please comment on this?

    Thanks in advance!

    Alen

    Comment

    • Michael Bulgrien
      Carpal Tunnel
      • Oct 2007
      • 1772

      #3
      I think, what you are suggesting, is a toggle to open new sessions on the bottom of the windows/tab control stack instead of on the top. I agree that this would be useful.

      I once asked for an option to insert new sessions at the left end of the tab control instead of at the right when launched from a batch process... but the root issue was really that I wanted the leftmost tabs to be at the top of the windows control stack. Having an option to open new sessions at the bottom of the windows stack would have taken care of the issue I was having at the time...and is a better implementation than what I was asking for (inserting new sessions on the left end of the tab control). I whole-heartedly agree with your request for such an option.
      BC v4.0.7 build 19761
      ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

      Comment

      • Chris
        Team Scooter
        • Oct 2007
        • 5538

        #4
        It isn't possible to change this behavior. If you launch a diff from a version control application, Beyond Compare 3 will always get focus.
        Chris K Scooter Software

        Comment

        • Michael Bulgrien
          Carpal Tunnel
          • Oct 2007
          • 1772

          #5
          What about my comments on where the new session is placed on the session stack?

          Beyond Compare getting focus is not the issue for me. Placing the new session on the top or the bottom of the session stack is. I would like to keep the current session/tab active, and have an option to place new sessions on the bottom of the session stack (FIFO) so that when I close a tab, the oldest session (which is next in line at the top of the stack) becomes the current session.
          BC v4.0.7 build 19761
          ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

          Comment

          • alenl
            Enthusiast
            • May 2005
            • 23

            #6
            Originally posted by Chris
            It isn't possible to change this behavior. If you launch a diff from a version control application, Beyond Compare 3 will always get focus.
            Beyond Compare 2 was doing it in the correct way, so I think it must be possible. This behavior was changed for worse in BC3.

            It is very irritating ever since we changed over from BC2 to BC3. I thought I would get used to it, but I can't. It makes BC3 appear slower and more sluggish in relation to BC2. (Which is not the fact - it is just as fast, I have tested that, just that BC2 opens the rest of windows in the background, so it seemed much faster, as by the time I'm done examining the first one, the next one is already loaded, so it all seems very fast.)

            Let me explain the usage scenario in more details:

            When doing some refactoring, I can frequently have like 30 or more files (sometimes even a hundred) open in Perforce. Some of those are real edits, some are just search&replace that change one line in the file. Before submitting the changelist, I do "Select All" and "Diff". Now, with BC2 I was able to very quickly go through this visually. I would take a look at the first file, if it was a real change examine it in more detail, if it is just one line quickly verify it; and then close that window. The next window is already waiting for me - rinse and repeat. Doing this with keyboard shortcuts, I can do like 30 files in less than a minute. Sometimes, even about one file per second. (If it is just a visual check on one highlighted line, and close.)

            Now with BC3, if the list is big, I have to wait 30 seconds or sometimes more than a minute to even start. I cannot start examining the first file because others keep popping up in foreground. By the time it is done, I'm already out of zone. (Probably went to check email, or whatnot.... )

            Please, please do something to fix this.

            Comment

            • Michael Bulgrien
              Carpal Tunnel
              • Oct 2007
              • 1772

              #7
              This is exactly what I am suggesting with the session stack. If new sessions were opened in new tabs (at the bottom of the session stack), the current session tab would keep it's focus until closed. The next tab would be ready and waiting. Again, this is not an issue with Beyond Compare 3 getting focus as stated by Chris... it is an issue with where Beyond Compare 3 puts the new session when it gets focus.
              BC v4.0.7 build 19761
              ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

              Comment

              • Zoë
                Team Scooter
                • Oct 2007
                • 2666

                #8
                We'll look into improving this. The behavior we'll probably switch to is to record the time when a new instance is launched, and if the interval between instances is small enough (< 1s?) we'll launch the new comparison in a background tab.
                Zoë P Scooter Software

                Comment

                • Michael Bulgrien
                  Carpal Tunnel
                  • Oct 2007
                  • 1772

                  #9
                  Originally posted by Craig
                  The behavior we'll probably switch to is to record the time when a new instance is launched, and if the interval between instances is small enough (< 1s?) we'll launch the new comparison in a background tab.
                  Craig,

                  Is there a reason why you would not want to implement a configurable option or tweak rather than basing it solely on the launch interval? There certainly are times that I would prefer the tabs to be loaded in FIFO mode instead of LIFO mode regardless of the launch interval... although I have no problem with the launch interval being one of the configurable options...

                  Load New Sessions in:
                  ○ Foreground tab (LIFO)
                  ○ Background tab (FIFO)
                  ○ Based on launch interval
                  BC v4.0.7 build 19761
                  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

                  Comment

                  • Zoë
                    Team Scooter
                    • Oct 2007
                    • 2666

                    #10
                    Originally posted by Michael Bulgrien
                    Is there a reason why you would not want to implement a configurable option or tweak rather than basing it solely on the launch interval?
                    Yes.

                    We aren't going to add new options unless there's a compelling reason to do so, and this just isn't.

                    The fact that you want it one way sometimes and the other others is immaterial. You aren't going to launch BC, change the setting, then go back and trigger your batch process, then switch it back.

                    Not having it based on the launch interval isn't possible. BC has no way of knowing that it's going to be launched from a batch process or how many comparisons will be started by that operation.
                    Zoë P Scooter Software

                    Comment

                    • Michael Bulgrien
                      Carpal Tunnel
                      • Oct 2007
                      • 1772

                      #11
                      Originally posted by Craig
                      You aren't going to launch BC, change the setting, then go back and trigger your batch process, then switch it back.
                      Your assumption that I would only use it for a batch process is false. There are many times, in the GUI, that I want my sessions opened and left in the order they are opened. One example would be when I am opening multiple text compares from a single folder compare. I want all the text compares to open in background tabs and to be added to the bottom of the session stack so that, when I am ready to look through them, they come up in the same order in which they were opened. This keeps the left-most tab as the current tab when working through the sessions.

                      Originally posted by Craig
                      The fact that you want it one way sometimes and the other others is immaterial.
                      Perhaps you could explain what you mean by "immaterial"? I'm not sure that I understand your point.

                      I, most likely, would keep BC3 configured to open sessions in the background most of the time. The reason that I suggest it be a configurable option is because that is how I would prefer BC3 to handle my sessions for most situations.

                      .
                      Last edited by Michael Bulgrien; 10-Jan-2009, 05:20 PM.
                      BC v4.0.7 build 19761
                      ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

                      Comment

                      • alenl
                        Enthusiast
                        • May 2005
                        • 23

                        #12
                        Originally posted by Craig
                        We'll look into improving this. The behavior we'll probably switch to is to record the time when a new instance is launched, and if the interval between instances is small enough (< 1s?) we'll launch the new comparison in a background tab.
                        Thanks a lot in advance! I'm looking forward to this!

                        Alen

                        Comment

                        • markf_2748
                          Expert
                          • Apr 2008
                          • 85

                          #13
                          I would think that allowing BC's response to depend on launch time interval introduces indeterminacy, given the vagaries of the operating system. Not a pretty picture.

                          Comment

                          • Zoë
                            Team Scooter
                            • Oct 2007
                            • 2666

                            #14
                            Now that I've had time to think about it, another alternative would be that viewers spawned by the command line would only gain focus if BC isn't the active application. That would be less likely to guess incorrectly than a time-based heuristic and should give correct behavior.
                            Zoë P Scooter Software

                            Comment

                            • Michael Bulgrien
                              Carpal Tunnel
                              • Oct 2007
                              • 1772

                              #15
                              Thanks, Craig.

                              I agree that your most recent "alternative" sounds better than a "time-based heuristic".

                              I also maintain a similar option for GUI spawned sessions would be useful to me as well.
                              BC v4.0.7 build 19761
                              ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

                              Comment

                              Working...