blob: 3edd2b82d80a6f7132362013b21444249e4eade0 [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.
SendKeyboardInputCmd send_keyboard_input;
SendPointerInputCmd send_pointer_input;
/// Command to enable/disable delivery of hard keyboard events.
SetHardKeyboardDeliveryCmd set_hard_keyboard_delivery;
/// Command to enable/disable parallel delivery of input events.
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;
};