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

Side by Side Diff: ui/views/cocoa/bridged_native_widget.mm

Issue 1690543004: MacViews: Implement Full Keyboard Access. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments. Make patch smaller temporarily. Created 4 years, 9 months 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #import "ui/views/cocoa/bridged_native_widget.h" 5 #import "ui/views/cocoa/bridged_native_widget.h"
6 6
7 #import <objc/runtime.h> 7 #import <objc/runtime.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 } 751 }
752 752
753 void BridgedNativeWidget::OnWindowKeyStatusChangedTo(bool is_key) { 753 void BridgedNativeWidget::OnWindowKeyStatusChangedTo(bool is_key) {
754 Widget* widget = native_widget_mac()->GetWidget(); 754 Widget* widget = native_widget_mac()->GetWidget();
755 widget->OnNativeWidgetActivationChanged(is_key); 755 widget->OnNativeWidgetActivationChanged(is_key);
756 // The contentView is the BridgedContentView hosting the views::RootView. The 756 // The contentView is the BridgedContentView hosting the views::RootView. The
757 // focus manager will already know if a native subview has focus. 757 // focus manager will already know if a native subview has focus.
758 if ([window_ contentView] == [window_ firstResponder]) { 758 if ([window_ contentView] == [window_ firstResponder]) {
759 if (is_key) { 759 if (is_key) {
760 widget->OnNativeFocus(); 760 widget->OnNativeFocus();
761 // Explicitly set the keyboard accessibility state on regaining key
762 // window status.
763 [bridged_view_ updateFullKeyboardAccess];
761 widget->GetFocusManager()->RestoreFocusedView(); 764 widget->GetFocusManager()->RestoreFocusedView();
762 } else { 765 } else {
763 widget->OnNativeBlur(); 766 widget->OnNativeBlur();
764 widget->GetFocusManager()->StoreFocusedView(true); 767 widget->GetFocusManager()->StoreFocusedView(true);
765 } 768 }
766 } 769 }
767 } 770 }
768 771
769 bool BridgedNativeWidget::ShouldRepostPendingLeftMouseDown( 772 bool BridgedNativeWidget::ShouldRepostPendingLeftMouseDown(
770 NSPoint location_in_window) { 773 NSPoint location_in_window) {
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 [bridged_view_ setMouseDownCanMoveWindow:draggable]; 1241 [bridged_view_ setMouseDownCanMoveWindow:draggable];
1239 // AppKit will not update its cache of mouseDownCanMoveWindow unless something 1242 // AppKit will not update its cache of mouseDownCanMoveWindow unless something
1240 // changes. Previously we tried adding an NSView and removing it, but for some 1243 // changes. Previously we tried adding an NSView and removing it, but for some
1241 // reason it required reposting the mouse-down event, and didn't always work. 1244 // reason it required reposting the mouse-down event, and didn't always work.
1242 // Calling the below seems to be an effective solution. 1245 // Calling the below seems to be an effective solution.
1243 [window_ setMovableByWindowBackground:NO]; 1246 [window_ setMovableByWindowBackground:NO];
1244 [window_ setMovableByWindowBackground:YES]; 1247 [window_ setMovableByWindowBackground:YES];
1245 } 1248 }
1246 1249
1247 } // namespace views 1250 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698