;;; mouse.el --- window system-independent mouse support -*- lexical-binding: t -*-
-;; Copyright (C) 1993-1995, 1999-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 1999-2013 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: hardware, mouse
(frame-parameters frame)))
'right)))
(draggable t)
- event position growth dragged)
+ finished event position growth dragged)
(cond
((eq line 'header)
;; Check whether header-line can be dragged at all.
;; Start tracking.
(track-mouse
;; Loop reading events and sampling the position of the mouse.
- (while draggable
+ (while (not finished)
(setq event (read-event))
(setq position (mouse-position))
;; Do nothing if
;; - there is a keyboard event or some other unknown event.
(cond
((not (consp event))
- (setq draggable nil))
+ (setq finished t))
((memq (car event) '(switch-frame select-window))
nil)
((not (memq (car event) '(mouse-movement scroll-bar-movement)))
;; Do not unread a drag-mouse-1 event to avoid selecting
;; some other window. For vertical line dragging do not
;; unread mouse-1 events either (but only if we dragged at
- ;; least once to allow mouse-1 clicks get through.
+ ;; least once to allow mouse-1 clicks get through).
(unless (and dragged
(if (eq line 'vertical)
(memq (car event) '(drag-mouse-1 mouse-1))
(eq (car event) 'drag-mouse-1)))
(push event unread-command-events)))
- (setq draggable nil))
- ((or (not (eq (car position) frame))
- (null (car (cdr position))))
+ (setq finished t))
+ ((not (and (eq (car position) frame)
+ (cadr position)))
nil)
((eq line 'vertical)
;; Drag vertical divider.