AW: can I lock screen over more than one handler?

Tiemo Hollmann TB toolbook at kestner.de
Wed Jul 5 09:57:06 EDT 2017


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





More information about the use-livecode mailing list