blob: b417d0a9d1f0877f8b360120d163a1a82bb30afe [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;
};