X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3d49f2fb177cc6339bf6b28dc44e912d2dcb46d1..42f8298f6f42d5d63bb3caf65682b7d9d9f8b702:/wxPython/wx/tools/XRCed/tree.py?ds=sidebyside diff --git a/wxPython/wx/tools/XRCed/tree.py b/wxPython/wx/tools/XRCed/tree.py index 84d6cd95d2..2b31396668 100644 --- a/wxPython/wx/tools/XRCed/tree.py +++ b/wxPython/wx/tools/XRCed/tree.py @@ -19,7 +19,7 @@ class MemoryFile: self.name = name self.buffer = '' def write(self, data): - self.buffer += data.encode() + self.buffer += data.encode(g.currentEncoding) def close(self): wxMemoryFSHandler_AddFile(self.name, self.buffer) @@ -523,13 +523,21 @@ class XML_Tree(wxTreeCtrl): # Find position for i in range(notebook.GetPageCount()): if notebook.GetPage(i) == obj: - if notebook.GetSelection() != i: notebook.SetSelection(i) + if notebook.GetSelection() != i: + notebook.SetSelection(i) + # Remove highlight - otherwise highlight window won't be visible + if g.testWin.highLight: + g.testWin.highLight.Remove() break # Find first ancestor which is a wxWindow (not a sizer) winParent = itemParent while self.GetPyData(winParent).isSizer: winParent = self.GetItemParent(winParent) - parentPos = self.FindNodePos(winParent) + # Notebook children are layed out in a little strange way + if self.GetPyData(itemParent).treeObject().__class__ == xxxNotebook: + parentPos = wxPoint(0,0) + else: + parentPos = self.FindNodePos(winParent) # Position (-1,-1) is really (0,0) pos = obj.GetPosition() if pos == (-1,-1): pos = (0,0) @@ -559,6 +567,9 @@ class XML_Tree(wxTreeCtrl): return child def OnSelChanged(self, evt): + self.ChangeSelection(evt.GetItem()) + + def ChangeSelection(self, item): # Apply changes # !!! problem with wxGTK - GetOldItem is Ok if nothing selected #oldItem = evt.GetOldItem() @@ -577,7 +588,7 @@ class XML_Tree(wxTreeCtrl): status = 'Changes were applied' g.frame.SetStatusText(status) # Generate view - self.selection = evt.GetItem() + self.selection = item if not self.selection.IsOk(): self.selection = None return @@ -753,7 +764,6 @@ class XML_Tree(wxTreeCtrl): testWin.panel = testWin testWin.CreateStatusBar() testWin.SetClientSize(testWin.GetBestSize()) - testWin.panel = testWin testWin.SetPosition(pos) testWin.Show(True) elif xxx.__class__ == xxxPanel: