Refactoring is your friend / moving from 6.x to 9.x

Mark Wieder ahsoftware at sonic.net
Sun Dec 30 16:42:47 EST 2018


On 12/30/18 1:25 PM, Malte Pfaff-Brill via use-livecode wrote:
> Hi Kaveh,
> 
> Thanks for the kind words. :-)
> 
> Regarding lock screen, here is one simple example:
> 
> on mouseUp
> 	lock screen
> 	subhandler
> 	unlock screen
> 	answer the lockscreen
> end mouseUp
> 
> 
> on subhandler
> 	lock screen
> 	— other stuff may follow, but do not unlock
> end subhandler
> 
> My expectation in the answer would be „false“, but guess what. :-)
> Regarding screen not being immediately released, I am not down to the cause yet. App is complex (multi group / people calendar)

I want to strongly disagree with your conclusion here.

Locking and unlocking the screen is a matter of counting when it comes 
to nesting. In your example, the mouseUp handler increments the count to 
1, then the subhandler increases it to 2, and finally the mouseUp 
handler decrements the count with the unlock command. That still leaves 
the lock counter nonzero, so the screen is still locked.

A more correct approach would be to unlock the screen at the end of the 
subhandler, i.e., lock the screen when you need it locked, then unlock 
it *in the same handler* when you're done needing it locked. I nest lock 
and unlock commands all the time, and it's second nature now to pair 
them the same way I pair if/end if, repeat/end repeat, etc.

-- 
  Mark Wieder
  ahsoftware at gmail.com




More information about the use-livecode mailing list