]> git.lizzy.rs Git - minetest.git/commitdiff
GUIEditBox: Allow selecting and copying read-only texts
authorSmallJoker <mk939@ymail.com>
Fri, 21 May 2021 15:26:02 +0000 (17:26 +0200)
committersfan5 <sfan5@live.de>
Sat, 22 May 2021 12:39:41 +0000 (14:39 +0200)
src/gui/guiEditBox.cpp

index ba548aa2d69a0c8badcf8f435d1b1794baeb6fb6..43afb6e3e46a82f882094872e0fb8ead9160da91 100644 (file)
@@ -232,10 +232,6 @@ bool GUIEditBox::OnEvent(const SEvent &event)
 
 bool GUIEditBox::processKey(const SEvent &event)
 {
-       if (!m_writable) {
-               return false;
-       }
-
        if (!event.KeyInput.PressedDown)
                return false;
 
@@ -531,6 +527,9 @@ bool GUIEditBox::onKeyControlX(const SEvent &event, s32 &mark_begin, s32 &mark_e
        // First copy to clipboard
        onKeyControlC(event);
 
+       if (!m_writable)
+               return false;
+
        if (m_passwordbox || !m_operator || m_mark_begin == m_mark_end)
                return false;
 
@@ -556,7 +555,7 @@ bool GUIEditBox::onKeyControlX(const SEvent &event, s32 &mark_begin, s32 &mark_e
 
 bool GUIEditBox::onKeyControlV(const SEvent &event, s32 &mark_begin, s32 &mark_end)
 {
-       if (!isEnabled())
+       if (!isEnabled() || !m_writable)
                return false;
 
        // paste from the clipboard
@@ -602,7 +601,7 @@ bool GUIEditBox::onKeyControlV(const SEvent &event, s32 &mark_begin, s32 &mark_e
 
 bool GUIEditBox::onKeyBack(const SEvent &event, s32 &mark_begin, s32 &mark_end)
 {
-       if (!isEnabled() || Text.empty())
+       if (!isEnabled() || Text.empty() || !m_writable)
                return false;
 
        core::stringw s;
@@ -640,7 +639,7 @@ bool GUIEditBox::onKeyBack(const SEvent &event, s32 &mark_begin, s32 &mark_end)
 
 bool GUIEditBox::onKeyDelete(const SEvent &event, s32 &mark_begin, s32 &mark_end)
 {
-       if (!isEnabled() || Text.empty())
+       if (!isEnabled() || Text.empty() || !m_writable)
                return false;
 
        core::stringw s;