Commit d4b3cbc2 authored by Erik Jensen's avatar Erik Jensen Committed by Commit Bot

remoting: Initial Linux keyboard layout monitor implementation.

This still has a couple of rough edges:
 * Some layouts lacking a keypad thousands separator will show a decimal
   separator at both NumpadDecimal and NumpadComma.
 * IntlBackslash will appear on layouts where it's not typically
   present (usually generating '<').
 * Japanese and Korean IME keys are not included even where applicable.
 * When the user modifies the enabled keyboard layouts or settings,
   several layout messages can end up being sent in rapid succession as
   the changes are applied.
 * Probably other things that will be revealed during testing.

Bug: 1026029
Change-Id: Icb511db3d3b5715ab563a0f433443c977e5c805c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2063850
Commit-Queue: Erik Jensen <rkjnsn@chromium.org>
Reviewed-by: default avatarJoe Downing <joedow@chromium.org>
Reviewed-by: default avatarGary Kacmarcik <garykac@chromium.org>
Reviewed-by: default avatarLambros Lambrou <lambroslambrou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#744150}
parent 033b53e3
......@@ -232,6 +232,7 @@ static_library("common") {
"it2me_desktop_environment.h",
"keyboard_layout_monitor.cc",
"keyboard_layout_monitor.h",
"keyboard_layout_monitor_chromeos.cc",
"keyboard_layout_monitor_linux.cc",
"keyboard_layout_monitor_mac.cc",
"keyboard_layout_monitor_win.cc",
......@@ -393,6 +394,7 @@ static_library("common") {
"continue_window_linux.cc",
"curtain_mode_linux.cc",
"disconnect_window_linux.cc",
"keyboard_layout_monitor_linux.cc",
"me2me_desktop_environment.cc",
"me2me_desktop_environment.h",
"xsession_chooser_linux.cc",
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "remoting/host/keyboard_layout_monitor.h"
#include "base/callback.h"
namespace remoting {
namespace {
class KeyboardLayoutMonitorChromeOs : public KeyboardLayoutMonitor {
public:
explicit KeyboardLayoutMonitorChromeOs(
base::RepeatingCallback<void(const protocol::KeyboardLayout&)> callback) {
}
~KeyboardLayoutMonitorChromeOs() override = default;
void Start() override { NOTIMPLEMENTED(); }
};
} // namespace
std::unique_ptr<KeyboardLayoutMonitor> KeyboardLayoutMonitor::Create(
base::RepeatingCallback<void(const protocol::KeyboardLayout&)> callback,
scoped_refptr<base::SingleThreadTaskRunner> input_task_runner) {
return std::make_unique<KeyboardLayoutMonitorChromeOs>(std::move(callback));
}
} // namespace remoting
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment