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

Timothy thatcher at opensource.apple.com
Thu Nov 10 10:22:38 PST 2005


thatcher    05/11/10 10:22:38

  Modified:    .        Tag: Safari-2-0-branch ChangeLog
               kwq      Tag: Safari-2-0-branch KWQComboBox.mm KWQListBox.mm
                        KWQTextArea.mm KWQTextField.mm WebCoreBridge.mm
  Log:
          Merged fix from TOT to Safari-2-0-branch
  
      2005-10-28  Beth Dakin  <bdakin at apple.com>
  
          Reviewed by John
  
          Fix for <rdar://problem/4098083> REGRESSION (125-312): crash
  	in [KWQTableView resignFirstResponder] selecting from JS menu
  	(car4you.at, etc.)
  
  	Since it is possible that a render widget's eventFilterObject
  	has been destroyed even though the render widget is still ref-ed,
  	we need to nil-check the eventFilterObject before we use it to get
  	the eventFilter.
  
          * kwq/KWQComboBox.mm:
          (-[KWQPopUpButton becomeFirstResponder]): Added nil check.
          (-[KWQPopUpButton resignFirstResponder]): Added nil check.
          * kwq/KWQListBox.mm:
          (-[KWQTableView becomeFirstResponder]): Added nil check.
          (-[KWQTableView resignFirstResponder]): Added nil check.
          * kwq/KWQTextArea.mm:
          (-[KWQTextAreaTextView becomeFirstResponder]): Added nil check.
          (-[KWQTextAreaTextView resignFirstResponder]): Added nil check.
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController setHasFocus:]): Added nil check.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementForView:]): Added nil check.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.42  +31 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.1.2.41
  retrieving revision 1.1.2.42
  diff -u -r1.1.2.41 -r1.1.2.42
  --- ChangeLog	9 Nov 2005 23:05:26 -0000	1.1.2.41
  +++ ChangeLog	10 Nov 2005 18:22:26 -0000	1.1.2.42
  @@ -1,3 +1,34 @@
  +2005-11-10  Timothy Hatcher  <timothy at apple.com>
  +
  +        Merged fix from TOT to Safari-2-0-branch
  +
  +    2005-10-28  Beth Dakin  <bdakin at apple.com>
  +
  +        Reviewed by John
  +
  +        Fix for <rdar://problem/4098083> REGRESSION (125-312): crash 
  +	in [KWQTableView resignFirstResponder] selecting from JS menu 
  +	(car4you.at, etc.)
  +
  +	Since it is possible that a render widget's eventFilterObject
  +	has been destroyed even though the render widget is still ref-ed,
  +	we need to nil-check the eventFilterObject before we use it to get
  +	the eventFilter.
  +
  +        * kwq/KWQComboBox.mm:
  +        (-[KWQPopUpButton becomeFirstResponder]): Added nil check.
  +        (-[KWQPopUpButton resignFirstResponder]): Added nil check.
  +        * kwq/KWQListBox.mm:
  +        (-[KWQTableView becomeFirstResponder]): Added nil check.
  +        (-[KWQTableView resignFirstResponder]): Added nil check.
  +        * kwq/KWQTextArea.mm:
  +        (-[KWQTextAreaTextView becomeFirstResponder]): Added nil check.
  +        (-[KWQTextAreaTextView resignFirstResponder]): Added nil check.
  +        * kwq/KWQTextField.mm:
  +        (-[KWQTextFieldController setHasFocus:]): Added nil check.
  +        * kwq/WebCoreBridge.mm:
  +        (-[WebCoreBridge elementForView:]): Added nil check.
  +
   2005-11-09  Timothy Hatcher  <timothy at apple.com>
   
           Merged fix from TOT to Safari-2-0-branch
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.59.10.4 +4 -2      WebCore/kwq/KWQComboBox.mm
  
  Index: KWQComboBox.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQComboBox.mm,v
  retrieving revision 1.59.10.3
  retrieving revision 1.59.10.4
  diff -u -r1.59.10.3 -r1.59.10.4
  --- KWQComboBox.mm	2 Sep 2005 22:14:10 -0000	1.59.10.3
  +++ KWQComboBox.mm	10 Nov 2005 18:22:33 -0000	1.59.10.4
  @@ -489,7 +489,8 @@
                   [self _KWQ_scrollFrameToVisible];
               }
               QFocusEvent event(QEvent::FocusIn);
  -            const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
  +            if (widget->eventFilterObject())
  +                const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
           }
       }
       return become;
  @@ -502,7 +503,8 @@
           QWidget *widget = [self widget];
           if (widget) {
               QFocusEvent event(QEvent::FocusOut);
  -            const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
  +            if (widget->eventFilterObject())
  +                const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
           }
       }
       return resign;
  
  
  
  1.51.8.5  +5 -3      WebCore/kwq/KWQListBox.mm
  
  Index: KWQListBox.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQListBox.mm,v
  retrieving revision 1.51.8.4
  retrieving revision 1.51.8.5
  diff -u -r1.51.8.4 -r1.51.8.5
  --- KWQListBox.mm	2 Sep 2005 22:14:10 -0000	1.51.8.4
  +++ KWQListBox.mm	10 Nov 2005 18:22:34 -0000	1.51.8.5
  @@ -509,11 +509,12 @@
           if (_box && !KWQKHTMLPart::currentEventIsMouseDownInWidget(_box)) {
               [self _KWQ_scrollFrameToVisible];
           }        
  -	[self _KWQ_setKeyboardFocusRingNeedsDisplay];
  +        [self _KWQ_setKeyboardFocusRingNeedsDisplay];
   
           if (_box) {
               QFocusEvent event(QEvent::FocusIn);
  -            const_cast<QObject *>(_box->eventFilterObject())->eventFilter(_box, &event);
  +            if (_box->eventFilterObject())
  +                const_cast<QObject *>(_box->eventFilterObject())->eventFilter(_box, &event);
           }
       }
   
  @@ -525,7 +526,8 @@
       BOOL resign = [super resignFirstResponder];
       if (resign && _box) {
           QFocusEvent event(QEvent::FocusOut);
  -        const_cast<QObject *>(_box->eventFilterObject())->eventFilter(_box, &event);
  +        if (_box->eventFilterObject())
  +            const_cast<QObject *>(_box->eventFilterObject())->eventFilter(_box, &event);
       }
       return resign;
   }
  
  
  
  1.72.8.3  +4 -2      WebCore/kwq/KWQTextArea.mm
  
  Index: KWQTextArea.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQTextArea.mm,v
  retrieving revision 1.72.8.2
  retrieving revision 1.72.8.3
  diff -u -r1.72.8.2 -r1.72.8.3
  --- KWQTextArea.mm	22 Jul 2005 01:18:36 -0000	1.72.8.2
  +++ KWQTextArea.mm	10 Nov 2005 18:22:34 -0000	1.72.8.3
  @@ -639,7 +639,8 @@
   
           if (widget) {
               QFocusEvent event(QEvent::FocusIn);
  -            const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
  +            if (widget->eventFilterObject())
  +                const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
           }
       }
   
  @@ -655,7 +656,8 @@
   
           if (widget) {
               QFocusEvent event(QEvent::FocusOut);
  -            const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
  +            if (widget->eventFilterObject())
  +                const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
           }
       }
   
  
  
  
  1.77.8.1  +4 -2      WebCore/kwq/KWQTextField.mm
  
  Index: KWQTextField.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQTextField.mm,v
  retrieving revision 1.77
  retrieving revision 1.77.8.1
  diff -u -r1.77 -r1.77.8.1
  --- KWQTextField.mm	3 Mar 2005 00:58:35 -0000	1.77
  +++ KWQTextField.mm	10 Nov 2005 18:22:34 -0000	1.77.8.1
  @@ -390,7 +390,8 @@
           
           if (widget) {
               QFocusEvent event(QEvent::FocusIn);
  -            const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
  +            if (widget->eventFilterObject())
  +                const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
           }
           
   	// Sending the onFocus event above, may have resulted in a blur() - if this
  @@ -409,7 +410,8 @@
           
           if (widget) {
               QFocusEvent event(QEvent::FocusOut);
  -            const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
  +            if (widget->eventFilterObject())
  +                const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
           }
       }
   }
  
  
  
  1.382.2.10 +1 -1      WebCore/kwq/WebCoreBridge.mm
  
  Index: WebCoreBridge.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.mm,v
  retrieving revision 1.382.2.9
  retrieving revision 1.382.2.10
  diff -u -r1.382.2.9 -r1.382.2.10
  --- WebCoreBridge.mm	16 Sep 2005 19:28:09 -0000	1.382.2.9
  +++ WebCoreBridge.mm	10 Nov 2005 18:22:35 -0000	1.382.2.10
  @@ -897,7 +897,7 @@
       if ([view conformsToProtocol:@protocol(KWQWidgetHolder)]) {
           NSView <KWQWidgetHolder> *widgetHolder = view;
           QWidget *widget = [widgetHolder widget];
  -        if (widget != nil) {
  +        if (widget != nil && widget->eventFilterObject() != nil) {
               NodeImpl *node = static_cast<const RenderWidget *>(widget->eventFilterObject())->element();
               return [DOMElement _elementWithImpl:static_cast<ElementImpl *>(node)];
           }
  
  
  



More information about the webkit-changes mailing list