fix clipboard pasting
This commit is contained in:
parent
e42372cb17
commit
a9607ec0cd
14
platform.d
14
platform.d
@ -425,6 +425,7 @@ enum Atoms
|
||||
WMProtocols,
|
||||
DeleteWindow,
|
||||
StateHidden,
|
||||
XselData,
|
||||
Max,
|
||||
}
|
||||
|
||||
@ -438,6 +439,7 @@ const char[][] ATOM_STRS = [
|
||||
Atoms.WMProtocols: CastStr!(char)("WM_PROTOCOLS"),
|
||||
Atoms.DeleteWindow: CastStr!(char)("WM_DELETE_WINDOW"),
|
||||
Atoms.StateHidden: CastStr!(char)("_NET_WM_STATE_HIDDEN"),
|
||||
Atoms.XselData: CastStr!(char)("XSEL_DATA"),
|
||||
];
|
||||
|
||||
alias PThreadProc = extern (C) void* function(void*);
|
||||
@ -1059,19 +1061,14 @@ ClipboardText(PlatformWindow* w, ClipboardMode mode)
|
||||
if(sel.owned)
|
||||
{
|
||||
buf = GetClipboardSelection(w, sel);
|
||||
Unlock(&w.cb_mut);
|
||||
}
|
||||
else
|
||||
{
|
||||
Window owner = XGetSelectionOwner(w.display, sel.xmode);
|
||||
|
||||
if(owner == None)
|
||||
{
|
||||
Free(sel.data);
|
||||
sel.data = [];
|
||||
|
||||
Unlock(&w.cb_mut);
|
||||
|
||||
u64 ticket = w.cb_mut.next_ticket;
|
||||
u64 ticket = Unlock(&w.cb_mut)+1;
|
||||
|
||||
sel.target = w.atoms[Atoms.Utf8String];
|
||||
XConvertSelection(w.display, sel.xmode, sel.target, sel.xmode, w.window, CurrentTime);
|
||||
@ -1081,9 +1078,6 @@ ClipboardText(PlatformWindow* w, ClipboardMode mode)
|
||||
|
||||
buf = GetClipboardSelection(w, sel);
|
||||
}
|
||||
}
|
||||
|
||||
Unlock(&w.cb_mut);
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user