Mercurial > emacs
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 |
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 | 6 This directory contains the source files for the C component of GNU Emacs. |
7 Nothing in this directory is needed for using Emacs once it is built | |
97142 | 8 and installed, if the dumped Emacs (on Unix systems) is copied elsewhere. |
25843 | 9 |
10 See the files ../README and then ../INSTALL for installation instructions. | |
11 | |
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 | 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/>. |