emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems with compositing-enabled metacity in gnome enviroment


From: Darren Hoo
Subject: Re: Problems with compositing-enabled metacity in gnome enviroment
Date: Fri, 11 Feb 2011 22:53:19 +0800

Hi Jan

On Fri, Feb 11, 2011 at 9:52 PM, Jan Djärv <address@hidden> wrote:
> Hello.
>
> I can easily reproduce this bug.  Emacs does get restored, but metacity is
> buggy, and doesn't draw the window correctly.  Other apps also don't redraw
> correctly with metacity and compositing_manager true.  For example, Chromium
> menus don't pop down and are left on the screen, the Gnome panel sometimes
> vanishes, and so on.  If you wan't compositing_manager use compiz, it is
> nowhere near as buggy as metacity.  Emacs (and other apps) works fine with
> it.

The version of  metacity I am using is 2.30.1-3 in Debian Unstable. Is
there any related
bug report of metacity that I can refer to?

I had experienced the varnishes of  Gnome panel a long time ago, But
since then I
never experience it for at least half a year, aslo with  Chromium I
never encounter
such  symptoms as you mentioned.

The only thing I want with compositing is the fancy tranparency of
Emacs, switching to
compiz seems not to be a choice for me, compiz is somewhat over-bloated to me.

>
> BTW, you probably meant (set-frame-parameter nil 'alpha 94).  Also, please
> use report-emacs-bug for bugs like these.
Got it

> I reverted to the version before this commit, but the bug in metacity 
> remains.  It is
> probably a fluke that your meatcity works with > that version.

just FYI,  it is this specific hunk of the commit that triggers the
(possible) bug of metacity
Just revert this hunk of the commit Emacs works as expected at least for me.

src/xterm.c:

@@ -489,14 +489,14 @@ x_set_frame_alpha (struct frame *f)
                             &data);

     if (rc == Success && actual != None)
-      if (*(unsigned long *)data == opac)
-       {
-         XFree ((void *) data);
-         x_uncatch_errors ();
-         return;
-       }
-      else
+      {
        XFree ((void *) data);
+       if (*(unsigned long *)data == opac)
+         {
+           x_uncatch_errors ();
+           return;
+         }
+      }
     x_uncatch_errors ();
   }



Thanks,

Darren.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]