mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 15:37:43 +00:00
HackStudio: Fix editor not marking file with unsaved changes as dirty
The editor's on_change callback was being overwritten in HackStudioWidget.cpp in order to call update_gml_preview on every change. This stopped the original callback from being called and marking files as dirty when changed. Now we call update_gml_preview in a new callback within the editor wrapper, which is then called within the original on_change callback in the editor.
This commit is contained in:
parent
d454c63bde
commit
82b88c6e16
3 changed files with 6 additions and 2 deletions
|
@ -43,6 +43,8 @@ EditorWrapper::EditorWrapper()
|
|||
};
|
||||
|
||||
m_editor->on_change = [this] {
|
||||
if (this->on_change)
|
||||
this->on_change();
|
||||
bool was_dirty = m_document_dirty;
|
||||
m_document_dirty = true;
|
||||
if (!was_dirty)
|
||||
|
|
|
@ -52,6 +52,8 @@ public:
|
|||
void update_diff();
|
||||
Vector<Diff::Hunk> const& hunks() const { return m_hunks; }
|
||||
|
||||
Function<void()> on_change;
|
||||
|
||||
private:
|
||||
EditorWrapper();
|
||||
|
||||
|
|
|
@ -295,7 +295,7 @@ bool HackStudioWidget::open_file(const String& full_filename)
|
|||
current_editor().set_focus(true);
|
||||
|
||||
current_editor().on_cursor_change = [this] { update_statusbar(); };
|
||||
current_editor().on_change = [this] { update_gml_preview(); };
|
||||
current_editor_wrapper().on_change = [this] { update_gml_preview(); };
|
||||
update_gml_preview();
|
||||
|
||||
return true;
|
||||
|
@ -541,7 +541,7 @@ void HackStudioWidget::add_new_editor(GUI::Widget& parent)
|
|||
wrapper->editor().set_focus(true);
|
||||
wrapper->set_project_root(LexicalPath(m_project->root_path()));
|
||||
wrapper->editor().on_cursor_change = [this] { update_statusbar(); };
|
||||
wrapper->editor().on_change = [this] { update_gml_preview(); };
|
||||
wrapper->on_change = [this] { update_gml_preview(); };
|
||||
set_edit_mode(EditMode::Text);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue