Merge pull request #2324 from KLayout/bugfix/issue-2301

Hopefully fixing issue #2320
This commit is contained in:
Matthias Köfferlein 2026-04-10 17:58:36 +02:00 committed by GitHub
commit 4ab3d957ec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 1 deletions

View File

@ -548,7 +548,9 @@ void MacroEditorSidePanel::paintEvent (QPaintEvent *)
// MacroEditorPage implementation
MacroEditorPage::MacroEditorPage (QWidget * /*parent*/, MacroEditorHighlighters *highlighters)
: mp_macro (0), mp_highlighters (highlighters), mp_highlighter (0), m_error_line (-1), m_ntab (8), m_nindent (2), m_ignore_cursor_changed_event (false)
: mp_macro (0), mp_highlighters (highlighters), mp_highlighter (0),
m_error_line (-1), m_ntab (8), m_nindent (2), m_ignore_cursor_changed_event (false),
dm_run_mode_changed (this, &MacroEditorPage::do_run_mode_changed)
{
mp_layout = new QVBoxLayout (this);
mp_layout->setContentsMargins (0, 0, 0, 0);
@ -662,6 +664,11 @@ void MacroEditorPage::current_line_changed ()
}
void MacroEditorPage::run_mode_changed ()
{
dm_run_mode_changed ();
}
void MacroEditorPage::do_run_mode_changed ()
{
// this prevents recursion when the following lines trigger anything that routes through the interpreter
bool bl = mp_exec_model->blockSignals (true);

View File

@ -28,6 +28,7 @@
#include "lymMacro.h"
#include "layGenericSyntaxHighlighter.h"
#include "tlVariant.h"
#include "tlDeferredExecution.h"
#include <QDialog>
#include <QPixmap>
@ -417,12 +418,14 @@ private:
QListWidget *mp_completer_list;
std::list<MacroEditorNotification> m_notifications;
std::map<const MacroEditorNotification *, QWidget *, CompareNotificationPointers> m_notification_widgets;
tl::DeferredMethod<lay::MacroEditorPage> dm_run_mode_changed;
void update_extra_selections ();
bool return_pressed ();
bool backspace_pressed ();
bool back_tab_key_pressed ();
bool tab_key_pressed ();
void do_run_mode_changed ();
void fill_completer_list ();
void complete ();
QTextCursor get_completer_cursor (int &pos0, int &pos);