mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-05-13 08:26:56 +00:00
Change drag offer error responses from t=R to t=E in dnd.c and dnd.py
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/b0dd4978-d0b4-42a3-81e0-51b5ce155db9 Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
This commit is contained in:
parent
eda9fb58a4
commit
0a8713972c
2 changed files with 14 additions and 14 deletions
|
|
@ -1084,7 +1084,7 @@ static void
|
|||
drag_send_error(Window *w, int error_code) {
|
||||
char buf[128];
|
||||
const char *e = get_errno_name(error_code);
|
||||
int header_size = snprintf(buf, sizeof(buf), "\x1b]%d;t=R", DND_CODE);
|
||||
int header_size = snprintf(buf, sizeof(buf), "\x1b]%d;t=E", DND_CODE);
|
||||
queue_payload_to_child(
|
||||
w->id, w->drag_source.client_id, &w->drag_source.pending, buf, header_size, e, strlen(e), false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1276,7 +1276,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_offer_mimes(0, 'text/plain'))
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), b'EINVAL')
|
||||
|
||||
def test_drag_offer_copy_only(self) -> None:
|
||||
|
|
@ -1315,7 +1315,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_pre_send(5, data))
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), b'EINVAL')
|
||||
|
||||
def test_drag_pre_send_data_moderate_chunk(self) -> None:
|
||||
|
|
@ -1337,7 +1337,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_pre_send(0, data))
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), b'EINVAL')
|
||||
|
||||
def test_drag_add_image_rgba_valid(self) -> None:
|
||||
|
|
@ -1370,7 +1370,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_add_image(1, 16, 2, 2, data_b64))
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), b'EINVAL')
|
||||
|
||||
def test_drag_add_image_invalid_dimensions_returns_einval(self) -> None:
|
||||
|
|
@ -1383,7 +1383,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_add_image(1, 24, 0, 2, data_b64))
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), b'EINVAL')
|
||||
|
||||
def test_drag_add_image_without_offer_returns_einval(self) -> None:
|
||||
|
|
@ -1394,7 +1394,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_add_image(1, 32, 2, 2, data_b64))
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), b'EINVAL')
|
||||
|
||||
def test_drag_add_too_many_images_returns_error(self) -> None:
|
||||
|
|
@ -1415,7 +1415,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_add_image(15, 32, 2, 2, data_b64))
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
|
||||
def test_drag_start_no_real_window_returns_einval_or_eperm(self) -> None:
|
||||
"""Starting a drag with a fake window (no GLFW handle) returns EINVAL or EPERM."""
|
||||
|
|
@ -1426,7 +1426,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_start())
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
# Error is EINVAL because osw->handle is NULL
|
||||
self.assertIn(events[0]['payload'].strip(), [b'EINVAL', b'EPERM'])
|
||||
|
||||
|
|
@ -1436,7 +1436,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_start())
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), b'EINVAL')
|
||||
|
||||
def test_drag_free_offer_cleans_up(self) -> None:
|
||||
|
|
@ -1456,7 +1456,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_pre_send(0, data))
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), b'EINVAL')
|
||||
|
||||
def test_drag_cancel_from_client(self) -> None:
|
||||
|
|
@ -1471,7 +1471,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_start())
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), b'EINVAL')
|
||||
|
||||
def test_drag_second_offer_replaces_first(self) -> None:
|
||||
|
|
@ -1500,7 +1500,7 @@ class TestDnDProtocol(BaseTest):
|
|||
parse_bytes(screen, client_drag_start(client_id=client_id))
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['meta'].get('i'), str(client_id))
|
||||
|
||||
def test_drag_change_image_before_start(self) -> None:
|
||||
|
|
@ -1640,7 +1640,7 @@ class TestDnDProtocol(BaseTest):
|
|||
def assert_error(self, cap, wid, code='EINVAL'):
|
||||
events = self._get_events(cap, wid)
|
||||
self.assertEqual(len(events), 1, events)
|
||||
self.ae(events[0]['type'], 'R')
|
||||
self.ae(events[0]['type'], 'E')
|
||||
self.ae(events[0]['payload'].strip(), code.encode())
|
||||
|
||||
def test_drag_pre_send_multiple_mimes(self) -> None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue