From d33f0fc6f00d97001cb81354b147ec7d38c1b5d9 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 21 Apr 2025 21:22:29 -0400 Subject: [PATCH] Stop QTextEdit from stealing scroll focus --- forms/projectsettingseditor.ui | 7 ++++++- include/ui/noscrolltextedit.h | 25 +++++++++++++++++++++++++ porymap.pro | 1 + 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 include/ui/noscrolltextedit.h diff --git a/forms/projectsettingseditor.ui b/forms/projectsettingseditor.ui index fe065be9..642c13a8 100644 --- a/forms/projectsettingseditor.ui +++ b/forms/projectsettingseditor.ui @@ -1374,7 +1374,7 @@ - + Metatile Behaviors on this list won't trigger warnings for Warp Events @@ -1744,6 +1744,11 @@ QSpinBox
noscrollspinbox.h
+ + NoScrollTextEdit + QTextEdit +
noscrolltextedit.h
+
UIntSpinBox QAbstractSpinBox diff --git a/include/ui/noscrolltextedit.h b/include/ui/noscrolltextedit.h new file mode 100644 index 00000000..dfc66789 --- /dev/null +++ b/include/ui/noscrolltextedit.h @@ -0,0 +1,25 @@ +#ifndef NOSCROLLTEXTEDIT_H +#define NOSCROLLTEXTEDIT_H + +#include +#include + +class NoScrollTextEdit : public QTextEdit +{ + Q_OBJECT +public: + explicit NoScrollTextEdit(const QString &text, QWidget *parent = nullptr) : QTextEdit(text, parent) { + setFocusPolicy(Qt::StrongFocus); + }; + explicit NoScrollTextEdit(QWidget *parent = nullptr) : NoScrollTextEdit(QString(), parent) {}; + + virtual void wheelEvent(QWheelEvent *event) override { + if (hasFocus()) { + QTextEdit::wheelEvent(event); + } else { + event->ignore(); + } + }; +}; + +#endif // NOSCROLLTEXTEDIT_H diff --git a/porymap.pro b/porymap.pro index 35fd6af2..1cdffddf 100644 --- a/porymap.pro +++ b/porymap.pro @@ -223,6 +223,7 @@ HEADERS += include/core/advancemapparser.h \ include/ui/newmapgroupdialog.h \ include/ui/noscrollcombobox.h \ include/ui/noscrollspinbox.h \ + include/ui/noscrolltextedit.h \ include/ui/montabwidget.h \ include/ui/encountertablemodel.h \ include/ui/encountertabledelegates.h \