mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
Ok, now the phantom scroll bug is REALLY fixed - honest!
This commit is contained in:
parent
6a29807423
commit
f9890a4f67
@ -191,7 +191,7 @@ class DirectScrolledList(DirectFrame):
|
|||||||
self.notify.info('crash 27633 fixed!')
|
self.notify.info('crash 27633 fixed!')
|
||||||
return
|
return
|
||||||
|
|
||||||
numItemsVisible=self["numItemsVisible"]
|
numItemsVisible = self["numItemsVisible"]
|
||||||
numItemsTotal = len(self["items"])
|
numItemsTotal = len(self["items"])
|
||||||
if(centered):
|
if(centered):
|
||||||
self.index = index - (numItemsVisible/2)
|
self.index = index - (numItemsVisible/2)
|
||||||
@ -209,26 +209,26 @@ class DirectScrolledList(DirectFrame):
|
|||||||
else:
|
else:
|
||||||
if (self.index <= 0):
|
if (self.index <= 0):
|
||||||
self.index = 0
|
self.index = 0
|
||||||
self.__buttonUp(0)
|
#print "at list start, ", len(self["items"])," ", self["numItemsVisible"]
|
||||||
self.decButton['state'] = DGG.DISABLED
|
self.decButton['state'] = DGG.DISABLED
|
||||||
self.incButton['state'] = DGG.NORMAL
|
self.incButton['state'] = DGG.NORMAL
|
||||||
ret = 0
|
ret = 0
|
||||||
elif (self.index >= (numItemsTotal - numItemsVisible)):
|
elif (self.index >= (numItemsTotal - numItemsVisible)):
|
||||||
self.index = numItemsTotal - numItemsVisible
|
self.index = numItemsTotal - numItemsVisible
|
||||||
# print "at list end, ", len(self["items"])," ", self["numItemsVisible"]
|
#print "at list end, ", len(self["items"])," ", self["numItemsVisible"]
|
||||||
self.__buttonUp(0)
|
|
||||||
self.incButton['state'] = DGG.DISABLED
|
self.incButton['state'] = DGG.DISABLED
|
||||||
self.decButton['state'] = DGG.NORMAL
|
self.decButton['state'] = DGG.NORMAL
|
||||||
ret = 0
|
ret = 0
|
||||||
else:
|
else:
|
||||||
# deal with an edge condition - make sure any tasks are removed from the disabled arrows.
|
# deal with an edge condition - make sure any tasks are removed from the disabled arrows.
|
||||||
if (self.incButton['state'] == DGG.DISABLED) or (self.decButton['state'] == DGG.DISABLED):
|
if (self.incButton['state'] == DGG.DISABLED) or (self.decButton['state'] == DGG.DISABLED):
|
||||||
|
#print "leaving list start/end, ", len(self["items"])," ", self["numItemsVisible"]
|
||||||
self.__buttonUp(0)
|
self.__buttonUp(0)
|
||||||
self.incButton['state'] = DGG.NORMAL
|
self.incButton['state'] = DGG.NORMAL
|
||||||
self.decButton['state'] = DGG.NORMAL
|
self.decButton['state'] = DGG.NORMAL
|
||||||
ret = 1
|
ret = 1
|
||||||
|
|
||||||
# print "self.index set to ", self.index
|
#print "self.index set to ", self.index
|
||||||
|
|
||||||
# Hide them all
|
# Hide them all
|
||||||
for item in self["items"]:
|
for item in self["items"]:
|
||||||
@ -307,8 +307,10 @@ class DirectScrolledList(DirectFrame):
|
|||||||
task.delayTime = (1.0 / self.scrollSpeed)
|
task.delayTime = (1.0 / self.scrollSpeed)
|
||||||
task.prevTime = 0.0
|
task.prevTime = 0.0
|
||||||
task.delta = 1
|
task.delta = 1
|
||||||
|
taskName = self.taskName("scroll")
|
||||||
|
#print "incButtonDown: adding ", taskName
|
||||||
|
taskMgr.add(task, taskName)
|
||||||
self.scrollBy(task.delta)
|
self.scrollBy(task.delta)
|
||||||
taskMgr.add(task, self.taskName("scroll"))
|
|
||||||
|
|
||||||
def __decButtonDown(self, event):
|
def __decButtonDown(self, event):
|
||||||
assert self.notify.debugStateCall(self)
|
assert self.notify.debugStateCall(self)
|
||||||
@ -316,12 +318,16 @@ class DirectScrolledList(DirectFrame):
|
|||||||
task.delayTime = (1.0 / self.scrollSpeed)
|
task.delayTime = (1.0 / self.scrollSpeed)
|
||||||
task.prevTime = 0.0
|
task.prevTime = 0.0
|
||||||
task.delta = -1
|
task.delta = -1
|
||||||
|
taskName = self.taskName("scroll")
|
||||||
|
#print "decButtonDown: adding ", taskName
|
||||||
|
taskMgr.add(task, taskName)
|
||||||
self.scrollBy(task.delta)
|
self.scrollBy(task.delta)
|
||||||
taskMgr.add(task, self.taskName("scroll"))
|
|
||||||
|
|
||||||
def __buttonUp(self, event):
|
def __buttonUp(self, event):
|
||||||
assert self.notify.debugStateCall(self)
|
assert self.notify.debugStateCall(self)
|
||||||
taskMgr.remove(self.taskName("scroll"))
|
taskName = self.taskName("scroll")
|
||||||
|
#print "buttonUp: removing ", taskName
|
||||||
|
taskMgr.remove(taskName)
|
||||||
|
|
||||||
def addItem(self, item, refresh=1):
|
def addItem(self, item, refresh=1):
|
||||||
"""
|
"""
|
||||||
@ -392,7 +398,7 @@ class DirectScrolledList(DirectFrame):
|
|||||||
"""
|
"""
|
||||||
assert self.notify.debugStateCall(self)
|
assert self.notify.debugStateCall(self)
|
||||||
self.recordMaxHeight()
|
self.recordMaxHeight()
|
||||||
#print "refresh called"
|
print "refresh called"
|
||||||
self.scrollTo(self.index)
|
self.scrollTo(self.index)
|
||||||
|
|
||||||
def getSelectedIndex(self):
|
def getSelectedIndex(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user