mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-23 08:47:47 +02:00
More work on the dnd kitten
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user