|
@@ -138,12 +138,46 @@ void ImGui_ImplGlfwGL3_KeyCallback(GLFWwindow*, int key, int, int action, int mo
|
|
|
{
|
|
|
ImGuiIO& io = ImGui::GetIO();
|
|
|
if (action == GLFW_PRESS)
|
|
|
- io.KeysDown[key] = true;
|
|
|
+ {
|
|
|
+ switch (key)
|
|
|
+ {
|
|
|
+ case GLFW_KEY_LEFT_CONTROL:
|
|
|
+ case GLFW_KEY_RIGHT_CONTROL:
|
|
|
+ io.KeyCtrl = true;
|
|
|
+ break;
|
|
|
+ case GLFW_KEY_LEFT_SHIFT:
|
|
|
+ case GLFW_KEY_RIGHT_SHIFT:
|
|
|
+ io.KeyShift = true;
|
|
|
+ break;
|
|
|
+ case GLFW_KEY_LEFT_ALT:
|
|
|
+ case GLFW_KEY_RIGHT_ALT:
|
|
|
+ io.KeyAlt = true;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ io.KeysDown[key] = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (action == GLFW_RELEASE)
|
|
|
- io.KeysDown[key] = false;
|
|
|
- io.KeyCtrl = (mods & GLFW_MOD_CONTROL) != 0;
|
|
|
- io.KeyShift = (mods & GLFW_MOD_SHIFT) != 0;
|
|
|
- io.KeyAlt = (mods & GLFW_MOD_ALT) != 0;
|
|
|
+ {
|
|
|
+ switch (key)
|
|
|
+ {
|
|
|
+ case GLFW_KEY_LEFT_CONTROL:
|
|
|
+ case GLFW_KEY_RIGHT_CONTROL:
|
|
|
+ io.KeyCtrl = false;
|
|
|
+ break;
|
|
|
+ case GLFW_KEY_LEFT_SHIFT:
|
|
|
+ case GLFW_KEY_RIGHT_SHIFT:
|
|
|
+ io.KeyShift = false;
|
|
|
+ break;
|
|
|
+ case GLFW_KEY_LEFT_ALT:
|
|
|
+ case GLFW_KEY_RIGHT_ALT:
|
|
|
+ io.KeyAlt = false;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ io.KeysDown[key] = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void ImGui_ImplGlfwGL3_CharCallback(GLFWwindow*, unsigned int c)
|