Fixes for new libcosmic

This commit is contained in:
Jeremy Soller 2026-05-26 13:14:56 -06:00
parent 2817e7e778
commit be02779570

View file

@ -5,6 +5,7 @@ use cosmic::app::{Core, Settings, Task};
use cosmic::command::set_theme; use cosmic::command::set_theme;
use cosmic::cosmic_config::{self, CosmicConfigEntry}; use cosmic::cosmic_config::{self, CosmicConfigEntry};
use cosmic::iced::event::{self, Event}; use cosmic::iced::event::{self, Event};
use cosmic::iced::keyboard::key::Physical;
use cosmic::iced::keyboard::{Event as KeyEvent, Key, Modifiers}; use cosmic::iced::keyboard::{Event as KeyEvent, Key, Modifiers};
use cosmic::iced::mouse::{Event as MouseEvent, ScrollDelta}; use cosmic::iced::mouse::{Event as MouseEvent, ScrollDelta};
use cosmic::iced::window::{self, set_mode}; use cosmic::iced::window::{self, set_mode};
@ -288,7 +289,7 @@ pub enum Message {
FolderOpenRecent(usize), FolderOpenRecent(usize),
MultipleLoad(Vec<url::Url>), MultipleLoad(Vec<url::Url>),
Fullscreen, Fullscreen,
Key(Modifiers, Key), Key(Modifiers, Physical, Key),
AudioCode(usize), AudioCode(usize),
AudioToggle, AudioToggle,
AudioVolume(f64), AudioVolume(f64),
@ -1196,9 +1197,9 @@ impl Application for App {
); );
} }
} }
Message::Key(modifiers, key) => { Message::Key(modifiers, physical, key) => {
for (key_bind, action) in self.key_binds.iter() { for (key_bind, action) in self.key_binds.iter() {
if key_bind.matches(modifiers, &key) { if key_bind.matches(modifiers, &key, Some(&physical)) {
return self.update(action.message()); return self.update(action.message());
} }
} }
@ -2010,9 +2011,12 @@ impl Application for App {
let mut subscriptions = vec![ let mut subscriptions = vec![
event::listen_with(|event, _status, _window_id| match event { event::listen_with(|event, _status, _window_id| match event {
Event::Keyboard(KeyEvent::KeyPressed { key, modifiers, .. }) => { Event::Keyboard(KeyEvent::KeyPressed {
Some(Message::Key(modifiers, key)) modifiers,
} physical_key,
key,
..
}) => Some(Message::Key(modifiers, physical_key, key)),
Event::Mouse(MouseEvent::CursorMoved { .. }) => Some(Message::ShowControls), Event::Mouse(MouseEvent::CursorMoved { .. }) => Some(Message::ShowControls),
Event::Mouse(MouseEvent::WheelScrolled { delta }) => Some(Message::Scrolled(delta)), Event::Mouse(MouseEvent::WheelScrolled { delta }) => Some(Message::Scrolled(delta)),
_ => None, _ => None,