diff --git a/src/Mod/Sketcher/Gui/TaskSketcherElements.cpp b/src/Mod/Sketcher/Gui/TaskSketcherElements.cpp index 551b9fa90f..e2412dc51a 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherElements.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherElements.cpp @@ -24,6 +24,7 @@ #ifndef _PreComp_ #include #include +#include #include #include #include @@ -1694,8 +1695,17 @@ void TaskSketcherElements::onListWidgetElementsItemPressed(QListWidgetItem* it) ui->listWidgetElements->repaint(); } +bool TaskSketcherElements::hasInputWidgetFocused() +{ + QWidget* focusedWidget = QApplication::focusWidget(); + return qobject_cast(focusedWidget) != nullptr; +} + void TaskSketcherElements::onListWidgetElementsItemEntered(QListWidgetItem* item) { + if (hasInputWidgetFocused()) { + return; + } ui->listWidgetElements->setFocus(); focusItemIndex = ui->listWidgetElements->row(item); @@ -1703,6 +1713,10 @@ void TaskSketcherElements::onListWidgetElementsItemEntered(QListWidgetItem* item void TaskSketcherElements::onListWidgetElementsMouseMoveOnItem(QListWidgetItem* it) { + if (hasInputWidgetFocused()) { + return; + } + ElementItem* item = static_cast(it); if (!item diff --git a/src/Mod/Sketcher/Gui/TaskSketcherElements.h b/src/Mod/Sketcher/Gui/TaskSketcherElements.h index 05d528b7ac..aa91e1b643 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherElements.h +++ b/src/Mod/Sketcher/Gui/TaskSketcherElements.h @@ -125,6 +125,8 @@ public: /// Observer message from the Selection void onSelectionChanged(const Gui::SelectionChanges& msg) override; + bool hasInputWidgetFocused(); + private: void slotElementsChanged(); void updateVisibility();