@@ -296,25 +296,19 @@ def _init_ui(self):
296296 """
297297 # DEBUG: self.leftpanel = wx.Panel(self, name="left_panel", size = (275, 250))
298298 if new_ui : # Only when creating UI we add panes
299- # Tree is always created here, inside a plain panel. AUI must manage the holder and
300- # never the Tree itself: docking a floating pane reparents the managed window, and a
301- # reparented wx.ScrolledWindow (which CustomTreeCtrl is) stops receiving paint events
302- # on wxGTK, leaving a correctly sized but permanently blank panel. The Files pane uses
303- # the same idiom (FileExplorer is a wx.Panel wrapping its tree_ctrl).
304- self .tree_holder = wx .Panel (self )
305- self .tree = Tree (self .tree_holder , self .actions , self ._application .settings )
299+ # Tree is always created here
300+ self .tree = Tree (self , self .actions , self ._application .settings )
306301 self .tree .SetMinSize (wx .Size (275 , 250 ))
307302 self .tree .SetFont (wx .Font (self .fontinfo ))
308- tree_sizer = wx .BoxSizer (wx .VERTICAL )
309- tree_sizer .Add (self .tree , 1 , wx .EXPAND )
310- self .tree_holder .SetSizer (tree_sizer )
311- self .tree_holder .SetMinSize (wx .Size (275 , 250 ))
303+ # self.leftpanel.Bind(wx.EVT_SIZE, self.tree.OnSize)
304+ # self.aui_mgr.AddPane(self.leftpanel, aui.AuiPaneInfo().Name("left_panel").Caption("left_panel").Left())
312305 # DEBUG: Next was already called from application.py
313306 # print(f"DEBUG: mainframe.py RideFrame NEW UI tree caption {_('Test Suites')}")
314- self .aui_mgr .AddPane (self .tree_holder ,
307+ self .aui_mgr .AddPane (self .tree ,
315308 aui .AuiPaneInfo ().Name ("tree_content" ).Caption (_ ('Test Suites' )).CloseButton (True )
316309 .LeftDockable (True )
317310 ) # DEBUG: remove .CloseButton(False) when restore is fixed
311+ # DEBUG: self.aui_mgr.GetPane(self.tree).DestroyOnClose()
318312 # TreePlugin will manage showing the Tree
319313 self .actions .register_actions (action_info_collection (_menudata , self , data_nt = self ._menudata_nt ,
320314 container = self .tree ))
@@ -508,16 +502,14 @@ def OnFloatDock(self, event):
508502 # panelabel = event.pane.caption
509503 etype = event .GetEventType ()
510504 # strs = "Pane %s "%panelabel
511- # Only the persisted docked/floating state is recorded here. The tree keeps its nodes and
512- # repaints by itself across the transition, so rebuilding it would just discard the current
513- # selection; and calling into the AUI manager from these events re-enters its own drag
514- # handling.
515505 if etype == aui .wxEVT_AUI_PANE_FLOATING :
516506 # strs += "is about to be floated"
517507 if event .pane .name == "file_manager" :
518508 self .filemgr .update_tree ()
519509 elif event .pane .name == "tree_content" :
520510 self ._application .treeplugin .set_float_docked (False )
511+ self ._application .treeplugin .on_show_tree (None )
512+ self .tree .refresh_view ()
521513 # elif etype == aui.wxEVT_AUI_PANE_FLOATED:
522514 # strs += "has been floated"
523515 elif etype == aui .wxEVT_AUI_PANE_DOCKING :
@@ -526,6 +518,8 @@ def OnFloatDock(self, event):
526518 self .filemgr .update_tree ()
527519 elif event .pane .name == "tree_content" :
528520 self ._application .treeplugin .set_float_docked (True )
521+ self ._application .treeplugin .on_show_tree (None )
522+ self .tree .refresh_view ()
529523 # elif etype == aui.wxEVT_AUI_PANE_DOCKED:
530524 # strs += "has been docked"
531525 # print("DEBUG: " + strs + "\n")
0 commit comments