diff --git a/tools/tui/loop/api.go b/tools/tui/loop/api.go index 891ba5438..1d102daa3 100644 --- a/tools/tui/loop/api.go +++ b/tools/tui/loop/api.go @@ -70,6 +70,10 @@ type Loop struct { style_ctx style.Context atomic_update_active bool pointer_shapes []PointerShape + dnd_chunking struct { + active bool + metadata DndCommand + } // Queried capabilities from terminal TerminalCapabilities TerminalCapabilities diff --git a/tools/tui/loop/run.go b/tools/tui/loop/run.go index 1a9c1aa79..17567f03d 100644 --- a/tools/tui/loop/run.go +++ b/tools/tui/loop/run.go @@ -271,6 +271,16 @@ func (self *Loop) handle_dnd(data []byte) error { } } } + if self.dnd_chunking.active { + self.dnd_chunking.metadata.Payload = cmd.Payload + self.dnd_chunking.metadata.Has_more = cmd.Has_more + self.dnd_chunking.active = cmd.Has_more + return self.OnDnDData(self.dnd_chunking.metadata) + } + if cmd.Has_more { + self.dnd_chunking.active = true + self.dnd_chunking.metadata = cmd + } return self.OnDnDData(cmd) }