Mouse clicks and cursor change lost after certain actions

David Glass dglass at graymattercomputing.com
Mon May 9 00:37:38 EDT 2011


That subject is pretty bad, but I don't know how else to describe the 
issue. :oops:

I have a multi-paned interface with one horizontal splitter, and one 
vertical splitter. The code for the horizontal splitter looks like this:

-------------------------
     on mouseenter
        if the tool is "browse tool" then
           lock cursor
           set the cursor to 64
        end if

     end mouseenter

     on mouseleave
        if the tool is "browse tool" then
           unlock cursor
        end if

     end mouseleave

     on mousemove
        if the tool is "browse tool" then
           repeat until the mouse is up
              if item 2 of the mouseloc > 196 and item 2 of the mouseloc 
< 584 then
                 set the loc of me to item 1 of the loc of me, item 2 of 
the mouseloc
                 --rect = left, top, right, bottom
                 --adjust the stuff above the splitter
                 set the rect of group "DataGrid 2" to the left of group 
"DataGrid 2", the top of group "DataGrid 2", the right of group 
"DataGrid 2", the top of me
                 --adjust the stuff below the splitter
                 set the rect of group "DataGrid 3" to the left of group 
"DataGrid 3", the bottom of me, the right of group "DataGrid 3", the 
bottom of group "DataGrid 3"
              end if

           end repeat
        end if

     end mousemove

-------------------------------

This works as expected, and the code for the vertical splitter is the 
same (with obvious changes for resizing the vertical instead of the 
horizontal).

The problem is that after doing any resizing -- so the stuff in 
'mousemove' has finished, and the cursor has been unlocked (mouseleave) 
-- the mouse stops behaving:

1. the cursor will not change if I move the mouse into the splitter 
control (mouseenter)
1.1 clicking anywhere in the card/window 'wakes' the cursor up, and the 
mouseenter code will then fire when appropriate.

2. the first click is swallowed by...something. I haven't figured out 
where it goes. It doesn't matter where I click, the click doesn't seem 
to register.
2.1. I can click on the Edit button, and I am not released from Browse 
mode until I click the Edit button a second time.
2.2. If I try to click on the code editor hiding behind the active card, 
it does not come to the front until I click it again.

Interestingly, if I ignore that the cursor hasn't visibly changed, and 
drag the splitter around, it does move (and the cursor changes when the 
splitter first starts to move), and then when I release the mouse button 
the cursor behaves properly so I can immediately put the cursor in the 
splitter and the cursor changes. Until I do it again, and then I'm back 
to the behavior above. So it almost works out to 'every other time it's 
right.' :?

This description isn't much better than the subject, but I'm not sure 
how else to describe the behavior I'm seeing.

-- 
David Glass - Gray Matter Computing
graymattercomputing.com




More information about the use-livecode mailing list