[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