More work on the dnd kitten

This commit is contained in:
Kovid Goyal
2026-05-01 12:37:35 +05:30
parent 614a32c790
commit 197115cb95
8 changed files with 77 additions and 14 deletions

View File

@@ -33,7 +33,8 @@ func (dnd *dnd) on_potential_drag_start(cell_x, cell_y int) (err error) {
s := dnd.drag_sources[mt]
if len(s.data) > 0 && len(s.data)+total_preloaded_data_sz < 64*1024*1024 {
total_preloaded_data_sz += len(s.data)
dnd.lp.QueueDnDData(DC{Type: 'p', X: i, Operation: actions, Payload: utils.UnsafeStringToBytes(strings.Join(mimes, " "))})
dnd.lp.QueueDnDData(DC{Type: 'p', X: i, Operation: actions, Payload: s.data})
dnd.lp.QueueDnDData(DC{Type: 'p', X: i, Operation: actions})
}
}
// TODO: set the drag image
@@ -56,3 +57,16 @@ func (dnd *dnd) on_drag_error(cmd DC) (err error) {
}
return
}
func (dnd *dnd) reset_drag() {
dnd.drag_status = drag_status{}
}
func (dnd *dnd) on_drag_event(x, y int) (err error) {
switch x {
case 4:
dnd.reset_drag()
return dnd.render_screen()
}
return
}

View File

@@ -220,6 +220,8 @@ func (dnd *dnd) run_loop() (err error) {
dnd.send_test_response(utils.IfElse(dnd.drop_status.is_remote_client, "True", "False"))
case "DROP_URI_LIST":
dnd.send_test_response(strings.Join(dnd.drop_status.uri_list, "|"))
case "DRAG_ACTIVE":
dnd.send_test_response(utils.IfElse(dnd.drag_status.active, "DRAG_ACTIVE", "DRAG_INACTIVE"))
default:
dnd.send_test_response("UNKNOWN TEST COMMAND: " + string(cmd.Payload))
}
@@ -246,6 +248,8 @@ func (dnd *dnd) run_loop() (err error) {
return dnd.on_potential_drag_start(cmd.X, cmd.Y)
case 'E':
return dnd.on_drag_error(cmd)
case 'e':
return dnd.on_drag_event(cmd.X, cmd.Y)
}
return nil
}