Index: uspace/srv/hid/display/dsops.c
===================================================================
--- uspace/srv/hid/display/dsops.c	(revision 7470d97aaec04abd08ce2ad450cda9e6ff912bd4)
+++ uspace/srv/hid/display/dsops.c	(revision c9927c664d54127a7f3eb509f6129ebca2f158f1)
@@ -48,4 +48,5 @@
 static errno_t disp_window_move_req(void *, sysarg_t, gfx_coord2_t *);
 static errno_t disp_window_move(void *, sysarg_t, gfx_coord2_t *);
+static errno_t disp_window_get_pos(void *, sysarg_t, gfx_coord2_t *);
 static errno_t disp_window_resize_req(void *, sysarg_t,
     display_wnd_rsztype_t, gfx_coord2_t *);
@@ -61,4 +62,5 @@
 	.window_move_req = disp_window_move_req,
 	.window_move = disp_window_move,
+	.window_get_pos = disp_window_get_pos,
 	.window_resize_req = disp_window_resize_req,
 	.window_resize = disp_window_resize,
@@ -162,4 +164,24 @@
 }
 
+static errno_t disp_window_get_pos(void *arg, sysarg_t wnd_id,
+    gfx_coord2_t *pos)
+{
+	ds_client_t *client = (ds_client_t *) arg;
+	ds_window_t *wnd;
+
+	ds_display_lock(client->display);
+
+	wnd = ds_client_find_window(client, wnd_id);
+	if (wnd == NULL) {
+		ds_display_unlock(client->display);
+		return ENOENT;
+	}
+
+	log_msg(LOG_DEFAULT, LVL_DEBUG, "disp_window_get_pos()");
+	ds_window_get_pos(wnd, pos);
+	ds_display_unlock(client->display);
+	return EOK;
+}
+
 static errno_t disp_window_resize_req(void *arg, sysarg_t wnd_id,
     display_wnd_rsztype_t rsztype, gfx_coord2_t *pos)
Index: uspace/srv/hid/display/window.c
===================================================================
--- uspace/srv/hid/display/window.c	(revision 7470d97aaec04abd08ce2ad450cda9e6ff912bd4)
+++ uspace/srv/hid/display/window.c	(revision c9927c664d54127a7f3eb509f6129ebca2f158f1)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2019 Jiri Svoboda
+ * Copyright (c) 2021 Jiri Svoboda
  * All rights reserved.
  *
@@ -658,4 +658,13 @@
 }
 
+/** Get window position.
+ *
+ * @param wnd Window
+ */
+void ds_window_get_pos(ds_window_t *wnd, gfx_coord2_t *dpos)
+{
+	*dpos = wnd->dpos;
+}
+
 /** Start resizing a window, detected by client.
  *
Index: uspace/srv/hid/display/window.h
===================================================================
--- uspace/srv/hid/display/window.h	(revision 7470d97aaec04abd08ce2ad450cda9e6ff912bd4)
+++ uspace/srv/hid/display/window.h	(revision c9927c664d54127a7f3eb509f6129ebca2f158f1)
@@ -63,4 +63,5 @@
 extern void ds_window_move_req(ds_window_t *, gfx_coord2_t *);
 extern void ds_window_move(ds_window_t *, gfx_coord2_t *);
+extern void ds_window_get_pos(ds_window_t *, gfx_coord2_t *);
 extern void ds_window_resize_req(ds_window_t *, display_wnd_rsztype_t,
     gfx_coord2_t *);
