summaryrefslogtreecommitdiff
path: root/src/gui/widgets
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-08-24 20:13:14 +0300
committerAndrei Karas <akaras@inbox.ru>2011-09-07 03:13:54 +0300
commit3f84fc198131ff706e18c56f612e38ff147b0005 (patch)
treea723a9a9163498cd880bdc23c9752d0b4e9373ca /src/gui/widgets
parent64f4e1132355eaac4f5594bee516b56adb2ad083 (diff)
downloadplus-3f84fc198131ff706e18c56f612e38ff147b0005.tar.gz
plus-3f84fc198131ff706e18c56f612e38ff147b0005.tar.bz2
plus-3f84fc198131ff706e18c56f612e38ff147b0005.tar.xz
plus-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.cpp10
-rw-r--r--src/gui/widgets/textfield.h2
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;