Adapt ediff window handling to multi-tty.
* vc/ediff-init.el: Always define ediff-pixel-width/height. * vc/ediff-wind.el (ediff-setup-windows-default): New function. (ediff-window-setup-function): Use it as the default, to set up windows based on whether the current frame is graphical. (ediff-choose-window-setup-function-automatically): Make obsolete. Fixes: debbugs:2138
This commit is contained in:
parent
823ad1d7e8
commit
f08ae1c9b5
3 changed files with 41 additions and 24 deletions
|
@ -1,3 +1,12 @@
|
|||
2012-04-26 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* vc/ediff-wind.el (ediff-setup-windows-default): New function.
|
||||
(ediff-window-setup-function): Use it as the default, to set up
|
||||
windows based on whether the current frame is graphical (Bug#2138).
|
||||
(ediff-choose-window-setup-function-automatically): Make obsolete.
|
||||
|
||||
* vc/ediff-init.el: Always define ediff-pixel-width/height.
|
||||
|
||||
2012-04-25 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* ffap.el: Remove old code for obsolete package.
|
||||
|
|
|
@ -786,19 +786,12 @@ TYPE-OF-EMACS is either 'xemacs or 'emacs."
|
|||
"")
|
||||
|
||||
|
||||
(if (ediff-window-display-p)
|
||||
(if (featurep 'xemacs)
|
||||
(progn
|
||||
(defalias 'ediff-display-pixel-width 'device-pixel-width)
|
||||
(defalias 'ediff-display-pixel-height 'device-pixel-height))
|
||||
(defalias 'ediff-display-pixel-width
|
||||
(if (fboundp 'display-pixel-width)
|
||||
'display-pixel-width
|
||||
'x-display-pixel-width))
|
||||
(defalias 'ediff-display-pixel-height
|
||||
(if (fboundp 'display-pixel-height)
|
||||
'display-pixel-height
|
||||
'x-display-pixel-height))))
|
||||
(if (featurep 'xemacs)
|
||||
(progn
|
||||
(defalias 'ediff-display-pixel-width 'device-pixel-width)
|
||||
(defalias 'ediff-display-pixel-height 'device-pixel-height))
|
||||
(defalias 'ediff-display-pixel-width 'display-pixel-width)
|
||||
(defalias 'ediff-display-pixel-height 'display-pixel-height))
|
||||
|
||||
;; A-list of current-diff-overlay symbols associated with buf types
|
||||
(defconst ediff-current-diff-overlay-alist
|
||||
|
|
|
@ -67,16 +67,23 @@
|
|||
'ediff-setup-windows-multiframe
|
||||
'ediff-setup-windows-plain))
|
||||
|
||||
(defcustom ediff-window-setup-function (ediff-choose-window-setup-function-automatically)
|
||||
(make-obsolete 'ediff-choose-window-setup-function-automatically
|
||||
'ediff-setup-windows-default "24.2")
|
||||
|
||||
(defcustom ediff-window-setup-function 'ediff-setup-windows-default
|
||||
"Function called to set up windows.
|
||||
Ediff provides a choice of two functions: `ediff-setup-windows-plain', for
|
||||
doing everything in one frame and `ediff-setup-windows-multiframe', which sets
|
||||
the control panel in a separate frame. By default, the appropriate function is
|
||||
chosen automatically depending on the current window system.
|
||||
However, `ediff-toggle-multiframe' can be used to toggle between the multiframe
|
||||
display and the single frame display.
|
||||
If the multiframe function detects that one of the buffers A/B is seen in some
|
||||
other frame, it will try to keep that buffer in that frame.
|
||||
Ediff provides a choice of three functions:
|
||||
(1) `ediff-setup-windows-multiframe', which sets the control panel
|
||||
in a separate frame.
|
||||
(2) `ediff-setup-windows-plain', which does everything in one frame
|
||||
(3) `ediff-setup-windows-default' (the default), which does (1)
|
||||
on a graphical display and (2) on a text terminal.
|
||||
|
||||
The command \\[ediff-toggle-multiframe] can be used to toggle
|
||||
between the multiframe display and the single frame display. If
|
||||
the multiframe function detects that one of the buffers A/B is
|
||||
seen in some other frame, it will try to keep that buffer in that
|
||||
frame.
|
||||
|
||||
If you don't like any of the two provided functions, write your own one.
|
||||
The basic guidelines:
|
||||
|
@ -90,10 +97,12 @@ The basic guidelines:
|
|||
Buffer C may not be used in jobs that compare only two buffers.
|
||||
If you plan to do something fancy, take a close look at how the two
|
||||
provided functions are written."
|
||||
:type '(choice (const :tag "Multi Frame" ediff-setup-windows-multiframe)
|
||||
:type '(choice (const :tag "Choose Automatically" ediff-setup-windows-default)
|
||||
(const :tag "Multi Frame" ediff-setup-windows-multiframe)
|
||||
(const :tag "Single Frame" ediff-setup-windows-plain)
|
||||
(function :tag "Other function"))
|
||||
:group 'ediff-window)
|
||||
:group 'ediff-window
|
||||
:version "24.2")
|
||||
|
||||
;; indicates if we are in a multiframe setup
|
||||
(ediff-defvar-local ediff-multiframe nil "")
|
||||
|
@ -333,6 +342,12 @@ into icons, regardless of the window manager."
|
|||
buffer-A buffer-B buffer-C control-buffer))
|
||||
(run-hooks 'ediff-after-setup-windows-hook))
|
||||
|
||||
(defun ediff-setup-windows-default (buffer-A buffer-B buffer-C control-buffer)
|
||||
(funcall (if (display-graphic-p)
|
||||
'ediff-setup-windows-multiframe
|
||||
'ediff-setup-windows-plain)
|
||||
buffer-A buffer-B buffer-C control-buffer))
|
||||
|
||||
;; Just set up 3 windows.
|
||||
;; Usually used without windowing systems
|
||||
;; With windowing, we want to use dedicated frames.
|
||||
|
|
Loading…
Add table
Reference in a new issue