;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Maria Rita nega rivalidade entre Gal e Elis: 'Sempre me tratou com carinho'

Elis Regina e Gal Costa no "Especial Grandes Nomes" - Reprodução
Elis Regina e Gal Costa no 'Especial Grandes Nomes' Imagem: Reprodução

De Splash, em São Paulo

09/11/2022 14h19Atualizada em 09/11/2022 14h55

Maria Rita, 45 anos, usou as redes sociais para lamentar a morte de Gal Costa, aos 77 anos, na manhã de hoje.

Na mensagem, a cantora disse que está "no chão" com a notícia e negou que sua mãe, Elis Regina, fosse "rival" de Gal. As duas eram contemporâneas e dividiram o palco no show "Grandes Nomes", exibido pela TV Globo em 1981.

"Tô no chão. Tô zoada. Embora os fofoqueiros de plantão sempre a colocassem como uma inimiga de minha mãe, Gal sempre me tratou e cuidou com muito carinho e respeito. Era lindo como ela trocava comigo sobre nossos meninos, da mesma idade. Era lindo perceber seu olhar comigo. Era lindo perceber aquela força, aquele sorriso desarmado de guerra, armado de colo. Tô no chão. Tô zoada", escreveu a cantora.

Que ela descanse em luz, muita luz. Que ela seja recebida com sorrisos largos, peitos abertos e tanta lindeza e amor quanto o que ela colocou por aqui. Eu tô no chão. Maria Rita

Gal deu detalhes da relação com Elis em 1995

Em 1995, 13 anos após a morte de Elis Regina, Gal Costa falou sobre a relação das duas em entrevista ao "Roda Viva" (TV Cultura).

"Eu não tinha uma relação muito próxima com ela, mas a gente se falava por telefone. Ela me ligava, me procurava, eu ligava pra ela. Ela era muito carinhosa comigo. Ela ia ver meus shows, eu ia assistir shows dela. Eu sei que ela gostava muito de mim. Era uma coisa meio de flerte à distância", disse.

A cantora ainda contou como foi o convite para Elis participar do show exibido pela Globo.

"Eu falei pro Daniel [Filho, diretor do especial] que queria convidar Elis, ele disse: 'Não convide que ela não vem'. Eu disse: 'Ela vem. Ela tava em Los Angeles, foi logo depois da morte de John Lennon. Nós ligamos pra Los Angeles e falamos com Elis. Ela disse: 'Eu tô indo. [...] Vamos cantar uma coisa do John Lennon'. Eu disse: 'Vem pra cá, que aqui a gente decide o que fazer'. Ela veio, foi pro Rio, a gente ensaiou e fez o programa", continuou.

Eu tinha iração por ela. [...] Eu irava ela como cantora. Acho que ela era extremamente musical. Eu ficava muito impressionada com a musicalidade dela e com a técnica dela. Eu gostava muito dela. Nossa relação era legal. Gal Costa

Morre a cantora Gal Costa; confira momentos marcantes da carreira

João Marcelo Bôscoli, filho de Elis, participou da entrevista e contou o que a mãe falava de Gal.

"Em casa, ela dizia que a Gal era a melhor cantora do Brasil, sempre falou. E ela ouvia, um pouco antes de morrer, 'Meu Bem, Meu Mal' exaustivamente", disse.

"Eu sabia que ela queria gravar essa música", comentou Gal.

"Ela falava: 'Desgraçada, gravou essa música!'", revelou João, para a diversão dos integrantes da bancada e da cantora.