Ejemplo n.º 1
0
EventHandler::~EventHandler()
{
    Pipe* pipe = _proxy->getChannel().getPipe();
    MessagePump* messagePump =
        dynamic_cast<MessagePump*>( pipe->isThreaded() ?
                                    pipe->getMessagePump() :
                                    pipe->getConfig()->getMessagePump( ));
    if( messagePump )
        messagePump->deregister( _proxy );

    EventHandlers::iterator i = lunchbox::find( *_eventHandlers, this );
    LBASSERT( i != _eventHandlers->end( ));
    _eventHandlers->erase( i );
    if( _eventHandlers->empty( ))
    {
        delete _eventHandlers.get();
        _eventHandlers = 0;
    }
}
Ejemplo n.º 2
0
EventHandler::~EventHandler()
{
    eq::Pipe* pipe = _window->getPipe();
    MessagePump* messagePump = dynamic_cast<MessagePump*>( pipe->isThreaded() ?
                 pipe->getMessagePump() : pipe->getConfig()->getMessagePump( ));
    if( messagePump )
    {
        Display* display = _window->getXDisplay();
        LBASSERT( display );
        messagePump->deregister( display );
    }

    EventHandlers::iterator i = stde::find( *_eventHandlers, this );
    LBASSERT( i != _eventHandlers->end( ));
    _eventHandlers->erase( i );
    if( _eventHandlers->empty( ))
    {
        delete _eventHandlers.get();
        _eventHandlers = 0;
    }
}
Ejemplo n.º 3
0
EventHandler::~EventHandler()
{
    if( _magellanUsed )
    {
#ifdef EQUALIZER_USE_MAGELLAN_GLX
        lunchbox::ScopedFastWrite mutex( _magellan );
        if( --_magellan->used == 0 )
        {
            if( spnav_close() == -1 )
            {
                LBWARN
                    << "Couldn't close connection to the space navigator daemon"
                    << std::endl;
            }
        }
#endif
        _magellanUsed = false;
    }

    eq::Pipe* pipe = _window->getPipe();
    MessagePump* messagePump =
        dynamic_cast<MessagePump*>( pipe->isThreaded() ?
                                    pipe->getMessagePump() :
                                    pipe->getConfig()->getMessagePump( ));
    if( messagePump )
    {
        Display* display = _window->getXDisplay();
        LBASSERT( display );
        messagePump->deregister( display );
    }

    EventHandlers::iterator i = stde::find( *_eventHandlers, this );
    LBASSERT( i != _eventHandlers->end( ));
    _eventHandlers->erase( i );
    if( _eventHandlers->empty( ))
    {
        delete _eventHandlers.get();
        _eventHandlers = 0;
    }
}