summaryrefslogtreecommitdiff
path: root/src/gui/widgets
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
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')
-rw-r--r--src/gui/widgets/itemshortcutcontainer.cpp2
-rw-r--r--src/gui/widgets/textfield.cpp16
-rw-r--r--src/gui/widgets/textfield.h2
3 files changed, 19 insertions, 1 deletions
diff --git a/src/gui/widgets/itemshortcutcontainer.cpp b/src/gui/widgets/itemshortcutcontainer.cpp
index b2ddcf0c..66e053d8 100644
--- a/src/gui/widgets/itemshortcutcontainer.cpp
+++ b/src/gui/widgets/itemshortcutcontainer.cpp
@@ -193,7 +193,7 @@ void ItemShortcutContainer::mousePressed(gcn::MouseEvent &event)
// Convert relative to the window coordinates to absolute screen
// coordinates.
- viewport->showPopup(viewport->getMouseX(), viewport->getMouseY(), item);
+ viewport->showPopup(NULL, viewport->getMouseX(), viewport->getMouseY(), item);
}
}
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);
+ }
+}
diff --git a/src/gui/widgets/textfield.h b/src/gui/widgets/textfield.h
index c66139cd..58e37f5c 100644
--- a/src/gui/widgets/textfield.h
+++ b/src/gui/widgets/textfield.h
@@ -91,6 +91,8 @@ class TextField : public gcn::TextField
int getValue() const;
private:
+ void handlePaste();
+
static int instances;
static float mAlpha;
static ImageRect skin;