summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Dombrowski <stefan@uni-bonn.de>2010-08-21 22:56:44 +0200
committerThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2010-08-21 23:03:22 +0200
commit0009672b80c666b8a7ddc0b7c36951eba1fa2c35 (patch)
treef1ab1d7448db36c46639e629eb49519644394905
parentdf91c40fa79629adb2652ed1b5141d943113a936 (diff)
downloadmana-client-0009672b80c666b8a7ddc0b7c36951eba1fa2c35.tar.gz
mana-client-0009672b80c666b8a7ddc0b7c36951eba1fa2c35.tar.bz2
mana-client-0009672b80c666b8a7ddc0b7c36951eba1fa2c35.tar.xz
mana-client-0009672b80c666b8a7ddc0b7c36951eba1fa2c35.zip
Fixing segmentation fault and improving gui for party
* Segmentation fault happened if a player left a party while other party members are offline. * While creating a party the key input is not anymore reused for game play. * The vertical scrollbar is only shown when needed. * The default height was raised, because before much of the functionality was hidden. Signed-off-by: Thorbjørn Lindeijer <thorbjorn@lindeijer.nl>
-rw-r--r--src/game.cpp2
-rw-r--r--src/gui/socialwindow.cpp4
-rw-r--r--src/party.cpp2
3 files changed, 4 insertions, 4 deletions
diff --git a/src/game.cpp b/src/game.cpp
index ec5e6b13..d34dc049 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -754,7 +754,7 @@ void Game::handleInput()
// Moving player around
if (player_node->isAlive() && !NPC::isTalking() &&
- !chatWindow->isInputFocused() && !quitDialog)
+ !chatWindow->isInputFocused() && !quitDialog && !TextDialog::isActive())
{
// Get the state of the keyboard keys
keyboard.refreshActiveKeys();
diff --git a/src/gui/socialwindow.cpp b/src/gui/socialwindow.cpp
index 098ecbc5..f6e1d0aa 100644
--- a/src/gui/socialwindow.cpp
+++ b/src/gui/socialwindow.cpp
@@ -186,7 +186,7 @@ public:
mScroll = new ScrollArea(mList);
mScroll->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_AUTO);
- mScroll->setVerticalScrollPolicy(gcn::ScrollArea::SHOW_ALWAYS);
+ mScroll->setVerticalScrollPolicy(gcn::ScrollArea::SHOW_AUTO);
}
~PartyTab()
@@ -321,7 +321,7 @@ SocialWindow::SocialWindow() :
setCloseButton(true);
setMinWidth(120);
setMinHeight(55);
- setDefaultSize(590, 200, 150, 60);
+ setDefaultSize(590, 200, 150, 124);
setupWindow->registerWindowForReset(this);
loadWindowState();
diff --git a/src/party.cpp b/src/party.cpp
index 75283916..155de2ba 100644
--- a/src/party.cpp
+++ b/src/party.cpp
@@ -145,7 +145,7 @@ void Party::removeFromMembers()
while(itr != itr_end)
{
Being *b = beingManager->findBeing((*itr)->getID());
- if (b->getType() == Being::PLAYER)
+ if (b && b->getType() == Being::PLAYER)
static_cast<Player*>(b)->setParty(NULL);
++itr;
}