Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(468)

Side by Side Diff: chrome/browser/renderer_host/render_widget_host_view_mac.mm

Issue 400012: Refactor the keyboard events handling code related to RenderViewHostDelegate:... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/renderer_host/render_widget_host_view_mac.h" 5 #include "chrome/browser/renderer_host/render_widget_host_view_mac.h"
6 6
7 #include "base/histogram.h" 7 #include "base/histogram.h"
8 #import "base/scoped_nsobject.h" 8 #import "base/scoped_nsobject.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/sys_string_conversions.h" 10 #include "base/sys_string_conversions.h"
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 // popup. A click outside the text field would cause the text field to drop 582 // popup. A click outside the text field would cause the text field to drop
583 // the focus, and then EditorClientImpl::textFieldDidEndEditing() would cancel 583 // the focus, and then EditorClientImpl::textFieldDidEndEditing() would cancel
584 // the popup anyway, so we're OK. 584 // the popup anyway, so we're OK.
585 585
586 const WebMouseEvent& event = 586 const WebMouseEvent& event =
587 WebInputEventFactory::mouseEvent(theEvent, self); 587 WebInputEventFactory::mouseEvent(theEvent, self);
588 if (renderWidgetHostView_->render_widget_host_) 588 if (renderWidgetHostView_->render_widget_host_)
589 renderWidgetHostView_->render_widget_host_->ForwardMouseEvent(event); 589 renderWidgetHostView_->render_widget_host_->ForwardMouseEvent(event);
590 } 590 }
591 591
592 - (void)setIgnoreKeyEvents:(BOOL)ignorekeyEvents {
593 ignoreKeyEvents_ = ignorekeyEvents;
594 }
595
596 - (BOOL)performKeyEquivalent:(NSEvent*)theEvent { 592 - (BOOL)performKeyEquivalent:(NSEvent*)theEvent {
597 if (ignoreKeyEvents_)
598 return NO;
599
600 // |performKeyEquivalent:| is sent to all views of a window, not only down the 593 // |performKeyEquivalent:| is sent to all views of a window, not only down the
601 // responder chain (cf. "Handling Key Equivalents" in 594 // responder chain (cf. "Handling Key Equivalents" in
602 // http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Event Overview/HandlingKeyEvents/HandlingKeyEvents.html 595 // http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Event Overview/HandlingKeyEvents/HandlingKeyEvents.html
603 // ). We only want to handle key equivalents if we're first responder. 596 // ). We only want to handle key equivalents if we're first responder.
604 if ([[self window] firstResponder] != self) 597 if ([[self window] firstResponder] != self)
605 return NO; 598 return NO;
606 599
607 // If we return |NO| from this function, cocoa will send the key event to 600 // If we return |NO| from this function, cocoa will send the key event to
608 // the menu and only if the menu does not process the event to |keyDown:|. We 601 // the menu and only if the menu does not process the event to |keyDown:|. We
609 // want to send the event to a renderer _before_ sending it to the menu, so 602 // want to send the event to a renderer _before_ sending it to the menu, so
(...skipping 25 matching lines...) Expand all
635 // equivalent that Cocoa uses for toggling the input langauge. In this case, 628 // equivalent that Cocoa uses for toggling the input langauge. In this case,
636 // that's actually a good thing, though -- see http://crbug.com/26115 .) 629 // that's actually a good thing, though -- see http://crbug.com/26115 .)
637 return YES; 630 return YES;
638 } 631 }
639 632
640 - (void)keyEvent:(NSEvent*)theEvent { 633 - (void)keyEvent:(NSEvent*)theEvent {
641 [self keyEvent:theEvent wasKeyEquivalent:NO]; 634 [self keyEvent:theEvent wasKeyEquivalent:NO];
642 } 635 }
643 636
644 - (void)keyEvent:(NSEvent *)theEvent wasKeyEquivalent:(BOOL)equiv { 637 - (void)keyEvent:(NSEvent *)theEvent wasKeyEquivalent:(BOOL)equiv {
645 if (ignoreKeyEvents_)
646 return;
647
648 DCHECK([theEvent type] != NSKeyDown || 638 DCHECK([theEvent type] != NSKeyDown ||
649 !equiv == !([theEvent modifierFlags] & NSCommandKeyMask)); 639 !equiv == !([theEvent modifierFlags] & NSCommandKeyMask));
650 640
651 scoped_nsobject<RenderWidgetHostViewCocoa> keepSelfAlive([self retain]); 641 scoped_nsobject<RenderWidgetHostViewCocoa> keepSelfAlive([self retain]);
652 642
653 // Don't cancel child popups; the key events are probably what's triggering 643 // Don't cancel child popups; the key events are probably what's triggering
654 // the popup in the first place. 644 // the popup in the first place.
655 645
656 NativeWebKeyboardEvent event(theEvent); 646 NativeWebKeyboardEvent event(theEvent);
657 647
(...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after
1387 event.skip_in_browser = true; 1377 event.skip_in_browser = true;
1388 renderWidgetHostView_->render_widget_host_->ForwardKeyboardEvent(event); 1378 renderWidgetHostView_->render_widget_host_->ForwardKeyboardEvent(event);
1389 } else { 1379 } else {
1390 renderWidgetHostView_->render_widget_host_->ImeConfirmComposition( 1380 renderWidgetHostView_->render_widget_host_->ImeConfirmComposition(
1391 UTF8ToUTF16([im_text UTF8String])); 1381 UTF8ToUTF16([im_text UTF8String]));
1392 } 1382 }
1393 renderWidgetHostView_->im_composing_ = false; 1383 renderWidgetHostView_->im_composing_ = false;
1394 } 1384 }
1395 1385
1396 @end 1386 @end
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_widget_host_view_mac.h ('k') | chrome/browser/tab_contents/interstitial_page.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698