void AbiCollab::_setDocument(PD_Document* pDoc) { UT_DEBUGMSG(("AbiCollab::setDocument()\n")); UT_return_if_fail(pDoc); AbiCollabSessionManager* pManager = AbiCollabSessionManager::getManager(); UT_return_if_fail(pManager); // assume clean state UT_return_if_fail(m_iDocListenerId==0); m_pDoc = pDoc; // register ourselves as a mouse listener to all frames showing this document for (UT_sint32 i = 0; i < XAP_App::getApp()->getFrameCount(); i++) { XAP_Frame* pFrame = XAP_App::getApp()->getFrame(i); UT_continue_if_fail(pFrame); if (pFrame->getCurrentDoc() == m_pDoc) { // this frame is showing our document, attach a mouse listener to it EV_Mouse* pMouse = pFrame->getMouse(); if (pMouse) m_mMouseListenerIds[pMouse] = pMouse->registerListener(this); } } // add the new export listeners UT_uint32 lid = 0; pDoc->addListener(static_cast<PL_Listener *>(&m_Export), &lid); _setDocListenerId(lid); UT_DEBUGMSG(("Added document listener %d\n", lid)); }