Reliable Custom Window Dragging in LC7?
Mike Bonner
bonnmike at gmail.com
Sun Aug 9 02:24:30 EDT 2015
Just tried it here, this old script seems to work fine for me 7.0.6..
http://lessons.runrev.com/m/4071/l/6867-how-to-make-a-stack-with-a-window-shape
<-- source
Sorry if you've already tried this method.
*local* sgDragging, sgLeftOffset, sgTopOffset
*on* mouseDown
*put* item 1 of the mouseLoc into sgLeftOffset
*put* item 2 of the mouseLoc into sgTopOffset
*put* true into sgDragging
*end* mouseDown
*on* mouseMove
*lock* screen
*if* sgDragging is true *then*
*set* the left of this stack to item 1 of globalloc(the mouseLoc) -
sgLeftOffset
*set* the top of this stack to item 2 of globalloc(the mouseLoc) -
sgTopOffset
*end* *if*
*unlock* screen
*end* mouseMove
*on* mouseRelease
*put* false into sgDragging
*end* mouseRelease
*on* mouseUp
*put* false into sgDragging
*end* mouseUp
On Sat, Aug 8, 2015 at 10:56 PM, Scott Rossi <scott at tactilemedia.com> wrote:
> Hi All:
>
> Is anyone still making custom-shaped stacks out there that use scripts to
> manage window dragging?
>
> I've noticed for some time now that custom window drag routines which used
> to work in all past versions of LiveCode now seem to be ineffective in
> LC7. For example, if you have a couple of stacks with custom windowShapes
> and click/drag to reposition them, it takes LiveCode several cycles to
> make the window active and catch up with the cursor position. And when
> the stack finally starts moving, it's position is way off from where the
> click first occurred on the stack.
>
> To work around this problem, I figured out a new dragging routine that
> seems to work pretty reliably, but it relies on some tactics that have
> been discouraged in the past, such tracking the screenMouseLoc and polling
> the mouse state. Here's the script I'm using (applied using a behavior):
>
> local mLoc
>
> before mouseDown
> trackDrag
> end mouseDown
>
> command trackDrag
> repeat while the mouse is "down"
> put the screenMouseLoc into SML
> set topLeft of this stack to item 1 of SML - item 1 of mLoc,\
> item 2 of SML - item 2 of mLoc
> end repeat
> end trackDrag
>
> before mouseMove X,Y
> put X,Y into mLoc
> pass mouseMove
> end mouseMove
>
>
>
> I know there aren't a ton of people building stacks with custom
> windowShapes and appearances out there. And while the above has been
> working for me for a while now, I'm still curious if anyone else has run
> into this and come up with an alternate solution.
>
>
> Thanks & Regards,
>
> Scott Rossi
> Creative Director
> Tactile Media, UX/UI Design
>
>
>
> _______________________________________________
> 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