Index: uspace/lib/ui/include/types/ui/wdecor.h
===================================================================
--- uspace/lib/ui/include/types/ui/wdecor.h	(revision 2d879f7e702c10a9b3cc8fe266982c468d020f00)
+++ uspace/lib/ui/include/types/ui/wdecor.h	(revision 7b1bfdb17fcc330a202d54d51981d796f7af52f7)
@@ -45,6 +45,16 @@
 /** Window decoration style */
 typedef enum {
+	/** No style bits */
 	ui_wds_none = 0x0,
-	ui_wds_resizable = 0x1
+	/** Window has a frame */
+	ui_wds_frame = 0x1,
+	/** Window has a title bar */
+	ui_wds_titlebar = 0x2,
+	/** Window has a close button */
+	ui_wds_close_btn = 0x4,
+	/** Window is resizable */
+	ui_wds_resizable = 0x8,
+	/** Window is decorated (default decoration) */
+	ui_wds_decorated = ui_wds_frame | ui_wds_titlebar | ui_wds_close_btn
 } ui_wdecor_style_t;
 
Index: uspace/lib/ui/include/types/ui/window.h
===================================================================
--- uspace/lib/ui/include/types/ui/window.h	(revision 2d879f7e702c10a9b3cc8fe266982c468d020f00)
+++ uspace/lib/ui/include/types/ui/window.h	(revision 7b1bfdb17fcc330a202d54d51981d796f7af52f7)
@@ -56,5 +56,7 @@
 	ui_wnd_place_bottom_left,
 	/** Place window to the bottom-right corner of the screen */
-	ui_wnd_place_bottom_right
+	ui_wnd_place_bottom_right,
+	/** Place window accross the entire screen */
+	ui_wnd_place_full_screen
 } ui_wnd_placement_t;
 
Index: uspace/lib/ui/include/ui/wdecor.h
===================================================================
--- uspace/lib/ui/include/ui/wdecor.h	(revision 2d879f7e702c10a9b3cc8fe266982c468d020f00)
+++ uspace/lib/ui/include/ui/wdecor.h	(revision 7b1bfdb17fcc330a202d54d51981d796f7af52f7)
@@ -52,5 +52,6 @@
 extern errno_t ui_wdecor_paint(ui_wdecor_t *);
 extern void ui_wdecor_pos_event(ui_wdecor_t *, pos_event_t *);
-extern void ui_wdecor_rect_from_app(gfx_rect_t *, gfx_rect_t *);
+extern void ui_wdecor_rect_from_app(ui_wdecor_style_t, gfx_rect_t *,
+    gfx_rect_t *);
 
 #endif
Index: uspace/lib/ui/src/wdecor.c
===================================================================
--- uspace/lib/ui/src/wdecor.c	(revision 2d879f7e702c10a9b3cc8fe266982c468d020f00)
+++ uspace/lib/ui/src/wdecor.c	(revision 7b1bfdb17fcc330a202d54d51981d796f7af52f7)
@@ -173,60 +173,66 @@
 	ui_wdecor_get_geom(wdecor, &geom);
 
-	rc = ui_paint_bevel(wdecor->res->gc, &rect,
-	    wdecor->res->wnd_frame_hi_color,
-	    wdecor->res->wnd_frame_sh_color, 1, &rect);
-	if (rc != EOK)
-		return rc;
-
-	rc = ui_paint_bevel(wdecor->res->gc, &rect,
-	    wdecor->res->wnd_highlight_color,
-	    wdecor->res->wnd_shadow_color, 1, &rect);
-	if (rc != EOK)
-		return rc;
-
-	rc = ui_paint_bevel(wdecor->res->gc, &rect,
-	    wdecor->res->wnd_face_color,
-	    wdecor->res->wnd_face_color, 2, &rect);
-	if (rc != EOK)
-		return rc;
-
-	trect = geom.title_bar_rect;
-
-	rc = ui_paint_bevel(wdecor->res->gc, &trect,
-	    wdecor->res->wnd_shadow_color,
-	    wdecor->res->wnd_highlight_color, 1, &trect);
-	if (rc != EOK)
-		return rc;
-
-	rc = gfx_set_color(wdecor->res->gc, wdecor->active ?
-	    wdecor->res->tbar_act_bg_color :
-	    wdecor->res->tbar_inact_bg_color);
-	if (rc != EOK)
-		return rc;
-
-	rc = gfx_fill_rect(wdecor->res->gc, &trect);
-	if (rc != EOK)
-		return rc;
-
-	gfx_text_fmt_init(&fmt);
-	fmt.halign = gfx_halign_center;
-	fmt.valign = gfx_valign_center;
-
-	pos.x = (trect.p0.x + trect.p1.x) / 2;
-	pos.y = (trect.p0.y + trect.p1.y) / 2;
-
-	rc = gfx_set_color(wdecor->res->gc, wdecor->active ?
-	    wdecor->res->tbar_act_text_color :
-	    wdecor->res->tbar_inact_text_color);
-	if (rc != EOK)
-		return rc;
-
-	rc = gfx_puttext(wdecor->res->font, &pos, &fmt, wdecor->caption);
-	if (rc != EOK)
-		return rc;
-
-	rc = ui_pbutton_paint(wdecor->btn_close);
-	if (rc != EOK)
-		return rc;
+	if ((wdecor->style & ui_wds_frame) != 0) {
+		rc = ui_paint_bevel(wdecor->res->gc, &rect,
+		    wdecor->res->wnd_frame_hi_color,
+		    wdecor->res->wnd_frame_sh_color, 1, &rect);
+		if (rc != EOK)
+			return rc;
+
+		rc = ui_paint_bevel(wdecor->res->gc, &rect,
+		    wdecor->res->wnd_highlight_color,
+		    wdecor->res->wnd_shadow_color, 1, &rect);
+		if (rc != EOK)
+			return rc;
+
+		rc = ui_paint_bevel(wdecor->res->gc, &rect,
+		    wdecor->res->wnd_face_color,
+		    wdecor->res->wnd_face_color, 2, &rect);
+		if (rc != EOK)
+			return rc;
+	}
+
+	if ((wdecor->style & ui_wds_titlebar) != 0) {
+		trect = geom.title_bar_rect;
+
+		rc = ui_paint_bevel(wdecor->res->gc, &trect,
+		    wdecor->res->wnd_shadow_color,
+		    wdecor->res->wnd_highlight_color, 1, &trect);
+		if (rc != EOK)
+			return rc;
+
+		rc = gfx_set_color(wdecor->res->gc, wdecor->active ?
+		    wdecor->res->tbar_act_bg_color :
+		    wdecor->res->tbar_inact_bg_color);
+		if (rc != EOK)
+			return rc;
+
+		rc = gfx_fill_rect(wdecor->res->gc, &trect);
+		if (rc != EOK)
+			return rc;
+
+		gfx_text_fmt_init(&fmt);
+		fmt.halign = gfx_halign_center;
+		fmt.valign = gfx_valign_center;
+
+		pos.x = (trect.p0.x + trect.p1.x) / 2;
+		pos.y = (trect.p0.y + trect.p1.y) / 2;
+
+		rc = gfx_set_color(wdecor->res->gc, wdecor->active ?
+		    wdecor->res->tbar_act_text_color :
+		    wdecor->res->tbar_inact_text_color);
+		if (rc != EOK)
+			return rc;
+
+		rc = gfx_puttext(wdecor->res->font, &pos, &fmt, wdecor->caption);
+		if (rc != EOK)
+			return rc;
+
+		if ((wdecor->style & ui_wds_close_btn) != 0) {
+			rc = ui_pbutton_paint(wdecor->btn_close);
+			if (rc != EOK)
+				return rc;
+		}
+	}
 
 	return EOK;
@@ -285,21 +291,44 @@
 void ui_wdecor_get_geom(ui_wdecor_t *wdecor, ui_wdecor_geom_t *geom)
 {
-	geom->interior_rect.p0.x = wdecor->rect.p0.x + 4;
-	geom->interior_rect.p0.y = wdecor->rect.p0.y + 4;
-	geom->interior_rect.p1.x = wdecor->rect.p1.x - 4;
-	geom->interior_rect.p1.y = wdecor->rect.p1.y - 4;
-
-	geom->title_bar_rect.p0 = geom->interior_rect.p0;
-	geom->title_bar_rect.p1.x = geom->interior_rect.p1.x;
-	geom->title_bar_rect.p1.y = geom->interior_rect.p0.y + 22;
-
-	geom->btn_close_rect.p0.x = geom->title_bar_rect.p1.x - 1 - 20;
-	geom->btn_close_rect.p0.y = geom->title_bar_rect.p0.y + 1;
-	geom->btn_close_rect.p1.x = geom->title_bar_rect.p1.x - 1;
-	geom->btn_close_rect.p1.y = geom->title_bar_rect.p0.y + 1 + 20;
-
-	geom->app_area_rect.p0.x = geom->interior_rect.p0.x;
-	geom->app_area_rect.p0.y = geom->title_bar_rect.p1.y;
-	geom->app_area_rect.p1 = geom->interior_rect.p1;
+	/* Does window have a frame? */
+	if ((wdecor->style & ui_wds_frame) != 0) {
+		geom->interior_rect.p0.x = wdecor->rect.p0.x + 4;
+		geom->interior_rect.p0.y = wdecor->rect.p0.y + 4;
+		geom->interior_rect.p1.x = wdecor->rect.p1.x - 4;
+		geom->interior_rect.p1.y = wdecor->rect.p1.y - 4;
+	} else {
+		geom->interior_rect = wdecor->rect;
+	}
+
+	/* Does window have a title bar? */
+	if ((wdecor->style & ui_wds_titlebar) != 0) {
+		geom->title_bar_rect.p0 = geom->interior_rect.p0;
+		geom->title_bar_rect.p1.x = geom->interior_rect.p1.x;
+		geom->title_bar_rect.p1.y = geom->interior_rect.p0.y + 22;
+
+		geom->app_area_rect.p0.x = geom->interior_rect.p0.x;
+		geom->app_area_rect.p0.y = geom->title_bar_rect.p1.y;
+		geom->app_area_rect.p1 = geom->interior_rect.p1;
+	} else {
+		geom->title_bar_rect.p0.x = 0;
+		geom->title_bar_rect.p0.y = 0;
+		geom->title_bar_rect.p1.x = 0;
+		geom->title_bar_rect.p1.y = 0;
+
+		geom->app_area_rect = geom->interior_rect;
+	}
+
+	/* Does window have a close button? */
+	if ((wdecor->style & ui_wds_close_btn) != 0) {
+		geom->btn_close_rect.p0.x = geom->title_bar_rect.p1.x - 1 - 20;
+		geom->btn_close_rect.p0.y = geom->title_bar_rect.p0.y + 1;
+		geom->btn_close_rect.p1.x = geom->title_bar_rect.p1.x - 1;
+		geom->btn_close_rect.p1.y = geom->title_bar_rect.p0.y + 1 + 20;
+	} else {
+		geom->btn_close_rect.p0.x = 0;
+		geom->btn_close_rect.p0.y = 0;
+		geom->btn_close_rect.p1.x = 0;
+		geom->btn_close_rect.p1.y = 0;
+	}
 }
 
@@ -310,13 +339,22 @@
  * and its decoration.
  *
+ * @param style Decoration style
  * @param app Application area rectangle
  * @param rect Place to store (outer) window decoration rectangle
  */
-void ui_wdecor_rect_from_app(gfx_rect_t *app, gfx_rect_t *rect)
-{
-	rect->p0.x = app->p0.x - 4;
-	rect->p0.y = app->p0.y - 22 - 4;
-	rect->p1.x = app->p1.x + 4;
-	rect->p1.y = app->p1.y + 4;
+void ui_wdecor_rect_from_app(ui_wdecor_style_t style, gfx_rect_t *app,
+    gfx_rect_t *rect)
+{
+	*rect = *app;
+
+	if ((style & ui_wds_frame) != 0) {
+		rect->p0.x -= wdecor_edge_w;
+		rect->p0.y -= wdecor_edge_h;
+		rect->p1.x += wdecor_edge_w;
+		rect->p1.y += wdecor_edge_h;
+	}
+
+	if ((style & ui_wds_titlebar) != 0)
+		rect->p0.y -= 22;
 }
 
@@ -471,13 +509,17 @@
 	ui_wdecor_get_geom(wdecor, &geom);
 
-	claim = ui_pbutton_pos_event(wdecor->btn_close, event);
-	if (claim == ui_claimed)
-		return;
+	if ((wdecor->style & ui_wds_close_btn) != 0) {
+		claim = ui_pbutton_pos_event(wdecor->btn_close, event);
+		if (claim == ui_claimed)
+			return;
+	}
 
 	ui_wdecor_frame_pos_event(wdecor, event);
 
-	if (event->type == POS_PRESS &&
-	    gfx_pix_inside_rect(&pos, &geom.title_bar_rect))
-		ui_wdecor_move(wdecor, &pos);
+	if ((wdecor->style & ui_wds_titlebar) != 0)  {
+		if (event->type == POS_PRESS &&
+		    gfx_pix_inside_rect(&pos, &geom.title_bar_rect))
+			ui_wdecor_move(wdecor, &pos);
+	}
 }
 
Index: uspace/lib/ui/src/window.c
===================================================================
--- uspace/lib/ui/src/window.c	(revision 2d879f7e702c10a9b3cc8fe266982c468d020f00)
+++ uspace/lib/ui/src/window.c	(revision 7b1bfdb17fcc330a202d54d51981d796f7af52f7)
@@ -89,5 +89,7 @@
  *
  * Window parameters structure must always be initialized using this function
- * first.
+ * first. By default, the window will be decorated. To get a non-decorated
+ * window, one needs to clear ui_wds_decorated
+ * (e.g. params->style &= ~ui_wds_decorated).
  *
  * @param params Window parameters structure
@@ -96,4 +98,7 @@
 {
 	memset(params, 0, sizeof(ui_wnd_params_t));
+
+	/* Make window decorated by default. */
+	params->style = ui_wds_decorated;
 }
 
@@ -111,4 +116,5 @@
 	display_info_t info;
 	gfx_coord2_t pos;
+	gfx_coord2_t scr_dims;
 	display_wnd_params_t dparams;
 	display_window_t *dwindow = NULL;
@@ -129,4 +135,17 @@
 
 	if (ui->display != NULL) {
+		if (params->placement != ui_wnd_place_default) {
+			rc = display_get_info(ui->display, &info);
+			if (rc != EOK)
+				goto error;
+		}
+
+		if (params->placement == ui_wnd_place_full_screen) {
+			/* Make window the size of the screen */
+			gfx_rect_dims(&info.rect, &scr_dims);
+			gfx_coord2_add(&dparams.rect.p0, &scr_dims,
+			    &dparams.rect.p1);
+		}
+
 		rc = display_window_create(ui->display, &dparams, &dwnd_cb,
 		    (void *) window, &dwindow);
@@ -135,8 +154,4 @@
 
 		if (params->placement != ui_wnd_place_default) {
-			rc = display_get_info(ui->display, &info);
-			if (rc != EOK)
-				goto error;
-
 			pos.x = 0;
 			pos.y = 0;
@@ -146,4 +161,5 @@
 				assert(false);
 			case ui_wnd_place_top_left:
+			case ui_wnd_place_full_screen:
 				pos.x = info.rect.p0.x - params->rect.p0.x;
 				pos.y = info.rect.p0.y - params->rect.p0.y;
@@ -188,5 +204,5 @@
 		goto error;
 
-	ui_wdecor_set_rect(wdecor, &params->rect);
+	ui_wdecor_set_rect(wdecor, &dparams.rect);
 	ui_wdecor_set_cb(wdecor, &wdecor_cb, (void *) window);
 	ui_wdecor_paint(wdecor);
@@ -194,5 +210,5 @@
 	window->ui = ui;
 	window->dwindow = dwindow;
-	window->rect = params->rect;
+	window->rect = dparams.rect;
 	window->gc = gc;
 	window->res = res;
Index: uspace/lib/ui/test/wdecor.c
===================================================================
--- uspace/lib/ui/test/wdecor.c	(revision 2d879f7e702c10a9b3cc8fe266982c468d020f00)
+++ uspace/lib/ui/test/wdecor.c	(revision 7b1bfdb17fcc330a202d54d51981d796f7af52f7)
@@ -360,5 +360,5 @@
 	errno_t rc;
 
-	rc = ui_wdecor_create(NULL, "Hello", ui_wds_none, &wdecor);
+	rc = ui_wdecor_create(NULL, "Hello", ui_wds_decorated, &wdecor);
 	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
 
@@ -388,6 +388,6 @@
 }
 
-/** ui_wdecor_get_geom() produces the correct geometry */
-PCUT_TEST(get_geom)
+/** ui_wdecor_get_geom() with ui_wds_none produces the correct geometry */
+PCUT_TEST(get_geom_none)
 {
 	ui_wdecor_t *wdecor;
@@ -407,4 +407,46 @@
 	ui_wdecor_get_geom(wdecor, &geom);
 
+	PCUT_ASSERT_INT_EQUALS(10, geom.interior_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(20, geom.interior_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(100, geom.interior_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(200, geom.interior_rect.p1.y);
+
+	PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p1.y);
+
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p1.y);
+
+	PCUT_ASSERT_INT_EQUALS(10, geom.app_area_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(20, geom.app_area_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(100, geom.app_area_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(200, geom.app_area_rect.p1.y);
+
+	ui_wdecor_destroy(wdecor);
+}
+
+/** ui_wdecor_get_geom() with ui_wds_frame produces the correct geometry */
+PCUT_TEST(get_geom_frame)
+{
+	ui_wdecor_t *wdecor;
+	gfx_rect_t rect;
+	ui_wdecor_geom_t geom;
+	errno_t rc;
+
+	rc = ui_wdecor_create(NULL, "Hello", ui_wds_frame, &wdecor);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	rect.p0.x = 10;
+	rect.p0.y = 20;
+	rect.p1.x = 100;
+	rect.p1.y = 200;
+
+	ui_wdecor_set_rect(wdecor, &rect);
+	ui_wdecor_get_geom(wdecor, &geom);
+
 	PCUT_ASSERT_INT_EQUALS(14, geom.interior_rect.p0.x);
 	PCUT_ASSERT_INT_EQUALS(24, geom.interior_rect.p0.y);
@@ -412,4 +454,47 @@
 	PCUT_ASSERT_INT_EQUALS(196, geom.interior_rect.p1.y);
 
+	PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p1.y);
+
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p1.y);
+
+	PCUT_ASSERT_INT_EQUALS(14, geom.app_area_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(24, geom.app_area_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(96, geom.app_area_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(196, geom.app_area_rect.p1.y);
+
+	ui_wdecor_destroy(wdecor);
+}
+
+/** ui_wdecor_get_geom() with ui_wds_frame | ui_wds_titlebar */
+PCUT_TEST(get_geom_frame_titlebar)
+{
+	ui_wdecor_t *wdecor;
+	gfx_rect_t rect;
+	ui_wdecor_geom_t geom;
+	errno_t rc;
+
+	rc = ui_wdecor_create(NULL, "Hello", ui_wds_frame | ui_wds_titlebar,
+	    &wdecor);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	rect.p0.x = 10;
+	rect.p0.y = 20;
+	rect.p1.x = 100;
+	rect.p1.y = 200;
+
+	ui_wdecor_set_rect(wdecor, &rect);
+	ui_wdecor_get_geom(wdecor, &geom);
+
+	PCUT_ASSERT_INT_EQUALS(14, geom.interior_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(24, geom.interior_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(96, geom.interior_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(196, geom.interior_rect.p1.y);
+
 	PCUT_ASSERT_INT_EQUALS(14, geom.title_bar_rect.p0.x);
 	PCUT_ASSERT_INT_EQUALS(24, geom.title_bar_rect.p0.y);
@@ -417,4 +502,46 @@
 	PCUT_ASSERT_INT_EQUALS(46, geom.title_bar_rect.p1.y);
 
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p1.y);
+
+	PCUT_ASSERT_INT_EQUALS(14, geom.app_area_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(46, geom.app_area_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(96, geom.app_area_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(196, geom.app_area_rect.p1.y);
+
+	ui_wdecor_destroy(wdecor);
+}
+
+/** ui_wdecor_get_geom() with ui_wds_decorated produces the correct geometry */
+PCUT_TEST(get_geom_decorated)
+{
+	ui_wdecor_t *wdecor;
+	gfx_rect_t rect;
+	ui_wdecor_geom_t geom;
+	errno_t rc;
+
+	rc = ui_wdecor_create(NULL, "Hello", ui_wds_decorated, &wdecor);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	rect.p0.x = 10;
+	rect.p0.y = 20;
+	rect.p1.x = 100;
+	rect.p1.y = 200;
+
+	ui_wdecor_set_rect(wdecor, &rect);
+	ui_wdecor_get_geom(wdecor, &geom);
+
+	PCUT_ASSERT_INT_EQUALS(14, geom.interior_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(24, geom.interior_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(96, geom.interior_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(196, geom.interior_rect.p1.y);
+
+	PCUT_ASSERT_INT_EQUALS(14, geom.title_bar_rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(24, geom.title_bar_rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(96, geom.title_bar_rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(46, geom.title_bar_rect.p1.y);
+
 	PCUT_ASSERT_INT_EQUALS(75, geom.btn_close_rect.p0.x);
 	PCUT_ASSERT_INT_EQUALS(25, geom.btn_close_rect.p0.y);
@@ -441,5 +568,19 @@
 	arect.p1.y = 196;
 
-	ui_wdecor_rect_from_app(&arect, &rect);
+	ui_wdecor_rect_from_app(ui_wds_none, &arect, &rect);
+
+	PCUT_ASSERT_INT_EQUALS(14, rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(46, rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(96, rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(196, rect.p1.y);
+
+	ui_wdecor_rect_from_app(ui_wds_frame, &arect, &rect);
+
+	PCUT_ASSERT_INT_EQUALS(10, rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(42, rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(100, rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(200, rect.p1.y);
+
+	ui_wdecor_rect_from_app(ui_wds_decorated, &arect, &rect);
 
 	PCUT_ASSERT_INT_EQUALS(10, rect.p0.x);
@@ -447,4 +588,5 @@
 	PCUT_ASSERT_INT_EQUALS(100, rect.p1.x);
 	PCUT_ASSERT_INT_EQUALS(200, rect.p1.y);
+
 }
 
