annotate src/README @ 111116:b52e94e0cf53

Implement mouse highlight for bidi-reordered lines. xdisp.c (fast_find_string_pos): #ifdef away, not used anymore. (mouse_face_from_string_pos): New function, replaces fast_find_string_pos. (note_mouse_highlight): Call it instead of fast_find_string_pos. (note_mode_line_or_margin_highlight): Support bidi-reordered strings and R2L glyph rows. Fix comments. (note_mouse_highlight): When bidi reordering is turned on in a buffer, call next-single-property-change and previous-single-property-change with last argument nil. Clear mouse highlight when mouse pointer is in a R2L row on the stretch glyph that stands for no text beyond the line end. (row_containing_pos): Don't return too early when CHARPOS is in a bidi-reordered continued line. Return immediately when the first hit is found in a line that is not continued, or when an exact match for CHARPOS is found. (rows_from_pos_range): New function. (mouse_face_from_buffer_pos): Use it instead of calling row_containing_pos for START_CHARPOS and END_CHARPOS. Rewrite the function to support mouse highlight in bidi-reordered lines and not to assume that START_CHARPOS is always in mouse_face_beg_row. If necessary, swap mouse_face_beg_row and mouse_face_end_row so that the former is always above the latter or identical to it. (show_mouse_face): Support drawing highlighted R2L lines. (coords_in_mouse_face_p): New function, bidi-aware. (cursor_in_mouse_face_p, note_mouse_highlight, erase_phys_cursor): Call it instead of comparing with mouse-face members of dpyinfo. (note_mode_line_or_margin_highlight): Fix confusingly swapped usage of hpos and vpos.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 23 Oct 2010 17:30:45 +0200
parents dedcf813aa69
children 417b1e4d63cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
108798
dedcf813aa69 Do not preprocess src/Makefile.in.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
1 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
dedcf813aa69 Do not preprocess src/Makefile.in.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
2 2010 Free Software Foundation, Inc.
75769
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
3 See the end of the file for license conditions.
75587
68cfc1db0d26 Add copyright and permissions notices.
Glenn Morris <rgm@gnu.org>
parents: 39667
diff changeset
4
68cfc1db0d26 Add copyright and permissions notices.
Glenn Morris <rgm@gnu.org>
parents: 39667
diff changeset
5
25843
18e524802887 #ecrt0.c
Dave Love <fx@gnu.org>
parents:
diff changeset
6 This directory contains the source files for the C component of GNU Emacs.
18e524802887 #ecrt0.c
Dave Love <fx@gnu.org>
parents:
diff changeset
7 Nothing in this directory is needed for using Emacs once it is built
97142
c3512b2085a0 * bitmaps/README:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 94995
diff changeset
8 and installed, if the dumped Emacs (on Unix systems) is copied elsewhere.
25843
18e524802887 #ecrt0.c
Dave Love <fx@gnu.org>
parents:
diff changeset
9
18e524802887 #ecrt0.c
Dave Love <fx@gnu.org>
parents:
diff changeset
10 See the files ../README and then ../INSTALL for installation instructions.
18e524802887 #ecrt0.c
Dave Love <fx@gnu.org>
parents:
diff changeset
11
18e524802887 #ecrt0.c
Dave Love <fx@gnu.org>
parents:
diff changeset
12 Under GNU and Unix systems, the file `Makefile.in' is used as a
108798
dedcf813aa69 Do not preprocess src/Makefile.in.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
13 template by the script `../configure' to produce `Makefile'. This
dedcf813aa69 Do not preprocess src/Makefile.in.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
14 is the file which actually controls the compilation of Emacs.
dedcf813aa69 Do not preprocess src/Makefile.in.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
15 All of this should work transparently to the user; you should only
dedcf813aa69 Do not preprocess src/Makefile.in.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
16 need to run `../configure', and then type `make'.
25843
18e524802887 #ecrt0.c
Dave Love <fx@gnu.org>
parents:
diff changeset
17
75769
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
18
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
19 This file is part of GNU Emacs.
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
20
94995
a46a8a839596 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79759
diff changeset
21 GNU Emacs is free software: you can redistribute it and/or modify
75769
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
22 it under the terms of the GNU General Public License as published by
94995
a46a8a839596 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79759
diff changeset
23 the Free Software Foundation, either version 3 of the License, or
a46a8a839596 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79759
diff changeset
24 (at your option) any later version.
75769
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
25
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
26 GNU Emacs is distributed in the hope that it will be useful,
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
27 but WITHOUT ANY WARRANTY; without even the implied warranty of
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
28 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
29 GNU General Public License for more details.
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
30
92a0e87ff562 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75587
diff changeset
31 You should have received a copy of the GNU General Public License
94995
a46a8a839596 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79759
diff changeset
32 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.