clipboard issue in Windows?

Peter M. Brigham, MD pmbrig at gmail.com
Wed Nov 30 18:47:31 EST 2011


I have the following in my frontscript, loaded at LC startup:

private command doUndoSpace
  -- this solves the problem that after the certain operations
  -- the script editor remains unaware that the script has changed,
  -- so an <enterkey> will close but not save the changed script
  -- thus we have to *type* at least one character
  lock screen
  put the selectedText into selTxt
  type numToChar(32) -- the important step
  put word 4 of the selectedChunk into charNbr
  put selTxt into char charNbr of the target
  unlock screen
end doUndoSpace

I call this when I use the scriptPaint routine (also in my frontscript -- I think this comes from Jacque). In the script editor, a control-shift-space pops the mousetext (the word the cursor is hovering over) into the selection, great for copying longAndComplexAndEasilyMisspelledVariableNames. The problem with the routine as I poached it some time ago was that if one opens a script and the only change one makes is a scriptPaint move, the script editor won't see the script as having changed and won't save the change. (Purely scripted changes don't mark the field as dirty.) So I call doUndoSpace in the handler, and it works nicely.

It sounds like the same problem is occurring with the paste operation as described in this thread. Maybe the above routine, or something like it, will be useful. You would have to catch the paste in a frontscript and test to see if the window you are pasting into is a script editor window, call doUndoSpace at some point if it is, and pass the paste if it isn't.

BTW, Jacque's shortcuts for the script editor (I'm pretty sure it was you, Jacque -- if not, then someone take credit!) include not just scriptPaint but a several other nifty tricks, ie, putting quotes or parens or brackets around a selection. I've used them long enough now that I've gotten addicted to having them at my fingertips. Below is the controlkeydown handler from my frontscript, which incorporates them all. You can see that I use doUndoSpace in each one.

-- Peter

Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig

---------
on controlkeydown whichKey
  -- I use control-shift for all the scripteditor shortcuts
  if the shiftKey is not down then pass controlkeydown
  put the long name of the target into tarName
  if "revNewScriptEditor" is not in tarName then
     pass controlkeydown
  end if
  switch whichKey
     case "'" -- put quotes around the selection
        get the selection
        put q(it) into the selection
        if it = "" then
           put the selectedChunk into tSel
           put word 4 of tSel into word 2 of tSel
           put (word 4 of tSel) - 1 into word 4 of tSel
           select tSel
        end if
        doUndoSpace
        break
     case "9"
     case "0" -- put parens around the selection
        get the selection
        put "(" & it & ")" into the selection
        if it = "" then
           put the selectedChunk into tSel
           put word 4 of tSel into word 2 of tSel
           put (word 4 of tSel) - 1 into word 4 of tSel
           select tSel
        end if
        doUndoSpace
        break
     case "["
     case "]" -- put brackets around the selection
        get the selection
        put "[" & it & "]" into the selection
        if it = "" then
           put the selectedChunk into tSel
           put word 4 of tSel into word 2 of tSel
           put (word 4 of tSel) - 1 into word 4 of tSel
           select tSel
        end if
        doUndoSpace
        break
     case " " -- scriptPaint, control-shift-space
        put the mouseText into the selection
        doUndoSpace
        break
     default
        pass controlkeydown
  end switch
end controlkeydown
---------


On Nov 30, 2011, at 3:33 PM, Ralph DiMola wrote:

> poof editor closes, no compile and changes lost
> 
> Been there done that. I have a couple lost my edits tee shirts. A have
> abandoned the "Ctrl Insert"/"Shift Insert" but old habits are hard to break
> 
> 
> Mike Bonner wrote:
> 
> This is why I only use ctrl-c ctrl-v. It seems that shift-insert doesn't
> necessarily set the dirty bit in the script editor so I have caught myself
> pasting, hit enter to compile, since it doesn't think theres a change..
> poof editor closes, no compile and changes lost. ctrl-v works fine though
> so i've just forced myself out of the shift-insert habit.
> 
> On Wed, Nov 30, 2011 at 12:15 PM, Ralph DiMola
> <rdimola at evergreeninfo.net>wrote:
> 
>> Don't know if this is a related issue. On Windows at the clipboard in the
>> IDE GUI acts odd at times. Running XP SP3. Sometimes "Ctrl Insert"/"Shift
>> Insert" works sometimes not. "Ctrl C"/"Ctrl V" work reliably most of the
>> time. Sometimes pasting things from the clipboard to the LC IDE from
>> another
>> windows app works, sometimes not. I put some code on the clipboard in VB6.
>> It would not paste into LC, BUT I pasted to Windows notepad then again put
>> the select text on the clipboard from notepad and was able to paste into
>> the
>> LC IDE??? "Control C" will put selected text onto the clipboard from both
>> the IDE and the LC Dictionary. "Control Insert" works only from the IDE
>> but
>> not in the LC Dictionary. Other oddities exist. I think if you're at a
>> debugging breakpoint the rules of the clipboard change but I don't
>> remember
>> what happens. I also just the other day used the LC copy to attempt to put
>> something on the clipboard but it did not work. Thought it was my inner LC
>> newbie coming out and was going to look at the docs, now maybe not.
>> 
>> Ralph DiMola





More information about the use-livecode mailing list