diff --git a/fsl/fsleyes/displaycontext/display.py b/fsl/fsleyes/displaycontext/display.py index 4041d2473506ba1559532b4ef17464a423ff7e28..cd21c97086fb8f56e151debdab24e76a4becd330 100644 --- a/fsl/fsleyes/displaycontext/display.py +++ b/fsl/fsleyes/displaycontext/display.py @@ -436,6 +436,8 @@ class DisplayOpts(actions.ActionProvider): """ actions.ActionProvider.destroy(self) + self.detachFromParent() + self.overlay = None self.display = None self.overlayList = None diff --git a/fsl/fsleyes/displaycontext/displaycontext.py b/fsl/fsleyes/displaycontext/displaycontext.py index 2d592eae925e3429789be6fc1988503183163865..d9914af10131a542aa1edc15aa1dda06a1219746 100644 --- a/fsl/fsleyes/displaycontext/displaycontext.py +++ b/fsl/fsleyes/displaycontext/displaycontext.py @@ -246,6 +246,8 @@ class DisplayContext(props.SyncableHasProperties): instances managed by it are destroyed as well. """ + self.detachFromParent() + self.__overlayList.removeListener('overlays', self.__name) for overlay, display in self.__displays.items(): diff --git a/fsl/fsleyes/frame.py b/fsl/fsleyes/frame.py index 5c1f8d63a074e0c74fb822cb9b37c4707ebe1fce..4f51e483f7e99e8ed96cab28c19addbac76e2a2e 100644 --- a/fsl/fsleyes/frame.py +++ b/fsl/fsleyes/frame.py @@ -186,8 +186,8 @@ class FSLEyesFrame(wx.Frame): paneInfo = (aui.AuiPaneInfo() .Name(title) .Caption(title) - .Dockable() .CloseButton() + .Dockable() .Resizable() .DestroyOnClose()) @@ -199,7 +199,7 @@ class FSLEyesFrame(wx.Frame): # So if we only have one panel, we # hide the caption bar if panelId == 1: - paneInfo.Centre().CaptionVisible(False) + paneInfo.Centre().Dockable(False).CaptionVisible(False) # But then re-show it when another # panel is added. The __viewPanels @@ -330,9 +330,9 @@ class FSLEyesFrame(wx.Frame): numPanels = len(self.__viewPanels) wasCentre = paneInfo.dock_direction_get() == aui.AUI_DOCK_CENTRE - if numPanels == 1 or (numPanels > 0 and wasCentre): + if numPanels >= 1 and wasCentre: paneInfo = self.__viewPanels.keys()[0] - paneInfo.Centre().CaptionVisible(False) + paneInfo.Centre().Dockable(False).CaptionVisible(numPanels > 1) def __onClose(self, ev):