Index: etc/TODO =================================================================== RCS file: /cvsroot/emacs/emacs/etc/TODO,v retrieving revision 1.61 diff -u -r1.61 TODO --- etc/TODO 21 Nov 2003 18:23:27 -0000 1.61 +++ etc/TODO 8 Mar 2004 11:10:08 -0000 @@ -68,9 +68,6 @@ * Set fringe widths per-window/per-buffer. -* Make fringe bitmaps user configurable. Maybe add ability to add - additional bitmaps to the fringe from lisp. - Other features we would like: * Have a command suggestion help system that recognizes patterns Index: lisp/faces.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/faces.el,v retrieving revision 1.282 diff -u -r1.282 faces.el --- lisp/faces.el 27 Feb 2004 17:30:23 -0000 1.282 +++ lisp/faces.el 8 Mar 2004 11:10:09 -0000 @@ -1925,6 +1925,19 @@ :group 'basic-faces) +(defface fringe-active + '((((class color) (background light)) + :background "grey75") + (((class color) (background dark)) + :background "grey30") + (t + :background "light gray")) + "Basic face for the fringes of active input emacs windows." + :version "21.4" + :group 'frames + :group 'basic-faces) + + (defface scroll-bar '() "Basic face for the scroll bar colors under X." :version "21.1" Index: lisp/ibuffer.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/ibuffer.el,v retrieving revision 1.57 diff -u -r1.57 ibuffer.el --- lisp/ibuffer.el 1 Sep 2003 15:45:12 -0000 1.57 +++ lisp/ibuffer.el 8 Mar 2004 11:10:10 -0000 @@ -199,7 +199,7 @@ :group 'ibuffer) (defcustom ibuffer-eliding-string "..." - "The string to use for eliding long columns." + "The string to use for eliding long lines." :type 'string :group 'ibuffer) Index: src/dispextern.h =================================================================== RCS file: /cvsroot/emacs/emacs/src/dispextern.h,v retrieving revision 1.165 diff -u -r1.165 dispextern.h --- src/dispextern.h 26 Feb 2004 17:46:46 -0000 1.165 +++ src/dispextern.h 8 Mar 2004 11:10:11 -0000 @@ -1165,6 +1165,13 @@ ? MATRIX_HEADER_LINE_ROW (MATRIX)->height \ : 0) +/* mar: Return the fringe mode relative to selected/unselected window */ + +#define CURRENT_FRINGE_FACE_ID(W) \ + ( ((W) == XWINDOW (selected_window)) \ + ? FRINGE_ACTIVE_FACE_ID \ + : FRINGE_FACE_ID) + /* Return the desired face id for the mode line of a window, depending on whether the window is selected or not, or if the window is the scrolling window for the currently active minibuffer window. @@ -1512,6 +1519,7 @@ MODE_LINE_INACTIVE_FACE_ID, TOOL_BAR_FACE_ID, FRINGE_FACE_ID, + FRINGE_ACTIVE_FACE_ID, HEADER_LINE_FACE_ID, SCROLL_BAR_FACE_ID, BORDER_FACE_ID, Index: src/fringe.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/fringe.c,v retrieving revision 1.10 diff -u -r1.10 fringe.c --- src/fringe.c 1 Mar 2004 23:56:44 -0000 1.10 +++ src/fringe.c 8 Mar 2004 11:10:11 -0000 @@ -104,32 +104,32 @@ /* An arrow like this: `<-'. */ /* - ...xx... - ..xx.... - .xx..... - xxxxxx.. - xxxxxx.. - .xx..... - ..xx.... - ...xx... +- ..... ... + ..x.. ... + .x... ... + xxxxx ... + .x... ... + ..x.. ... +- ..... ... +- ..... ... */ static unsigned short left_arrow_bits[] = { - 0x18, 0x30, 0x60, 0xfc, 0xfc, 0x60, 0x30, 0x18}; + 0x04, 0x08, 0x1f, 0x08, 0x04}; /* Right truncation arrow bitmap `->'. */ /* - ...xx... - ....xx.. - .....xx. - ..xxxxxx - ..xxxxxx - .....xx. - ....xx.. - ...xx... +- ........ + ... ..x.. + ... ...x. + ... xxxxx + ... ...x. + ... ..x.. +- ........ +- ........ */ static unsigned short right_arrow_bits[] = { - 0x18, 0x0c, 0x06, 0x3f, 0x3f, 0x06, 0x0c, 0x18}; + 0x04, 0x02, 0x1f, 0x02, 0x04}; /* Up arrow bitmap. */ @@ -163,31 +163,31 @@ /* Marker for continued lines. */ /* - ..xxxx.. - ..xxxxx. - ......xx - ..x..xxx - ..xxxxxx - ..xxxxx. - ..xxxx.. - ..xxxxx. +- ........ +- ........ +- ........ + .... xx. + .... ..x + .... x.x + .... xx. + .... xxx */ static unsigned short continued_bits[] = { - 0x3c, 0x3e, 0x03, 0x27, 0x3f, 0x3e, 0x3c, 0x3e}; + 0x06, 0x01, 0x05, 0x06, 0x07}; /* Marker for continuation lines. */ /* - ..xxxx.. - .xxxxx.. - xx...... - xxx..x.. - xxxxxx.. - .xxxxx.. - ..xxxx.. - .xxxxx.. + .... .xx + .... x.. + .... x.x + .... .xx + .... xxx +- ........ +- ........ +- ........ */ static unsigned short continuation_bits[] = { - 0x3c, 0x7c, 0xc0, 0xe4, 0xfc, 0x7c, 0x3c, 0x7c}; + 0x03, 0x04, 0x05, 0x03, 0x07}; /* Overlay arrow bitmap. A triangular arrow. */ /* @@ -413,13 +413,14 @@ struct fringe_bitmap standard_bitmaps[MAX_STANDARD_FRINGE_BITMAPS] = { { NULL, 0, 0, 0, 0, 0 }, /* NO_FRINGE_BITMAP */ + /* bits, height, width,period, align , dynamic*/ { FRBITS (unknown_bits), 8, 0, ALIGN_BITMAP_CENTER, 0 }, - { FRBITS (left_arrow_bits), 8, 0, ALIGN_BITMAP_CENTER, 0 }, - { FRBITS (right_arrow_bits), 8, 0, ALIGN_BITMAP_CENTER, 0 }, + { FRBITS (left_arrow_bits), 5, 0, ALIGN_BITMAP_CENTER, 0 }, + { FRBITS (right_arrow_bits), 5, 0, ALIGN_BITMAP_CENTER, 0 }, { FRBITS (up_arrow_bits), 8, 0, ALIGN_BITMAP_TOP, 0 }, { FRBITS (down_arrow_bits), 8, 0, ALIGN_BITMAP_BOTTOM, 0 }, - { FRBITS (continued_bits), 8, 0, ALIGN_BITMAP_CENTER, 0 }, - { FRBITS (continuation_bits), 8, 0, ALIGN_BITMAP_CENTER, 0 }, + { FRBITS (continued_bits), 3, 0, ALIGN_BITMAP_BOTTOM, 0 }, + { FRBITS (continuation_bits), 3, 0, ALIGN_BITMAP_TOP, 0 }, { FRBITS (ov_bits), 8, 0, ALIGN_BITMAP_CENTER, 0 }, { FRBITS (top_left_angle_bits), 8, 0, ALIGN_BITMAP_TOP, 0 }, { FRBITS (top_right_angle_bits), 8, 0, ALIGN_BITMAP_TOP, 0 }, @@ -482,14 +483,16 @@ else if (left_p) { which = row->left_fringe_bitmap; - face_id = row->left_fringe_face_id; + //mar:useless, reassign follow: face_id = row->left_fringe_face_id; } else { which = row->right_fringe_bitmap; - face_id = row->right_fringe_face_id; + //mar:useless, reassign follow: face_id = row->right_fringe_face_id; } + face_id = CURRENT_FRINGE_FACE_ID(w); + if (face_id == DEFAULT_FACE_ID) face_id = fringe_faces[which]; @@ -800,7 +803,7 @@ else if (row->left_user_fringe_bitmap != NO_FRINGE_BITMAP) { left = row->left_user_fringe_bitmap; - left_face_id = row->left_user_fringe_face_id; + left_face_id = CURRENT_FRINGE_FACE_ID(w);//row->left_user_fringe_face_id; } else if (row->indicate_bob_p && boundary_pos <= 0) left = ((row->indicate_eob_p && boundary_pos < 0) @@ -826,7 +829,7 @@ else if (row->right_user_fringe_bitmap != NO_FRINGE_BITMAP) { right = row->right_user_fringe_bitmap; - right_face_id = row->right_user_fringe_face_id; + right_face_id = CURRENT_FRINGE_FACE_ID(w);//row->right_user_fringe_face_id; } else if (row->indicate_bob_p && boundary_pos > 0) right = ((row->indicate_eob_p && boundary_pos >= 0) Index: src/window.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/window.c,v retrieving revision 1.462 diff -u -r1.462 window.c --- src/window.c 4 Mar 2004 17:16:23 -0000 1.462 +++ src/window.c 8 Mar 2004 11:10:13 -0000 @@ -1775,8 +1775,10 @@ window = Fnext_window (window, Qnil, all_frames); for (; i < 0; ++i) window = Fprevious_window (window, Qnil, all_frames); - - Fselect_window (window, Qnil); + if (window != selected_window) { + //selected_window->circa row->redraw_fringe_bitmaps_p = 1; + Fselect_window (window, Qnil); + } return Qnil; } Index: src/xfaces.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/xfaces.c,v retrieving revision 1.289 diff -u -r1.289 xfaces.c --- src/xfaces.c 9 Feb 2004 15:39:49 -0000 1.289 +++ src/xfaces.c 8 Mar 2004 11:10:15 -0000 @@ -322,7 +322,7 @@ /* Names of basic faces. */ -Lisp_Object Qdefault, Qtool_bar, Qregion, Qfringe; +Lisp_Object Qdefault, Qtool_bar, Qregion, Qfringe, Qfringe_active; Lisp_Object Qheader_line, Qscroll_bar, Qcursor, Qborder, Qmouse, Qmenu; Lisp_Object Qmode_line_inactive; extern Lisp_Object Qmode_line; @@ -6626,6 +6626,9 @@ realize_named_face (f, Qmode_line_inactive, MODE_LINE_INACTIVE_FACE_ID); realize_named_face (f, Qtool_bar, TOOL_BAR_FACE_ID); realize_named_face (f, Qfringe, FRINGE_FACE_ID); + /* mar: i imagine the need of + realize_named_face (f, Qfringe_active, FRINGE_ACTIVE_FACE_ID);, + but returns error "emacs: Wrong type argument: symbolp, 0" */ realize_named_face (f, Qheader_line, HEADER_LINE_FACE_ID); realize_named_face (f, Qscroll_bar, SCROLL_BAR_FACE_ID); realize_named_face (f, Qborder, BORDER_FACE_ID); @@ -7701,6 +7704,8 @@ staticpro (&Qregion); Qfringe = intern ("fringe"); staticpro (&Qfringe); + Qfringe = intern ("fringe-active"); + staticpro (&Qfringe_active); Qheader_line = intern ("header-line"); staticpro (&Qheader_line); Qscroll_bar = intern ("scroll-bar"); Index: src/xfns.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/xfns.c,v retrieving revision 1.606 diff -u -r1.606 xfns.c --- src/xfns.c 1 Mar 2004 12:51:33 -0000 1.606 +++ src/xfns.c 8 Mar 2004 11:10:17 -0000 @@ -2131,13 +2131,13 @@ #ifdef USE_TOOLKIT_SCROLL_BARS /* A minimum width of 14 doesn't look good for toolkit scroll bars. */ - int width = 16 + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM; + int width = 8 + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM; FRAME_CONFIG_SCROLL_BAR_COLS (f) = (width + wid - 1) / wid; FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = width; #else /* Make the actual width at least 14 pixels and a multiple of a character width. */ - FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid; + FRAME_CONFIG_SCROLL_BAR_COLS (f) = (6 + wid - 1) / wid; /* Use all of that space (aside from required margins) for the scroll bar. */