]> git.lizzy.rs Git - worldedit.git/commitdiff
worldedit_gui: Improve behaviour of some input fields
authorsfan5 <sfan5@live.de>
Wed, 18 Sep 2019 16:52:27 +0000 (18:52 +0200)
committersfan5 <sfan5@live.de>
Wed, 18 Sep 2019 16:52:27 +0000 (18:52 +0200)
Can't be bothered to do the rest. This stuff should be
rewritten in a modular fashion anyway.

worldedit_gui/functionality.lua

index 912fd59976794455e2482ac3f904b2c43a89757a..884ec1dad74fe1830786eb0cee92ee244ccc3ece 100644 (file)
@@ -173,6 +173,7 @@ worldedit.register_gui_function("worldedit_gui_set", {
                local nodename = worldedit.normalize_nodename(node)\r
                return "size[6.5,3]" .. worldedit.get_formspec_header("worldedit_gui_set") ..\r
                        string.format("field[0.5,1.5;4,0.8;worldedit_gui_set_node;Name;%s]", minetest.formspec_escape(node)) ..\r
+                       "field_close_on_enter[worldedit_gui_set_node;false]" ..\r
                        "button[4,1.18;1.5,0.8;worldedit_gui_set_search;Search]" ..\r
                        formspec_node("5.5,1.1", nodename) ..\r
                        "button_exit[0,2.5;3,0.8;worldedit_gui_set_submit;Set Nodes]"\r
@@ -180,18 +181,20 @@ worldedit.register_gui_function("worldedit_gui_set", {
 })\r
 \r
 worldedit.register_gui_handler("worldedit_gui_set", function(name, fields)\r
-       if fields.worldedit_gui_set_search or fields.worldedit_gui_set_submit then\r
+       local ret = false\r
+       if fields.worldedit_gui_set_search or fields.key_enter_field == "worldedit_gui_set_node" then\r
                gui_nodename1[name] = tostring(fields.worldedit_gui_set_node)\r
                worldedit.show_page(name, "worldedit_gui_set")\r
-               if fields.worldedit_gui_set_submit then\r
-                       local n = worldedit.normalize_nodename(gui_nodename1[name])\r
-                       if n then\r
-                               minetest.chatcommands["/set"].func(name, n)\r
-                       end\r
+               ret = true -- fallthrough\r
+       end\r
+       if fields.worldedit_gui_set_submit then\r
+               local n = worldedit.normalize_nodename(gui_nodename1[name])\r
+               if n then\r
+                       minetest.chatcommands["/set"].func(name, n)\r
                end\r
                return true\r
        end\r
-       return false\r
+       return ret\r
 end)\r
 \r
 worldedit.register_gui_function("worldedit_gui_replace", {\r
@@ -202,9 +205,11 @@ worldedit.register_gui_function("worldedit_gui_replace", {
                local search_nodename, replace_nodename = worldedit.normalize_nodename(search), worldedit.normalize_nodename(replace)\r
                return "size[6.5,4]" .. worldedit.get_formspec_header("worldedit_gui_replace") ..\r
                        string.format("field[0.5,1.5;4,0.8;worldedit_gui_replace_search;Name;%s]", minetest.formspec_escape(search)) ..\r
+                       "field_close_on_enter[worldedit_gui_replace_search;false]" ..\r
                        "button[4,1.18;1.5,0.8;worldedit_gui_replace_search_search;Search]" ..\r
                        formspec_node("5.5,1.1", search_nodename) ..\r
                        string.format("field[0.5,2.5;4,0.8;worldedit_gui_replace_replace;Name;%s]", minetest.formspec_escape(replace)) ..\r
+                       "field_close_on_enter[worldedit_gui_replace_replace;false]" ..\r
                        "button[4,2.18;1.5,0.8;worldedit_gui_replace_replace_search;Search]" ..\r
                        formspec_node("5.5,2.1", replace_nodename) ..\r
                        "button_exit[0,3.5;3,0.8;worldedit_gui_replace_submit;Replace Nodes]" ..\r
@@ -213,28 +218,28 @@ worldedit.register_gui_function("worldedit_gui_replace", {
 })\r
 \r
 worldedit.register_gui_handler("worldedit_gui_replace", function(name, fields)\r
+       local ret = false\r
        if fields.worldedit_gui_replace_search_search or fields.worldedit_gui_replace_replace_search\r
-       or fields.worldedit_gui_replace_submit or fields.worldedit_gui_replace_submit_inverse then\r
+               or table.indexof({"worldedit_gui_replace_search", "worldedit_gui_replace_replace"}, fields.key_enter_field) ~= -1 then\r
                gui_nodename1[name] = tostring(fields.worldedit_gui_replace_search)\r
                gui_nodename2[name] = tostring(fields.worldedit_gui_replace_replace)\r
                worldedit.show_page(name, "worldedit_gui_replace")\r
 \r
-               local submit = nil\r
-               if fields.worldedit_gui_replace_submit then\r
-                       submit = "replace"\r
-               elseif fields.worldedit_gui_replace_submit_inverse then\r
+               ret = true -- fallthrough\r
+       end\r
+       if fields.worldedit_gui_replace_submit or fields.worldedit_gui_replace_submit_inverse then\r
+               local submit = "replace"\r
+               if fields.worldedit_gui_replace_submit_inverse then\r
                        submit = "replaceinverse"\r
                end\r
-               if submit then\r
-                       local n1 = worldedit.normalize_nodename(gui_nodename1[name])\r
-                       local n2 = worldedit.normalize_nodename(gui_nodename2[name])\r
-                       if n1 and n2 then\r
-                               minetest.chatcommands["/"..submit].func(name, string.format("%s %s", n1, n2))\r
-                       end\r
+               local n1 = worldedit.normalize_nodename(gui_nodename1[name])\r
+               local n2 = worldedit.normalize_nodename(gui_nodename2[name])\r
+               if n1 and n2 then\r
+                       minetest.chatcommands["/"..submit].func(name, string.format("%s %s", n1, n2))\r
                end\r
                return true\r
        end\r
-       return false\r
+       return ret\r
 end)\r
 \r
 worldedit.register_gui_function("worldedit_gui_sphere_dome", {\r