Index: uspace/lib/display/include/disp_srv.h
===================================================================
--- uspace/lib/display/include/disp_srv.h	(revision 46a47c0ecde5eec9824d8b22b70d9238a2b3a58e)
+++ uspace/lib/display/include/disp_srv.h	(revision aaa3b8559887e8c56581eac6c3c9bb56468150aa)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2022 Jiri Svoboda
+ * Copyright (c) 2023 Jiri Svoboda
  * All rights reserved.
  *
@@ -59,5 +59,5 @@
 	errno_t (*window_move_req)(void *, sysarg_t, gfx_coord2_t *);
 	errno_t (*window_resize_req)(void *, sysarg_t, display_wnd_rsztype_t,
-	    gfx_coord2_t *);
+	    gfx_coord2_t *, sysarg_t);
 	errno_t (*window_move)(void *, sysarg_t, gfx_coord2_t *);
 	errno_t (*window_get_pos)(void *, sysarg_t, gfx_coord2_t *);
Index: uspace/lib/display/include/display.h
===================================================================
--- uspace/lib/display/include/display.h	(revision 46a47c0ecde5eec9824d8b22b70d9238a2b3a58e)
+++ uspace/lib/display/include/display.h	(revision aaa3b8559887e8c56581eac6c3c9bb56468150aa)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2022 Jiri Svoboda
+ * Copyright (c) 2023 Jiri Svoboda
  * All rights reserved.
  *
@@ -56,5 +56,5 @@
 extern errno_t display_window_move_req(display_window_t *, gfx_coord2_t *);
 extern errno_t display_window_resize_req(display_window_t *,
-    display_wnd_rsztype_t, gfx_coord2_t *);
+    display_wnd_rsztype_t, gfx_coord2_t *, sysarg_t);
 extern errno_t display_window_move(display_window_t *, gfx_coord2_t *);
 extern errno_t display_window_get_pos(display_window_t *, gfx_coord2_t *);
Index: uspace/lib/display/src/disp_srv.c
===================================================================
--- uspace/lib/display/src/disp_srv.c	(revision 46a47c0ecde5eec9824d8b22b70d9238a2b3a58e)
+++ uspace/lib/display/src/disp_srv.c	(revision aaa3b8559887e8c56581eac6c3c9bb56468150aa)
@@ -320,4 +320,5 @@
 	display_wnd_rsztype_t rsztype;
 	gfx_coord2_t pos;
+	sysarg_t pos_id;
 	size_t size;
 	errno_t rc;
@@ -325,4 +326,5 @@
 	wnd_id = ipc_get_arg1(icall);
 	rsztype = (display_wnd_rsztype_t) ipc_get_arg2(icall);
+	pos_id = ipc_get_arg3(icall);
 
 	if (!async_data_write_receive(&call, &size)) {
@@ -350,5 +352,6 @@
 	}
 
-	rc = srv->ops->window_resize_req(srv->arg, wnd_id, rsztype, &pos);
+	rc = srv->ops->window_resize_req(srv->arg, wnd_id, rsztype, &pos,
+	    pos_id);
 	async_answer_0(icall, rc);
 }
Index: uspace/lib/display/src/display.c
===================================================================
--- uspace/lib/display/src/display.c	(revision 46a47c0ecde5eec9824d8b22b70d9238a2b3a58e)
+++ uspace/lib/display/src/display.c	(revision aaa3b8559887e8c56581eac6c3c9bb56468150aa)
@@ -414,17 +414,18 @@
  * @param rsztype Resize type (which part of window frame is being dragged)
  * @param pos Position in the window where the button was pressed
+ * @param pos_id Positioning device ID
  * @return EOK on success or an error code
  */
 errno_t display_window_resize_req(display_window_t *window,
-    display_wnd_rsztype_t rsztype, gfx_coord2_t *pos)
-{
-	async_exch_t *exch;
-	aid_t req;
-	ipc_call_t answer;
-	errno_t rc;
-
-	exch = async_exchange_begin(window->display->sess);
-	req = async_send_2(exch, DISPLAY_WINDOW_RESIZE_REQ, window->id,
-	    (sysarg_t) rsztype, &answer);
+    display_wnd_rsztype_t rsztype, gfx_coord2_t *pos, sysarg_t pos_id)
+{
+	async_exch_t *exch;
+	aid_t req;
+	ipc_call_t answer;
+	errno_t rc;
+
+	exch = async_exchange_begin(window->display->sess);
+	req = async_send_3(exch, DISPLAY_WINDOW_RESIZE_REQ, window->id,
+	    (sysarg_t) rsztype, pos_id, &answer);
 	rc = async_data_write_start(exch, (void *)pos, sizeof (gfx_coord2_t));
 	async_exchange_end(exch);
Index: uspace/lib/display/test/display.c
===================================================================
--- uspace/lib/display/test/display.c	(revision 46a47c0ecde5eec9824d8b22b70d9238a2b3a58e)
+++ uspace/lib/display/test/display.c	(revision aaa3b8559887e8c56581eac6c3c9bb56468150aa)
@@ -63,5 +63,5 @@
 static errno_t test_window_get_max_rect(void *, sysarg_t, gfx_rect_t *);
 static errno_t test_window_resize_req(void *, sysarg_t, display_wnd_rsztype_t,
-    gfx_coord2_t *);
+    gfx_coord2_t *, sysarg_t);
 static errno_t test_window_resize(void *, sysarg_t, gfx_coord2_t *,
     gfx_rect_t *);
@@ -141,4 +141,5 @@
 	display_wnd_rsztype_t resize_req_rsztype;
 	gfx_coord2_t resize_req_pos;
+	sysarg_t resize_req_pos_id;
 
 	bool window_resize_called;
@@ -831,4 +832,5 @@
 	display_wnd_rsztype_t rsztype;
 	gfx_coord2_t pos;
+	sysarg_t pos_id;
 
 	async_set_fallback_port_handler(test_display_conn, &resp);
@@ -863,6 +865,7 @@
 	pos.x = 42;
 	pos.y = 43;
-
-	rc = display_window_resize_req(wnd, rsztype, &pos);
+	pos_id = 44;
+
+	rc = display_window_resize_req(wnd, rsztype, &pos, pos_id);
 	PCUT_ASSERT_TRUE(resp.window_resize_req_called);
 	PCUT_ASSERT_ERRNO_VAL(resp.rc, rc);
@@ -871,4 +874,5 @@
 	PCUT_ASSERT_INT_EQUALS(pos.x, resp.resize_req_pos.x);
 	PCUT_ASSERT_INT_EQUALS(pos.y, resp.resize_req_pos.y);
+	PCUT_ASSERT_INT_EQUALS(pos_id, resp.resize_req_pos_id);
 
 	display_window_destroy(wnd);
@@ -889,4 +893,5 @@
 	display_wnd_rsztype_t rsztype;
 	gfx_coord2_t pos;
+	sysarg_t pos_id;
 
 	async_set_fallback_port_handler(test_display_conn, &resp);
@@ -921,6 +926,7 @@
 	pos.x = 42;
 	pos.y = 43;
-
-	rc = display_window_resize_req(wnd, rsztype, &pos);
+	pos_id = 44;
+
+	rc = display_window_resize_req(wnd, rsztype, &pos, pos_id);
 	PCUT_ASSERT_TRUE(resp.window_resize_req_called);
 	PCUT_ASSERT_ERRNO_VAL(resp.rc, rc);
@@ -929,4 +935,5 @@
 	PCUT_ASSERT_INT_EQUALS(pos.x, resp.resize_req_pos.x);
 	PCUT_ASSERT_INT_EQUALS(pos.y, resp.resize_req_pos.y);
+	PCUT_ASSERT_INT_EQUALS(pos_id, resp.resize_req_pos_id);
 
 	display_window_destroy(wnd);
@@ -2188,5 +2195,5 @@
 
 static errno_t test_window_resize_req(void *arg, sysarg_t wnd_id,
-    display_wnd_rsztype_t rsztype, gfx_coord2_t *pos)
+    display_wnd_rsztype_t rsztype, gfx_coord2_t *pos, sysarg_t pos_id)
 {
 	test_response_t *resp = (test_response_t *) arg;
@@ -2196,4 +2203,5 @@
 	resp->resize_req_wnd_id = wnd_id;
 	resp->resize_req_pos = *pos;
+	resp->resize_req_pos_id = pos_id;
 	return resp->rc;
 }
