[Mono-winforms-list] Clipboard.SetDataObject() doing nothing

Carlos Alberto Cortez calberto.cortez at gmail.com
Sat Jun 6 05:29:16 EDT 2009


Hey!

Sorry for the late answer. Basically in trunk we now support custom formats
in the Clipboard - observe, however that only types implementing
ISerializable can properly be 'copied/pasted'.

Anyway, just as a general recommendation, you should avoid putting any large
object in the Clipboard as possible - for example, both Windows and Gnome,
when copying/pasting pictures usually only put the path in the clipboard,
and then they proceed to use that path when needed.

About the protocol, probably you can keep your eyes out of it ;-) The basic
answer to your issues, is that the used protocol is old and is not as
unified -format wise- as you could expect. The basic interaction between
them is basically compatible with text -as you can copy text between apps
and even window managers and toolkits- but *usually* other types should be
used as application-dependant.

If you want to take a look at the protocol, read
http://www.freedesktop.org/wiki/Specifications/ClipboardsWiki and
http://www.jwz.org/doc/x-cut-and-paste.html

Carlos.

2009/5/24 Christoph Teuber <christoph.teuber at gmx.li>

> doing that would be great. I did try to copy other data to clipboard
> because I'm working on an small app syncing two clipboards over the LAN.
> So I try to copy Windows clipboard contents on Linux. For my own
> personal needs, it should work across platform boundaries, but text is
> enough. Which works. But other people may have other needs, so I try to
> support different formats.
>
> What confuses me is, that clipboard handling within X11 seems to be
> quite complicated. For other formats than text, most applications I
> tried seem to use their one clipboard. Cutting in Gimp doesn't paste in
> OpenOffice Draw and vice versa. So maybe supporting other formats
> wouldn't be that usefull, but having the capability of copy and paste
> other formats between mono applications would be a good start.
>
> Does anybody of you know a good document explaining the situation?
>
> cht
>
>
> Carlos Alberto Cortez wrote:
> > I already did some refactoring code to handle formats other than text,
> > we only need to copy the information just as other x11 applications do
> > that :-)
> >
> > But anyway, feel free a magicalto send (me) those notes as well :-)
> >
> > Carlos.
> >
> > 2009/5/24 Ivan N. Zlatev <contact at i-nz.net <mailto:contact at i-nz.net>>
> >
> >     Hey,
> >
> >     There is already a bug for this:
> >     https://bugzilla.novell.com/show_bug.cgi?id=357642
> >
> >     Basically we don't support IDataObject and custom data (clipboard)
> >     formats and just hand-check for text and handle that in a magical
> way.
> >     The best way (imho) to fix this is to have a IDataObject centric
> >     clipboard implementation. I have some notes if someone is interested.
> >
> >
> >     On Sun, May 24, 2009 at 4:33 PM, Carlos Alberto Cortez
> >     <calberto.cortez at gmail.com <mailto:calberto.cortez at gmail.com>>
> wrote:
> >     > This issue has nothing to see with that Changelog entry.
> >     >
> >     > Basically we have never supported copying/pasting other than
> >     text/rtf text.
> >     > So feel free to open a bug report for it :-)
> >     >
> >     > Thanks!
> >     > Carlos.
> >     >
> >     >
> >     > 2009/5/24 Christoph Teuber <christoph.teuber at gmx.li
> >     <mailto:christoph.teuber at gmx.li>>
> >     >>
> >     >> Hello,
> >     >>
> >     >> thanks for your fast answer.
> >     >>
> >     >> You were right, there were several changes, but nothing seems to
> be
> >     >> connected with my SetDataObject() problem. But I found this
> >     statement:
> >     >>
> >     >> 2007-03-18 Jackson Harper <jackson at ximian.com
> >     <mailto:jackson at ximian.com>>
> >     >>
> >     >> * TextBoxBase.cs: Remove image pasting code for now. There is no
> >     >> way to get an image on the clipboard right now anyways.
> >     >>
> >     >> This ist from 2007, so it may be out of date, but does it mean,
> >     that
> >     >> copying images to the clipboard doesn't work at all? I wonder,
> >     because
> >     >>
> >     >> Clipboard.SetImage( im );
> >     >>
> >     >> or
> >     >>
> >     >> Clipboard.SetObjectData( im );
> >     >>
> >     >> doesn't do anything either. (im is an image loaded as posted
> >     before). In
> >     >> contrary,
> >     >>
> >     >> Clipboard.SetObjectData("this is a test");
> >     >>
> >     >> does work.
> >     >>
> >     >> Greetings
> >     >> cht
> >     >>
> >     >>
> >     >>
> >     >> Stifu wrote:
> >     >> > I know there've been clipboard fixes after 2.4, so you could
> >     check out
> >     >> > SVN
> >     >> > (or bugzilla).
> >     >> >
> >     >> >
> >     >> > cht wrote:
> >     >> >
> >     >> >> Hello,
> >     >> >>
> >     >> >> I'm trying to do some clipboard stuff under Mono right now,
> >     and I have
> >     >> >> the
> >     >> >> problem, that Windows.Forms.Clipboard.SetDataObject()
> >     doesn't seem to
> >     >> >> do
> >     >> >> anything if a DataObject will be passed.
> >     >> >>
> >     >> >> I do have the following two pieces of code, which both run
> >     under .NET
> >     >> >> 2.0,
> >     >> >> but running under mono (2.0.1, Ubuntu 9.04) leaves the
> clipboard
> >     >> >> completely unchanged.
> >     >> >>
> >     >> >> private void testButton_Click(object sender, EventArgs e)
> >     >> >>         {
> >     >> >>             Image im = (Image)Bitmap.FromFile("test.jpg");
> >     >> >>             DataObject dataObj = new DataObject();
> >     >> >>             dataObj.SetData(im.GetType().ToString(), im);
> >     >> >>             Clipboard.SetDataObject(dataObj, true);
> >     >> >>
> >     >> >>         }
> >     >> >>
> >     >> >> private void testTextButton_Click(object sender, EventArgs e)
> >     >> >>         {
> >     >> >>             DataObject dataObj = new DataObject();
> >     >> >>             string format = "System.String";
> >     >> >>             dataObj.SetData(format, "this is a test");
> >     >> >>             Clipboard.SetDataObject(dataObj, false);
> >     >> >>         }
> >     >> >>
> >     >> >>
> >     >> >> I compile using VS 2008.
> >     >> >> As Clipboard.cs seems to bee unchanged since 2.0.1, I didn't
> try
> >     >> >> installing Mono 2.4. But I would like to stay compatible to
> >     2.0.1
> >     >> >> anyway,
> >     >> >> so I hope I'm doing something wrong.
> >     >> >>
> >     >> >> Anybody any idea, why this is the case?
> >     >> >>
> >     >> >> Thanks in advance
> >     >> >> cht
> >     >> >>
> >     >> >>
> >     >> >>
> >     >> >
> >     >> >
> >     >>
> >     >> _______________________________________________
> >     >> Mono-winforms-list maillist  -
> >      Mono-winforms-list at lists.ximian.com
> >     <mailto:Mono-winforms-list at lists.ximian.com>
> >     >> http://lists.ximian.com/mailman/listinfo/mono-winforms-list
> >     >
> >     >
> >     > _______________________________________________
> >     > Mono-winforms-list maillist  -
> >      Mono-winforms-list at lists.ximian.com
> >     <mailto:Mono-winforms-list at lists.ximian.com>
> >     > http://lists.ximian.com/mailman/listinfo/mono-winforms-list
> >     >
> >     >
> >
> >
> >
> >     --
> >     Kind Regards,
> >     Ivan N. Zlatev
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-winforms-list/attachments/20090606/7c67b749/attachment.html 


More information about the Mono-winforms-list mailing list