John Fabiani found the cause of an endless loop.  It was being caused by a
self.update statement in a dynamicDisplayPage method on a page frame.  The
self.update in our method is necessary to refresh the page properly.  The
loop starts because the dymnamic calls the update which calls the dynamic,
etc.

I updated the code in the dPermixin as shown below to set a flag so that the
routine only gets called once, and would ask you to consider incorporating
it into the trunk.  Note: As a side benefit, the screen refresh seems to be
much quicker.

Thanks,
Larry Long

        #LAL
        isupdating=False
        
        def update(self):
                #LAL
                if self.isupdating:
                        return

                """Update the properties of this object and all contained
objects."""
                if isinstance(self, dabo.ui.deadObject):
                        # This can happen if an object is released when
there is a 
                        # pending callAfter() refresh.

                        #LAL
                        self.isupdating=False
                        return

                #LAL
                self.isupdating=True
                if isinstance(self, dabo.ui.dForm) and
self.AutoUpdateStatusText:
                        self.setStatusText(self.getCurrentRecordText())
                
                if self.Children:
                        self.raiseEvent(dEvents.Update)
                        
                #LAL    
                #dabo.ui.callAfter(self.__updateDynamicProps)
                dabo.ui.callAfter(self.updateDynProps)

        #LAL
        def updateDynProps(self):
                self.__updateDynamicProps()
                self.isupdating=False
                
        def __updateDynamicProps(self):
                ...



_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/[EMAIL PROTECTED]

Reply via email to