help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: [comp.emacs] ediff wide/gnome (emacs 21)


From: Kevin Rodgers
Subject: Re: [comp.emacs] ediff wide/gnome (emacs 21)
Date: Wed, 16 Nov 2005 14:00:51 -0700
User-agent: Mozilla Thunderbird 0.9 (X11/20041105)

Mike Ballard wrote:
I'm not particularly enamored with gnome but have been using it for
awhile, have things set up so would rather just leave it.

But one of the irritating problems I never had until using gnome is ediff
wide-screen positioning; on-screen emacs is positioned near the right edge
where I want it; when I start ediff (using 'ediff-diff-options "-w"')
9x/10 gnome/its wm leave the left edge of emacs as-is and expands for
ediff off-screen (out of view) to the right.  Besides dropping gnome or
replacing wms, is there any way I can fix this?

I have no idea how/why gnome does this because as I mentioned, it doesn't
do this each and every single time; sometimes it will correctly
expand/reposition to the center but 90% of the time it expands off-screen
to the right (and this inconsistency could be session-to-session or a
couple times it's done this within a single session).

Does adding (user-position . t) to the frame parameters help?

(defun ediff-make-wide-display ()
  "Construct an alist of parameters for the wide display.
Saves the old frame parameters in `ediff-wide-display-orig-parameters'.
The frame to be resized is kept in `ediff-wide-display-frame'.
This function modifies only the left margin and the width of the display.
It assumes that it is called from within the control buffer."
  (if (not (fboundp 'ediff-display-pixel-width))
      (error "Can't determine display width"))
  (let* ((frame-A (window-frame ediff-window-A))
         (frame-A-params (frame-parameters frame-A))
         (cw (ediff-frame-char-width frame-A))
         (wd (- (/ (ediff-display-pixel-width) cw) 5)))
    (setq ediff-wide-display-orig-parameters
          (list (cons 'left (max 0 (eval (cdr (assoc 'left frame-A-params)))))
                (cons 'width (cdr (assoc 'width frame-A-params))))
          ediff-wide-display-frame frame-A)
    (modify-frame-parameters frame-A
                             `((left . ,cw) (width . ,wd)
                               (user-position . t)))))

--
Kevin Rodgers





reply via email to

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