mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Add key up/down C API
This commit is contained in:
parent
7653c6c9fc
commit
71bd7a4199
3 changed files with 31 additions and 0 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -5224,6 +5224,7 @@ dependencies = [
|
|||
"backtrace",
|
||||
"cbindgen",
|
||||
"env_logger",
|
||||
"keyboard-types",
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"log",
|
||||
|
|
|
@ -19,6 +19,7 @@ lazy_static = "1"
|
|||
log = "0.4"
|
||||
simpleservo = { path = "../api" }
|
||||
surfman = "0.3"
|
||||
keyboard-types = "0.5"
|
||||
|
||||
[target.'cfg(target_os = "windows")'.dependencies]
|
||||
libc = "0.2"
|
||||
|
|
|
@ -16,6 +16,7 @@ mod vslogger;
|
|||
use backtrace::Backtrace;
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
use env_logger;
|
||||
use keyboard_types::Key;
|
||||
use log::LevelFilter;
|
||||
use simpleservo::{self, gl_glue, ServoGlue, SERVO};
|
||||
use simpleservo::{
|
||||
|
@ -717,6 +718,34 @@ pub extern "C" fn click(x: f32, y: f32) {
|
|||
});
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn key_down(name: *const c_char) {
|
||||
catch_any_panic(|| {
|
||||
debug!("key_down");
|
||||
let name = unsafe { CStr::from_ptr(name) };
|
||||
let key = Key::from_str(&name.to_str().expect("Can't read string"));
|
||||
if let Ok(key) = key {
|
||||
call(|s| s.key_down(key));
|
||||
} else {
|
||||
warn!("Received unknown keys");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn key_up(name: *const c_char) {
|
||||
catch_any_panic(|| {
|
||||
debug!("key_up");
|
||||
let name = unsafe { CStr::from_ptr(name) };
|
||||
let key = Key::from_str(&name.to_str().expect("Can't read string"));
|
||||
if let Ok(key) = key {
|
||||
call(|s| s.key_up(key));
|
||||
} else {
|
||||
warn!("Received unknown keys");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn media_session_action(action: CMediaSessionActionType) {
|
||||
catch_any_panic(|| {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue