mirror of https://github.com/adamdruppe/arsd.git
lol fix clipboard
This commit is contained in:
parent
c1116d366f
commit
a828f06233
|
@ -4455,15 +4455,15 @@ void setClipboardText(SimpleWindow clipboardOwner, string text) {
|
||||||
scope(exit)
|
scope(exit)
|
||||||
CloseClipboard();
|
CloseClipboard();
|
||||||
EmptyClipboard();
|
EmptyClipboard();
|
||||||
|
auto sz = sizeOfConvertedWstring(test, WindowsStringConversionFlags.convertNewLines | WindowsStringConversionFlags.zeroTerminate);
|
||||||
auto handle = GlobalAlloc(GMEM_MOVEABLE, (text.length + 1) * 2); // zero terminated wchars
|
auto handle = GlobalAlloc(GMEM_MOVEABLE, sz * 2); // zero terminated wchars
|
||||||
if(handle is null) throw new Exception("GlobalAlloc");
|
if(handle is null) throw new Exception("GlobalAlloc");
|
||||||
if(auto data = cast(wchar*) GlobalLock(handle)) {
|
if(auto data = cast(wchar*) GlobalLock(handle)) {
|
||||||
auto slice = data[0 .. text.length + 1];
|
auto slice = data[0 .. sz];
|
||||||
scope(failure)
|
scope(failure)
|
||||||
GlobalUnlock(handle);
|
GlobalUnlock(handle);
|
||||||
|
|
||||||
auto str = makeWindowsString(text, slice, WindowsStringConversionFlags.convertNewLines);
|
auto str = makeWindowsString(text, slice, WindowsStringConversionFlags.convertNewLines | WindowsStringConversionFlags.zeroTerminate);
|
||||||
|
|
||||||
GlobalUnlock(handle);
|
GlobalUnlock(handle);
|
||||||
SetClipboardData(CF_UNICODETEXT, handle);
|
SetClipboardData(CF_UNICODETEXT, handle);
|
||||||
|
|
Loading…
Reference in New Issue