Now, the scrollbars in athena behave differently than
gtk/motif/athena3d/windows in that scrollbar-page-up and
scrollbar-page-down require passing in a cons of (WINDOW . NUMBER) where
the others just want WINDOW.
My question is why in scrollbar.c the athena-like behaviour is
conditionalized with ifdefs instead of just checking whether NILP (XCDR
(object))? Couldn't this code:
/* Motif and Athena scrollbars behave differently, but in accordance
with their standard behaviors. It is not possible to hide the
differences down in lwlib because knowledge of XEmacs buffer and
cursor motion routines is necessary. */
#if defined (LWLIB_SCROLLBARS_MOTIF) || defined (LWLIB_SCROLLBARS_LUCID) || \
defined (LWLIB_SCROLLBARS_ATHENA3D) || defined(HAVE_MS_WINDOWS) || \
defined (HAVE_GTK)
window_scroll (window, Qnil, -1, ERROR_ME_NOT);
#else /* Athena */
{
athena
.
.
.
crap
}
#endif /* Athena */
Be simplified to:
if (NILP (XCDR (object)))
window_scroll (window, Qnil, -1, ERROR_ME_NOT)
else
{
athena
.
.
.
crap
}
That way whenever anybody adds a new (sane) scrollbar type, they don't have
to update scrollbar.c? And this way the hypothetical scrollbar-FOO.c could
decide whether it wants the athena-like code itself? Perhaps
conditionalize it?
Just curious... would anyone accept a patch to this effect?
-Bill P.