Closed Bug 193322 Opened 22 years ago Closed 18 years ago

doesn't paste text into flash application

Categories

(Tech Evangelism Graveyard :: English US, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: mporta, Assigned: msintov)

References

()

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3b) Gecko/20030210
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3b) Gecko/20030210

i've an email account at www.toast.com (it uses a flash user interface).
i have problems when i try to paste some text into the email body.


Reproducible: Sometimes

Steps to Reproduce:
1. load www.toast.com
2. look at the popup window, with ads
3. right click on an ad link e select "copy link location"
4. login in your account (create one, its free)
5. click "new message"
6. click in the text area for the body of the email
7. right click mouse button and select "paste"


Actual Results:  
the text that is pasted isn't the same that was copied before


if i open a notepad and paste the text into it i can see the link for the ad was
correctly copied, so "copy link location" is working correctly.
if now i reselect the text from notepad and then retry to paste into the email
then it is correctly pasted...

i'm using windows 2000 and flash player 6.0 r29
changed to Browser::Plug-ins
Component: Browser-General → Plug-ins
Please always change the default owner if you change the component..
Assignee: asa → peterlubczynski
QA Contact: asa → shrir
*** Bug 212294 has been marked as a duplicate of this bug. ***
matteo, have you tried with a fresh build of mozilla and/or with a new flash
plugin? does the problem still exist?
I've been having the same problems as the original reporter of this bug, first
noticing it while developing and testing a local Flash CGI interface.  I just
recently updated my Flash plugin to version 7.0 r14 and the problem still
exists.       
In my testings Flash-run programs in Mozilla are able to correctly accept
clipboard pasting from other apps such as notepad or IE to a Flash textbox. 
However, a strange idiosyncracy is that copying any HTML or text content from
the Mozilla browser into a Flash textbox in another instance of the Mozilla
browser results in a few strange characters -regardless of any 'special
characters'.  Other Flash movies in the internet with textboxes have the same
behavior in Mozilla, but not IE from what I've been able to try.  
So, in my case, the problem appears to be copying HTML/text from Mozilla and
pasting to Flash textbox in Mozilla.  I filled a bug report in Macromedia's site
but I doubt that would make any difference on their end. 
I can reproduce this somewhat consistently. When I paste from firefox into
Mozilla or vise versa, I rarely see it. If I paste from the same app into a
flash text field, I see it most of the time. 

1. Load http://www.acky.net/tutorials/flash/forms/form.swf in a new tab
2. select the text from summary field of this bug report and paste into the
flash text field.

notice that it pastes something that looks like pÀ·¨ rather than the summary of
the bug. paste from some other application (even firefox or thunderbird) into
the seamonkey flash field and it seems to work fine.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: blocking1.8a2?
Flags: blocking1.8a2? → blocking1.8a2-
Flash Player assumes that GetClipboardData() will always return GMEM_FIXED memory.
But GMEM_MOVABLE memory will be returned if Mozilla copies the text in the same process.
Flash Player should call GlobalLock() to ensure a valid pointer.
->Tech Evangelism
Assignee: peterlubczynski-bugs → msintov
Component: Plug-ins → English US
Flags: blocking1.8a2-
Product: Core → Tech Evangelism
Version: Trunk → unspecified
We (the Flash Player team) will investigate this fix, and I'll follow-up with the bug fix status. Thank you very much for informing me.
Unfortunately, adding GlobalLock() doesn't seem to be fixing the problem.

The existing Flash Player code is:

HANDLE hClip = GetClipboardData( CF_TEXT );
if (hClip) 
{
//see that text is bogus characters
}

If I change this code to be like this I still have bogus characters:

HGLOBAL hClip = GetClipboardData( CF_TEXT );
if (hClip)
{
GlobalLock(hClip);
//see that text is still bogus characters
GlobalUnlock(hClip);
}
Are you using the return value from GlobalLock()?
hClip itself won't point the actual data even if it's locked.
That is, you should use the code like this:
HGLOBAL hClip = GetClipboardData( CF_TEXT );
if (hClip)
{
PVOID pClip = GlobalLock(hClip);
if (pClip)
{
//pClip should point the valid text
GlobalUnlock(hClip);
}
}
If hClip is GMEM_MOVABLE, GlobalLock() will increment the lock count and return the value which is NOT the same as hClip.
And GlobalUnlock() will decrement the lock counter.
If hClip is GMEM_FIXED, GlobalLock() will just return the parameter
and GlobalUnlock() will do nothing.
In short, this code will work whether or not hClip is GMEM_MOVABLE.
See also MSDN:
http://msdn.microsoft.com/library/en-us/memory/base/globallock.asp
Thanks so much, my bad.

This Flash Player bug will be fixed in the next release of the Flash Player, which will be later this year.
WFM using Flash Player 9 Beta
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Product: Tech Evangelism → Tech Evangelism Graveyard
You need to log in before you can comment on or make changes to this bug.