Merge from emacs-23; up to 2010-06-12T10:58:54Z!romain@orebokech.com.
[bpt/emacs.git] / lisp / dframe.el
index bfa672c..02eeef0 100644 (file)
@@ -1,7 +1,6 @@
 ;;; dframe --- dedicate frame support modes
 
-;;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;    2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2011  Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <zappo@gnu.org>
 ;; Keywords: file, tags, tools
@@ -244,6 +243,9 @@ Local to those buffers, as a function called that created it.")
   "Return non-nil if FRAME is currently available."
   (and frame (frame-live-p frame) (frame-visible-p frame)))
 
+(defvar x-sensitive-text-pointer-shape)
+(defvar x-pointer-shape)
+
 (defun dframe-frame-mode (arg frame-var cache-var buffer-var frame-name
                              local-mode-fn
                              &optional
@@ -430,7 +432,8 @@ a cons cell indicating a position of the form (LEFT . TOP)."
   (unless (or (not window-system) (eq window-system 'pc))
     (let* ((pfx (dframe-frame-parameter parent-frame 'left))
           (pfy (dframe-frame-parameter parent-frame 'top))
-          (pfw (frame-pixel-width parent-frame))
+          (pfw (+ (tool-bar-pixel-width parent-frame)
+                  (frame-pixel-width parent-frame)))
           (pfh (frame-pixel-height parent-frame))
           (nfw (frame-pixel-width new-frame))
           (nfh (frame-pixel-height new-frame))
@@ -459,7 +462,7 @@ a cons cell indicating a position of the form (LEFT . TOP)."
                      (- (x-display-pixel-height) (car (cdr pfy)) pfh)
                    (car (cdr pfy)))))
       (cond ((eq location 'right)
-            (setq newleft (+ pfx pfw 5)
+            (setq newleft (+ pfx pfw 10)
                   newtop pfy))
            ((eq location 'left)
             (setq newleft (- pfx 10 nfw)
@@ -471,7 +474,7 @@ a cons cell indicating a position of the form (LEFT . TOP)."
                   ;; extra 10 is just dressings for window
                   ;; decorations.
                   (let* ((left-guess (- pfx 10 nfw))
-                         (right-guess (+ pfx pfw 5))
+                         (right-guess (+ pfx pfw 10))
                          (left-margin left-guess)
                          (right-margin (- (x-display-pixel-width)
                                           right-guess 5 nfw)))
@@ -503,7 +506,7 @@ a cons cell indicating a position of the form (LEFT . TOP)."
                               (list (cons 'left newleft)
                                     (cons 'top newtop))))))
 
-(defun dframe-reposition-frame-xemacs (new-frame parent-frame location)
+(defun dframe-reposition-frame-xemacs (_new-frame _parent-frame _location)
   "Move NEW-FRAME to be relative to PARENT-FRAME.
 LOCATION can be one of 'random, 'left-right, or 'top-bottom."
   ;; Not yet implemented
@@ -632,7 +635,7 @@ selecting FRAME-VAR."
 FRAME-VAR is the variable storing the currently active dedicated frame.
 If the current frame's buffer uses DESIRED-MAJOR-MODE, then use that frame."
   (if (not (eq (selected-frame) (symbol-value frame-var)))
-      (if (and (eq major-mode 'desired-major-mode)
+      (if (and (eq major-mode desired-major-mode)
               (get-buffer-window (current-buffer))
               (window-frame (get-buffer-window (current-buffer))))
          (window-frame (get-buffer-window (current-buffer)))
@@ -713,13 +716,12 @@ Argument PROMPT is the prompt to use."
 (defvar dframe-client-functions nil
   "List of client functions using the dframe timer.")
 
-(defun dframe-set-timer (timeout fn &optional null-on-error)
+(defun dframe-set-timer (timeout fn &optional _null-on-error)
   "Apply a timer with TIMEOUT, to call FN, or remove a timer if TIMEOUT is nil.
 TIMEOUT is the number of seconds until the dframe controled program
 timer is called again.  When TIMEOUT is nil, turn off all timeouts.
 This function must be called from the buffer belonging to the program
-who requested the timer.
-If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
+who requested the timer.  NULL-ON-ERROR is ignored."
   ;; First, fix up our list of client functions
   (if timeout
       (add-to-list 'dframe-client-functions fn)
@@ -732,9 +734,9 @@ If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
        ;; functions are left, shut er down.
        (and dframe-timer (not timeout) dframe-client-functions))
       ;; Only call the low level function if we are changing the state.
-      (dframe-set-timer-internal timeout null-on-error)))
+      (dframe-set-timer-internal timeout)))
 
-(defun dframe-set-timer-internal (timeout &optional null-on-error)
+(defun dframe-set-timer-internal (timeout &optional _null-on-error)
   "Apply a timer with TIMEOUT to call the dframe timer manager."
   (when dframe-timer
     (if (featurep 'xemacs)
@@ -783,8 +785,8 @@ Must be bound to EVENT."
               (popup-mode-menu event)
             (goto-char (event-closest-point event))
             (beginning-of-line)
-            (forward-char (min 5 (- (save-excursion (end-of-line) (point))
-                                    (save-excursion (beginning-of-line) (point)))))
+            (forward-char (min 5 (- (line-end-position)
+                                    (line-beginning-position))))
             (popup-mode-menu))
           ;; Wait for menu to bail out.  `popup-mode-menu' (and other popup
           ;; menu functions) return immediately.
@@ -838,7 +840,7 @@ Must be bound to event E."
   (if dframe-track-mouse-function
       (funcall dframe-track-mouse-function event)))
 
-(defun dframe-help-echo (window &optional buffer position)
+(defun dframe-help-echo (_window &optional buffer position)
   "Display help based context.
 The context is in WINDOW, viewing BUFFER, at POSITION.
 BUFFER and POSITION are optional because XEmacs doesn't use them."
@@ -933,7 +935,7 @@ redirected into a window on the attached frame."
         (mapcar (function (lambda (hook) (funcall hook buffer)))
                 temp-buffer-show-hook))))
 
-(defun dframe-hack-buffer-menu (e)
+(defun dframe-hack-buffer-menu (_e)
   "Control mouse 1 is buffer menu.
 This hack overrides it so that the right thing happens in the main
 Emacs frame, not in the dedicated frame.
@@ -990,5 +992,4 @@ mode-line.  This is only useful for non-XEmacs."
 
 (provide 'dframe)
 
-;; arch-tag: df9b91b6-e85e-4a76-a02e-b3cb5b686bd4
 ;;; dframe.el ends here