From e521c93c296377d1733e8801832f3066e4cc4ede Mon Sep 17 00:00:00 2001 From: Andrea Rossetti Date: Sat, 14 Jun 2014 17:32:03 +0200 Subject: [PATCH 2/2] lisp/ruler-mode.el: fix offset for mouse dragging beyond header line --- lisp/ruler-mode.el | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el index 238754e..097a13e 100644 --- a/lisp/ruler-mode.el +++ b/lisp/ruler-mode.el @@ -302,12 +302,17 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or (let ((edges (window-edges))) (- (nth 2 edges) (nth 0 edges)))) -(defsubst ruler-mode-window-col (n) +(defsubst ruler-mode-window-col (start-or-end-event) "Return a column number relative to the selected window. -N is a column number relative to selected frame." - (- n - (or (car (window-margins)) 0) - (fringe-columns 'left) +START-OR-END-EVENT is the start point or end point +of a mouse click or mouse drag event. + +See also: `event-start', `event-end', `posn-col-row', `posn-area'. +" + (- (car (posn-col-row start-or-end-event)) + (if (eq (posn-area start) 'header-line) + (+ (or (car (window-margins)) 0) (fringe-columns 'left)) + 0) (scroll-bar-columns 'left))) (defun ruler-mode-mouse-set-left-margin (start-event) @@ -371,7 +376,7 @@ dragging. See also the variable `ruler-mode-dragged-symbol'." col newc oldc) (save-selected-window (select-window (posn-window start)) - (setq col (ruler-mode-window-col (car (posn-col-row start))) + (setq col (ruler-mode-window-col start) newc (+ col (window-hscroll))) (and (>= col 0) (< col (window-width)) @@ -454,7 +459,7 @@ Called on each mouse motion event START-EVENT." col newc) (save-selected-window (select-window (posn-window start)) - (setq col (ruler-mode-window-col (car (posn-col-row end))) + (setq col (ruler-mode-window-col end) newc (+ col (window-hscroll))) (when (and (>= col 0) (< col (window-width))) (set ruler-mode-dragged-symbol newc))))) @@ -470,7 +475,7 @@ START-EVENT is the mouse click event." (when (eq start end) ;; mouse click (save-selected-window (select-window (posn-window start)) - (setq col (ruler-mode-window-col (car (posn-col-row start))) + (setq col (ruler-mode-window-col start) ts (+ col (window-hscroll))) (and (>= col 0) (< col (window-width)) (not (member ts tab-stop-list)) @@ -490,7 +495,7 @@ START-EVENT is the mouse click event." (when (eq start end) ;; mouse click (save-selected-window (select-window (posn-window start)) - (setq col (ruler-mode-window-col (car (posn-col-row start))) + (setq col (ruler-mode-window-col start) ts (+ col (window-hscroll))) (and (>= col 0) (< col (window-width)) (member ts tab-stop-list) -- 1.8.1.msysgit.1