Subject: Re: bug#10165: [PATCH] Allow setting corner in mouse avoidance mode.

From: Thierry Volpiatto <[email-masked]>
Date: Wed, 07 Dec 2011 19:04:43 +0100

Juri Linkov <[email-masked]> writes:

>>> Thanks.  I think names like `frame-or-window' and `top-or-bottom-pos'
>>> are quite confusing.
>>
>> Yes, if you have better names tell me.
>
> I think better names would be similar to geometry specification
> like in (info "(emacs) Window Size X").
>
> Then we could have such names (with possible values):
>
>   x-side     `left' or `right'
>   y-side     `top' or `bottom'
>   x-offset   integer (positive, negative or zero)
>   y-offset   integer (positive, negative or zero)

Note that the code I wrote don't require negative arguments.
You just set the distance from one edge with a positive argument,
doesn't matter if it is right, left top or bottom.

> So for example it would be possible to customize
> `mouse-avoidance-banish-position' to the following setting:
>
>   '((frame-or-window . frame)
>     (x-side          . right)
>     (x-offset        . 3)
>     (y-side          . bottom)
>     (y-offset        . -1))

Ok for this, except for negative integers.

> Also `frame-or-window' is too long name, but currently I have no idea
> what a shorter name would be better.
>
>>> But fortunately we could avoid them.
>>
>> Can you develop this?
>
> I think that instead of an alist it would be simpler to use a list
> with the fixed meaning of each list element.  I mean something like:
>
> (defcustom mouse-avoidance-banish-position '(frame right 3 bottom -1)
>   :type '(list (choice (const frame :tag "Relative to frame coordinates")
>                        (const window :tag "Relative to window coordinates"))
>                (choice (const left :tag "Relative to left edge")
>                        (const right :tag "Relative to right edge"))
>                (integer :tag "Horizontal offset")
>                (choice (const top :tag "Relative to top edge")
>                        (const bottom :tag "Relative to bottom edge"))
>                (integer :tag "Vertical offset")))

I prefer an alist, it is easier to understand.

-- 
  Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997