ros2 / rviz

ROS 3D Robot Visualizer
BSD 3-Clause Clear License
292 stars 209 forks source link

Image Display is auto-disabled after minimazing main window #918

Open kudoukidd opened 1 year ago

kudoukidd commented 1 year ago

Image Display is auto-disabled after minimazing main window in ROS2 Galactic/Humble, which is different from ROS1 Melodic/Noetic

clalancette commented 1 year ago

Can you please be more specific? What's the behavior that you are seeing, and what do you expect to happen? Screenshots might help here.

kudoukidd commented 1 year ago

void Display::setAssociatedWidget(QWidget * widget) { if (associated_widgetpanel) { disconnect( associated_widgetpanel, SIGNAL(visibilityChanged(bool)), this, SLOT(associatedPanelVisibilityChange(bool))); disconnect(associated_widgetpanel, SIGNAL(closed()), this, SLOT(disable())); }

associatedwidget = widget; if (associatedwidget) { WindowManagerInterface * wm = context_->getWindowManager(); if (wm) { associated_widgetpanel = wm->addPane(getName(), associatedwidget); connect( associated_widgetpanel, SIGNAL(visibilityChanged(bool)), this, SLOT(associatedPanelVisibilityChange(bool))); connect(associated_widgetpanel, SIGNAL(closed()), this, SLOT(disable())); associated_widgetpanel->setIcon(getIcon()); } else { associated_widgetpanel = nullptr; associatedwidget->setWindowTitle(getName()); } } else { associated_widgetpanel = nullptr; } }

There is a connection between associated_widgetpanel RenderPanel visibility and Display "enability". When rviz main window is minimized by clicking minimize button, which makes ImageDisplay RenderPanel unvisible, the ImageDisplay would become disabled and has to be manually re-enabled by checking the ImageDisplay enable property.

There is a suppress_hiding_associated_widgetpanel flag in rviz1 which is different from rviz2. I did not dig further because simply removing the connection works fine in my situation.

MarcoMagriDev commented 1 year ago

Same issue here. The same problem occurs also with the Camera Display plugin.