Procházet zdrojové kódy

InputText: intentionally ignore character input when ctrl/alt are held (not sure if correct) (#279)

ocornut před 10 roky
rodič
revize
b28858b33b
1 změnil soubory, kde provedl 9 přidání a 8 odebrání
  1. 9 8
      imgui.cpp

+ 9 - 8
imgui.cpp

@@ -7022,15 +7022,16 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
         if (g.IO.InputCharacters[0])
         {
             // Process text input (before we check for Return because using some IME will effectively send a Return?)
-            for (int n = 0; n < IM_ARRAYSIZE(g.IO.InputCharacters) && g.IO.InputCharacters[n]; n++)
+            if (!is_ctrl_down && !is_alt_down)
             {
-                if (unsigned int c = (unsigned int)g.IO.InputCharacters[n])
-                {
-                    // Insert character if they pass filtering
-                    if (!InputTextFilterCharacter(&c, flags, callback, user_data))
-                        continue;
-                    edit_state.OnKeyPressed((int)c);
-                }
+                for (int n = 0; n < IM_ARRAYSIZE(g.IO.InputCharacters) && g.IO.InputCharacters[n]; n++)
+                    if (unsigned int c = (unsigned int)g.IO.InputCharacters[n])
+                    {
+                        // Insert character if they pass filtering
+                        if (!InputTextFilterCharacter(&c, flags, callback, user_data))
+                            continue;
+                        edit_state.OnKeyPressed((int)c);
+                    }
             }
 
             // Consume characters