| // 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; |
| }; |