From 34917f8ff44b0224f7199e7f1ffd55ba588a9cf7 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Sun, 10 Jan 2010 21:14:37 +0000 Subject: Make sure TextDialogs get input precedence --- src/game.cpp | 4 +++- src/gui/textdialog.cpp | 9 +++++++++ src/gui/textdialog.h | 7 +++++++ 3 files changed, 19 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/game.cpp b/src/game.cpp index 3ef07dca..c9686232 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -64,6 +64,7 @@ #include "gui/setup.h" #include "gui/skilldialog.h" #include "gui/statuswindow.h" +#include "gui/textdialog.h" #include "gui/trade.h" #include "gui/viewport.h" #include "gui/windowmenu.h" @@ -523,7 +524,8 @@ void Game::handleInput() } // send straight to gui for certain windows - if (quitDialog || npcPostDialog->isVisible()) + if (quitDialog || TextDialog::isActive() || + npcPostDialog->isVisible()) { try { diff --git a/src/gui/textdialog.cpp b/src/gui/textdialog.cpp index 326954e2..6cd066cc 100644 --- a/src/gui/textdialog.cpp +++ b/src/gui/textdialog.cpp @@ -27,6 +27,8 @@ #include "utils/gettext.h" +int TextDialog::instances = 0; + TextDialog::TextDialog(const std::string &title, const std::string &msg, Window *parent): Window(title, true, parent), @@ -64,6 +66,13 @@ TextDialog::TextDialog(const std::string &title, const std::string &msg, } setVisible(true); mTextField->requestFocus(); + + instances++; +} + +TextDialog::~TextDialog() +{ + instances--; } void TextDialog::action(const gcn::ActionEvent &event) diff --git a/src/gui/textdialog.h b/src/gui/textdialog.h index edfe85b6..b04851ac 100644 --- a/src/gui/textdialog.h +++ b/src/gui/textdialog.h @@ -43,6 +43,9 @@ public: */ TextDialog(const std::string &title, const std::string &msg, Window *parent = NULL); + + + ~TextDialog(); /** * Called when receiving actions from the widgets. @@ -58,8 +61,12 @@ public: * Set the OK button action id */ void setOKButtonActionId(const std::string &name); + + static const bool isActive() { return instances > 0; } private: + static int instances; + TextField *mTextField; gcn::Button *mOkButton; }; -- cgit v1.2.3-70-g09d2