diff --git a/src/jfileselect.c b/src/jfileselect.c
index 5d1e302..c44b048 100644
--- a/src/jfileselect.c
+++ b/src/jfileselect.c
@@ -541,7 +541,7 @@ static bool jfileselect_poly_event(void *fs0, jevent e)
 				return true;
 			}
 		}
-		else if(key == KEY_EXE && fs->entries) {
+		else if((key == KEY_EXE || key == KEY_OK) && fs->entries) {
 			struct fileinfo *finfo = fs->entries;
 			struct fileinfo *i = &finfo[fs->cursor];
 
diff --git a/src/jinput.c b/src/jinput.c
index 857b37e..4028af2 100644
--- a/src/jinput.c
+++ b/src/jinput.c
@@ -268,7 +268,7 @@ static bool jinput_poly_event(void *i0, jevent e)
 
 		if(ev.type != KEYEV_DOWN) return false;
 
-		if(ev.key == KEY_EXE) {
+		if(ev.key == KEY_EXE || ev.key == KEY_OK) {
 			jevent e = { .source = i, .type = JINPUT_VALIDATED };
 			jwidget_emit(i, e);
 		}
diff --git a/src/jlist.c b/src/jlist.c
index bdb178d..65f1d9e 100644
--- a/src/jlist.c
+++ b/src/jlist.c
@@ -254,7 +254,7 @@ static bool jlist_poly_event(void *l0, jevent e)
 
     /* Triggering items */
 
-    if(key == KEY_EXE && l->items[l->cursor].triggerable) {
+    if((key == KEY_EXE || key == KEY_OK) && l->items[l->cursor].triggerable) {
         jevent e = { .type = JLIST_ITEM_TRIGGERED, .data = l->cursor };
         jwidget_emit(l, e);
         return true;