mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-30 05:48:11 +08:00
Fix sending platform-specific shortcut keys to frontend before editor is initialized with the platform set
This commit is contained in:
@@ -689,7 +689,7 @@ impl LayoutHolder for MenuBarMessageHandler {
|
||||
.on_commit(|_| DebugMessage::ToggleTraceLogs.into()),
|
||||
MenuListEntry::new("Print Messages: Off")
|
||||
.label("Print Messages: Off")
|
||||
.icon(message_logging_verbosity_off.then_some({
|
||||
.icon(if message_logging_verbosity_off {
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
{
|
||||
"SmallDot".to_string()
|
||||
@@ -698,12 +698,12 @@ impl LayoutHolder for MenuBarMessageHandler {
|
||||
{
|
||||
"CheckboxChecked".to_string()
|
||||
}
|
||||
}).unwrap_or_default())
|
||||
} else { Default::default() })
|
||||
.tooltip_shortcut(action_shortcut!(DebugMessageDiscriminant::MessageOff))
|
||||
.on_commit(|_| DebugMessage::MessageOff.into()),
|
||||
MenuListEntry::new("Print Messages: Only Names")
|
||||
.label("Print Messages: Only Names")
|
||||
.icon(message_logging_verbosity_names.then_some({
|
||||
.icon(if message_logging_verbosity_names {
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
{
|
||||
"SmallDot".to_string()
|
||||
@@ -712,12 +712,12 @@ impl LayoutHolder for MenuBarMessageHandler {
|
||||
{
|
||||
"CheckboxChecked".to_string()
|
||||
}
|
||||
}).unwrap_or_default())
|
||||
} else { Default::default() })
|
||||
.tooltip_shortcut(action_shortcut!(DebugMessageDiscriminant::MessageNames))
|
||||
.on_commit(|_| DebugMessage::MessageNames.into()),
|
||||
MenuListEntry::new("Print Messages: Full Contents")
|
||||
.label("Print Messages: Full Contents")
|
||||
.icon(message_logging_verbosity_contents.then_some({
|
||||
.icon(if message_logging_verbosity_contents {
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
{
|
||||
"SmallDot".to_string()
|
||||
@@ -726,7 +726,7 @@ impl LayoutHolder for MenuBarMessageHandler {
|
||||
{
|
||||
"CheckboxChecked".to_string()
|
||||
}
|
||||
}).unwrap_or_default())
|
||||
} else { Default::default() })
|
||||
.tooltip_shortcut(action_shortcut!(DebugMessageDiscriminant::MessageContents))
|
||||
.on_commit(|_| DebugMessage::MessageContents.into()),
|
||||
],
|
||||
|
||||
@@ -7,7 +7,8 @@ use crate::messages::animation::TimingInformation;
|
||||
use crate::messages::debug::utility_types::MessageLoggingVerbosity;
|
||||
use crate::messages::dialog::simple_dialogs;
|
||||
use crate::messages::frontend::utility_types::{DocumentDetails, OpenDocument};
|
||||
use crate::messages::input_mapper::utility_types::macros::action_shortcut;
|
||||
use crate::messages::input_mapper::utility_types::input_keyboard::Key;
|
||||
use crate::messages::input_mapper::utility_types::macros::{action_shortcut, action_shortcut_manual};
|
||||
use crate::messages::layout::utility_types::widget_prelude::*;
|
||||
use crate::messages::portfolio::document::DocumentMessageContext;
|
||||
use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn;
|
||||
@@ -154,6 +155,17 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageContext<'_>> for Portfolio
|
||||
node_types: document_node_definitions::collect_node_types(),
|
||||
});
|
||||
|
||||
// Send shortcuts for widgets created in the frontend which need shortcut tooltips
|
||||
responses.add(FrontendMessage::SendShortcutF11 {
|
||||
shortcut: action_shortcut_manual!(Key::F11),
|
||||
});
|
||||
responses.add(FrontendMessage::SendShortcutAltClick {
|
||||
shortcut: action_shortcut_manual!(Key::Alt, Key::MouseLeft),
|
||||
});
|
||||
|
||||
// Before loading any documents, initially prepare the welcome screen buttons layout
|
||||
responses.add(PortfolioMessage::RequestWelcomeScreenButtonsLayout);
|
||||
|
||||
// Tell frontend to finish loading persistent documents
|
||||
responses.add(FrontendMessage::TriggerLoadRestAutoSaveDocuments);
|
||||
|
||||
@@ -1117,7 +1129,14 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageContext<'_>> for Portfolio
|
||||
})
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let no_open_documents = open_documents.is_empty();
|
||||
|
||||
responses.add(FrontendMessage::UpdateOpenDocumentsList { open_documents });
|
||||
|
||||
if no_open_documents {
|
||||
responses.add(PortfolioMessage::RequestWelcomeScreenButtonsLayout);
|
||||
}
|
||||
}
|
||||
PortfolioMessage::UpdateVelloPreference => {
|
||||
let active = if cfg!(target_family = "wasm") { false } else { preferences.use_vello };
|
||||
|
||||
Reference in New Issue
Block a user