desktop: Use F11 as fullscreen shortcut
This patch removes Alt+Enter as the shortcut and replaces it with F11, additionally the shortcut hint is added to the menu.
This commit is contained in:
parent
7178f3fd05
commit
4ef26ac9ba
|
@ -120,7 +120,6 @@ impl App {
|
||||||
let mut next_frame_time = None;
|
let mut next_frame_time = None;
|
||||||
let mut minimized = false;
|
let mut minimized = false;
|
||||||
let mut modifiers = Modifiers::default();
|
let mut modifiers = Modifiers::default();
|
||||||
let mut fullscreen_down = false;
|
|
||||||
|
|
||||||
if self.initial_movie_url.is_none() {
|
if self.initial_movie_url.is_none() {
|
||||||
// No SWF provided on command line; show window with dummy movie immediately.
|
// No SWF provided on command line; show window with dummy movie immediately.
|
||||||
|
@ -333,48 +332,22 @@ impl App {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle fullscreen keyboard shortcuts: Alt+Return, Escape.
|
// Handle escaping from fullscreen.
|
||||||
match event {
|
if let KeyEvent {
|
||||||
KeyEvent {
|
|
||||||
state: ElementState::Pressed,
|
|
||||||
logical_key: Key::Named(NamedKey::Enter),
|
|
||||||
..
|
|
||||||
} if modifiers.state().alt_key() => {
|
|
||||||
if !fullscreen_down {
|
|
||||||
if let Some(mut player) = self.player.get() {
|
|
||||||
player.update(|uc| {
|
|
||||||
uc.stage.toggle_display_state(uc);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fullscreen_down = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
KeyEvent {
|
|
||||||
state: ElementState::Released,
|
|
||||||
logical_key: Key::Named(NamedKey::Enter),
|
|
||||||
..
|
|
||||||
} if fullscreen_down => {
|
|
||||||
fullscreen_down = false;
|
|
||||||
}
|
|
||||||
KeyEvent {
|
|
||||||
state: ElementState::Pressed,
|
state: ElementState::Pressed,
|
||||||
logical_key: Key::Named(NamedKey::Escape),
|
logical_key: Key::Named(NamedKey::Escape),
|
||||||
..
|
..
|
||||||
} => {
|
} = event
|
||||||
|
{
|
||||||
if let Some(mut player) = self.player.get() {
|
if let Some(mut player) = self.player.get() {
|
||||||
if player.is_playing() {
|
if player.is_playing() {
|
||||||
player.update(|uc| {
|
player.update(|uc| {
|
||||||
uc.stage.set_display_state(
|
uc.stage
|
||||||
uc,
|
.set_display_state(uc, StageDisplayState::Normal);
|
||||||
StageDisplayState::Normal,
|
|
||||||
);
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
|
|
||||||
let key_code = winit_to_ruffle_key_code(&event);
|
let key_code = winit_to_ruffle_key_code(&event);
|
||||||
// [NA] TODO: This event used to give a single char. `last()` is functionally the same,
|
// [NA] TODO: This event used to give a single char. `last()` is functionally the same,
|
||||||
|
|
|
@ -22,6 +22,13 @@ pub struct MenuBar {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MenuBar {
|
impl MenuBar {
|
||||||
|
const SHORTCUT_FULLSCREEN: KeyboardShortcut = KeyboardShortcut::new(Modifiers::NONE, Key::F11);
|
||||||
|
const SHORTCUT_OPEN: KeyboardShortcut = KeyboardShortcut::new(Modifiers::COMMAND, Key::O);
|
||||||
|
const SHORTCUT_OPEN_ADVANCED: KeyboardShortcut =
|
||||||
|
KeyboardShortcut::new(Modifiers::COMMAND.plus(Modifiers::SHIFT), Key::O);
|
||||||
|
const SHORTCUT_PAUSE: KeyboardShortcut = KeyboardShortcut::new(Modifiers::COMMAND, Key::P);
|
||||||
|
const SHORTCUT_QUIT: KeyboardShortcut = KeyboardShortcut::new(Modifiers::COMMAND, Key::Q);
|
||||||
|
|
||||||
pub fn new(
|
pub fn new(
|
||||||
event_loop: EventLoopProxy<RuffleEvent>,
|
event_loop: EventLoopProxy<RuffleEvent>,
|
||||||
default_launch_options: LaunchOptions,
|
default_launch_options: LaunchOptions,
|
||||||
|
@ -46,27 +53,34 @@ impl MenuBar {
|
||||||
egui::TopBottomPanel::top("menu_bar").show(egui_ctx, |ui| {
|
egui::TopBottomPanel::top("menu_bar").show(egui_ctx, |ui| {
|
||||||
// TODO(mike): Make some MenuItem struct with shortcut info to handle this more cleanly.
|
// TODO(mike): Make some MenuItem struct with shortcut info to handle this more cleanly.
|
||||||
if ui.ctx().input_mut(|input| {
|
if ui.ctx().input_mut(|input| {
|
||||||
input.consume_shortcut(&KeyboardShortcut::new(Modifiers::COMMAND | Modifiers::SHIFT, Key::O))
|
input.consume_shortcut(&Self::SHORTCUT_OPEN_ADVANCED)
|
||||||
}) {
|
}) {
|
||||||
dialogs.open_file_advanced();
|
dialogs.open_file_advanced();
|
||||||
}
|
}
|
||||||
if ui.ctx().input_mut(|input| {
|
if ui.ctx().input_mut(|input| {
|
||||||
input.consume_shortcut(&KeyboardShortcut::new(Modifiers::COMMAND, Key::O))
|
input.consume_shortcut(&Self::SHORTCUT_OPEN)
|
||||||
}) {
|
}) {
|
||||||
self.open_file(ui);
|
self.open_file(ui);
|
||||||
}
|
}
|
||||||
if ui.ctx().input_mut(|input| {
|
if ui.ctx().input_mut(|input| {
|
||||||
input.consume_shortcut(&KeyboardShortcut::new(Modifiers::COMMAND, Key::Q))
|
input.consume_shortcut(&Self::SHORTCUT_QUIT)
|
||||||
}) {
|
}) {
|
||||||
self.request_exit(ui);
|
self.request_exit(ui);
|
||||||
}
|
}
|
||||||
if ui.ctx().input_mut(|input| {
|
if ui.ctx().input_mut(|input| {
|
||||||
input.consume_shortcut(&KeyboardShortcut::new(Modifiers::COMMAND, Key::P))
|
input.consume_shortcut(&Self::SHORTCUT_PAUSE)
|
||||||
}) {
|
}) {
|
||||||
if let Some(player) = &mut player {
|
if let Some(player) = &mut player {
|
||||||
player.set_is_playing(!player.is_playing());
|
player.set_is_playing(!player.is_playing());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ui.ctx().input_mut(|input| {
|
||||||
|
input.consume_shortcut(&Self::SHORTCUT_FULLSCREEN)
|
||||||
|
}) {
|
||||||
|
if let Some(player) = &mut player {
|
||||||
|
player.set_fullscreen(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
menu::bar(ui, |ui| {
|
menu::bar(ui, |ui| {
|
||||||
self.file_menu(locale, ui, dialogs, player.is_some());
|
self.file_menu(locale, ui, dialogs, player.is_some());
|
||||||
|
@ -75,8 +89,7 @@ impl MenuBar {
|
||||||
menu::menu_button(ui, text(locale, "controls-menu"), |ui| {
|
menu::menu_button(ui, text(locale, "controls-menu"), |ui| {
|
||||||
ui.add_enabled_ui(player.is_some(), |ui| {
|
ui.add_enabled_ui(player.is_some(), |ui| {
|
||||||
let playing = player.as_ref().map(|p| p.is_playing()).unwrap_or_default();
|
let playing = player.as_ref().map(|p| p.is_playing()).unwrap_or_default();
|
||||||
let pause_shortcut = KeyboardShortcut::new(Modifiers::COMMAND, Key::P);
|
if Button::new(text(locale, if playing { "controls-menu-suspend" } else { "controls-menu-resume" })).shortcut_text(ui.ctx().format_shortcut(&Self::SHORTCUT_PAUSE)).ui(ui).clicked() {
|
||||||
if Button::new(text(locale, if playing { "controls-menu-suspend" } else { "controls-menu-resume" })).shortcut_text(ui.ctx().format_shortcut(&pause_shortcut)).ui(ui).clicked() {
|
|
||||||
ui.close_menu();
|
ui.close_menu();
|
||||||
if let Some(player) = &mut player {
|
if let Some(player) = &mut player {
|
||||||
player.set_is_playing(!player.is_playing());
|
player.set_is_playing(!player.is_playing());
|
||||||
|
@ -179,20 +192,16 @@ impl MenuBar {
|
||||||
player_exists: bool,
|
player_exists: bool,
|
||||||
) {
|
) {
|
||||||
menu::menu_button(ui, text(locale, "file-menu"), |ui| {
|
menu::menu_button(ui, text(locale, "file-menu"), |ui| {
|
||||||
let mut shortcut;
|
|
||||||
|
|
||||||
shortcut = KeyboardShortcut::new(Modifiers::COMMAND, Key::O);
|
|
||||||
if Button::new(text(locale, "file-menu-open-quick"))
|
if Button::new(text(locale, "file-menu-open-quick"))
|
||||||
.shortcut_text(ui.ctx().format_shortcut(&shortcut))
|
.shortcut_text(ui.ctx().format_shortcut(&Self::SHORTCUT_OPEN))
|
||||||
.ui(ui)
|
.ui(ui)
|
||||||
.clicked()
|
.clicked()
|
||||||
{
|
{
|
||||||
self.open_file(ui);
|
self.open_file(ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
shortcut = KeyboardShortcut::new(Modifiers::COMMAND | Modifiers::SHIFT, Key::O);
|
|
||||||
if Button::new(text(locale, "file-menu-open-advanced"))
|
if Button::new(text(locale, "file-menu-open-advanced"))
|
||||||
.shortcut_text(ui.ctx().format_shortcut(&shortcut))
|
.shortcut_text(ui.ctx().format_shortcut(&Self::SHORTCUT_OPEN_ADVANCED))
|
||||||
.ui(ui)
|
.ui(ui)
|
||||||
.clicked()
|
.clicked()
|
||||||
{
|
{
|
||||||
|
@ -267,9 +276,8 @@ impl MenuBar {
|
||||||
}
|
}
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
shortcut = KeyboardShortcut::new(Modifiers::COMMAND, Key::Q);
|
|
||||||
if Button::new(text(locale, "file-menu-exit"))
|
if Button::new(text(locale, "file-menu-exit"))
|
||||||
.shortcut_text(ui.ctx().format_shortcut(&shortcut))
|
.shortcut_text(ui.ctx().format_shortcut(&Self::SHORTCUT_QUIT))
|
||||||
.ui(ui)
|
.ui(ui)
|
||||||
.clicked()
|
.clicked()
|
||||||
{
|
{
|
||||||
|
@ -358,7 +366,11 @@ impl MenuBar {
|
||||||
}
|
}
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
if ui.button(text(locale, "view-menu-fullscreen")).clicked() {
|
if Button::new(text(locale, "view-menu-fullscreen"))
|
||||||
|
.shortcut_text(ui.ctx().format_shortcut(&Self::SHORTCUT_FULLSCREEN))
|
||||||
|
.ui(ui)
|
||||||
|
.clicked()
|
||||||
|
{
|
||||||
ui.close_menu();
|
ui.close_menu();
|
||||||
if let Some(player) = player {
|
if let Some(player) = player {
|
||||||
player.set_fullscreen(true);
|
player.set_fullscreen(true);
|
||||||
|
|
Loading…
Reference in New Issue