fix focus bug, change battle events

This commit is contained in:
Eduardo Bart
2012-03-29 19:46:44 -03:00
parent e0325c4c3b
commit 959d9a87b0
5 changed files with 24 additions and 29 deletions

View File

@@ -88,10 +88,7 @@ void UIManager::inputEvent(const InputEvent& event)
m_mouseReceiver->propagateOnMouseEvent(event.mousePos, widgetList);
for(const UIWidgetPtr& widget : widgetList) {
if(widget->isFocusable()) {
if(UIWidgetPtr parent = widget->getParent())
parent->focusChild(widget, Fw::MouseFocusReason);
}
widget->recursiveFocus(Fw::MouseFocusReason);
if(widget->onMousePress(event.mousePos, event.mouseButton))
break;
}

View File

@@ -579,6 +579,18 @@ void UIWidget::focus()
parent->focusChild(asUIWidget(), Fw::ActiveFocusReason);
}
void UIWidget::recursiveFocus(Fw::FocusReason reason)
{
if(m_destroyed)
return;
if(UIWidgetPtr parent = getParent()) {
if(m_focusable)
parent->focusChild(asUIWidget(), reason);
parent->recursiveFocus(reason);
}
}
void UIWidget::lower()
{
if(m_destroyed)

View File

@@ -100,6 +100,7 @@ public:
void lock();
void unlock();
void focus();
void recursiveFocus(Fw::FocusReason reason);
void lower();
void raise();
void grabMouse();