Changeset 194557 in webkit


Ignore:
Timestamp:
Jan 4, 2016 2:42:20 PM (8 years ago)
Author:
timothy_horton@apple.com
Message:

Hardware keyboard key-commands stop responding when viewing PDFs
https://bugs.webkit.org/show_bug.cgi?id=152712
<rdar://problem/23014457>

Reviewed by Dan Bernstein.

Maintain first responder status through any content view swapping, by
making WKWebView become first responder if needed, and pushing first
responder status down to the swapped-in content view if possible.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView becomeFirstResponder]):
Make the current content view first responder instead of the WKContentView,
in case we have a custom content view installed.

(-[WKWebView canBecomeFirstResponder]):
WKWebView can always become first responder, even if none of its children can.
This makes it so that if a custom content view can't become first responder,
WKWebView will take the responsibility.

(-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
Return the responsibility of being first responder to the newly-installed
content view if WKWebView is currently the first responder (either because
of tab switching or because the previous content view did not support
being first responder), if it supports being first responder.

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r194552 r194557  
     12016-01-04  Tim Horton  <timothy_horton@apple.com>
     2
     3        Hardware keyboard key-commands stop responding when viewing PDFs
     4        https://bugs.webkit.org/show_bug.cgi?id=152712
     5        <rdar://problem/23014457>
     6
     7        Reviewed by Dan Bernstein.
     8
     9        Maintain first responder status through any content view swapping, by
     10        making WKWebView become first responder if needed, and pushing first
     11        responder status down to the swapped-in content view if possible.
     12
     13        * UIProcess/API/Cocoa/WKWebView.mm:
     14        (-[WKWebView becomeFirstResponder]):
     15        Make the current content view first responder instead of the WKContentView,
     16        in case we have a custom content view installed.
     17
     18        (-[WKWebView canBecomeFirstResponder]):
     19        WKWebView can always become first responder, even if none of its children can.
     20        This makes it so that if a custom content view can't become first responder,
     21        WKWebView will take the responsibility.
     22
     23        (-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
     24        Return the responsibility of being first responder to the newly-installed
     25        content view if WKWebView is currently the first responder (either because
     26        of tab switching or because the previous content view did not support
     27        being first responder), if it supports being first responder.
     28
    1292016-01-04  Commit Queue  <commit-queue@webkit.org>
    230
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm

    r194496 r194557  
    791791- (BOOL)becomeFirstResponder
    792792{
    793     return [_contentView becomeFirstResponder] || [super becomeFirstResponder];
     793    return [self._currentContentView becomeFirstResponder] || [super becomeFirstResponder];
     794}
     795
     796- (BOOL)canBecomeFirstResponder
     797{
     798    return YES;
    794799}
    795800
     
    859864        [self addSubview:_customContentFixedOverlayView.get()];
    860865    }
     866
     867    if (self.isFirstResponder && self._currentContentView.canBecomeFirstResponder)
     868        [self._currentContentView becomeFirstResponder];
    861869}
    862870
Note: See TracChangeset for help on using the changeset viewer.