mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-20 11:28:30 +08:00
Remove all use of document indices (#406)
* removed all use of document indicies * -add u64 support for wasm bridge * fixed rust formating * Cleaned up FrontendDocumentState in js-messages * Tiny tweaks from code review * - moved more of closeDocumentWithConfirmation to rust - updated serde_wasm_bindgen to add feature flag * changed to upsteam version of serde_wasm_bindgen * cargo fmt * -fix event propigation on delete - Js message change class extention to typedef * changed another typedef * cargo fmt Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
committed by
Keavon Chambers
co-authored by
Keavon Chambers
parent
20f154bc25
commit
7dd8552532
@@ -17,11 +17,15 @@ pub struct Dispatcher {
|
||||
pub responses: Vec<FrontendMessage>,
|
||||
}
|
||||
|
||||
const GROUP_MESSAGES: &[MessageDiscriminant] = &[
|
||||
// For optimization, these are messages guaranteed to be redundant when repeated
|
||||
// The last occurrence of the message in the message queue is sufficient to ensure correctness
|
||||
// In addition, these messages do not change any state in the backend (aside from caches)
|
||||
const SIDE_EFFECT_FREE_MESSAGES: &[MessageDiscriminant] = &[
|
||||
MessageDiscriminant::Documents(DocumentsMessageDiscriminant::Document(DocumentMessageDiscriminant::RenderDocument)),
|
||||
MessageDiscriminant::Documents(DocumentsMessageDiscriminant::Document(DocumentMessageDiscriminant::FolderChanged)),
|
||||
MessageDiscriminant::Frontend(FrontendMessageDiscriminant::UpdateLayer),
|
||||
MessageDiscriminant::Frontend(FrontendMessageDiscriminant::DisplayFolderTreeStructure),
|
||||
MessageDiscriminant::Frontend(FrontendMessageDiscriminant::UpdateOpenDocumentsList),
|
||||
MessageDiscriminant::Tool(ToolMessageDiscriminant::SelectedLayersChanged),
|
||||
];
|
||||
|
||||
@@ -31,7 +35,8 @@ impl Dispatcher {
|
||||
|
||||
use Message::*;
|
||||
while let Some(message) = self.messages.pop_front() {
|
||||
if GROUP_MESSAGES.contains(&message.to_discriminant()) && self.messages.contains(&message) {
|
||||
// Skip processing of this message if it will be processed later
|
||||
if SIDE_EFFECT_FREE_MESSAGES.contains(&message.to_discriminant()) && self.messages.contains(&message) {
|
||||
continue;
|
||||
}
|
||||
self.log_message(&message);
|
||||
|
||||
Reference in New Issue
Block a user