On May 13, 2020, at 5:52 PM, Andreas Höschler via Discussion list for the GNUstep programming environment wrote:

I could fix the problem under GNUstep by simply commenting out


/* if (_firstResponder != v && ![v isKindOfClass: [NSButton class]])
                {
// Only try to set first responder, when the view wants it. if ([v acceptsFirstResponder] && ![self makeFirstResponder: v])
                    {
                      return;
                    }
                }
*/

Does anything speak against submitting this change into the public tree?

That logic should remain - it's useful for when the clicked responder wants first responder status but the current first responder refuses to yield it; In that case, it's probably better to return without passing along the mouseDown event, otherwise the clicked responder will assume it's active & receiving key events, while the current first responder is preventing its own deactivation.

That doesn't seem to be the cause of the issue anyway; The different behavior between GNUstep & OS X appears to be due to mismatched return values of -[NSWindow makeFirstResponder:] - if the passed responder refuses first responder status, GNUstep's version returns NO, but OS X's version returns YES:
https://developer.apple.com/documentation/appkit/nswindow/1419366-makefirstresponder?language=objc

Cheers,

Josh


  • ... Andreas Höschler via Discussion list for the GNUstep programming environment
    • ... Fred Kiefer
      • ... Andreas Höschler via Discussion list for the GNUstep programming environment
        • ... Fred Kiefer
          • ... Andreas Höschler via Discussion list for the GNUstep programming environment
            • ... Fred Kiefer
              • ... Andreas Höschler via Discussion list for the GNUstep programming environment
        • ... Josh Freeman
          • ... Fred Kiefer
            • ... Fred Kiefer
              • ... Andreas Höschler via Discussion list for the GNUstep programming environment

Reply via email to