New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 608579 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: May 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

On screen keyboard on Windows 8+ should not obscure the input field

Project Member Reported by ananta@chromium.org, May 3 2016

Issue description

Version: 52.0.2720.0 (Official Build) canary (64-bit)
OS: Windows 8+

Run Windows 8+ in tablet mode and tap on an input field near the bottom of the page
in Chrome. Observe that the on screen keyboard obscures the field.

The same steps in Edge on Windows 10 cause the page to scroll to ensure that the field
should come into view. When the keyboard is dismissed we should scroll back to the original
location.

The current behavior in Chrome makes it unusable at times in tablet mode.

 
Project Member

Comment 1 by bugdroid1@chromium.org, May 25 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4297d7d9e0cd33ac6673ec6a839b1501baabeba8

commit 4297d7d9e0cd33ac6673ec6a839b1501baabeba8
Author: ananta <ananta@chromium.org>
Date: Wed May 25 00:39:15 2016

The on screen keyboard on Windows 8+ should not obscure the input field.

The behavior we want is for the input field to scroll up when it
is obscured by the keyboard.

We attempt to mimic the behavior in Chrome OS where the viewport
is changed to the bounds of the OSK and the input field is
scrolled into the intersecting rectangle.

Added the following classes which live in ui\base\win\osk_display_manager.h/.cc

1. OnScreenKeyboardDisplayManager
2. OnScreenKeyboardDetector

These classes provide functionality to detect whether the
keyboard was displayed or hidden via a posted delayed task

They optionally notify observers who implement the OnScreenKeyboardObserver interface. The observers in turn can
detect if the keyboard is obscuring the view and can change the viewport and scroll the input field. This behavior is implemented by the OnScreenKeyboardObserver class which lives
in render_widget_host_view_aura.cc

BUG= 608579 
TEST=Partially covered by ui_base_unittest
OnScreenKeyboardTest.OSKPath

Review-Url: https://codereview.chromium.org/1986153005
Cr-Commit-Position: refs/heads/master@{#395754}

[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/base/win/win_util.cc
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/base/win/win_util.h
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/content/browser/renderer_host/render_view_host_impl.cc
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/content/browser/renderer_host/render_view_host_impl.h
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/content/public/browser/render_widget_host_view.h
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/ui/base/BUILD.gn
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/ui/base/ui_base.gyp
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/ui/base/ui_base_tests.gyp
[add] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/ui/base/win/osk_display_manager.cc
[add] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/ui/base/win/osk_display_manager.h
[add] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/ui/base/win/osk_display_manager_unittest.cc
[add] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/ui/base/win/osk_display_observer.h
[modify] https://crrev.com/4297d7d9e0cd33ac6673ec6a839b1501baabeba8/ui/views/controls/textfield/textfield.cc

Comment 2 by ananta@chromium.org, May 25 2016

Status: Fixed (was: Assigned)

Sign in to add a comment