Subject: bug#11544: Subject: 24.1.50; ediff-buffers command window does not work properly

From: martin rudalics <[email-masked]>
Date: Thu, 24 May 2012 11:01:45 +0200

Please keep CCing to [email-masked] so the information you
provide does not get lost.

 > On this bug, after typing the ? first the window grows to normal size and
 > then the window's left edge stays in place

But when you type "?" on your Windows Emacs the left edge moves?  Could
you try comparing the return values of the function
`ediff-make-frame-position' on GNU/Linux and Windows respectively?

 > and the width decreases to about
 > a characters width in a fairly continuous movement.

So it looks like an animated variant of bug#11480.

 > I tried emacs 23 and
 > it does the same thing on Ubuntu precise.  I use emacs on windows and have
 > never seen this problem using ediff there if that helps.

I don't have the slightest idea what's going on so I can only suggest to
try the following: Locate the file ediff-wind.el (in the lisp/vc
subdirectory) and try to apply the patch I attached.  At least this way
we should be able to find out whether doing two separate calls of
`modify-frame-parameters' confuses your window manager.

Thanks, martin
*** lisp/vc/ediff-wind.el	2012-04-26 03:04:36 +0000
--- lisp/vc/ediff-wind.el	2012-05-24 08:41:17 +0000
***************
*** 1004,1010 ****
  
      (goto-char (point-min))
  
!     (modify-frame-parameters ctl-frame adjusted-parameters)
      (make-frame-visible ctl-frame)
  
      ;; This works around a bug in 19.25 and earlier.  There, if frame gets
--- 1004,1013 ----
  
      (goto-char (point-min))
  
!     (modify-frame-parameters
!      ctl-frame
!      (append adjusted-parameters
! 	     (funcall ediff-control-frame-position-function ctl-buffer fwidth fheight)))
      (make-frame-visible ctl-frame)
  
      ;; This works around a bug in 19.25 and earlier.  There, if frame gets
***************
*** 1024,1032 ****
  
      ;; Now move the frame.  We must do it separately due to an obscure bug in
      ;; XEmacs
!     (modify-frame-parameters
!      ctl-frame
!      (funcall ediff-control-frame-position-function ctl-buffer fwidth fheight))
  
      ;; synchronize so the cursor will move to control frame
      ;; per RMS suggestion
--- 1027,1035 ----
  
      ;; Now move the frame.  We must do it separately due to an obscure bug in
      ;; XEmacs
!     ;; (modify-frame-parameters
!      ;; ctl-frame
!      ;; (funcall ediff-control-frame-position-function ctl-buffer fwidth fheight))
  
      ;; synchronize so the cursor will move to control frame
      ;; per RMS suggestion