Mike Kupfer writes:
So... what's the right fix here? Does mouse-drag-modeline need
to
account for whether there's a top gutter visible?
I hope not, but there may be no alternative.
What probably should be done is to review all the geometry code, and
improve the documentation and regularize the internal APIs. An emacs
frame is an unholy mix of widgets (which have their own X windows, and
draw themselves in redisplay) and gadgets (which are rectangular areas
of a widget, and are drawn by the parent). Widgets include Emacs
windows (not to be confused with X windows), the menubar and popups,
and the scrollbars. The modelines, echo areas, toolbars, and gutters
are gadgets, children of an Emacs window. The tabs and progress bars
are widgets, usually -- but not always -- children of a gutter.
Not your job, but I wanted to throw it out for discussion.
Should event-y-pixel be changed to exclude gutters, for a better
impedance match to window-pixel-edges? Or should there be a new set of
event functions that return pixel locations, excluding gutters?
I don't understand why dragging an object should care about what
pointer positions are relative to. The object should know where it
is, and then you just add the relative pointer movement to that
position. If that doesn't work, the low-level object geometry
management is broken and should be fixed, not the high-level function.
(Of course, you do need to know the reference object to identify which
subobject is being dragged, but you are not seeing bugs there IIUC.)
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta