Index: uspace/srv/hid/display/wmops.c
===================================================================
--- uspace/srv/hid/display/wmops.c	(revision 3c54869a5b618845c19d4f6200ee90ac99a446aa)
+++ uspace/srv/hid/display/wmops.c	(revision d5f4459ba692b00d99d79ac8d052bbe4cb22265d)
@@ -47,4 +47,5 @@
 static errno_t dispwm_get_window_info(void *, sysarg_t, wndmgt_window_info_t **);
 static errno_t dispwm_activate_window(void *, sysarg_t, sysarg_t);
+static errno_t dispwm_deactivate_window(void *, sysarg_t, sysarg_t);
 static errno_t dispwm_close_window(void *, sysarg_t);
 static errno_t dispwm_get_event(void *, wndmgt_ev_t *);
@@ -54,4 +55,5 @@
 	.get_window_info = dispwm_get_window_info,
 	.activate_window = dispwm_activate_window,
+	.deactivate_window = dispwm_deactivate_window,
 	.close_window = dispwm_close_window,
 	.get_event = dispwm_get_event,
@@ -189,4 +191,32 @@
 }
 
+/** Deactivate (minimize) window.
+ *
+ * @param arg Argument (WM client)
+ * @param dev_id Input device ID
+ * @param wnd_id Window ID
+ * @return EOK on success or an error code
+ */
+static errno_t dispwm_deactivate_window(void *arg, sysarg_t dev_id,
+    sysarg_t wnd_id)
+{
+	ds_wmclient_t *wmclient = (ds_wmclient_t *)arg;
+	ds_window_t *wnd;
+
+	log_msg(LOG_DEFAULT, LVL_DEBUG, "dispwm_deactivate_window()");
+
+	ds_display_lock(wmclient->display);
+	wnd = ds_display_find_window(wmclient->display, wnd_id);
+	if (wnd == NULL) {
+		ds_display_unlock(wmclient->display);
+		return ENOENT;
+	}
+
+	ds_window_minimize(wnd);
+
+	ds_display_unlock(wmclient->display);
+	return EOK;
+}
+
 /** Close window.
  *
