]> code.delx.au - gnu-emacs/blobdiff - lisp/dframe.el
** offby1@blarg.net, Nov 5: calendar gets wrong end for Daylight Savings Time
[gnu-emacs] / lisp / dframe.el
index c2b2441a94d40ec738fff8474473669cae366543..f77a5059026b49e919ea25e5dc3c5a8fbae9e45c 100644 (file)
@@ -1,10 +1,10 @@
 ;;; dframe --- dedicate frame support modes
 
-;;; Copyright (C) 1996, 97, 98, 99, 2000, 01, 02, 03, 04 Free Software Foundation
+;;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;;    2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <zappo@gnu.org>
 ;; Keywords: file, tags, tools
-;; X-RCS: $Id: dframe.el,v 1.1 2005/09/30 13:18:43 cyd Exp $
 
 (defvar dframe-version "1.3"
   "The current version of the dedicated frame library.")
@@ -23,8 +23,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 ;;
 ;;  * The timer managers doesn't handle multiple different timeouts.
 ;;  * You can't specify continuous timouts (as opposed to just lidle timers.)
 
+(defvar x-pointer-hand2)
+(defvar x-pointer-top-left-arrow)
+
 ;;; Code:
 (defvar dframe-xemacsp (string-match "XEmacs" emacs-version)
   "Non-nil if we are running in the XEmacs environment.")
 (if (fboundp 'frame-parameter)
 
     (defalias 'dframe-frame-parameter 'frame-parameter)
-  
+
   (defun dframe-frame-parameter (frame parameter)
     "Return FRAME's PARAMETER value."
     (cdr (assoc parameter (frame-parameters frame)))))
@@ -258,7 +261,8 @@ Local to those buffers, as a function called that created it.")
        )
 
     ;; mouse bindings so we can manipulate the items on each line
-    (define-key map [down-mouse-1] 'dframe-double-click)
+    ;; (define-key map [down-mouse-1] 'dframe-double-click)
+    (define-key map [follow-link] 'mouse-face)
     (define-key map [mouse-2] 'dframe-click)
     ;; This is the power click for new frames, or refreshing a cache
     (define-key map [S-mouse-2] 'dframe-power-click)
@@ -296,7 +300,7 @@ This frame is either resurrected, hidden, killed, etc based on
 the value.
 CACHE-VAR is a variable used to cache a cached frame.
 BUFFER-VAR is a variable used to cache the buffer being used in dframe.
-This buffer will have `dframe-mode' run on it.
+This buffer will have `dframe-frame-mode' run on it.
 FRAME-NAME is the name of the frame to create.
 LOCAL-MODE-FN is the function used to call this one.
 PARAMETERS are frame parameters to apply to this dframe.
@@ -418,7 +422,7 @@ CREATE-HOOK are hooks to run after creating a frame."
                            parameters
                          (append
                           parameters
-                          (list (cons 'height (+ mh (frame-height)))))))
+                          (list (cons 'height (+ (or mh 0) (frame-height)))))))
                       (params
                        ;; Only add a guessed width if one is not specified
                        ;; in the input parameters.
@@ -506,7 +510,7 @@ a cons cell indicationg a position of the form (LEFT . TOP)."
             (setq newleft (+ pfx pfw 5)
                   newtop pfy))
            ((eq location 'left)
-            (setq newleft (+ pfx 10 nfw)
+            (setq newleft (- pfx 10 nfw)
                   newtop pfy))
            ((eq location 'left-right)
             (setq newleft
@@ -603,7 +607,7 @@ The function must take an EVENT.")
 
 (defun dframe-handle-make-frame-visible (e)
   "Handle a `make-frame-visible' event.
-Should enables auto-updating if the last state was also enabled.
+Should enable auto-updating if the last state was also enabled.
 Argument E is the event making the frame visible."
   (interactive "e")
   (let ((f last-event-frame))
@@ -614,7 +618,7 @@ Argument E is the event making the frame visible."
 
 (defun dframe-handle-iconify-frame (e)
   "Handle a `iconify-frame' event.
-Should disables auto-updating if the last state was also enabled.
+Should disable auto-updating if the last state was also enabled.
 Argument E is the event iconifying the frame."
   (interactive "e")
   (let ((f last-event-frame))
@@ -649,7 +653,7 @@ If the selected frame is not in the symbol FRAME-VAR, then FRAME-VAR
 frame is selected.  If the FRAME-VAR is active, then select the
 attached frame.  If FRAME-VAR is nil, ACTIVATOR is called to
 created it.  HOOK is an optional argument of hooks to run when
-selecting FRAME."
+selecting FRAME-VAR."
   (interactive)
   (if (eq (selected-frame) (symbol-value frame-var))
       (if (frame-live-p dframe-attached-frame)
@@ -693,10 +697,10 @@ If optional arg FRAME is nil just return `dframe-attached-frame'."
     dframe-attached-frame))
 
 (defun dframe-select-attached-frame (&optional frame)
-  "Switch to the frame the dframe controlled frame FRAME was started from. If
-optional arg FRAME is nil assume the attached frame is already selected and
-just run the hooks `dframe-after-select-attached-frame-hook'. Return the
-attached frame."
+  "Switch to the frame the dframe controlled frame FRAME was started from.
+If optional arg FRAME is nil assume the attached frame is already selected
+and just run the hooks `dframe-after-select-attached-frame-hook'.  Return
+the attached frame."
   (let ((frame (dframe-attached-frame frame)))
     (if frame (select-frame frame))
     (prog1 frame
@@ -716,7 +720,7 @@ Optionally select that frame if necessary."
   (when (or (not (dframe-mouse-event-p last-input-event))
             dframe-activity-change-focus-flag)
     (dframe-select-attached-frame)
-    ;; KB: For what is this - raising the frame?? 
+    ;; KB: For what is this - raising the frame??
     (other-frame 0)))
 
 
@@ -903,7 +907,7 @@ Must be bound to event E."
                 (windowp (posn-window (event-end event))) ; Sometimes
                                        ; there is no window to jump into.
                 ))
-            
+
     (funcall dframe-track-mouse-function event)))
 
 (defun dframe-track-mouse-xemacs (event)
@@ -922,8 +926,9 @@ BUFFER and POSITION are optional because XEmacs doesn't use them."
             dframe-help-echo-function)
     (let ((dframe-suppress-message-flag t))
       (with-current-buffer buffer
-       (if position (goto-char position))
-       (funcall dframe-help-echo-function)))))
+       (save-excursion
+         (if position (goto-char position))
+         (funcall dframe-help-echo-function))))))
 
 (defun dframe-mouse-set-point (e)
   "Set POINT based on event E.
@@ -953,7 +958,7 @@ This should be bound to mouse event E."
       (funcall dframe-mouse-position-function)))
 
 (defun dframe-power-click (e)
-  "Activate any `dframe' mouse click as a power click.
+  "Activate any dframe mouse click as a power click.
 A power click will dispose of cached data (if available) or bring a buffer
 up into a different window.
 This should be bound to mouse event E."