Add trigger_copy implementation on MacOS
This commit is contained in:
parent
6135787eb0
commit
86586623cc
|
@ -80,6 +80,11 @@ void delete_string(int32_t count);
|
||||||
*/
|
*/
|
||||||
void trigger_paste();
|
void trigger_paste();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Trigger normal copy ( Pressing CMD+C )
|
||||||
|
*/
|
||||||
|
void trigger_copy();
|
||||||
|
|
||||||
// UI
|
// UI
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -180,6 +180,39 @@ void trigger_paste() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void trigger_copy() {
|
||||||
|
dispatch_async(dispatch_get_main_queue(), ^(void) {
|
||||||
|
CGEventRef keydown;
|
||||||
|
keydown = CGEventCreateKeyboardEvent(NULL, 0x37, true); // CMD
|
||||||
|
CGEventPost(kCGHIDEventTap, keydown);
|
||||||
|
CFRelease(keydown);
|
||||||
|
|
||||||
|
usleep(2000);
|
||||||
|
|
||||||
|
CGEventRef keydown2;
|
||||||
|
keydown2 = CGEventCreateKeyboardEvent(NULL, 0x08, true); // C key
|
||||||
|
CGEventPost(kCGHIDEventTap, keydown2);
|
||||||
|
CFRelease(keydown2);
|
||||||
|
|
||||||
|
usleep(2000);
|
||||||
|
|
||||||
|
CGEventRef keyup;
|
||||||
|
keyup = CGEventCreateKeyboardEvent(NULL, 0x08, false);
|
||||||
|
CGEventPost(kCGHIDEventTap, keyup);
|
||||||
|
CFRelease(keyup);
|
||||||
|
|
||||||
|
usleep(2000);
|
||||||
|
|
||||||
|
CGEventRef keyup2;
|
||||||
|
keyup2 = CGEventCreateKeyboardEvent(NULL, 0x37, false); // CMD
|
||||||
|
CGEventPost(kCGHIDEventTap, keyup2);
|
||||||
|
CFRelease(keyup2);
|
||||||
|
|
||||||
|
usleep(2000);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
int32_t get_active_app_bundle(char * buffer, int32_t size) {
|
int32_t get_active_app_bundle(char * buffer, int32_t size) {
|
||||||
NSRunningApplication *frontApp = [[NSWorkspace sharedWorkspace] frontmostApplication];
|
NSRunningApplication *frontApp = [[NSWorkspace sharedWorkspace] frontmostApplication];
|
||||||
NSString *bundlePath = [frontApp bundleURL].path;
|
NSString *bundlePath = [frontApp bundleURL].path;
|
||||||
|
@ -292,3 +325,4 @@ void open_settings_panel() {
|
||||||
NSString *urlString = @"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility";
|
NSString *urlString = @"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility";
|
||||||
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]];
|
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,4 +59,5 @@ extern {
|
||||||
pub fn send_multi_vkey(vk: i32, count: i32);
|
pub fn send_multi_vkey(vk: i32, count: i32);
|
||||||
pub fn delete_string(count: i32);
|
pub fn delete_string(count: i32);
|
||||||
pub fn trigger_paste();
|
pub fn trigger_paste();
|
||||||
|
pub fn trigger_copy();
|
||||||
}
|
}
|
|
@ -56,6 +56,12 @@ impl super::KeyboardManager for MacKeyboardManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn trigger_copy(&self) {
|
||||||
|
unsafe {
|
||||||
|
trigger_copy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn delete_string(&self, count: i32) {
|
fn delete_string(&self, count: i32) {
|
||||||
unsafe {delete_string(count)}
|
unsafe {delete_string(count)}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user