[webkit-changes] cvs commit: WebCore/kwq KWQButton.mm KWQComboBox.mm KWQListBox.mm KWQSlider.mm KWQTextArea.mm KWQTextField.mm WebCoreBridge.h

John sullivan at opensource.apple.com
Thu Jul 14 16:53:35 PDT 2005


sullivan    05/07/14 16:53:35

  Modified:    .        ChangeLog
               khtml/xml dom_docimpl.cpp
               kwq      KWQButton.mm KWQComboBox.mm KWQListBox.mm
                        KWQSlider.mm KWQTextArea.mm KWQTextField.mm
                        WebCoreBridge.h
  Log:
          Reviewed by Ken Kocienda (setFocusNode) and Dave Hyatt (everything).
  
          - WebCore part of fix for:
          <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
  
          Test cases added: none, doesn't affect layout
  
          There were two different problems leading to the same symptom, both of which needed to be fixed.
          The first problem was that ancient and unneeded code in setFocusNode(0) was setting the focus
          to the enclosing WebHTMLView. The second problem was that the WebHTMLView didn't learn about
          form controls resigning first-responder-hood, and so didn't update the displayed focus state.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::setFocusNode):
          Removed a line of code that was setting the focus on the WebHTMLView whenever a form control
          lost focus. This doesn't make sense in a world where the focus might be moving to something
          outside of the web page entirely. This line of code was added ages ago to fix Radar 3037974,
          which is not reproducible anymore with this line of code removed.
  
          * kwq/WebCoreBridge.h:
          New bridge method -formControlIsResigningFirstResponder:, used to inform WebKit that a form
          control is losing first-responder-hood.
  
          * kwq/KWQButton.mm:
          (-[KWQButton resignFirstResponder]):
          call formControlIsResigningFirstResponder:
  
          * kwq/KWQComboBox.mm:
          (-[KWQPopUpButton resignFirstResponder]):
          ditto
  
          * kwq/KWQListBox.mm:
          (-[KWQTableView resignFirstResponder]):
          ditto
  
          * kwq/KWQSlider.mm:
          (-[KWQSlider resignFirstResponder]):
          ditto
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextAreaTextView resignFirstResponder]):
          ditto
  
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController setHasFocus:]):
          ditto
  
  Revision  Changes    Path
  1.4429    +64 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.4428
  retrieving revision 1.4429
  diff -u -r1.4428 -r1.4429
  --- ChangeLog	14 Jul 2005 20:54:06 -0000	1.4428
  +++ ChangeLog	14 Jul 2005 23:53:23 -0000	1.4429
  @@ -1,3 +1,67 @@
  +2005-07-14  John Sullivan  <sullivan at apple.com>
  +
  +        Reviewed by Ken Kocienda (setFocusNode) and Dave Hyatt (everything).
  +
  +        - WebCore part of fix for: 
  +        <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
  +
  +        Test cases added: none, doesn't affect layout
  +        
  +        There were two different problems leading to the same symptom, both of which needed to be fixed.
  +        The first problem was that ancient and unneeded code in setFocusNode(0) was setting the focus 
  +        to the enclosing WebHTMLView. The second problem was that the WebHTMLView didn't learn about
  +        form controls resigning first-responder-hood, and so didn't update the displayed focus state.
  +
  +        * khtml/xml/dom_docimpl.cpp:
  +        (DocumentImpl::setFocusNode):
  +        Removed a line of code that was setting the focus on the WebHTMLView whenever a form control
  +        lost focus. This doesn't make sense in a world where the focus might be moving to something
  +        outside of the web page entirely. This line of code was added ages ago to fix Radar 3037974,
  +        which is not reproducible anymore with this line of code removed.
  +        
  +        * kwq/WebCoreBridge.h:
  +        New bridge method -formControlIsResigningFirstResponder:, used to inform WebKit that a form
  +        control is losing first-responder-hood.
  +
  +        * kwq/KWQButton.mm:
  +        (-[KWQButton resignFirstResponder]):
  +        call formControlIsResigningFirstResponder:
  +
  +        * kwq/KWQComboBox.mm:
  +        (-[KWQPopUpButton resignFirstResponder]):
  +        ditto
  +        
  +        * kwq/KWQListBox.mm:
  +        (-[KWQTableView resignFirstResponder]):
  +        ditto
  +        
  +        * kwq/KWQSlider.mm:
  +        (-[KWQSlider resignFirstResponder]):
  +        ditto
  +        
  +        * kwq/KWQTextArea.mm:
  +        (-[KWQTextAreaTextView resignFirstResponder]):
  +        ditto
  +        
  +        * kwq/KWQTextField.mm:
  +        (-[KWQTextFieldController setHasFocus:]):
  +        ditto
  +
  +2005-07-14  John Sullivan  <sullivan at apple.com>
  +
  +        Reviewed by Ken Kocienda.
  +        
  +        - fixed <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
  +
  +        Test cases added: none, doesn't affect layout
  +
  +        * khtml/xml/dom_docimpl.cpp:
  +        (DocumentImpl::setFocusNode):
  +        Removed a line of code that was setting the focus on the WebHTMLView whenever a form control
  +        lost focus. This doesn't make sense in a world where the focus might be moving to something
  +        outside of the web page entirely. This line of code was added ages ago to fix Radar 3037974,
  +        which is not reproducible anymore with this line of code removed.
  +
   2005-07-12  Justin Garcia  <justin.garcia at apple.com>
   
           Reviewed by mjs
  
  
  
  1.235     +0 -5      WebCore/khtml/xml/dom_docimpl.cpp
  
  Index: dom_docimpl.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/xml/dom_docimpl.cpp,v
  retrieving revision 1.234
  retrieving revision 1.235
  diff -u -r1.234 -r1.235
  --- dom_docimpl.cpp	14 Jul 2005 17:58:16 -0000	1.234
  +++ dom_docimpl.cpp	14 Jul 2005 23:53:31 -0000	1.235
  @@ -2268,11 +2268,6 @@
   
       // Remove focus from the existing focus node (if any)
       if (oldFocusNode) {
  -        // This goes hand in hand with the Qt focus setting below.
  -        if (!newFocusNode && view()) {
  -            view()->setFocus();
  -        }
  -
           if (oldFocusNode->active())
               oldFocusNode->setActive(false);
   
  
  
  
  1.42      +1 -0      WebCore/kwq/KWQButton.mm
  
  Index: KWQButton.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQButton.mm,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- KWQButton.mm	14 Jul 2005 02:22:12 -0000	1.41
  +++ KWQButton.mm	14 Jul 2005 23:53:33 -0000	1.42
  @@ -139,6 +139,7 @@
       if (resign && button) {
           QFocusEvent event(QEvent::FocusOut);
           const_cast<QObject *>(button->eventFilterObject())->eventFilter(button, &event);
  +        [KWQKHTMLPart::bridgeForWidget(button) formControlIsResigningFirstResponder:self];
       }
       return resign;
   }
  
  
  
  1.61      +1 -0      WebCore/kwq/KWQComboBox.mm
  
  Index: KWQComboBox.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQComboBox.mm,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- KWQComboBox.mm	14 Jul 2005 02:22:12 -0000	1.60
  +++ KWQComboBox.mm	14 Jul 2005 23:53:33 -0000	1.61
  @@ -493,6 +493,7 @@
           if (widget) {
               QFocusEvent event(QEvent::FocusOut);
               const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
  +            [KWQKHTMLPart::bridgeForWidget(widget) formControlIsResigningFirstResponder:self];
           }
       }
       return resign;
  
  
  
  1.53      +1 -0      WebCore/kwq/KWQListBox.mm
  
  Index: KWQListBox.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQListBox.mm,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- KWQListBox.mm	14 Jul 2005 02:22:12 -0000	1.52
  +++ KWQListBox.mm	14 Jul 2005 23:53:33 -0000	1.53
  @@ -491,6 +491,7 @@
       if (resign && _box) {
           QFocusEvent event(QEvent::FocusOut);
           const_cast<QObject *>(_box->eventFilterObject())->eventFilter(_box, &event);
  +        [KWQKHTMLPart::bridgeForWidget(_box) formControlIsResigningFirstResponder:self];
       }
       return resign;
   }
  
  
  
  1.10      +1 -0      WebCore/kwq/KWQSlider.mm
  
  Index: KWQSlider.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQSlider.mm,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- KWQSlider.mm	8 Jun 2005 00:41:20 -0000	1.9
  +++ KWQSlider.mm	14 Jul 2005 23:53:33 -0000	1.10
  @@ -116,6 +116,7 @@
       if (resign && slider) {
           QFocusEvent event(QEvent::FocusOut);
           const_cast<QObject *>(slider->eventFilterObject())->eventFilter(slider, &event);
  +        [KWQKHTMLPart::bridgeForWidget(slider) formControlIsResigningFirstResponder:self];
       }
       return resign;
   }
  
  
  
  1.86      +2 -1      WebCore/kwq/KWQTextArea.mm
  
  Index: KWQTextArea.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQTextArea.mm,v
  retrieving revision 1.85
  retrieving revision 1.86
  diff -u -r1.85 -r1.86
  --- KWQTextArea.mm	14 Jul 2005 02:22:12 -0000	1.85
  +++ KWQTextArea.mm	14 Jul 2005 23:53:33 -0000	1.86
  @@ -937,7 +937,8 @@
           if (widget) {
               QFocusEvent event(QEvent::FocusOut);
               const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
  -        }
  +            [KWQKHTMLPart::bridgeForWidget(widget) formControlIsResigningFirstResponder:self];
  +        }        
       }
   
       return resign;
  
  
  
  1.80      +1 -0      WebCore/kwq/KWQTextField.mm
  
  Index: KWQTextField.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQTextField.mm,v
  retrieving revision 1.79
  retrieving revision 1.80
  diff -u -r1.79 -r1.80
  --- KWQTextField.mm	24 Jun 2005 05:53:29 -0000	1.79
  +++ KWQTextField.mm	14 Jul 2005 23:53:33 -0000	1.80
  @@ -441,6 +441,7 @@
           if (widget) {
               QFocusEvent event(QEvent::FocusOut);
               const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
  +            [KWQKHTMLPart::bridgeForWidget(widget) formControlIsResigningFirstResponder:field];
           }
       }
   }
  
  
  
  1.338     +2 -0      WebCore/kwq/WebCoreBridge.h
  
  Index: WebCoreBridge.h
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.h,v
  retrieving revision 1.337
  retrieving revision 1.338
  diff -u -r1.337 -r1.338
  --- WebCoreBridge.h	14 Jul 2005 16:29:10 -0000	1.337
  +++ WebCoreBridge.h	14 Jul 2005 23:53:34 -0000	1.338
  @@ -533,6 +533,8 @@
   - (void)focusWindow;
   - (void)unfocusWindow;
   
  +- (void)formControlIsResigningFirstResponder:(NSView *)formControl;
  +
   - (NSView *)nextKeyViewOutsideWebFrameViews;
   - (NSView *)nextValidKeyViewOutsideWebFrameViews;
   - (NSView *)previousKeyViewOutsideWebFrameViews;
  
  
  



More information about the webkit-changes mailing list