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

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

Issue 1652483002: Browser Side Text Input State Tracking for OOPIF. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merged Created 4 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/renderer_host/render_widget_host_view_mac.h" 5 #include "content/browser/renderer_host/render_widget_host_view_mac.h"
6 6
7 #import <objc/runtime.h> 7 #import <objc/runtime.h>
8 #include <OpenGL/gl.h> 8 #include <OpenGL/gl.h>
9 #include <QuartzCore/QuartzCore.h> 9 #include <QuartzCore/QuartzCore.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 992 matching lines...) Expand 10 before | Expand all | Expand 10 after
1003 WebCursor web_cursor = cursor; 1003 WebCursor web_cursor = cursor;
1004 [cocoa_view_ updateCursor:web_cursor.GetNativeCursor()]; 1004 [cocoa_view_ updateCursor:web_cursor.GetNativeCursor()];
1005 } 1005 }
1006 1006
1007 void RenderWidgetHostViewMac::SetIsLoading(bool is_loading) { 1007 void RenderWidgetHostViewMac::SetIsLoading(bool is_loading) {
1008 is_loading_ = is_loading; 1008 is_loading_ = is_loading;
1009 // If we ever decide to show the waiting cursor while the page is loading 1009 // If we ever decide to show the waiting cursor while the page is loading
1010 // like Chrome does on Windows, call |UpdateCursor()| here. 1010 // like Chrome does on Windows, call |UpdateCursor()| here.
1011 } 1011 }
1012 1012
1013 void RenderWidgetHostViewMac::TextInputStateChanged( 1013 void RenderWidgetHostViewMac::UpdateInputMethodIfNecessary(
1014 const ViewHostMsg_TextInputState_Params& params) { 1014 bool text_input_state_changed) {
1015 if (text_input_type_ != params.type 1015 if (!text_input_state_changed)
1016 || can_compose_inline_ != params.can_compose_inline) { 1016 return;
1017 text_input_type_ = params.type;
1018 can_compose_inline_ = params.can_compose_inline;
1019 if (HasFocus()) {
1020 SetTextInputActive(true);
1021 1017
1022 // Let AppKit cache the new input context to make IMEs happy. 1018 if (HasFocus()) {
1023 // See http://crbug.com/73039. 1019 SetTextInputActive(true);
1024 [NSApp updateWindows]; 1020
1021 // Let AppKit cache the new input context to make IMEs happy.
1022 // See http://crbug.com/73039.
1023 [NSApp updateWindows];
1025 1024
1026 #ifndef __LP64__ 1025 #ifndef __LP64__
1027 UseInputWindow(TSMGetActiveDocument(), !can_compose_inline_); 1026 UseInputWindow(TSMGetActiveDocument(), !render_widget_host_->delegate()
1027 ->GetTextInputState()
1028 ->can_compose_inline);
1028 #endif 1029 #endif
1029 }
1030 } 1030 }
1031 } 1031 }
1032 1032
1033 void RenderWidgetHostViewMac::ImeCancelComposition() { 1033 void RenderWidgetHostViewMac::ImeCancelComposition() {
1034 [cocoa_view_ cancelComposition]; 1034 [cocoa_view_ cancelComposition];
1035 } 1035 }
1036 1036
1037 void RenderWidgetHostViewMac::ImeCompositionRangeChanged( 1037 void RenderWidgetHostViewMac::ImeCompositionRangeChanged(
1038 const gfx::Range& range, 1038 const gfx::Range& range,
1039 const std::vector<gfx::Rect>& character_bounds) { 1039 const std::vector<gfx::Rect>& character_bounds) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1076 pepper_fullscreen_window_.autorelease(); 1076 pepper_fullscreen_window_.autorelease();
1077 1077
1078 // Delete the delegated frame state, which will reach back into 1078 // Delete the delegated frame state, which will reach back into
1079 // render_widget_host_. 1079 // render_widget_host_.
1080 ShutdownBrowserCompositor(); 1080 ShutdownBrowserCompositor();
1081 1081
1082 // Make sure none of our observers send events for us to process after 1082 // Make sure none of our observers send events for us to process after
1083 // we release render_widget_host_. 1083 // we release render_widget_host_.
1084 NotifyObserversAboutShutdown(); 1084 NotifyObserversAboutShutdown();
1085 1085
1086 // The WebContentsImpl should be notified about us so that it will not hold
1087 // an invalid text input state which was due to active text on this view.
1088 NotifyHostDelegateAboutShutdown();
1089
1086 // We get this call just before |render_widget_host_| deletes 1090 // We get this call just before |render_widget_host_| deletes
1087 // itself. But we are owned by |cocoa_view_|, which may be retained 1091 // itself. But we are owned by |cocoa_view_|, which may be retained
1088 // by some other code. Examples are WebContentsViewMac's 1092 // by some other code. Examples are WebContentsViewMac's
1089 // |latent_focus_view_| and TabWindowController's 1093 // |latent_focus_view_| and TabWindowController's
1090 // |cachedContentView_|. 1094 // |cachedContentView_|.
1091 render_widget_host_ = NULL; 1095 render_widget_host_ = NULL;
1092 } 1096 }
1093 1097
1094 // Called from the renderer to tell us what the tooltip text should be. It 1098 // Called from the renderer to tell us what the tooltip text should be. It
1095 // calls us frequently so we need to cache the value to prevent doing a lot 1099 // calls us frequently so we need to cache the value to prevent doing a lot
(...skipping 2299 matching lines...) Expand 10 before | Expand all | Expand 10 after
3395 3399
3396 // "-webkit-app-region: drag | no-drag" is implemented on Mac by excluding 3400 // "-webkit-app-region: drag | no-drag" is implemented on Mac by excluding
3397 // regions that are not draggable. (See ControlRegionView in 3401 // regions that are not draggable. (See ControlRegionView in
3398 // native_app_window_cocoa.mm). This requires the render host view to be 3402 // native_app_window_cocoa.mm). This requires the render host view to be
3399 // draggable by default. 3403 // draggable by default.
3400 - (BOOL)mouseDownCanMoveWindow { 3404 - (BOOL)mouseDownCanMoveWindow {
3401 return YES; 3405 return YES;
3402 } 3406 }
3403 3407
3404 @end 3408 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698