Index: uspace/app/nav/panel.c
===================================================================
--- uspace/app/nav/panel.c	(revision 7cf5ddbad0929896f7de7dcfdf23d42fe47929b3)
+++ uspace/app/nav/panel.c	(revision a7a16a2fd2fee7aed47cced53b3602609b317c8c)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2023 Jiri Svoboda
+ * Copyright (c) 2025 Jiri Svoboda
  * All rights reserved.
  *
@@ -377,50 +377,4 @@
 }
 
-/** Open panel file entry.
- *
- * Perform Open action on a file entry (i.e. try running it).
- *
- * @param panel Panel
- * @param fname File name
- *
- * @return EOK on success or an error code
- */
-static errno_t panel_open_file(panel_t *panel, const char *fname)
-{
-	task_id_t id;
-	task_wait_t wait;
-	task_exit_t texit;
-	int retval;
-	errno_t rc;
-	ui_t *ui;
-
-	ui = ui_window_get_ui(panel->window);
-
-	/* Free up and clean console for the child task. */
-	rc = ui_suspend(ui);
-	if (rc != EOK)
-		return rc;
-
-	rc = task_spawnl(&id, &wait, fname, fname, NULL);
-	if (rc != EOK)
-		goto error;
-
-	rc = task_wait(&wait, &texit, &retval);
-	if ((rc != EOK) || (texit != TASK_EXIT_NORMAL))
-		goto error;
-
-	/* Resume UI operation */
-	rc = ui_resume(ui);
-	if (rc != EOK)
-		return rc;
-
-	(void) ui_paint(ui_window_get_ui(panel->window));
-	return EOK;
-error:
-	(void) ui_resume(ui);
-	(void) ui_paint(ui_window_get_ui(panel->window));
-	return rc;
-}
-
 /** File list in panel requests activation.
  *
@@ -446,5 +400,6 @@
 	panel_t *panel = (panel_t *)arg;
 
-	(void) panel_open_file(panel, fname);
+	if (panel->cb != NULL && panel->cb->file_open != NULL)
+		panel->cb->file_open(panel->cb_arg, panel, fname);
 }
 
