-- movie script "main"
property __cx
on startMovie
script("main").__cx = xtra("Clipboard").new()
script("main").__cx.clipSetCallback(#clipboardChanged)
end
on stopMovie
if not voidP(script("main").__cx) then
script("main").__cx.clipStopCallback()
script("main").__cx = VOID
end if
end
on clipboardChanged
res = script("main").__cx.clipGetFormatsInClipboard()
-- check if clipboard has "Rich Text Format" but no CF_UNICODETEXT
if res.getPos(49284)>0 and res.getPos(13)=0 then
-- get RTF, convert to UTF-8 text
data = script("main").__cx.clipGetData(49284)
member("tmp").rtf = data.readRawString(data.length)
utf8Text = member("tmp").text
-- convert UTF-8 to UTF-16
baUtf16 = bytearray()
baUtf16.writeString(utf8Text, "UTF-16")
baUtf16.writeInt16(0) -- append 2 null bytes
baUtf16.position = 5
-- add missing CF_UNICODETEXT format to clipboard
script("main").__cx.clipAddData(13, baUtf16.readByteArray(baUtf16.length-4))
--put "Clipboard fixed"
end if
end