diff --git a/src/client/entry.qc b/src/client/entry.qc index ffabf690..317e9681 100644 --- a/src/client/entry.qc +++ b/src/client/entry.qc @@ -503,7 +503,7 @@ CSQC_InputEvent(float fEventType, float fKey, float fCharacter, float fDeviceID) g_vecMousePos = getmousepos(); - VGUI_Input(fEventType, fKey, fCharacter, fDeviceID); + bool vgui_pressed = VGUI_Input(fEventType, fKey, fCharacter, fDeviceID); if (g_vguiWidgetCount) { setcursormode(TRUE, "gfx/cursor", [0,0,0], 1.0f); @@ -511,10 +511,7 @@ CSQC_InputEvent(float fEventType, float fKey, float fCharacter, float fDeviceID) setcursormode(FALSE, "gfx/cursor", [0,0,0], 1.0f); } - if (VGUI_Active() && !(fEventType == IE_KEYDOWN && fCharacter == K_ESCAPE)) - return (1); - else - return (0); + return (vgui_pressed); } /* diff --git a/src/client/vgui.qc b/src/client/vgui.qc index c5e91496..ecd9dbcb 100644 --- a/src/client/vgui.qc +++ b/src/client/vgui.qc @@ -31,17 +31,15 @@ VGUI_Draw(void) return (1); } -int +bool VGUI_Input(float flEvType, float flScanX, float flCharY, float flDevID) { - g_uiDesktop.Input(flEvType, flScanX, flCharY, flDevID); - return (1); + return g_uiDesktop.Input(flEvType, flScanX, flCharY, flDevID); } void VGUI_Reposition(void) { - CUIWidget wNext = g_uiDesktop; do { wNext = wNext.m_next; diff --git a/src/shared/pmove_custom.qc b/src/shared/pmove_custom.qc index 879c79d0..58eb5649 100644 --- a/src/shared/pmove_custom.qc +++ b/src/shared/pmove_custom.qc @@ -570,9 +570,6 @@ PMoveCustom_RunPlayerPhysics(entity target) entity oldself = self; self = target; - self.dimension_solid = 254; - self.dimension_hit = 254; - if (self.maxspeed <= 0) self.maxspeed = 240; diff --git a/src/vgui/ui.qc b/src/vgui/ui.qc index 98e769c3..e1cf4416 100644 --- a/src/vgui/ui.qc +++ b/src/vgui/ui.qc @@ -170,12 +170,13 @@ CUIWidget::Input(float flEVType, float flKey, float flChar, float flDevID) wNext = tree[x].member; if (wNext && wNext.m_iFlags & 1 && wNext.m_parent.m_iFlags & 1) - if (wNext.Input(flEVType, flKey, flChar, flDevID) == true) - return (false); + if (wNext.Input(flEVType, flKey, flChar, flDevID) == true) { + memfree(tree); + return (true); + } } memfree(tree); - return (false); } diff --git a/src/vgui/ui_textbox.qc b/src/vgui/ui_textbox.qc index fe663358..ce0f11c3 100644 --- a/src/vgui/ui_textbox.qc +++ b/src/vgui/ui_textbox.qc @@ -101,43 +101,44 @@ bool CUITextBox::Input (float flEVType, float flKey, float flChar, float flDevID { bool ret = false; - if (flEVType == IE_KEYDOWN) { - switch (flKey) { - case K_MOUSE1 : + switch (flKey) { + case K_MOUSE1 : + if (flEVType == IE_KEYDOWN) { if (Util_MouseAbove(g_vecMousePos, m_parent.m_vecOrigin + m_vecOrigin, m_vecSize)) { m_iFlags |= TEXTBOX_DOWN; ret = true; } - break; - case K_BACKSPACE: - if (m_iFlags & TEXTBOX_FOCUS) { - m_strText = substring(m_strText, 0, strlen(m_strText) - 1); - } - break; - case K_ENTER: - break; - default: - if (m_iFlags & TEXTBOX_FOCUS) { -#if 0 - if ((flChar >= 48 && flChar <= 57) || (flChar >= 65 && flChar <= 90) || (flChar >= 97 && flChar <= 122)) { - m_strText = sprintf("%s%s", m_strText, chr2str(flChar)); - } -#else - if ((flChar >= 32 && flChar <= 125)) { - m_strText = sprintf("%s%s", m_strText, chr2str(flChar)); - } -#endif - } - } - } else if (flEVType == IE_KEYUP) { - if (flKey == K_MOUSE1) { + } else { if (m_iFlags & TEXTBOX_DOWN && Util_MouseAbove(g_vecMousePos, m_parent.m_vecOrigin + m_vecOrigin, m_vecSize)) { m_iFlags |= TEXTBOX_FOCUS; + ret = true; } else { m_iFlags -= (m_iFlags & TEXTBOX_FOCUS); } m_iFlags -= (m_iFlags & TEXTBOX_DOWN); } + break; + case K_BACKSPACE: + if (flEVType == IE_KEYDOWN) + if (m_iFlags & TEXTBOX_FOCUS) + m_strText = substring(m_strText, 0, strlen(m_strText) - 1); + break; + case K_ENTER: + break; + default: + if (m_iFlags & TEXTBOX_DOWN) + ret = true; + else if (m_iFlags & TEXTBOX_FOCUS) { + if ((flChar >= 32 && flChar <= 125)) { + if (flEVType == IE_KEYDOWN) + m_strText = sprintf("%s%s", m_strText, chr2str(flChar)); + ret = true; + } + if ((flKey >= 32 && flKey <= 125)) { + ret = true; + } + } } + return (ret); }