Index: uspace/lib/ui/include/types/ui/wdecor.h
===================================================================
--- uspace/lib/ui/include/types/ui/wdecor.h	(revision b0ae23fe23288a6b5e26debedde1069676c9544e)
+++ uspace/lib/ui/include/types/ui/wdecor.h	(revision 3be53668a72d42907f6124a3b95374fde7f15a53)
@@ -85,5 +85,5 @@
 	void (*unmaximize)(ui_wdecor_t *, void *);
 	void (*close)(ui_wdecor_t *, void *);
-	void (*move)(ui_wdecor_t *, void *, gfx_coord2_t *);
+	void (*move)(ui_wdecor_t *, void *, gfx_coord2_t *, sysarg_t);
 	void (*resize)(ui_wdecor_t *, void *, ui_wdecor_rsztype_t,
 	    gfx_coord2_t *, sysarg_t);
Index: uspace/lib/ui/private/wdecor.h
===================================================================
--- uspace/lib/ui/private/wdecor.h	(revision b0ae23fe23288a6b5e26debedde1069676c9544e)
+++ uspace/lib/ui/private/wdecor.h	(revision 3be53668a72d42907f6124a3b95374fde7f15a53)
@@ -98,5 +98,5 @@
 extern void ui_wdecor_unmaximize(ui_wdecor_t *);
 extern void ui_wdecor_close(ui_wdecor_t *);
-extern void ui_wdecor_move(ui_wdecor_t *, gfx_coord2_t *);
+extern void ui_wdecor_move(ui_wdecor_t *, gfx_coord2_t *, sysarg_t);
 extern void ui_wdecor_resize(ui_wdecor_t *, ui_wdecor_rsztype_t,
     gfx_coord2_t *, sysarg_t);
Index: uspace/lib/ui/src/wdecor.c
===================================================================
--- uspace/lib/ui/src/wdecor.c	(revision b0ae23fe23288a6b5e26debedde1069676c9544e)
+++ uspace/lib/ui/src/wdecor.c	(revision 3be53668a72d42907f6124a3b95374fde7f15a53)
@@ -465,9 +465,10 @@
  * @param wdecor Window decoration
  * @param pos Position where the title bar was pressed
- */
-void ui_wdecor_move(ui_wdecor_t *wdecor, gfx_coord2_t *pos)
+ * @param pos_id Positioning device ID
+ */
+void ui_wdecor_move(ui_wdecor_t *wdecor, gfx_coord2_t *pos, sysarg_t pos_id)
 {
 	if (wdecor->cb != NULL && wdecor->cb->move != NULL)
-		wdecor->cb->move(wdecor, wdecor->arg, pos);
+		wdecor->cb->move(wdecor, wdecor->arg, pos, pos_id);
 }
 
@@ -812,4 +813,5 @@
 {
 	gfx_coord2_t pos;
+	sysarg_t pos_id;
 	ui_wdecor_rsztype_t rsztype;
 	ui_stock_cursor_t cursor;
@@ -817,4 +819,5 @@
 	pos.x = event->hpos;
 	pos.y = event->vpos;
+	pos_id = event->pos_id;
 
 	/* Set appropriate resizing cursor, or set arrow cursor */
@@ -827,5 +830,5 @@
 	/* Press on window border? */
 	if (rsztype != ui_wr_none && event->type == POS_PRESS)
-		ui_wdecor_resize(wdecor, rsztype, &pos, event->pos_id);
+		ui_wdecor_resize(wdecor, rsztype, &pos, pos_id);
 }
 
@@ -839,4 +842,5 @@
 {
 	gfx_coord2_t pos;
+	sysarg_t pos_id;
 	ui_wdecor_geom_t geom;
 	ui_evclaim_t claim;
@@ -844,4 +848,5 @@
 	pos.x = event->hpos;
 	pos.y = event->vpos;
+	pos_id = event->pos_id;
 
 	ui_wdecor_get_geom(wdecor, &geom);
@@ -870,5 +875,5 @@
 		if (event->type == POS_PRESS &&
 		    gfx_pix_inside_rect(&pos, &geom.title_bar_rect)) {
-			ui_wdecor_move(wdecor, &pos);
+			ui_wdecor_move(wdecor, &pos, pos_id);
 			return ui_claimed;
 		}
Index: uspace/lib/ui/src/window.c
===================================================================
--- uspace/lib/ui/src/window.c	(revision b0ae23fe23288a6b5e26debedde1069676c9544e)
+++ uspace/lib/ui/src/window.c	(revision 3be53668a72d42907f6124a3b95374fde7f15a53)
@@ -78,5 +78,5 @@
 static void wd_unmaximize(ui_wdecor_t *, void *);
 static void wd_close(ui_wdecor_t *, void *);
-static void wd_move(ui_wdecor_t *, void *, gfx_coord2_t *);
+static void wd_move(ui_wdecor_t *, void *, gfx_coord2_t *, sysarg_t);
 static void wd_resize(ui_wdecor_t *, void *, ui_wdecor_rsztype_t,
     gfx_coord2_t *, sysarg_t);
@@ -973,11 +973,13 @@
  * @param arg Argument (window)
  * @param pos Position where the title bar was pressed
- */
-static void wd_move(ui_wdecor_t *wdecor, void *arg, gfx_coord2_t *pos)
+ * @param pos_id Positioning device ID
+ */
+static void wd_move(ui_wdecor_t *wdecor, void *arg, gfx_coord2_t *pos,
+    sysarg_t pos_id)
 {
 	ui_window_t *window = (ui_window_t *) arg;
 
 	if (window->dwindow != NULL)
-		(void) display_window_move_req(window->dwindow, pos);
+		(void) display_window_move_req(window->dwindow, pos, pos_id);
 }
 
Index: uspace/lib/ui/test/wdecor.c
===================================================================
--- uspace/lib/ui/test/wdecor.c	(revision b0ae23fe23288a6b5e26debedde1069676c9544e)
+++ uspace/lib/ui/test/wdecor.c	(revision 3be53668a72d42907f6124a3b95374fde7f15a53)
@@ -66,5 +66,5 @@
 static void test_wdecor_unmaximize(ui_wdecor_t *, void *);
 static void test_wdecor_close(ui_wdecor_t *, void *);
-static void test_wdecor_move(ui_wdecor_t *, void *, gfx_coord2_t *);
+static void test_wdecor_move(ui_wdecor_t *, void *, gfx_coord2_t *, sysarg_t);
 static void test_wdecor_resize(ui_wdecor_t *, void *, ui_wdecor_rsztype_t,
     gfx_coord2_t *, sysarg_t);
@@ -339,4 +339,5 @@
 	test_cb_resp_t resp;
 	gfx_coord2_t pos;
+	sysarg_t pos_id;
 
 	rc = ui_wdecor_create(NULL, "Hello", ui_wds_none, &wdecor);
@@ -345,11 +346,12 @@
 	pos.x = 3;
 	pos.y = 4;
+	pos_id = 5;
 
 	/* Move callback with no callbacks set */
-	ui_wdecor_move(wdecor, &pos);
+	ui_wdecor_move(wdecor, &pos, pos_id);
 
 	/* Move callback with move callback not implemented */
 	ui_wdecor_set_cb(wdecor, &dummy_wdecor_cb, NULL);
-	ui_wdecor_move(wdecor, &pos);
+	ui_wdecor_move(wdecor, &pos, pos_id);
 
 	/* Move callback with real callback set */
@@ -357,9 +359,11 @@
 	resp.pos.x = 0;
 	resp.pos.y = 0;
+	resp.pos_id = 0;
 	ui_wdecor_set_cb(wdecor, &test_wdecor_cb, &resp);
-	ui_wdecor_move(wdecor, &pos);
+	ui_wdecor_move(wdecor, &pos, pos_id);
 	PCUT_ASSERT_TRUE(resp.move);
 	PCUT_ASSERT_INT_EQUALS(pos.x, resp.pos.x);
 	PCUT_ASSERT_INT_EQUALS(pos.y, resp.pos.y);
+	PCUT_ASSERT_INT_EQUALS(pos_id, resp.pos_id);
 
 	ui_wdecor_destroy(wdecor);
@@ -1075,5 +1079,6 @@
 }
 
-static void test_wdecor_move(ui_wdecor_t *wdecor, void *arg, gfx_coord2_t *pos)
+static void test_wdecor_move(ui_wdecor_t *wdecor, void *arg, gfx_coord2_t *pos,
+    sysarg_t pos_id)
 {
 	test_cb_resp_t *resp = (test_cb_resp_t *) arg;
@@ -1081,4 +1086,5 @@
 	resp->move = true;
 	resp->pos = *pos;
+	resp->pos_id = pos_id;
 }
 
