|  | // 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; | 
|  |  | 
|  | /// Obsolete. This command is a no-op. | 
|  | 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; | 
|  | }; | 
|  |  | 
|  | /// Obsolete. This command is a no-op. | 
|  | struct SetParallelDispatchCmd { | 
|  | bool parallel_dispatch; | 
|  | }; |