blob: 6bff402dc09445c240ee8bc8d19a3424e88eb561 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.ui.input;
union Command {
/// Commands for conveying input events to a `Session`.
/// Structs defined in input_events.fidl.
1: SendKeyboardInputCmd send_keyboard_input;
2: SendPointerInputCmd send_pointer_input;
/// Command to enable/disable delivery of hard keyboard events.
3: SetHardKeyboardDeliveryCmd set_hard_keyboard_delivery;
/// Command to enable/disable parallel delivery of input events.
4: SetParallelDispatchCmd set_parallel_dispatch;
};
struct SendKeyboardInputCmd {
uint32 compositor_id;
KeyboardEvent keyboard_event; // Defined in input_events.fidl
};
struct SendPointerInputCmd {
uint32 compositor_id;
PointerEvent pointer_event; // Defined in input_events.fidl
};
/// Typically, clients should receive text inputs from an IME.
///
/// For cases where no IME mediation is desired (such as a game application),
/// this command requests Scenic to deliver hard keyboard events to the client.
///
/// By default, Scenic will *not* deliver hard keyboard events to a client.
struct SetHardKeyboardDeliveryCmd {
bool delivery_request;
};
/// Typically, clients that participate in the hit test should receive input
/// events in parallel. This behavior is required for gesture disambiguation.
///
/// This command, typically set by the root presenter, allows disabling parallel
/// dispatch; it is part of the input v2 transition work.
// TODO(SCN-1047): Remove after gesture disambiguation is implemented.
struct SetParallelDispatchCmd {
bool parallel_dispatch;
};