mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-12-15 17:20:07 +01:00
Merge pull request #1950 from seanbudd/fix-scrolledpanel-tabbing
Some checks are pending
ci-build / build-source-dist (push) Waiting to run
ci-build / build-wheels (x64, macos-13, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.9) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.9) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.9) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.9) (push) Blocked by required conditions
ci-build / Build wxPython documentation (push) Waiting to run
ci-build / Publish Python distribution to PyPI (push) Blocked by required conditions
ci-build / Create GitHub Release and upload source (push) Blocked by required conditions
ci-build / Upload wheels to snapshot-builds on wxpython.org (push) Blocked by required conditions
Some checks are pending
ci-build / build-source-dist (push) Waiting to run
ci-build / build-wheels (x64, macos-13, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.9) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.9) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.9) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.9) (push) Blocked by required conditions
ci-build / Build wxPython documentation (push) Waiting to run
ci-build / Publish Python distribution to PyPI (push) Blocked by required conditions
ci-build / Create GitHub Release and upload source (push) Blocked by required conditions
ci-build / Upload wheels to snapshot-builds on wxpython.org (push) Blocked by required conditions
Calculate Scroll based on Childs relative position to ScrolledPanel
This commit is contained in:
@@ -174,6 +174,23 @@ class ScrolledPanel(wx.ScrolledWindow):
|
||||
evt.Skip()
|
||||
|
||||
|
||||
def GetChildRectRelativeToSelf(self, child: wx.Window):
|
||||
"""
|
||||
Same as `child.GetRect()` except the position returned is relative
|
||||
to this ScrolledPanel rather than the child's parent.
|
||||
|
||||
:param wx.Window `child`: any :class:`wx.Window` - derived control.
|
||||
|
||||
.. note:: window.GetRect returns the size of a window, and its position
|
||||
relative to its parent. When calculating ScrollChildIntoView, the
|
||||
position relative to its parent is not relevant unless the parent
|
||||
is the ScrolledPanel itself.
|
||||
"""
|
||||
cr = child.GetScreenRect()
|
||||
spp = self.GetScreenPosition()
|
||||
return wx.Rect(cr.x - spp.x, cr.y - spp.y, cr.width, cr.height)
|
||||
|
||||
|
||||
def ScrollChildIntoView(self, child):
|
||||
"""
|
||||
Scroll the panel so that the specified child window is in view.
|
||||
@@ -188,7 +205,7 @@ class ScrolledPanel(wx.ScrolledWindow):
|
||||
|
||||
sppu_x, sppu_y = self.GetScrollPixelsPerUnit()
|
||||
vs_x, vs_y = self.GetViewStart()
|
||||
cr = child.GetRect()
|
||||
cr = self.GetChildRectRelativeToSelf(child)
|
||||
clntsz = self.GetClientSize()
|
||||
new_vs_x, new_vs_y = -1, -1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user