;(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

Toffoli foi responsável pelo "voto de minerva" no julgamento? Entenda

Dias Toffoli, presidente do STF - Carlos Moura/ STF
Dias Toffoli, presidente do STF Imagem: Carlos Moura/ STF

Alex Tajra

Do UOL, em São Paulo

07/11/2019 21h46Atualizada em 07/11/2019 21h46

O presidente do Supremo Tribunal Federal (STF), ministro Dias Toffoli, foi o responsável pelo voto que decidiu o julgamento que analisava a possibilidade de execução da pena após condenação em segunda instância.

Por 6 votos a 5, a corte decidiu que o réu só pode ser preso após o trânsito em julgado, ou seja, quando não cabem mais recursos, salvo em casos de prisão preventiva ou temporária.

A despeito de ter proferido o voto de desempate, o posicionamento de Toffoli não pode ser considerado um "voto de minerva". Entenda a seguir o porquê.

O que é o voto de minerva?

Classificado formalmente como voto de qualidade no regimento interno do STF, este tipo de posicionamento se dá quando há empate na votação por conta da ausência de algum ministro. Essa falta tem de obedecer a questões específicas para facultar esse tipo de voto.

Quando o voto de qualidade pode ser proferido?

O regimento interno do Supremo garante o "voto de minerva" ao presidente quando:

  • a ausência de algum ministro decorra de impedimento
  • suspeição de algum ministro (quando o magistrado indica ter alguma relação pessoal com o réu ou o caso que será julgado, por exemplo)
  • licença médica superior a 30 dias, no caso de votação de matéria urgente
  • impossibilidade de convocar o ministro que está afastado.

Com a ausência, fica na corte um número par de ministros, cabendo ao presidente proferir novo voto se o julgamento terminar empatado.

O voto de desempate, se a matéria que está sendo julgada diz respeito direta ou indiretamente ao direito penal, costuma ser em benefício do réu, conforme o princípio in dubio pro reo (em dúvida, a favor do réu).

Ainda segundo o regimento interno, o vice-presidente da corte, cargo hoje ocupado pelo ministro Luiz Fux, assume todas as competências da presidência caso Toffoli se declare impedido, se ausente ou peça licença.

O que o STF decidiu?

No julgamento de hoje, os ministros decidiram que a pena só pode ser executada a partir do trânsito em julgado da condenação.

O Supremo havia se posicionado em dois outros momentos pela permissão da execução da pena a partir da condenação em tribunal colegiado (segunda instância em diante), mas as decisões eram sobre casos específicos, não sobre o mérito. No caso de hoje, foi consolidada a validade dos artigos da Constituição e do Código de Processo Penal que garantem a prisão apenas após o trânsito em julgado.

De acordo com o Conselho Nacional de Justiça, cerca de 4.900 casos —em que houve execução da pena após a condenação em segunda instância— serão afetados diretamente pelo entendimento da corte.