]> git.eshelyaron.com Git - emacs.git/commitdiff
Adapt ediff window handling to multi-tty.
authorChong Yidong <cyd@gnu.org>
Thu, 26 Apr 2012 03:04:36 +0000 (11:04 +0800)
committerChong Yidong <cyd@gnu.org>
Thu, 26 Apr 2012 03:04:36 +0000 (11:04 +0800)
* 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
lisp/ChangeLog
lisp/vc/ediff-init.el
lisp/vc/ediff-wind.el

index eb09afc0b552b19ba48f2066e2cc715152d8c405..04271849758121bc61204274fea03b70a13acb5c 100644 (file)
@@ -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.
index ad6d69ee92408d06d7d9e0739e1777d7a2a506c6..80ed9356850593d9cca6292036914cd2fd336a70 100644 (file)
@@ -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
index 83098fcb0c79e3e7f8a7f838f9658d909286e990..50f2be3b8dceb7cdb3ba07bcd694a5fe084e794c 100644 (file)
       '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.