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

Unified Diff: ui/views/win/hwnd_message_handler.h

Issue 2852763002: Added a system caret used for accessibility on Windows. (Closed)
Patch Set: Addressed comments. Created 3 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 side-by-side diff with in-line comments
Download patch
Index: ui/views/win/hwnd_message_handler.h
diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h
index f56a7ca05927ae0f5c947899aaeb522ca9db6667..f66478552a0ff13dec0478f6e01dfd20624ac9eb 100644
--- a/ui/views/win/hwnd_message_handler.h
+++ b/ui/views/win/hwnd_message_handler.h
@@ -21,6 +21,7 @@
#include "base/win/scoped_gdi_object.h"
#include "base/win/win_util.h"
#include "ui/accessibility/ax_enums.h"
+#include "ui/base/ime/input_method_observer.h"
#include "ui/base/ui_base_types.h"
#include "ui/base/win/window_event_target.h"
#include "ui/events/event.h"
@@ -38,6 +39,9 @@ class DirectManipulationHelper;
} // namespace gfx
namespace ui {
+class AXFakeCaretWin;
+class InputMethod;
+class TextInputClient;
class ViewProp;
}
@@ -117,9 +121,9 @@ const int WM_WINDOWSIZINGFINISHED = WM_USER;
// used by both a views::NativeWidget and an aura::WindowTreeHost
// implementation.
// TODO(beng): This object should eventually *become* the WindowImpl.
-class VIEWS_EXPORT HWNDMessageHandler :
- public gfx::WindowImpl,
- public ui::WindowEventTarget {
+class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl,
+ public ui::InputMethodObserver,
+ public ui::WindowEventTarget {
public:
explicit HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate);
~HWNDMessageHandler() override;
@@ -222,6 +226,15 @@ class VIEWS_EXPORT HWNDMessageHandler :
HICON GetSmallWindowIcon() const override;
LRESULT OnWndProc(UINT message, WPARAM w_param, LPARAM l_param) override;
+ // Overridden from InputMethodObserver
+ void OnTextInputTypeChanged(const ui::TextInputClient* client) override {}
+ void OnFocus() override {}
+ void OnBlur() override {}
+ void OnCaretBoundsChanged(const ui::TextInputClient* client) override;
+ void OnTextInputStateChanged(const ui::TextInputClient* client) override;
+ void OnInputMethodDestroyed(const ui::InputMethod* input_method) override;
+ void OnShowImeIfNeeded() override {}
+
// Overridden from WindowEventTarget
LRESULT HandleMouseMessage(unsigned int message,
WPARAM w_param,
@@ -685,6 +698,9 @@ class VIEWS_EXPORT HWNDMessageHandler :
std::unique_ptr<WindowsSessionChangeObserver>
windows_session_change_observer_;
+ // Some assistive software need to track the location of the caret.
+ std::unique_ptr<ui::AXFakeCaretWin> ax_fake_caret_;
+
// This class provides functionality to register the legacy window as a
// Direct Manipulation consumer. This allows us to support smooth scroll
// in Chrome on Windows 10.

Powered by Google App Engine
This is Rietveld 408576698