Rewrite mouse-demo drop to use OnDnDData API; fix QueueDnDData bugs

Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/3359d812-5cb2-44a6-ae6e-ba1d708c490a

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-16 15:32:49 +00:00
committed by GitHub
parent f8dd59ebb0
commit 2e314ecba9
2 changed files with 47 additions and 148 deletions

View File

@@ -673,13 +673,10 @@ func (self *Loop) QueueDnDData(metadata map[string]string, payload string, as_ba
b := strings.Builder{}
b.Grow(64)
fmt.Fprintf(&b, "\x1b]%d;", kitty.DndCode)
is_first := false
sep := ""
for key, val := range metadata {
if !is_first {
b.WriteString(":")
}
is_first = false
fmt.Fprintf(&b, "%s=%s", key, val)
fmt.Fprintf(&b, "%s%s=%s", sep, key, val)
sep = ":"
}
payload_sz := len(payload)
if payload_sz == 0 {
@@ -699,7 +696,7 @@ func (self *Loop) QueueDnDData(metadata map[string]string, payload string, as_ba
is_last := end >= len(payload)
end = min(end, len(payload))
if i == 0 {
fmt.Fprintf(&b, "m=%d;", utils.IfElse(is_last, 0, 1))
fmt.Fprintf(&b, "%sm=%d;", sep, utils.IfElse(is_last, 0, 1))
self.QueueWriteString(b.String())
} else {
self.QueueWriteString(fmt.Sprintf("\x1b]%d;m=%d;", kitty.DndCode, utils.IfElse(is_last, 0, 1)))