bool ewol::widget::ContextMenu::onEventInput(const ewol::event::Input& _event) { if (_event.getId() > 0) { if (nullptr != ewol::widget::Container::getWidgetAtPos(_event.getPos())) { return false; } if( _event.getStatus() == gale::key::status_down || _event.getStatus() == gale::key::status_move || _event.getStatus() == gale::key::status_single || _event.getStatus() == gale::key::status_up || _event.getStatus() == gale::key::status_enter || _event.getStatus() == gale::key::status_leave ) { // Auto-remove ... autoDestroy(); return true; } } return false; }
nsresult GMPVideoDecoderParent::Decode(GMPVideoEncodedFrame* aInputFrame, bool aMissingFrames, const nsTArray<uint8_t>& aCodecSpecificInfo, int64_t aRenderTimeMs) { nsAutoRef<GMPVideoEncodedFrame> autoDestroy(aInputFrame); if (!mCanSendMessages) { NS_WARNING("Trying to use an invalid GMP video decoder!"); return NS_ERROR_FAILURE; } MOZ_ASSERT(mPlugin->GMPThread() == NS_GetCurrentThread()); auto inputFrameImpl = static_cast<GMPVideoEncodedFrameImpl*>(aInputFrame); GMPVideoEncodedFrameData frameData; inputFrameImpl->RelinquishFrameData(frameData); // Very rough kill-switch if the plugin stops processing. If it's merely // hung and continues, we'll come back to life eventually. // 3* is because we're using 3 buffers per frame for i420 data for now. if (NumInUse(kGMPFrameData) > 3*GMPSharedMemManager::kGMPBufLimit || NumInUse(kGMPEncodedData) > GMPSharedMemManager::kGMPBufLimit) { return NS_ERROR_FAILURE; } if (!SendDecode(frameData, aMissingFrames, aCodecSpecificInfo, aRenderTimeMs)) { return NS_ERROR_FAILURE; } // Async IPC, we don't have access to a return value. return NS_OK; }
void ewol::widget::Parameter::onCallbackMenuclosed() { // inform that the parameter windows is closed signalClose.emit(); // close this widget ... autoDestroy(); }