Hide mouse cursor when inactive

This commit is contained in:
Jeremy Soller 2024-10-07 12:40:21 -06:00
parent 8105bd3b48
commit cb942cd6a1
No known key found for this signature in database
GPG key ID: D02FD439211AF56F
2 changed files with 24 additions and 29 deletions

34
Cargo.lock generated
View file

@ -1147,7 +1147,7 @@ dependencies = [
[[package]] [[package]]
name = "cosmic-config" name = "cosmic-config"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"atomicwrites", "atomicwrites",
"cosmic-config-derive", "cosmic-config-derive",
@ -1166,7 +1166,7 @@ dependencies = [
[[package]] [[package]]
name = "cosmic-config-derive" name = "cosmic-config-derive"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"quote", "quote",
"syn 1.0.109", "syn 1.0.109",
@ -1220,7 +1220,7 @@ dependencies = [
[[package]] [[package]]
name = "cosmic-theme" name = "cosmic-theme"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"almost", "almost",
"cosmic-config", "cosmic-config",
@ -2706,7 +2706,7 @@ dependencies = [
[[package]] [[package]]
name = "iced" name = "iced"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"dnd", "dnd",
"iced_accessibility", "iced_accessibility",
@ -2724,7 +2724,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_accessibility" name = "iced_accessibility"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"accesskit", "accesskit",
"accesskit_winit", "accesskit_winit",
@ -2733,7 +2733,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_core" name = "iced_core"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"bitflags 2.6.0", "bitflags 2.6.0",
"dnd", "dnd",
@ -2753,7 +2753,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_futures" name = "iced_futures"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"futures", "futures",
"iced_core", "iced_core",
@ -2766,7 +2766,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_graphics" name = "iced_graphics"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"bitflags 2.6.0", "bitflags 2.6.0",
"bytemuck", "bytemuck",
@ -2790,7 +2790,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_renderer" name = "iced_renderer"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"iced_graphics", "iced_graphics",
"iced_tiny_skia", "iced_tiny_skia",
@ -2802,7 +2802,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_runtime" name = "iced_runtime"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"dnd", "dnd",
"iced_core", "iced_core",
@ -2814,7 +2814,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_style" name = "iced_style"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"iced_core", "iced_core",
"once_cell", "once_cell",
@ -2824,7 +2824,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_tiny_skia" name = "iced_tiny_skia"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"cosmic-text", "cosmic-text",
@ -2841,7 +2841,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_video_player" name = "iced_video_player"
version = "0.6.0" version = "0.6.0"
source = "git+https://github.com/jackpot51/iced_video_player.git?branch=cosmic#8d59eb6ef219e687df54a07709b8f9bbf939825c" source = "git+https://github.com/jackpot51/iced_video_player.git?branch=cosmic#0bee8bed36c84cd3ffab684bbf1acf1aa6929650"
dependencies = [ dependencies = [
"glib", "glib",
"gstreamer", "gstreamer",
@ -2857,7 +2857,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_wgpu" name = "iced_wgpu"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"as-raw-xcb-connection", "as-raw-xcb-connection",
"bitflags 2.6.0", "bitflags 2.6.0",
@ -2886,7 +2886,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_widget" name = "iced_widget"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"dnd", "dnd",
"iced_renderer", "iced_renderer",
@ -2902,7 +2902,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_winit" name = "iced_winit"
version = "0.12.0" version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"dnd", "dnd",
"iced_graphics", "iced_graphics",
@ -3219,7 +3219,7 @@ checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]] [[package]]
name = "libcosmic" name = "libcosmic"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#93578816f9a3ac6aeb24d6f3223d43e3f228d106" source = "git+https://github.com/pop-os/libcosmic.git#5306649be1cfb6c384da11e2ab25cafc4be79b14"
dependencies = [ dependencies = [
"apply", "apply",
"ashpd 0.9.1", "ashpd 0.9.1",

View file

@ -9,8 +9,8 @@ use cosmic::{
event::{self, Event}, event::{self, Event},
keyboard::{Event as KeyEvent, Key, Modifiers}, keyboard::{Event as KeyEvent, Key, Modifiers},
mouse::Event as MouseEvent, mouse::Event as MouseEvent,
subscription::{self, Subscription}, subscription::Subscription,
window, Alignment, Color, Length, Limits, Size, window, Alignment, Color, Length, Limits,
}, },
theme, theme,
widget::{self, Slider}, widget::{self, Slider},
@ -86,7 +86,7 @@ pub enum Action {
impl Action { impl Action {
pub fn message(&self) -> Message { pub fn message(&self) -> Message {
match self { match self {
Self::PlayPause => Message::TogglePause, Self::PlayPause => Message::PlayPause,
Self::SeekBackward => Message::SeekRelative(-10.0), Self::SeekBackward => Message::SeekRelative(-10.0),
Self::SeekForward => Message::SeekRelative(10.0), Self::SeekForward => Message::SeekRelative(10.0),
} }
@ -108,8 +108,7 @@ pub enum Message {
Key(Modifiers, Key), Key(Modifiers, Key),
AudioCode(usize), AudioCode(usize),
TextCode(usize), TextCode(usize),
TogglePause, PlayPause,
ToggleLoop,
Seek(f64), Seek(f64),
SeekRelative(f64), SeekRelative(f64),
SeekRelease, SeekRelease,
@ -323,17 +322,12 @@ impl Application for App {
} }
} }
} }
Message::TogglePause => { Message::PlayPause => {
if let Some(video) = &mut self.video_opt { if let Some(video) = &mut self.video_opt {
video.set_paused(!video.paused()); video.set_paused(!video.paused());
self.update_controls(true); self.update_controls(true);
} }
} }
Message::ToggleLoop => {
if let Some(video) = &mut self.video_opt {
video.set_looping(!video.looping());
}
}
Message::Seek(secs) => { Message::Seek(secs) => {
if let Some(video) = &mut self.video_opt { if let Some(video) = &mut self.video_opt {
self.dragging = true; self.dragging = true;
@ -466,6 +460,7 @@ impl Application for App {
}; };
let video_player = VideoPlayer::new(video) let video_player = VideoPlayer::new(video)
.mouse_hidden(!self.controls)
.on_end_of_stream(Message::EndOfStream) .on_end_of_stream(Message::EndOfStream)
.on_missing_plugin(Message::MissingPlugin) .on_missing_plugin(Message::MissingPlugin)
.on_new_frame(Message::NewFrame) .on_new_frame(Message::NewFrame)
@ -492,7 +487,7 @@ impl Application for App {
.size(16) .size(16)
}, },
) )
.on_press(Message::TogglePause), .on_press(Message::PlayPause),
) )
.push(widget::text(format_time(self.position)).font(font::mono())) .push(widget::text(format_time(self.position)).font(font::mono()))
.push( .push(