mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-10-03 20:58:12 +08:00
Remove message deferral for text creation (#2978)
* Remove message deferral for text creation * Restructure Trigger Navigation ready to not hijack the PTZ Update
This commit is contained in:
@@ -35,6 +35,15 @@ impl MessageHandler<InputPreprocessorMessage, InputPreprocessorMessageContext> f
|
|||||||
|
|
||||||
responses.add(NavigationMessage::CanvasPan { delta: DVec2::ZERO });
|
responses.add(NavigationMessage::CanvasPan { delta: DVec2::ZERO });
|
||||||
responses.add(NodeGraphMessage::SetGridAlignedEdges);
|
responses.add(NodeGraphMessage::SetGridAlignedEdges);
|
||||||
|
// We have to wait until a node node graph has run and all messages from that execution have been processed.
|
||||||
|
responses.add(DeferMessage::AfterGraphRun {
|
||||||
|
messages: vec![
|
||||||
|
DeferMessage::AfterGraphRun {
|
||||||
|
messages: vec![DeferMessage::TriggerNavigationReady.into()],
|
||||||
|
}
|
||||||
|
.into(),
|
||||||
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
InputPreprocessorMessage::DoubleClick { editor_mouse_state, modifier_keys } => {
|
InputPreprocessorMessage::DoubleClick { editor_mouse_state, modifier_keys } => {
|
||||||
|
|||||||
@@ -1436,20 +1436,6 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// Some parts of the editior (e.g. navigation messages) depend on these bounds to be present
|
|
||||||
let bounds = if self.graph_view_overlay_open {
|
|
||||||
self.network_interface.all_nodes_bounding_box(&self.breadcrumb_network_path).cloned()
|
|
||||||
} else {
|
|
||||||
self.network_interface.document_bounds_document_space(true)
|
|
||||||
};
|
|
||||||
if bounds.is_some() {
|
|
||||||
responses.add(DeferMessage::TriggerNavigationReady);
|
|
||||||
} else {
|
|
||||||
// If we don't have bounds yet, we need wait until the node graph has run once more
|
|
||||||
responses.add(DeferMessage::AfterGraphRun {
|
|
||||||
messages: vec![DocumentMessage::PTZUpdate.into()],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
DocumentMessage::SelectionStepBack => {
|
DocumentMessage::SelectionStepBack => {
|
||||||
self.network_interface.selection_step_back(&self.selection_network_path);
|
self.network_interface.selection_step_back(&self.selection_network_path);
|
||||||
|
|||||||
@@ -385,25 +385,19 @@ impl TextToolData {
|
|||||||
parent: document.new_layer_parent(true),
|
parent: document.new_layer_parent(true),
|
||||||
insert_index: 0,
|
insert_index: 0,
|
||||||
});
|
});
|
||||||
responses.add(DeferMessage::AfterGraphRun {
|
responses.add(GraphOperationMessage::FillSet {
|
||||||
messages: vec![
|
layer: self.layer,
|
||||||
GraphOperationMessage::FillSet {
|
fill: if editing_text.color.is_some() {
|
||||||
layer: self.layer,
|
Fill::Solid(editing_text.color.unwrap().to_gamma_srgb())
|
||||||
fill: if editing_text.color.is_some() {
|
} else {
|
||||||
Fill::Solid(editing_text.color.unwrap().to_gamma_srgb())
|
Fill::None
|
||||||
} else {
|
},
|
||||||
Fill::None
|
});
|
||||||
},
|
responses.add(GraphOperationMessage::TransformSet {
|
||||||
}
|
layer: self.layer,
|
||||||
.into(),
|
transform: editing_text.transform,
|
||||||
GraphOperationMessage::TransformSet {
|
transform_in: TransformIn::Viewport,
|
||||||
layer: self.layer,
|
skip_rerender: true,
|
||||||
transform: editing_text.transform,
|
|
||||||
transform_in: TransformIn::Viewport,
|
|
||||||
skip_rerender: true,
|
|
||||||
}
|
|
||||||
.into(),
|
|
||||||
],
|
|
||||||
});
|
});
|
||||||
self.editing_text = Some(editing_text);
|
self.editing_text = Some(editing_text);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user