emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: More enhancements to fringe bitmaps.


From: Kim F. Storm
Subject: Re: More enhancements to fringe bitmaps.
Date: 19 Mar 2004 00:43:31 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

address@hidden (Marco Munari 16473.54072) writes:

> ~\/~ "Kim" == Kim F Storm <address@hidden> writes:
> ...
> Kim> Stay tuned :-)
> 
> ok :)
> 
> As M.B. suggests i switch to FRINGE_FACE_ID and FRINGE_INACTIVE_FACE_ID
> naming notation. (a reason exists).
> 
I agree with Miles.

> 
> I don't understand why you (Kim) introduces (on 2004-02-09 as Changelog)
> right_user_fringe_face_id and left_user_fringe_face_id

These are used to keep track of user defined faces for specific fringe
bitmaps.  So contrary to fringe_face_id, they are dynamic.

See gdb-ui.el for an example; that's how we can show a "red bullet"
bitmap for a gdb breakpoint.

> 
> 
> The respect of this user capability create to me dubts on
> what it's better... how to create optional left_user_fringe_inactive_face_id
> and _user_fringe_inactive_face_id,
> i can introduce differential face_id number
> 
> an highlight function of fringe could respect more by default left
> and right fringe user preference.
> 
> an updated patch containing following modification follows:
> 
> M etc/TODO
> removed DONE stuff
> (just for rem, because you are the one who made fringe user configurable)
> 
> M lisp/faces.el
> added face fringe-inactive
> 
> M lisp/ibuffer.el
> text fix in desc: long lines implies big column values, not "long columns"!
> 
> M lisp/log-edit.el
> fix tipo: defar insted defvar
> 
> M src/dispextern.h
> added basic face FRINGE_INACTIVE_FACE_ID
> added macro CURRENT_FRINGE_FACE_ID(W): returns the
> FRINGE*_FACE_ID depending on window (selected/unselected)
> added macro CURRENT_DELTA_FRINGE_FACE_ID(W), it's an idea (to be discussed)

I think use of fringe-inactive should as a minimum be customizable.
Either by testing Vmode_line_in_non_selected_windows, or better add a
new Vfringe_in_non_selected_windows variable to control this.

> 
> M src/fringe.c
> partially disabled user left and right fringe configurable
> to set brutally to current basic fringe (should be discussed)
> maybe we need to define right_user_fringe_inactive_face_id
> right_user_fringe_inactive_face_id (better if a delta compatible to
> CURRENT_DELTA_FRINGE_FACE_ID.. it's just a possibility far to be the best)

This is definitely the wrong approach for face selection.

A simple approach would be to use fringe-inactive unconditionally in
non-selected windows, and the fringe face (or user defined face) in
selected window.

A more flexible approach would be for the code which does the actual fg/bg
color selection to look at fringe-inactive face colors if current
window is non-selected and actual face's colors match the fringe face
colors.



Your new tiny arrows are your personal preferences.  Since you can now
define your own alternative bitmaps, I don't see a need to change
the defaults.

You could write code to (e.g. a use-tiny-fringe-arrows defcustom)
which installs (and removes) your custom bitmaps via suitable calls to
define-fringe-bitmap. We could then installed it in fringe.el.

> 
> M src/window.c
> other-window call Fselect_window only if selected_window is
> effectively a new one (this modify enlight task when only 1 window is
> in the farme for either mode-line-fringe/mode-line-inactive
> and fringe/fringe_inactive)

That seems like a good idea.

> 
> M src/xfaces.c
> added lisp object Qfringe_inactive
> 
> M src/xfns.c
> personal preference (narrow scroll bar)

This is supposed to be customizable via the scroll-bar-width frame parameter.

-- 
Kim F. Storm <address@hidden> http://www.cua.dk





reply via email to

[Prev in Thread] Current Thread [Next in Thread]