void WMLPrevElement::executeTask(Event*) { WMLPageState* pageState = wmlPageStateForDocument(document()); if (!pageState) return; WMLCardElement* card = pageState->activeCard(); if (!card) return; storeVariableState(pageState); // Stop the timer of the current card if it is active if (WMLTimerElement* eventTimer = card->eventTimer()) eventTimer->stop(); pageState->page()->goBack(); }
void WMLDoElement::defaultEventHandler(Event* event) { if (m_isOptional) return; if (event->type() == eventNames().keypressEvent) { WMLElement::defaultEventHandler(event); return; } if (event->type() != eventNames().clickEvent && event->type() != eventNames().keydownEvent) return; if (event->isKeyboardEvent() && static_cast<KeyboardEvent*>(event)->keyIdentifier() != "Enter") return; if (m_type == "accept" || m_type == "options") { if (m_task) m_task->executeTask(event); } else if (m_type == "prev") { WMLPageState* pageState = wmlPageStateForDocument(document()); if (!pageState) return; // Stop the timer of the current card if it is active if (WMLCardElement* card = pageState->activeCard()) { if (WMLTimerElement* eventTimer = card->eventTimer()) eventTimer->stop(); } pageState->page()->goBack(); } else if (m_type == "reset") { WMLPageState* pageState = wmlPageStateForDocument(document()); if (!pageState) return; pageState->reset(); } }