Changeset 31236 in webkit
- Timestamp:
- Mar 23, 2008, 3:48:18 AM (17 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r31232 r31236 1 2008-03-23 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Maciej. 4 5 Test to ensure key events don't propagate up the frame tree. 6 7 * fast/events/key-events-in-frame-expected.txt: Added. 8 * fast/events/key-events-in-frame.html: Added. 9 1 10 2008-03-22 Eric Seidel <eric@webkit.org> 2 11 -
trunk/WebKit/mac/ChangeLog
r31209 r31236 1 2008-03-23 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Maciej. 4 5 Bug 17670: Key events may improperly propagate from iframe to parent frame 6 <http://bugs.webkit.org/show_bug.cgi?id=17670> 7 Bug 16381: REGRESSION: Shift, command, option, ctrl keys in Gmail Rich Text changes focus 8 <http://bugs.webkit.org/show_bug.cgi?id=16381> 9 10 Prevent the Cocoa event system from propagating key events to the parent WebHTMLView, 11 as that results in us dispatching the key events for each frame going up the frame 12 tree. 13 14 * WebView/WebHTMLView.mm: 15 (-[WebHTMLView keyDown:]): 16 (-[WebHTMLView keyUp:]): 17 (-[WebHTMLView flagsChanged:]): 18 1 19 2008-03-21 Timothy Hatcher <timothy@apple.com> 2 20 -
trunk/WebKit/mac/WebView/WebHTMLView.mm
r31028 r31236 3534 3534 BOOL completionPopupWasOpen = _private->compController && [_private->compController popupWindowIsOpen]; 3535 3535 Frame* coreFrame = core([self _frame]); 3536 if (!eventWasSentToWebCore && coreFrame && coreFrame->eventHandler()->keyEvent(event)) { 3536 if (!eventWasSentToWebCore && coreFrame) { 3537 coreFrame->eventHandler()->keyEvent(event); 3537 3538 // WebCore processed a key event, bail on any preexisting complete: UI 3538 3539 if (completionPopupWasOpen) … … 3553 3554 BOOL eventWasSentToWebCore = (_private->keyDownEvent == event); 3554 3555 3555 [self retain];3556 RetainPtr<WebHTMLView> selfProtector = self; 3556 3557 Frame* coreFrame = core([self _frame]); 3557 if (eventWasSentToWebCore || !coreFrame || !coreFrame->eventHandler()->keyEvent(event)) 3558 [super keyUp:event]; 3559 [self release]; 3558 if (coreFrame && !eventWasSentToWebCore) 3559 coreFrame->eventHandler()->keyEvent(event); 3560 else 3561 [super keyUp:event]; 3560 3562 } 3561 3563 … … 3569 3571 3570 3572 unsigned short keyCode = [event keyCode]; 3573 3571 3574 //Don't make an event from the num lock and function keys 3572 if (coreFrame && keyCode != 0 && keyCode != 10 && keyCode != 63) 3575 if (coreFrame && keyCode != 0 && keyCode != 10 && keyCode != 63) { 3573 3576 coreFrame->eventHandler()->keyEvent(PlatformKeyboardEvent(event)); 3577 return; 3578 } 3574 3579 3575 3580 [super flagsChanged:event];
Note:
See TracChangeset
for help on using the changeset viewer.