emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: Strange lockup with metacity


From: Chong Yidong
Subject: Re: Strange lockup with metacity
Date: Wed, 29 Nov 2006 19:16:13 -0500
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.91 (gnu/linux)

>> There was one controversial patch
>> applied to src/xterm.c at the beginning of November, which may have
>> some bearing on this.  This is just a hunch, but could you apply the
>> reversed patch and see if the problem persists?
>
> Applying that patch fixed the problem. I'm much happier now - thanks!

My preceding email to Jon was not sent to this list, but the patch in
question was the _NET_ACTIVE_WINDOW hack discussed in the "raise-frame
doesn't work in Fedora Core 4" thread on emacs-devel.  Apparently, the
hack has bad side-effects.

RCS file: /sources/emacs/emacs/src/xterm.c,v
retrieving revision 1.929
retrieving revision 1.930
diff -c -r1.929 -r1.930
*** emacs/src/xterm.c   2006/10/10 14:37:54     1.929
--- emacs/src/xterm.c   2006/11/03 08:58:39     1.930
***************
*** 8607,8619 ****
  x_raise_frame (f)
       struct frame *f;
  {
    if (f->async_visible)
!     {
!       BLOCK_INPUT;
!       XRaiseWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f));
!       XFlush (FRAME_X_DISPLAY (f));
!       UNBLOCK_INPUT;
!     }
  }
  
  /* Lower frame F.  */
--- 8607,8631 ----
  x_raise_frame (f)
       struct frame *f;
  {
+   Lisp_Object frame;
+   const char *atom = "_NET_ACTIVE_WINDOW";
+ 
+   BLOCK_INPUT;
    if (f->async_visible)
!     XRaiseWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f));
! 
!   XSETFRAME (frame, f);
!   /* See Window Manager Specification/Extended Window Manager Hints at
!      http://freedesktop.org/wiki/Standards_2fwm_2dspec */
! 
!   Fx_send_client_event (frame, make_number (0), frame,
!                         make_unibyte_string (atom, strlen (atom)),
!                         make_number (32),
!                         Fcons (make_number (1),
!                                Fcons (make_number (time (NULL) * 1000),
!                                       Qnil)));
!   XFlush (FRAME_X_DISPLAY (f));
!   UNBLOCK_INPUT;
  }
  
  /* Lower frame F.  */




reply via email to

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