From 71c4603d2f3b05c9720730881de28bc3410b4e7d Mon Sep 17 00:00:00 2001 From: Robert Haschke Date: Thu, 25 Apr 2024 12:02:56 +0200 Subject: [PATCH] Install/Remove event filter on enable()/disable() --- src/rviz/image/mouse_click.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/rviz/image/mouse_click.cpp b/src/rviz/image/mouse_click.cpp index 447471b59..48002e621 100644 --- a/src/rviz/image/mouse_click.cpp +++ b/src/rviz/image/mouse_click.cpp @@ -10,24 +10,26 @@ MouseClick::MouseClick(QWidget* widget, const ros::NodeHandle& nh) : QObject(wid img_width_ = img_height_ = win_width_ = win_height_ = 0; node_handle_ = nh; topic_name_ok_ = false; - widget->installEventFilter(this); } void MouseClick::enable() { if (topic_name_ok_) + { publisher_ = node_handle_.advertise(topic_, 1); + parent()->installEventFilter(this); + } } void MouseClick::disable() { + parent()->removeEventFilter(this); publisher_.shutdown(); } bool MouseClick::eventFilter(QObject* obj, QEvent* event) { - if (publisher_.operator void*() && - (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseMove)) + if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseMove) { QMouseEvent* me = static_cast(event); QPointF windowPos = me->windowPos();