mirror of
https://github.com/Stremio/stremio-shell-ng.git
synced 2026-05-06 07:39:07 +00:00
fix: esc shortcut close fullscreen
This commit is contained in:
parent
bbbe882faf
commit
d7dfbf5991
1 changed files with 21 additions and 2 deletions
|
|
@ -41,6 +41,7 @@ pub struct MainWindow {
|
|||
pub force_update: bool,
|
||||
pub release_candidate: bool,
|
||||
pub autoupdater_setup_file: Arc<Mutex<Option<PathBuf>>>,
|
||||
pub requested_fullscreen: Arc<Mutex<Option<bool>>>,
|
||||
pub saved_window_style: RefCell<WindowStyle>,
|
||||
#[nwg_resource]
|
||||
pub embed: nwg::EmbedResource,
|
||||
|
|
@ -247,6 +248,7 @@ impl MainWindow {
|
|||
let hide_splash_sender = self.hide_splash_notice.sender();
|
||||
let focus_sender = self.focus_notice.sender();
|
||||
let autoupdater_setup_mutex = self.autoupdater_setup_file.clone();
|
||||
let requested_fullscreen = self.requested_fullscreen.clone();
|
||||
thread::spawn(move || loop {
|
||||
if let Some(msg) = web_rx
|
||||
.recv()
|
||||
|
|
@ -258,7 +260,16 @@ impl MainWindow {
|
|||
None if msg.is_handshake() => {
|
||||
web_tx_web.send(RPCResponse::get_handshake()).ok();
|
||||
}
|
||||
Some("win-set-visibility") => toggle_fullscreen_sender.notice(),
|
||||
Some("win-set-visibility") => {
|
||||
if let Some(fullscreen) = msg
|
||||
.get_params()
|
||||
.and_then(|params| params.get("fullscreen"))
|
||||
.and_then(|value| value.as_bool())
|
||||
{
|
||||
*requested_fullscreen.lock().unwrap() = Some(fullscreen);
|
||||
toggle_fullscreen_sender.notice();
|
||||
}
|
||||
}
|
||||
Some("quit") => quit_sender.notice(),
|
||||
Some("app-ready") => {
|
||||
hide_splash_sender.notice();
|
||||
|
|
@ -363,7 +374,15 @@ impl MainWindow {
|
|||
fn on_toggle_fullscreen_notice(&self) {
|
||||
if let Some(hwnd) = self.window.handle.hwnd() {
|
||||
if let Ok(mut saved_style) = self.saved_window_style.try_borrow_mut() {
|
||||
saved_style.toggle_full_screen(hwnd);
|
||||
let target = self
|
||||
.requested_fullscreen
|
||||
.lock()
|
||||
.unwrap()
|
||||
.take()
|
||||
.unwrap_or(!saved_style.full_screen);
|
||||
if target != saved_style.full_screen {
|
||||
saved_style.toggle_full_screen(hwnd);
|
||||
}
|
||||
self.tray.tray_topmost.set_enabled(!saved_style.full_screen);
|
||||
self.tray
|
||||
.tray_topmost
|
||||
|
|
|
|||
Loading…
Reference in a new issue