1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be 3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file. 4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#ifndef CHROME_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_VIEWS_H_ 6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#define CHROME_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_VIEWS_H_ 7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#pragma once 8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include <map> 10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include <string> 11731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include <vector> 12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_ptr.h" 14731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/time.h" 15dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/renderer_host/render_widget_host_view.h" 1672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h" 1772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/native_widget_types.h" 18731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "views/controls/native/native_view_host.h" 1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "views/events/event.h" 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "views/ime/text_input_client.h" 21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "views/view.h" 22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "webkit/glue/webcursor.h" 23731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 24731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass RenderWidgetHost; 25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickstruct NativeWebKeyboardEvent; 26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// ----------------------------------------------------------------------------- 28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// See comments in render_widget_host_view.h about this class and its members. 29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// ----------------------------------------------------------------------------- 30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass RenderWidgetHostViewViews : public RenderWidgetHostView, 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public views::View, 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public views::TextInputClient { 33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick public: 3472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // Internal class name. 3572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen static const char kViewClassName[]; 3672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick explicit RenderWidgetHostViewViews(RenderWidgetHost* widget); 38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual ~RenderWidgetHostViewViews(); 39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Initialize this object for use as a drawing area. 41731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick void InitAsChild(); 42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 43731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // RenderWidgetHostView implementation. 44731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual void InitAsPopup(RenderWidgetHostView* parent_host_view, 45dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen const gfx::Rect& pos) OVERRIDE; 46dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void InitAsFullscreen() OVERRIDE; 47dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual RenderWidgetHost* GetRenderWidgetHost() const OVERRIDE; 48dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void DidBecomeSelected() OVERRIDE; 49dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void WasHidden() OVERRIDE; 50dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void SetSize(const gfx::Size& size) OVERRIDE; 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void SetBounds(const gfx::Rect& rect) OVERRIDE; 52dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual gfx::NativeView GetNativeView() OVERRIDE; 53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual void MovePluginWindows( 54dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen const std::vector<webkit::npapi::WebPluginGeometry>& moves) OVERRIDE; 55dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual bool HasFocus() OVERRIDE; 56dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void Show() OVERRIDE; 57dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void Hide() OVERRIDE; 58dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual bool IsShowing() OVERRIDE; 59dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual gfx::Rect GetViewBounds() const OVERRIDE; 60dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void UpdateCursor(const WebCursor& cursor) OVERRIDE; 61dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void SetIsLoading(bool is_loading) OVERRIDE; 62731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual void ImeUpdateTextInputState(WebKit::WebTextInputType type, 63dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen const gfx::Rect& caret_rect) OVERRIDE; 64dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void ImeCancelComposition() OVERRIDE; 65731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual void DidUpdateBackingStore( 66731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const gfx::Rect& scroll_rect, int scroll_dx, int scroll_dy, 67dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen const std::vector<gfx::Rect>& copy_rects) OVERRIDE; 6821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual void RenderViewGone(base::TerminationStatus status, 69dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen int error_code) OVERRIDE; 70dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void Destroy() OVERRIDE; 71dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void WillDestroyRenderWidget(RenderWidgetHost* rwh) OVERRIDE {} 72dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void SetTooltipText(const std::wstring& tooltip_text) OVERRIDE; 73dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void SelectionChanged(const std::string& text) OVERRIDE; 74dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void ShowingContextMenu(bool showing) OVERRIDE; 75dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual BackingStore* AllocBackingStore(const gfx::Size& size) OVERRIDE; 76dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void SetBackground(const SkBitmap& background) OVERRIDE; 77dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void CreatePluginContainer(gfx::PluginWindowHandle id) OVERRIDE; 78dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void DestroyPluginContainer(gfx::PluginWindowHandle id) OVERRIDE; 79dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void SetVisuallyDeemphasized(const SkColor* color, 80dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen bool animate) OVERRIDE; 81dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual bool ContainsNativeView(gfx::NativeView native_view) const OVERRIDE; 82dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void AcceleratedCompositingActivated(bool activated) OVERRIDE; 83ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual gfx::PluginWindowHandle GetCompositingSurface() OVERRIDE; 84731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 8572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // On some systems, there can be two native views, where an outer native view 8672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // contains the inner native view (e.g. when using GTK+). This returns the 8772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // inner view. This can return NULL when it's not attached to a view. 8872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen gfx::NativeView GetInnerNativeView() const; 89731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 90201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // Overridden from views::View. 91ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual std::string GetClassName() const OVERRIDE; 92ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual gfx::NativeCursor GetCursorForPoint(ui::EventType type, 93ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const gfx::Point& point) OVERRIDE; 94dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE; 95dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual bool OnMouseDragged(const views::MouseEvent& event) OVERRIDE; 96ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnMouseReleased(const views::MouseEvent& event) OVERRIDE; 97ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnMouseMoved(const views::MouseEvent& event) OVERRIDE; 98dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE; 99dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE; 100ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual View::TouchStatus OnTouchEvent( 101ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const views::TouchEvent& event) OVERRIDE; 102ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool OnKeyPressed(const views::KeyEvent& event) OVERRIDE; 103ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool OnKeyReleased(const views::KeyEvent& event) OVERRIDE; 104ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool OnMouseWheel(const views::MouseWheelEvent& event) OVERRIDE; 105ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual views::TextInputClient* GetTextInputClient() OVERRIDE; 106ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 107ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Overridden from TextInputClient: 108ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void SetCompositionText( 109ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const ui::CompositionText& composition) OVERRIDE; 110ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void ConfirmCompositionText() OVERRIDE; 111ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void ClearCompositionText() OVERRIDE; 112ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void InsertText(const string16& text) OVERRIDE; 113ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void InsertChar(char16 ch, int flags) OVERRIDE; 114ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual ui::TextInputType GetTextInputType() OVERRIDE; 115ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual gfx::Rect GetCaretBounds() OVERRIDE; 116ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool HasCompositionText() OVERRIDE; 117ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool GetTextRange(ui::Range* range) OVERRIDE; 118ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool GetCompositionTextRange(ui::Range* range) OVERRIDE; 119ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool GetSelectionRange(ui::Range* range) OVERRIDE; 120ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool SetSelectionRange(const ui::Range& range) OVERRIDE; 121ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool DeleteRange(const ui::Range& range) OVERRIDE; 122ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool GetTextFromRange( 123ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const ui::Range& range, 124ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const base::Callback<void(const string16&)>& callback) OVERRIDE; 125ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnInputMethodChanged() OVERRIDE; 126ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool ChangeTextDirectionAndLayoutAlignment( 127ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen base::i18n::TextDirection direction) OVERRIDE; 128ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual views::View* GetOwnerViewOfTextInputClient() OVERRIDE; 129ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 130ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen protected: 131ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Overridden from RenderWidgetHostView / views::View. 132ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; 133ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void Focus() OVERRIDE; 134ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void Blur() OVERRIDE; 135dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void OnFocus() OVERRIDE; 136dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void OnBlur() OVERRIDE; 137731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 138731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick private: 139731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick friend class RenderWidgetHostViewViewsWidget; 140731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 141731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Returns whether the widget needs an input grab to work 142731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // properly. 143731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick bool NeedsInputGrab(); 144731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 145731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Returns whether this render view is a popup (<select> dropdown or 146731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // autocomplete window). 147731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick bool IsPopup(); 148731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 149731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Update the display cursor for the render view. 150731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick void ShowCurrentCursor(); 151731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 152731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Translate a views::MouseEvent into a WebKit::WebMouseEvent. 153731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick WebKit::WebMouseEvent WebMouseEventFromViewsEvent( 154731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const views::MouseEvent& event); 155731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 156ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Confirm existing composition text in the webpage and ask the input method 157ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // to cancel its ongoing composition sesstion. 158ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void FinishImeCompositionSession(); 159ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 160731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // The model object. 161731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick RenderWidgetHost* host_; 162731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 163731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // This is true when we are currently painting and thus should handle extra 164731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // paint requests by expanding the invalid rect rather than actually 165731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // painting. 166731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick bool about_to_validate_and_paint_; 167731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 168731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // This is the rectangle which we'll paint. 169731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick gfx::Rect invalid_rect_; 170731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 171731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Whether or not this widget is hidden. 172731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick bool is_hidden_; 173731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 174731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Whether we are currently loading. 175731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick bool is_loading_; 176731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 177731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // The cursor for the page. This is passed up from the renderer. 178731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick WebCursor current_cursor_; 179731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 180201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // The native cursor. 181201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch gfx::NativeCursor native_cursor_; 182201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 183731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Whether we are showing a context menu. 184731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick bool is_showing_context_menu_; 185731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 186731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // The time at which this view started displaying white pixels as a result of 187731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // not having anything to paint (empty backing store from renderer). This 188731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // value returns true for is_null() if we are not recording whiteout times. 189731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick base::TimeTicks whiteout_start_time_; 190731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 191731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // The time it took after this view was selected for it to be fully painted. 192731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick base::TimeTicks tab_switch_paint_time_; 193731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 194731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // If true, fade the render widget when painting it. 195731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick bool visually_deemphasized_; 196731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 197731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // The size that we want the renderer to be. 198731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick gfx::Size requested_size_; 199731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 200201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // The touch-event. Its touch-points are updated as necessary. A new 201201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // touch-point is added from an ET_TOUCH_PRESSED event, and a touch-point is 202201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // removed from the list on an ET_TOUCH_RELEASED event. 203201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch WebKit::WebTouchEvent touch_event_; 204201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 205ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // The current text input type. 206ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ui::TextInputType text_input_type_; 207ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 208ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // The current caret bounds. 209ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen gfx::Rect caret_bounds_; 210ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 211ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Indicates if there is onging composition text. 212ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool has_composition_text_; 21372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 214731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewViews); 215731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 216731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 217731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#endif // CHROME_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_VIEWS_H_ 218