From fdcf656aa5d9816bf7c06a533f8224ec28bd6e0f Mon Sep 17 00:00:00 2001 From: Robert Haschke Date: Tue, 28 May 2024 19:53:27 +0200 Subject: [PATCH] Fix #1834: segfault on addMaximizeButton ... for image/camera displays if no window manager is instantiated --- src/rviz/default_plugin/camera_display.cpp | 3 ++- src/rviz/default_plugin/image_display.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rviz/default_plugin/camera_display.cpp b/src/rviz/default_plugin/camera_display.cpp index e092e196a..1c7b59788 100644 --- a/src/rviz/default_plugin/camera_display.cpp +++ b/src/rviz/default_plugin/camera_display.cpp @@ -193,7 +193,8 @@ void CameraDisplay::onInitialize() render_panel_->initialize(context_->getSceneManager(), context_); setAssociatedWidget(render_panel_); - getAssociatedWidgetPanel()->addMaximizeButton(); + if (auto* dock = getAssociatedWidgetPanel()) + dock->addMaximizeButton(); render_panel_->setAutoRender(false); render_panel_->setOverlaysEnabled(false); diff --git a/src/rviz/default_plugin/image_display.cpp b/src/rviz/default_plugin/image_display.cpp index e460a8db1..c0f4257d3 100644 --- a/src/rviz/default_plugin/image_display.cpp +++ b/src/rviz/default_plugin/image_display.cpp @@ -131,7 +131,8 @@ void ImageDisplay::onInitialize() render_panel_->initialize(img_scene_manager_, context_); setAssociatedWidget(render_panel_); - getAssociatedWidgetPanel()->addMaximizeButton(); + if (auto* dock = getAssociatedWidgetPanel()) + dock->addMaximizeButton(); render_panel_->setAutoRender(false); render_panel_->setOverlaysEnabled(false);