summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gui/itemamount.cpp6
-rw-r--r--src/gui/itemamount.h6
2 files changed, 11 insertions, 1 deletions
diff --git a/src/gui/itemamount.cpp b/src/gui/itemamount.cpp
index 03f1ae5f..e3891d29 100644
--- a/src/gui/itemamount.cpp
+++ b/src/gui/itemamount.cpp
@@ -74,6 +74,7 @@ ItemAmountWindow::ItemAmountWindow(Usage usage, Window *parent, Item *item,
mItemAmountTextField = new IntTextField(1);
mItemAmountTextField->setRange(1, mMax);
mItemAmountTextField->setWidth(35);
+ mItemAmountTextField->addKeyListener(this);
// Slider
mItemAmountSlide = new Slider(1.0, mMax);
@@ -174,6 +175,11 @@ void ItemAmountWindow::close()
scheduleDelete();
}
+void ItemAmountWindow::keyReleased(gcn::KeyEvent &keyEvent)
+{
+ mItemAmountSlide->setValue(mItemAmountTextField->getValue());
+}
+
void ItemAmountWindow::showWindow(Usage usage, Window *parent, Item *item,
int maxRange)
{
diff --git a/src/gui/itemamount.h b/src/gui/itemamount.h
index 1ae3f0d5..312b9fc3 100644
--- a/src/gui/itemamount.h
+++ b/src/gui/itemamount.h
@@ -24,6 +24,7 @@
#include "gui/widgets/window.h"
+#include <guichan/keylistener.hpp>
#include <guichan/actionlistener.hpp>
class IntTextField;
@@ -34,7 +35,8 @@ class Item;
*
* \ingroup Interface
*/
-class ItemAmountWindow : public Window, public gcn::ActionListener
+class ItemAmountWindow : public Window, public gcn::ActionListener,
+ public gcn::KeyListener
{
public:
enum Usage {
@@ -60,6 +62,8 @@ class ItemAmountWindow : public Window, public gcn::ActionListener
*/
void close();
+ void keyReleased(gcn::KeyEvent &keyEvent);
+
/**
* Creates the dialog, or bypass it if there aren't enough items.
*/