summaryrefslogtreecommitdiff
path: root/src/gui/widgets/textfield.cpp
diff options
context:
space:
mode:
authorBertram <bertram@cegetel.net>2010-03-03 23:36:37 +0100
committerBertram <bertram@cegetel.net>2010-03-03 23:36:37 +0100
commit8cc31b582f372238ce6bd2c86888d312cf1fe5b2 (patch)
tree8db5f864348d08a05b8533c7ede58e76741a98f8 /src/gui/widgets/textfield.cpp
parentb1845e9e081df1fc77d9bcbed3ab95792d6ba682 (diff)
parentd564943867452ad76e6d313a28870e640715dded (diff)
downloadmana-8cc31b582f372238ce6bd2c86888d312cf1fe5b2.tar.gz
mana-8cc31b582f372238ce6bd2c86888d312cf1fe5b2.tar.bz2
mana-8cc31b582f372238ce6bd2c86888d312cf1fe5b2.tar.xz
mana-8cc31b582f372238ce6bd2c86888d312cf1fe5b2.zip
Merge branch 'master' of gitorious.org:mana/mana
Conflicts: src/being.cpp
Diffstat (limited to 'src/gui/widgets/textfield.cpp')
-rw-r--r--src/gui/widgets/textfield.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gui/widgets/textfield.cpp b/src/gui/widgets/textfield.cpp
index 803de396..278b4cb9 100644
--- a/src/gui/widgets/textfield.cpp
+++ b/src/gui/widgets/textfield.cpp
@@ -31,6 +31,7 @@
#include "resources/image.h"
#include "resources/resourcemanager.h"
+#include "utils/copynpaste.h"
#include "utils/dtor.h"
#include <guichan/font.hpp>
@@ -250,8 +251,23 @@ void TextField::keyPressed(gcn::KeyEvent &keyEvent)
if (mLoseFocusOnTab)
return;
break;
+
+ case 22: // Control code 22, SYNCHRONOUS IDLE, sent on Ctrl+v
+ handlePaste();
+ break;
}
keyEvent.consume();
fixScroll();
}
+
+void TextField::handlePaste()
+{
+ std::string text = getText();
+ std::string::size_type caretPos = getCaretPosition();
+
+ if (RetrieveBuffer(text, caretPos)) {
+ setText(text);
+ setCaretPosition(caretPos);
+ }
+}