annotate src/xgselect.h @ 111107:f3721a6253a8

Fix mouse highlight in bidi-reordered continued lines. xdisp.c (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. (mouse_face_from_buffer_pos): Rewrite to not 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. Continued lines that begin or end outside of the visible region still don't work.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 02 Oct 2010 17:05:20 +0200
parents e16f43875a48
children 417b1e4d63cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
106186
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
1 /* Header for xg_select.
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 106352
diff changeset
2 Copyright (C) 2009, 2010
106186
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
3 Free Software Foundation, Inc.
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
4
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
5 This file is part of GNU Emacs.
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
6
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
7 GNU Emacs is free software: you can redistribute it and/or modify
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
9 the Free Software Foundation, either version 3 of the License, or
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
10 (at your option) any later version.
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
11
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
15 GNU General Public License for more details.
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
16
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
19
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
20 #ifndef XGSELECT_H
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
21 #define XGSELECT_H
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
22
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
23 #include "lisp.h"
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
24 #include "systime.h"
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
25 #include "sysselect.h"
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
26
109099
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 106815
diff changeset
27 extern int xg_select (int max_fds,
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 106815
diff changeset
28 SELECT_TYPE *rfds,
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 106815
diff changeset
29 SELECT_TYPE *wfds,
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 106815
diff changeset
30 SELECT_TYPE *efds,
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 106815
diff changeset
31 EMACS_TIME *timeout);
106186
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
32
109099
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 106815
diff changeset
33 extern void xgselect_initialize (void);
106186
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
34
9b6f45dd8386 Use a select wrapper around the GLib event loop, thus taking into account GLib
Jan Djärv <jan.h.d@swipnet.se>
parents:
diff changeset
35 #endif /* XGSELECT_H */
106352
3b90f039f42b Add arch tagline
Miles Bader <miles@gnu.org>
parents: 106186
diff changeset
36
3b90f039f42b Add arch tagline
Miles Bader <miles@gnu.org>
parents: 106186
diff changeset
37 /* arch-tag: 0c5392a8-3a41-41eb-839c-58e6595926f0
3b90f039f42b Add arch tagline
Miles Bader <miles@gnu.org>
parents: 106186
diff changeset
38 (do not change this comment) */