shithub: puzzles

Download patch

ref: ec4335e07f4819e82ec2cc95fba36764e5bcf8f2
parent: 3cd51d001769c657ebb4184bd05343af4d7e12b1
author: Ben Harris <bjh21@bjh21.me.uk>
date: Thu Feb 16 14:15:42 EST 2023

js: Hide type menu if there's only one preset and no configuration

It seems a bit silly to display it when there's only one option.

--- a/emcc.c
+++ b/emcc.c
@@ -976,6 +976,7 @@
     {
         struct preset_menu *menu = midend_get_presets(me, &npresets);
         char *env;
+        bool may_configure = false;
         presets = snewn(npresets, game_params *);
         for (i = 0; i < npresets; i++)
             presets[i] = NULL;
@@ -990,9 +991,11 @@
 
         if (thegame.can_configure &&
             (!env || env[0] == 'y' || env[0] == 'Y'))
+            may_configure = true;
+        if (may_configure)
             js_add_preset(0, "Custom...", -1);
 
-        have_presets_dropdown = npresets > 0 || thegame.can_configure;
+        have_presets_dropdown = npresets > 1 || may_configure;
 
         if (have_presets_dropdown)
             /*
--- a/emccpre.js
+++ b/emccpre.js
@@ -614,7 +614,7 @@
         // Key to open the menu on KaiOS.
         if ((event.key == "SoftRight" || event.key == "F10") &&
             !menuform.contains(document.activeElement)) {
-            menuform.querySelector("li div").focus();
+            menuform.querySelector("li div, li button").focus();
             event.preventDefault();
             event.stopPropagation();
         }