Index: uspace/lib/ui/src/window.c
===================================================================
--- uspace/lib/ui/src/window.c	(revision 90f1f1988231da4facc94fa385270f4748b2e9cd)
+++ uspace/lib/ui/src/window.c	(revision 1b7b7aff32d0dd8183160089c5b1fa67735d20ce)
@@ -646,4 +646,19 @@
 }
 
+/** Set cursor when pointer is hovering over a control.
+ *
+ * @param window Window
+ * @param cursor Cursor
+ */
+void ui_window_set_ctl_cursor(ui_window_t *window, ui_stock_cursor_t cursor)
+{
+	display_stock_cursor_t dcursor;
+
+	dcursor = wnd_dcursor_from_cursor(cursor);
+
+	if (window->dwindow != NULL)
+		(void) display_window_set_cursor(window->dwindow, dcursor);
+}
+
 /** Paint window
  *
@@ -770,18 +785,12 @@
 }
 
-/** Window decoration requested changing cursor.
- *
- * @param wdecor Window decoration
- * @param arg Argument (window)
- * @param cursor Cursor to set
- */
-static void wd_set_cursor(ui_wdecor_t *wdecor, void *arg,
-    ui_stock_cursor_t cursor)
-{
-	ui_window_t *window = (ui_window_t *) arg;
+/** Get display stock cursor from UI stock cursor.
+ *
+ * @param cursor UI stock cursor
+ * @return Display stock cursor
+ */
+display_stock_cursor_t wnd_dcursor_from_cursor(ui_stock_cursor_t cursor)
+{
 	display_stock_cursor_t dcursor;
-
-	if (cursor == window->cursor)
-		return;
 
 	dcursor = dcurs_arrow;
@@ -803,8 +812,32 @@
 		dcursor = dcurs_size_urdl;
 		break;
-	}
+	case ui_curs_ibeam:
+		dcursor = dcurs_ibeam;
+		break;
+	}
+
+	return dcursor;
+}
+
+/** Window decoration requested changing cursor.
+ *
+ * @param wdecor Window decoration
+ * @param arg Argument (window)
+ * @param cursor Cursor to set
+ */
+static void wd_set_cursor(ui_wdecor_t *wdecor, void *arg,
+    ui_stock_cursor_t cursor)
+{
+	ui_window_t *window = (ui_window_t *) arg;
+	display_stock_cursor_t dcursor;
+
+	if (cursor == window->cursor)
+		return;
+
+	dcursor = wnd_dcursor_from_cursor(cursor);
 
 	if (window->dwindow != NULL)
 		(void) display_window_set_cursor(window->dwindow, dcursor);
+
 	window->cursor = cursor;
 }
