From fe89807f53243142b6ed4e5601bff121afebb35c Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 1 Jul 2024 11:51:14 +0200 Subject: [PATCH] Sketcher: Delete key in non-functional in macOS --- .../Gui/DrawSketchKeyboardManager.cpp | 4 +-- src/Mod/Sketcher/Gui/ShortcutListener.cpp | 26 +++++++------------ 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchKeyboardManager.cpp b/src/Mod/Sketcher/Gui/DrawSketchKeyboardManager.cpp index 9f0fa9f272..498200f70b 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchKeyboardManager.cpp +++ b/src/Mod/Sketcher/Gui/DrawSketchKeyboardManager.cpp @@ -100,9 +100,9 @@ void DrawSketchKeyboardManager::detectKeyboardEventHandlingMode(QKeyEvent* keyEv auto match = rx.match(keyEvent->text()); if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Tab || keyEvent->key() == Qt::Key_Backtab - || keyEvent->key() == Qt::Key_Backspace || keyEvent->key() == Qt::Key_Delete || keyEvent->key() == Qt::Key_Minus || keyEvent->key() == Qt::Key_Period - || keyEvent->key() == Qt::Key_Comma || match.hasMatch()) { + || keyEvent->key() == Qt::Key_Comma || match.hasMatch() + || keyEvent->matches(QKeySequence::Backspace) || keyEvent->matches(QKeySequence::Delete)) { keyMode = KeyboardEventHandlingMode::DSHControl; timer.start(timeOutValue); } diff --git a/src/Mod/Sketcher/Gui/ShortcutListener.cpp b/src/Mod/Sketcher/Gui/ShortcutListener.cpp index b161cb4194..f8c050f9a0 100644 --- a/src/Mod/Sketcher/Gui/ShortcutListener.cpp +++ b/src/Mod/Sketcher/Gui/ShortcutListener.cpp @@ -23,6 +23,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ #include +#include #endif #include "ShortcutListener.h" @@ -33,28 +34,21 @@ using namespace SketcherGui; // ******************** ShortcutListener *********************************************// ShortcutListener::ShortcutListener(ViewProviderSketch* vp) -{ - pViewProvider = vp; -} - -ShortcutListener::~ShortcutListener() + : pViewProvider {vp} {} +ShortcutListener::~ShortcutListener() = default; + bool ShortcutListener::eventFilter(QObject* obj, QEvent* event) { if (event->type() == QEvent::ShortcutOverride) { - QKeyEvent* kevent = static_cast(event); - if (kevent->modifiers() == Qt::NoModifier || kevent->modifiers() == Qt::ShiftModifier - || kevent->modifiers() == Qt::KeypadModifier) { - switch (kevent->key()) { - case Qt::Key_Delete: - kevent->accept(); - pViewProvider->deleteSelected(); - return true; - default: - break; - } + QKeyEvent* kevent = static_cast(event); // NOLINT + if (kevent->matches(QKeySequence::Delete)) { + kevent->accept(); + pViewProvider->deleteSelected(); + return true; } } + return QObject::eventFilter(obj, event); }