mirror of
https://gitlab.com/biskuteri-cafe/JKomasto2.git
synced 2024-11-20 04:54:50 +01:00
e6fea4c061
(Before this, JKomasto and sometimes the Mastodon web client would get '411 Record Not Found' when submitting the same text after deleting and redrafting. Presumably the Mastodon server caches both whether an idempotency key was fulfilled and which post it leads to, and for some reason it looks up the second and fails.)
63 lines
1.4 KiB
Java
63 lines
1.4 KiB
Java
|
|
import java.awt.datatransfer.Clipboard;
|
|
import java.awt.datatransfer.ClipboardOwner;
|
|
import java.awt.datatransfer.Transferable;
|
|
import java.awt.datatransfer.DataFlavor;
|
|
import java.awt.Toolkit;
|
|
|
|
class
|
|
ClipboardApi
|
|
implements Transferable, ClipboardOwner {
|
|
|
|
private static final ClipboardApi
|
|
instance = new ClipboardApi();
|
|
|
|
private static String
|
|
string;
|
|
|
|
// ---%-@-%---
|
|
|
|
public static void
|
|
serve(String string)
|
|
{
|
|
assert string != null;
|
|
instance.string = string;
|
|
Toolkit tk = Toolkit.getDefaultToolkit();
|
|
Clipboard cb = tk.getSystemClipboard();
|
|
cb.setContents(instance, instance);
|
|
}
|
|
|
|
// - -%- -
|
|
|
|
public String
|
|
getTransferData(DataFlavor flavour)
|
|
{
|
|
assert flavour == DataFlavor.stringFlavor;
|
|
return string;
|
|
}
|
|
|
|
public DataFlavor[]
|
|
getTransferDataFlavors()
|
|
{
|
|
return new DataFlavor[] { DataFlavor.stringFlavor };
|
|
/*
|
|
* We should probably also support javaJVMLocalObjectMimeType,
|
|
* so that the compose window can ask for the List<Segment>.
|
|
* Although also like, if we don't store emoji shortcodes in
|
|
* the image segments, there is no point. Anyways, what is
|
|
* important is the string format first, allowing us to
|
|
* copy links or large lengths of text.
|
|
*/
|
|
}
|
|
|
|
public boolean
|
|
isDataFlavorSupported(DataFlavor flavour)
|
|
{
|
|
return flavour == DataFlavor.stringFlavor;
|
|
}
|
|
|
|
public void
|
|
lostOwnership(Clipboard clipboard, Transferable contents) { }
|
|
|
|
}
|