Subject: Re: bug#13979: 24.3.50; NS: scroll-bar not draggable

From: Jan Djärv <[email-masked]>
Date: Sun, 17 Mar 2013 12:02:57 +0100

Hello.

On OSX the event produced when clicking below the handle looks like:

(down-mouse-1 (#<window 0x103229e50 on *info*> vertical-scroll-bar (0 . 428) 83281193 below-handle))

On Gtk3 it looks like:

(mouse-1 (#<window 0x11a0228 on *info*> vertical-scroll-bar (0 . 0) 0 below-handle))

Gtk does not have y or timestamp, but that hardly matters.
If I remove modifier down, so NS also produces mouse-1, I get:

<vertical-scroll-bar> <mouse-1> is undefined.

If I bind that to ns-handle-scroll-bar-event, everything works OK.

Which code has changed to care about mouse-1 versus down-mouse-1?
As I said, this problem does not exist on 24.3.

	Jan D.

17 mar 2013 kl. 10:45 skrev Jan Djärv <[email-masked]>:

> Hello.
> 
> 17 mar 2013 kl. 03:43 skrev Stefan Monnier <[email-masked]>:
> 
>>> turn on scroll-bar mode
>>> (scroll-bar-mode t)
>> 
>> They're on by default, aren't they?
>> 
>>> then open a file and drag the scroll bar, it shows:
>>> `mouse-on-link-p: Wrong type argument: listp, handle'
>>> the stacktrace:
>>> Debugger entered--Lisp error: (wrong-type-argument listp handle)
>>> mouse-posn-property((#<window 0x10506e250 on *info*>
>>> vertical-scroll-bar (4 . 428) 95079520 handle) follow-link)
>> 
>> I can't reproduce it here on GNU/Linux.  I'm not sure if the format of
>> the posn object quoted above is correct, but can you try the patch
>> below (which is either a fix, or a workaround)?
>> 
> 
> It may be a NS-specific error.  I can reproduce it on OSX.  Emacs-24.3 works fine though, so I assume there has been some change in common code, and that the NS code was not adjusted.
> 
>>> Also with scroll-bar turned on, horizontally splitted windows can not be
>>> resized by dragging.
>> 
>> I can't reproduce the problem here, either.
>> 
> 
> I can on OSX.
> The patch below only changes the error message to
> 
> mouse-posn-property: Wrong type argument: integer-or-marker-p, vertical-scroll-bar
> 
> 	Jan D.
> 
>> 
>>       Stefan
>> 
>> 
>> === modified file 'lisp/mouse.el'
>> --- lisp/mouse.el	2013-03-09 17:14:24 +0000
>> +++ lisp/mouse.el	2013-03-17 02:39:03 +0000
>> @@ -709,7 +713,7 @@
>>  (if (consp pos)
>>      (let ((w (posn-window pos)) (pt (posn-point pos))
>> 	    (str (posn-string pos)))
>> -	(or (and str
>> +	(or (and (consp str)
>> 		 (get-text-property (cdr str) property (car str)))
>> 	    (and pt
>> 		 (get-char-property pt property w))))
>> 
>> 
>