diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-08-24 20:13:14 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-09-07 03:13:54 +0300 |
commit | 3f84fc198131ff706e18c56f612e38ff147b0005 (patch) | |
tree | a723a9a9163498cd880bdc23c9752d0b4e9373ca /src/gui/widgets | |
parent | 64f4e1132355eaac4f5594bee516b56adb2ad083 (diff) | |
download | manaplus-3f84fc198131ff706e18c56f612e38ff147b0005.tar.gz manaplus-3f84fc198131ff706e18c56f612e38ff147b0005.tar.bz2 manaplus-3f84fc198131ff706e18c56f612e38ff147b0005.tar.xz manaplus-3f84fc198131ff706e18c56f612e38ff147b0005.zip |
Add support for copy text to clipboard (Ctrl+C).
In X enviroments used xsel to copy string to clipboard.
In windows used native clipboard api.
MacOSX not supported.
Diffstat (limited to 'src/gui/widgets')
-rw-r--r-- | src/gui/widgets/textfield.cpp | 10 | ||||
-rw-r--r-- | src/gui/widgets/textfield.h | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/gui/widgets/textfield.cpp b/src/gui/widgets/textfield.cpp index 2729e5407..d9f5bed9a 100644 --- a/src/gui/widgets/textfield.cpp +++ b/src/gui/widgets/textfield.cpp @@ -309,6 +309,10 @@ void TextField::keyPressed(gcn::KeyEvent &keyEvent) } break; + case 3: + handleCopy(); + break; + case 22: // Control code 22, SYNCHRONOUS IDLE, sent on Ctrl+v // hack to prevent paste key sticking if (mLastEventPaste && mLastEventPaste > cur_time) @@ -348,3 +352,9 @@ void TextField::handlePaste() setCaretPosition(static_cast<unsigned>(caretPos)); } } + +void TextField::handleCopy() +{ + std::string text = getText(); + sendBuffer(text); +} diff --git a/src/gui/widgets/textfield.h b/src/gui/widgets/textfield.h index 79197bb7a..79790d83a 100644 --- a/src/gui/widgets/textfield.h +++ b/src/gui/widgets/textfield.h @@ -99,6 +99,8 @@ class TextField : public gcn::TextField private: void handlePaste(); + void handleCopy(); + static int instances; static float mAlpha; static ImageRect skin; |