Openbox encerrando ao executar programas GTK+ 3 [Resolvido]

Publicado por Leandro Nkz em 13/12/2013

[ Hits: 4.058 ]

Blog: http://brweatherproject.blogspot.com/

 


Openbox encerrando ao executar programas GTK+ 3 [Resolvido]



Olá, a todos!

Nesta rápida dica, mostrarei como solucionar um bug do Openbox na versão 3.5.0: ele é encerrado quando uma aplicação GTK+ 3 é utilizada.

Assim que migrei para o Slackware Current (64 bits), instalei o Openbox 3.5.0 através do seu SlackBuild. O problema era que, de vez em quando (e do nada), o Xorg/Openbox era encerrado, e voltava para a tela de login.

Isso ocorreu inúmeras vezes, até que eu pude encontrar um padrão: isso só acontecia quando eu estava utilizando programas que utilizam GTK+ 3, como o Evince ou o Audacious. Desse modo, eu pude identificar o seguinte:
  • O bug afeta aplicações que utilizam o GTK+ 3 e o Openbox 3.5.0;
  • Ele só é disparado quando é ativado algum componente na barra de ferramentas (seletor de zoom e numeração de páginas, no caso do Evince, por exemplo);
  • Ele só ocorre quando utiliza-se um tema GTK+ 3 junto com os programas. Ou seja, se você não utiliza nenhum tema GTK+ 3 e os seus programas possuem a aparência "crua", ele não se manifesta.

O bug afeta a versão 3.5.0 do Openbox e já foi solucionado em algumas distribuições:

Como solucionar

Há um patch disponibilizado nos links acima, que soluciona este problema. Basta aplicá-lo, recompilar o Openbox e reinstalá-lo. Para quem utiliza o Slackware, isso pode ser feito no próprio SlackBuild.

Vamos ao passo a passo:

1. Baixe o SlackBuild do Openbox:

wget http://slackbuilds.org/slackbuilds/14.1/desktop/openbox.tar.gz

2. Descompacte-o:

tar xvf openbox.tar.gz

3. Entre na pasta descompactada:

cd openbox

4. Baixe o source do Openbox 3.5.0:

wget http://openbox.org/dist/openbox/openbox-3.5.0.tar.gz

5. Crie o arquivo openbox-patch.patch:

vim openbox-patch.patch

Com o seguinte conteúdo:

--- openbox-3.5.0/openbox/moveresize.c.orig 2011-08-01 21:14:58.000000000 +0100
+++ openbox-3.5.0/openbox/moveresize.c  2012-03-28 20:04:36.100459920 +0100
@@ -326,6 +326,16 @@ void moveresize_end(gboolean cancel)
#endif
     }

+    if (!moveresize_client) {
+        ob_debug("moveresize_end: moveresize_client is NULL!");
+        return;
+    }
+
+    if (!moveresize_in_progress) {
+        ob_debug("moveresize_end: moveresize_in_progress is FALSE!");
+        return;
+    }
+
     /* don't use client_move() here, use the same width/height as
        we've been using during the move, otherwise we get different results
        when moving maximized windows between monitors of different sizes !

Salve e saia.

6. Edite o arquivo openbox.SlackBuild para que ele possa "patchear" o arquivo fonte:

vim openbox.SlackBuild

Após estas linhas (82 e 83):
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION

Adicione:

patch -p1 < $CWD/openbox-patch.patch

Salve e feche.

Este trecho, vai ficar assim:

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
patch -p1 < $CWD/openbox-patch.patch
chown -R root:root

7. Dê permissão de execução ao script:

chmod +x openbox.SlackBuild

8. Execute:

# ./openbox.SlackBuild

9. Reinstale o Openbox:

# upgradepkg --reinstall /tmp/openbox-3.5.0-*_SBo.tgz

10. Reinicie e teste.


Dica também publicada no Mundo GNU.

Até a próxima!

Outras dicas deste autor

Java - Anti-aliasing de fontes em aplicações gráficas

LibreOffice - Corrigindo aspas duplas/simples

Habilitando busca incremental de comandos no terminal GNU/Linux

Tint2 com menu do Openbox

Como inserir o Tux/TuxDebian durante o boot do Debian

Leitura recomendada

MintMenu applet

Resolvendo o problema de autenticação no wvdial

Executando browsers como root Slackware (Vivaldi, Chrome)

Compartilhando sua internet com NAT automaticamente

Ajustando a data e hora no Linux

  

Comentários
[1] Comentário enviado por izaias em 13/12/2013 - 12:05h

Experimentar o Openbox no Slack, seria um belo convite. :)
Sempre uso ele com Xfce - mais completo.

Favoritado!

[2] Comentário enviado por leandro em 13/12/2013 - 16:49h

Eu já me acostumei ao Openbox. Agora fica difícil largá-lo, rsrs.

Thanks!

[3] Comentário enviado por px em 14/12/2013 - 15:46h

Aqui não achei este bug, e olha que uso openbox desde o início de Slack à Arch (atualmente Arch). Também tenho no pc GTK+ GTK2 GTK3 QT4, isso o que lembro por baixo...

Bom qualquer coisa já tenho uma mini faq aqui rsrs

[4] Comentário enviado por izaias em 14/12/2013 - 16:06h

Bug ou compatibilidade? Eis a questão...

Cosa semelhante (acho) ocorre com o Docky no openSUSE (KDE).
Não se consegue fixar aplicativos do KDE nele.

Talvez o Docky não seja multi- D.E. Se é que posso falar assim.

[5] Comentário enviado por leandro em 15/12/2013 - 10:26h


[3] Comentário enviado por px em 14/12/2013 - 15:46h:

Aqui não achei este bug, e olha que uso openbox desde o início de Slack à Arch (atualmente Arch). Também tenho no pc GTK+ GTK2 GTK3 QT4, isso o que lembro por baixo...

Bom qualquer coisa já tenho uma mini faq aqui rsrs


É um bug meio esquisito. Demorei muito para poder identificá-lo. O modo mais fácil de testar é executar um programa GTK+3 e ficar clicando/arrastando o mouse "que nem um louco" na barra de ferramentas. Aqui é certeiro: ele travava na hora, rsrs.



Contribuir com comentário