mirror of
https://github.com/tauri-apps/global-hotkey.git
synced 2026-01-31 00:45:22 +01:00
chore(examples): update winit to 0.30
This commit is contained in:
@@ -42,7 +42,7 @@ features = [
|
||||
x11-dl = "2.21"
|
||||
|
||||
[dev-dependencies]
|
||||
winit = "0.29"
|
||||
winit = "0.30"
|
||||
tao = "0.30"
|
||||
eframe = "0.27"
|
||||
iced = "0.12.1"
|
||||
|
||||
@@ -6,11 +6,14 @@ use global_hotkey::{
|
||||
hotkey::{Code, HotKey, Modifiers},
|
||||
GlobalHotKeyEvent, GlobalHotKeyManager, HotKeyState,
|
||||
};
|
||||
use winit::event_loop::{ControlFlow, EventLoopBuilder};
|
||||
use winit::{
|
||||
application::ApplicationHandler,
|
||||
event::WindowEvent,
|
||||
event_loop::{ActiveEventLoop, EventLoop},
|
||||
window::WindowId,
|
||||
};
|
||||
|
||||
fn main() {
|
||||
let event_loop = EventLoopBuilder::new().build().unwrap();
|
||||
|
||||
let hotkeys_manager = GlobalHotKeyManager::new().unwrap();
|
||||
|
||||
let hotkey = HotKey::new(Some(Modifiers::SHIFT), Code::KeyD);
|
||||
@@ -21,19 +24,51 @@ fn main() {
|
||||
hotkeys_manager.register(hotkey2).unwrap();
|
||||
hotkeys_manager.register(hotkey3).unwrap();
|
||||
|
||||
let global_hotkey_channel = GlobalHotKeyEvent::receiver();
|
||||
let event_loop = EventLoop::<AppEvent>::with_user_event().build().unwrap();
|
||||
let proxy = event_loop.create_proxy();
|
||||
|
||||
event_loop
|
||||
.run(move |_event, event_loop| {
|
||||
event_loop.set_control_flow(ControlFlow::Poll);
|
||||
GlobalHotKeyEvent::set_event_handler(Some(move |event| {
|
||||
let _ = proxy.send_event(AppEvent::HotKey(event));
|
||||
}));
|
||||
|
||||
if let Ok(event) = global_hotkey_channel.try_recv() {
|
||||
let mut app = App {
|
||||
hotkeys_manager,
|
||||
hotkey2,
|
||||
};
|
||||
|
||||
event_loop.run_app(&mut app).unwrap()
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
enum AppEvent {
|
||||
HotKey(GlobalHotKeyEvent),
|
||||
}
|
||||
|
||||
struct App {
|
||||
hotkeys_manager: GlobalHotKeyManager,
|
||||
hotkey2: HotKey,
|
||||
}
|
||||
|
||||
impl ApplicationHandler<AppEvent> for App {
|
||||
fn resumed(&mut self, _event_loop: &ActiveEventLoop) {}
|
||||
|
||||
fn window_event(
|
||||
&mut self,
|
||||
_event_loop: &ActiveEventLoop,
|
||||
_window_id: WindowId,
|
||||
_event: WindowEvent,
|
||||
) {
|
||||
}
|
||||
|
||||
fn user_event(&mut self, _event_loop: &ActiveEventLoop, event: AppEvent) {
|
||||
match event {
|
||||
AppEvent::HotKey(event) => {
|
||||
println!("{event:?}");
|
||||
|
||||
if hotkey2.id() == event.id && event.state == HotKeyState::Released {
|
||||
hotkeys_manager.unregister(hotkey2).unwrap();
|
||||
if self.hotkey2.id() == event.id && event.state == HotKeyState::Released {
|
||||
self.hotkeys_manager.unregister(self.hotkey2).unwrap();
|
||||
}
|
||||
}
|
||||
})
|
||||
.unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user