Merge ~osomon/oxide:hide-insertion-handle-on-input into oxide:master

Proposed by Olivier Tilloy
Status: Merged
Merged at revision: 298acc65db5cb678f6a6d033d6ed340b4028d7dc
Proposed branch: ~osomon/oxide:hide-insertion-handle-on-input
Merge into: oxide:master
Diff against target: 90 lines (+20/-1)
4 files modified
shared/browser/input/oxide_ime_bridge_impl.cc (+5/-1)
shared/browser/oxide_render_widget_host_view.cc (+7/-0)
shared/browser/oxide_render_widget_host_view.h (+2/-0)
shared/browser/oxide_web_contents_view.cc (+6/-0)
Reviewer Review Type Date Requested Status
Chris Coulson Approve
Review via email: mp+296959@code.launchpad.net

Commit message

Hide the selection handle upon keyboard/mouse/OSK interaction.

This does something similar to TouchSelectionControllerClientAura::EnvPreTargetHandler.
Fixes: https://launchpad.net/bugs/1590776.

To post a comment you must log in.
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

This mostly looks ok, although I think I'd like to see the copy/pasted code implemented as a new function somewhere

review: Needs Fixing
2aa8a09... by Olivier Tilloy

Factor out common code into RenderWidgetHostView::OnUserInput().

Revision history for this message
Olivier Tilloy (osomon) wrote :

Updated. Does that look good?

Revision history for this message
Chris Coulson (chrisccoulson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/shared/browser/input/oxide_ime_bridge_impl.cc b/shared/browser/input/oxide_ime_bridge_impl.cc
index cd24cda..3fb8fcc 100644
--- a/shared/browser/input/oxide_ime_bridge_impl.cc
+++ b/shared/browser/input/oxide_ime_bridge_impl.cc
@@ -1,5 +1,5 @@
1// vim:expandtab:shiftwidth=2:tabstop=2:1// vim:expandtab:shiftwidth=2:tabstop=2:
2// Copyright (C) 2015 Canonical Ltd.2// Copyright (C) 2015-2016 Canonical Ltd.
33
4// This library is free software; you can redistribute it and/or4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public5// modify it under the terms of the GNU Lesser General Public
@@ -63,6 +63,8 @@ void ImeBridgeImpl::CommitText(const base::string16& text,
63 return;63 return;
64 }64 }
6565
66 rwhv_->OnUserInput();
67
66 content::RenderWidgetHostImpl* rwhi =68 content::RenderWidgetHostImpl* rwhi =
67 content::RenderWidgetHostImpl::From(rwhv_->GetRenderWidgetHost());69 content::RenderWidgetHostImpl::From(rwhv_->GetRenderWidgetHost());
68 SendFakeCompositionKeyEvent(rwhi, blink::WebInputEvent::RawKeyDown);70 SendFakeCompositionKeyEvent(rwhi, blink::WebInputEvent::RawKeyDown);
@@ -78,6 +80,8 @@ void ImeBridgeImpl::SetComposingText(
78 return;80 return;
79 }81 }
8082
83 rwhv_->OnUserInput();
84
81 content::RenderWidgetHostImpl* rwhi =85 content::RenderWidgetHostImpl* rwhi =
82 content::RenderWidgetHostImpl::From(rwhv_->GetRenderWidgetHost());86 content::RenderWidgetHostImpl::From(rwhv_->GetRenderWidgetHost());
83 SendFakeCompositionKeyEvent(rwhi, blink::WebInputEvent::RawKeyDown);87 SendFakeCompositionKeyEvent(rwhi, blink::WebInputEvent::RawKeyDown);
diff --git a/shared/browser/oxide_render_widget_host_view.cc b/shared/browser/oxide_render_widget_host_view.cc
index 711174e..efef1ca 100644
--- a/shared/browser/oxide_render_widget_host_view.cc
+++ b/shared/browser/oxide_render_widget_host_view.cc
@@ -568,6 +568,13 @@ void RenderWidgetHostView::OnGestureEvent(
568 host_->ForwardGestureEvent(event);568 host_->ForwardGestureEvent(event);
569}569}
570570
571void RenderWidgetHostView::OnUserInput() const {
572 if (selection_controller_->active_status() ==
573 ui::TouchSelectionController::INSERTION_ACTIVE) {
574 selection_controller_->HideAndDisallowShowingAutomatically();
575 }
576}
577
571bool RenderWidgetHostView::HandleContextMenu(578bool RenderWidgetHostView::HandleContextMenu(
572 const content::ContextMenuParams& params) {579 const content::ContextMenuParams& params) {
573 if ((params.source_type == ui::MENU_SOURCE_LONG_PRESS) &&580 if ((params.source_type == ui::MENU_SOURCE_LONG_PRESS) &&
diff --git a/shared/browser/oxide_render_widget_host_view.h b/shared/browser/oxide_render_widget_host_view.h
index af620cc..7607dde 100644
--- a/shared/browser/oxide_render_widget_host_view.h
+++ b/shared/browser/oxide_render_widget_host_view.h
@@ -107,6 +107,8 @@ class RenderWidgetHostView
107 return selection_controller_.get();107 return selection_controller_.get();
108 }108 }
109109
110 void OnUserInput() const;
111
110 bool HandleContextMenu(const content::ContextMenuParams& params);112 bool HandleContextMenu(const content::ContextMenuParams& params);
111113
112 private:114 private:
diff --git a/shared/browser/oxide_web_contents_view.cc b/shared/browser/oxide_web_contents_view.cc
index 6094b8e..0828883 100644
--- a/shared/browser/oxide_web_contents_view.cc
+++ b/shared/browser/oxide_web_contents_view.cc
@@ -830,6 +830,8 @@ void WebContentsView::HandleKeyEvent(
830 return;830 return;
831 }831 }
832832
833 GetRenderWidgetHostView()->OnUserInput();
834
833 host->ForwardKeyboardEvent(event);835 host->ForwardKeyboardEvent(event);
834}836}
835837
@@ -843,6 +845,8 @@ void WebContentsView::HandleMouseEvent(const blink::WebMouseEvent& event) {
843 return;845 return;
844 }846 }
845847
848 GetRenderWidgetHostView()->OnUserInput();
849
846 host->ForwardMouseEvent(e);850 host->ForwardMouseEvent(e);
847}851}
848852
@@ -862,6 +866,8 @@ void WebContentsView::HandleWheelEvent(
862 return;866 return;
863 }867 }
864868
869 GetRenderWidgetHostView()->OnUserInput();
870
865 host->ForwardWheelEvent(event);871 host->ForwardWheelEvent(event);
866}872}
867873

Subscribers

People subscribed via source and target branches