Index: uspace/app/nav/nav.c
===================================================================
--- uspace/app/nav/nav.c	(revision d0fd86ae039182ebf31bdd28374f168b1afac9c5)
+++ uspace/app/nav/nav.c	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
@@ -130,4 +130,6 @@
 	ui_wnd_params_t params;
 	gfx_rect_t rect;
+	gfx_rect_t arect;
+	gfx_coord_t pw;
 	unsigned i;
 	errno_t rc;
@@ -155,4 +157,5 @@
 
 	ui_window_set_cb(navigator->window, &window_cb, (void *) navigator);
+	ui_window_get_app_rect(navigator->window, &arect);
 
 	rc = ui_fixed_create(&navigator->fixed);
@@ -176,4 +179,7 @@
 		return rc;
 	}
+
+	/* Panel width */
+	pw = (arect.p1.x - arect.p0.x) / 2;
 
 	for (i = 0; i < 2; i++) {
@@ -183,8 +189,8 @@
 			goto error;
 
-		rect.p0.x = 40 * i;
-		rect.p0.y = 1;
-		rect.p1.x = 40 * (i + 1);
-		rect.p1.y = 24;
+		rect.p0.x = arect.p0.x + pw * i;
+		rect.p0.y = arect.p0.y + 1;
+		rect.p1.x = arect.p0.x + pw * (i + 1);
+		rect.p1.y = arect.p1.y - 1;
 		panel_set_rect(navigator->panel[i], &rect);
 
Index: uspace/app/nav/panel.c
===================================================================
--- uspace/app/nav/panel.c	(revision d0fd86ae039182ebf31bdd28374f168b1afac9c5)
+++ uspace/app/nav/panel.c	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
@@ -351,10 +351,10 @@
 		panel_activate_req(panel);
 
-	if (event->type == POS_PRESS) {
-		irect.p0.x = panel->rect.p0.x + 1;
-		irect.p0.y = panel->rect.p0.y + 1;
-		irect.p1.x = panel->rect.p1.x - 1;
-		irect.p1.y = panel->rect.p1.y - 1;
-
+	irect.p0.x = panel->rect.p0.x + 1;
+	irect.p0.y = panel->rect.p0.y + 1;
+	irect.p1.x = panel->rect.p1.x - 1;
+	irect.p1.y = panel->rect.p1.y - 1;
+
+	if (event->type == POS_PRESS || event->type == POS_DCLICK) {
 		/* Did we click on one of the entries? */
 		if (gfx_pix_inside_rect(&pos, &irect)) {
@@ -365,12 +365,20 @@
 			entry = panel_page_nth_entry(panel, n, &entry_idx);
 
-			/* Move to the entry found */
-			panel_cursor_move(panel, entry, entry_idx);
+			if (event->type == POS_PRESS) {
+				/* Move to the entry found */
+				panel_cursor_move(panel, entry, entry_idx);
+			} else {
+				/* event->type == POS_DCLICK */
+				panel_open(panel, entry);
+			}
 		} else {
-			/* It's in the border. Top or bottom half? */
-			if (pos.y >= (irect.p0.y + irect.p1.y) / 2)
-				panel_page_down(panel);
-			else
-				panel_page_up(panel);
+			/* It's in the border. */
+			if (event->type == POS_PRESS) {
+				/* Top or bottom half? */
+				if (pos.y >= (irect.p0.y + irect.p1.y) / 2)
+					panel_page_down(panel);
+				else
+					panel_page_up(panel);
+			}
 		}
 	}
Index: uspace/app/nav/panel.h
===================================================================
--- uspace/app/nav/panel.h	(revision d0fd86ae039182ebf31bdd28374f168b1afac9c5)
+++ uspace/app/nav/panel.h	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
@@ -83,5 +83,4 @@
 extern void panel_activate_req(panel_t *);
 
-
 #endif
 
