can I lock screen over more than one handler?

Randy Hengst iowahengst at mac.com
Wed Jul 5 11:55:31 EDT 2017


It’s been a long time since I’ve messed with player objects… but what about putting both of the handlers into a “run” handler:

on runMyHandlers
	LOCK SCREEN
	handler1
	handler2
	UNLOCK Screen
end runMyHandlers

> On Jul 5, 2017, at 10:42 AM, Tiemo Hollmann TB via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
> Jonathan had a tricky idea to work with two player objects switching between
> them with hiding and showing them and doing the assignment of the filename
> with the currently hidden player, even with locking the screen at the
> beginning of the handler.
> It's a pitty, but the flickering of the whole window frame keeps the same.
> The directShow video engine must be somehow totally dominant.
> Any other tricky idea?
> Tiemo
> 
> -----Ursprüngliche Nachricht-----
> Von: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] Im Auftrag
> von Tiemo Hollmann TB via use-livecode
> Gesendet: Mittwoch, 5. Juli 2017 15:57
> An: 'How to use LiveCode' <use-livecode at lists.runrev.com>
> Cc: Tiemo Hollmann TB <toolbook at kestner.de>
> Betreff: AW: can I lock screen over more than one handler?
> 
> Thanks Jonathan, Trevor and Sean for your comments.
> 
> Meanwhile I could drill down my "flickering" problem (post from yesterday)
> to an unexpected command.
> In one of those handlers I "set the filename of player "myVideoPlayer" to
> tFile". This command withdraws the focus from the window and passes it back
> after some milliseconds. On my Win 10 machine with a white window title bar
> I almost can't see it, but on Win 8 with the standard violet title bar it is
> an ugly flickering, each time I set the filename (which happens very
> frequently in a quiz loop).
> 
> And I can't prevent this flickering with a lock screen right before the
> setting of the filename. The setting of the filename seems to release the
> lock screen or it takes the focus of the window off and back. Very ugly in
> my case.
> 
> Tiemo
> 
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] Im Auftrag
> von Sean Cole (Pi) via use-livecode
> Gesendet: Mittwoch, 5. Juli 2017 15:30
> An: How to use LiveCode <use-livecode at lists.runrev.com>
> Cc: Sean Cole (Pi) <sean at pidigital.co.uk>
> Betreff: Re: can I lock screen over more than one handler?
> 
> Hi Tiemo,
> The solution here is to call another lockScreen at the beginning of
> handler2. You don't have to use the unlockScreen at the end of handler 1 and
> 2 as it will do that automatically but it is advisable to include the
> command anyway. Is there a reason why you had an aversion to using a
> lockScreen at the start of handler2?
> 
> All the best
> 
> Sean Cole
> *Pi Digital Productions Ltd*
> 
> On 5 July 2017 at 14:09, Trevor DeVore via use-livecode <
> use-livecode at lists.runrev.com> wrote:
> 
>> On Wed, Jul 5, 2017 at 6:45 AM, Tiemo Hollmann TB via use-livecode < 
>> use-livecode at lists.runrev.com> wrote:
>>> 
>>> 
>>> Is this possible?
>>> 
>>> on handler1
>>> 
>>> lock screen
>>> 
>>> -- do some stuff here
>>> 
>>> send "handler2" in 0 milliseconds
>>> 
>>> end handler1
>>> 
>>> 
>>> 
>>> on handler2
>>> 
>>> -- do some other stuff here
>>> 
>>> unlock screen
>>> 
>>> end handler2
>>> 
>> 
>> No it is not. From the docs for `lock screen`:
>> 
>> "When all pending handlers are finished executing, the lockScreen 
>> property is set back to false and the user sees the current state of 
>> stack windows on the screen."
>> 
>> The use of the word "pending" is confusing because when you use `send` 
>> you end up with an entry in the `pendingMessages`. But the screen is 
>> going to be unlocked each time through the event loop. If `handler` 
>> called `handler2` directly (without using `send`) then you would not 
>> see the screen update. You should see the result you are looking for 
>> if you change your code to look like this:
>> 
>> ```
>> on handler1
>>  lock screen
>> 
>>  -- do some stuff here
>> 
>>  handler2
>> end handler1
>> ```
>> 
>> If you need to call `handler2` in time then you will need to figure 
>> out another approach to updating the screen. Perhaps all screen 
>> updates will need to happen in `handler2`.
>> 
>> --
>> Trevor DeVore
>> ScreenSteps
>> www.screensteps.com
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your 
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list