diff options
| author | Karoly Lorentey | 2005-04-19 13:33:31 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2005-04-19 13:33:31 +0000 |
| commit | 8d6f9bce72ee94ed6c297b79a181eac3f5beca74 (patch) | |
| tree | 36cf3b6a5923171e371f9236eab36ad7de742b48 /src | |
| parent | 774a8da14bb2520b6adad223ab13f0b64f002872 (diff) | |
| parent | cd01ded928a8d082b9dbed6e9747c3d31b337b71 (diff) | |
| download | emacs-8d6f9bce72ee94ed6c297b79a181eac3f5beca74.tar.gz emacs-8d6f9bce72ee94ed6c297b79a181eac3f5beca74.zip | |
Merged from miles@gnu.org--gnu-2005 (patch 66, 266-268)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-266
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-267
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-268
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-66
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-330
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 53 | ||||
| -rw-r--r-- | src/dispextern.h | 8 | ||||
| -rw-r--r-- | src/dispnew.c | 6 | ||||
| -rw-r--r-- | src/fns.c | 4 | ||||
| -rw-r--r-- | src/fringe.c | 16 | ||||
| -rw-r--r-- | src/lread.c | 6 | ||||
| -rw-r--r-- | src/macterm.c | 6 | ||||
| -rw-r--r-- | src/window.c | 1 | ||||
| -rw-r--r-- | src/window.h | 3 | ||||
| -rw-r--r-- | src/xdisp.c | 52 | ||||
| -rw-r--r-- | src/xfaces.c | 5 | ||||
| -rw-r--r-- | src/xmenu.c | 10 |
12 files changed, 110 insertions, 60 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 3483a2c5905..ac7d5fb07f3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,55 @@ | |||
| 1 | 2005-04-18 Kim F. Storm <storm@cua.dk> | ||
| 2 | |||
| 3 | * dispextern.h (struct glyph_row): New member overlay_arrow_bitmap. | ||
| 4 | It replaces the corresponding member from struct window, as a | ||
| 5 | window may now show multiple overlay arrows. | ||
| 6 | Remove member overlay_arrow_p, superseeded by overlay_arrow_bitmap. | ||
| 7 | |||
| 8 | * dispnew.c (row_equal_p, update_window_line, scrolling_window): | ||
| 9 | Compare overlay_arrow_bitmap than overlay_arrow_p members. | ||
| 10 | |||
| 11 | * fringe.c (draw_fringe_bitmap): Use overlay_arrow_bitmap from row | ||
| 12 | rather than from window. | ||
| 13 | (update_window_fringes): Compare overlay_arrow_bitmap rather than | ||
| 14 | overlay_arrow_p members. | ||
| 15 | (Ffringe_bitmaps_at_pos): Return fringe overlay_arrow_bitmap name | ||
| 16 | if not default. | ||
| 17 | |||
| 18 | * window.h (struct window): Remove member overlay_arrow_bitmap. | ||
| 19 | |||
| 20 | * window.c (make_window): Don't initialize overlay_arrow_bitmap. | ||
| 21 | |||
| 22 | * xdisp.c (overlay_arrow_string_or_property): Remove PBITMAP arg. | ||
| 23 | Calls changed. Don't check for overlay-arrow-bitmap property here. | ||
| 24 | (overlay_arrow_at_row): Remove PBITMAP arg. Instead, if left | ||
| 25 | fringe is present, return Lisp integer for bitmap (or -1 for default). | ||
| 26 | Fix value of overlay-arrow-bitmap property to be a symbol, use | ||
| 27 | lookup_fringe_bitmap to parse it. | ||
| 28 | (display_line): Change call to overlay_arrow_at_row. Store integer | ||
| 29 | return value as overlay bitmap in row rather than window. | ||
| 30 | Only show overlay arrow if row displays text, or if no other overlay | ||
| 31 | arrow is seen in window (if overlay marker is at point-max). | ||
| 32 | |||
| 33 | 2005-04-18 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 34 | |||
| 35 | * xfaces.c (realize_x_face) [!HAVE_WINDOW_SYSTEM]: Return NULL. | ||
| 36 | |||
| 37 | 2005-04-18 Lute Kamstra <lute@gnu.org> | ||
| 38 | |||
| 39 | * lread.c (Vloads_in_progress): Static. | ||
| 40 | * fns.c (Vloads_in_progress): Remove extern. | ||
| 41 | (load_in_progress): Add extern. | ||
| 42 | (Frequire): Use load_in_progress instead of Vloads_in_progress. | ||
| 43 | |||
| 44 | 2005-04-18 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 45 | |||
| 46 | * xmenu.c (Fx_popup_menu): Initialize error_name to NULL. | ||
| 47 | |||
| 48 | 2005-04-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 49 | |||
| 50 | * macterm.c (XTread_socket): Don't beep on keyboard input even if | ||
| 51 | no frame is visible. | ||
| 52 | |||
| 1 | 2005-04-16 Dan Nicolaescu <dann@ics.uci.edu> | 53 | 2005-04-16 Dan Nicolaescu <dann@ics.uci.edu> |
| 2 | 54 | ||
| 3 | * term.c (struct keys): Add support for shifted keys. | 55 | * term.c (struct keys): Add support for shifted keys. |
| @@ -110,7 +162,6 @@ | |||
| 110 | into "(any string)". | 162 | into "(any string)". |
| 111 | 163 | ||
| 112 | * lread.c (Vloads_in_progress): Not static. | 164 | * lread.c (Vloads_in_progress): Not static. |
| 113 | |||
| 114 | * fns.c (Vloads_in_progress): Add extern. | 165 | * fns.c (Vloads_in_progress): Add extern. |
| 115 | (Frequire): Don't do LOADHIST_ATTACH if Vloads_in_progress is nil. | 166 | (Frequire): Don't do LOADHIST_ATTACH if Vloads_in_progress is nil. |
| 116 | 167 | ||
diff --git a/src/dispextern.h b/src/dispextern.h index fbc816865b4..abcda4fc731 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -726,6 +726,11 @@ struct glyph_row | |||
| 726 | position of the next row. */ | 726 | position of the next row. */ |
| 727 | struct display_pos end; | 727 | struct display_pos end; |
| 728 | 728 | ||
| 729 | /* Non-zero means the overlay arrow bitmap is on this line. | ||
| 730 | -1 means use default overlay arrow bitmap, else | ||
| 731 | it specifies actual fringe bitmap number. */ | ||
| 732 | int overlay_arrow_bitmap; | ||
| 733 | |||
| 729 | /* Left fringe bitmap number (enum fringe_bitmap_type). */ | 734 | /* Left fringe bitmap number (enum fringe_bitmap_type). */ |
| 730 | unsigned left_user_fringe_bitmap : FRINGE_ID_BITS; | 735 | unsigned left_user_fringe_bitmap : FRINGE_ID_BITS; |
| 731 | 736 | ||
| @@ -764,9 +769,6 @@ struct glyph_row | |||
| 764 | unsigned truncated_on_left_p : 1; | 769 | unsigned truncated_on_left_p : 1; |
| 765 | unsigned truncated_on_right_p : 1; | 770 | unsigned truncated_on_right_p : 1; |
| 766 | 771 | ||
| 767 | /* 1 means the overlay arrow is on this line. */ | ||
| 768 | unsigned overlay_arrow_p : 1; | ||
| 769 | |||
| 770 | /* 1 means that this row displays a continued line, i.e. it has a | 772 | /* 1 means that this row displays a continued line, i.e. it has a |
| 771 | continuation mark at the right side. */ | 773 | continuation mark at the right side. */ |
| 772 | unsigned continued_p : 1; | 774 | unsigned continued_p : 1; |
diff --git a/src/dispnew.c b/src/dispnew.c index f549a8dde91..d7b5590c532 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -1506,7 +1506,7 @@ row_equal_p (w, a, b, mouse_face_p) | |||
| 1506 | || a->left_fringe_face_id != b->left_fringe_face_id | 1506 | || a->left_fringe_face_id != b->left_fringe_face_id |
| 1507 | || a->right_fringe_bitmap != b->right_fringe_bitmap | 1507 | || a->right_fringe_bitmap != b->right_fringe_bitmap |
| 1508 | || a->right_fringe_face_id != b->right_fringe_face_id | 1508 | || a->right_fringe_face_id != b->right_fringe_face_id |
| 1509 | || a->overlay_arrow_p != b->overlay_arrow_p | 1509 | || a->overlay_arrow_bitmap != b->overlay_arrow_bitmap |
| 1510 | || a->exact_window_width_line_p != b->exact_window_width_line_p | 1510 | || a->exact_window_width_line_p != b->exact_window_width_line_p |
| 1511 | || a->overlapped_p != b->overlapped_p | 1511 | || a->overlapped_p != b->overlapped_p |
| 1512 | || (MATRIX_ROW_CONTINUATION_LINE_P (a) | 1512 | || (MATRIX_ROW_CONTINUATION_LINE_P (a) |
| @@ -4539,7 +4539,7 @@ update_window_line (w, vpos, mouse_face_overwritten_p) | |||
| 4539 | || desired_row->y != current_row->y | 4539 | || desired_row->y != current_row->y |
| 4540 | || desired_row->visible_height != current_row->visible_height | 4540 | || desired_row->visible_height != current_row->visible_height |
| 4541 | || desired_row->cursor_in_fringe_p != current_row->cursor_in_fringe_p | 4541 | || desired_row->cursor_in_fringe_p != current_row->cursor_in_fringe_p |
| 4542 | || desired_row->overlay_arrow_p != current_row->overlay_arrow_p | 4542 | || desired_row->overlay_arrow_bitmap != current_row->overlay_arrow_bitmap |
| 4543 | || current_row->redraw_fringe_bitmaps_p | 4543 | || current_row->redraw_fringe_bitmaps_p |
| 4544 | || desired_row->mode_line_p != current_row->mode_line_p | 4544 | || desired_row->mode_line_p != current_row->mode_line_p |
| 4545 | || desired_row->exact_window_width_line_p != current_row->exact_window_width_line_p | 4545 | || desired_row->exact_window_width_line_p != current_row->exact_window_width_line_p |
| @@ -5051,7 +5051,7 @@ scrolling_window (w, header_line_p) | |||
| 5051 | || to->right_fringe_bitmap != from->right_fringe_bitmap | 5051 | || to->right_fringe_bitmap != from->right_fringe_bitmap |
| 5052 | || to->left_fringe_face_id != from->left_fringe_face_id | 5052 | || to->left_fringe_face_id != from->left_fringe_face_id |
| 5053 | || to->right_fringe_face_id != from->right_fringe_face_id | 5053 | || to->right_fringe_face_id != from->right_fringe_face_id |
| 5054 | || to->overlay_arrow_p != from->overlay_arrow_p)) | 5054 | || to->overlay_arrow_bitmap != from->overlay_arrow_bitmap)) |
| 5055 | from->redraw_fringe_bitmaps_p = 1; | 5055 | from->redraw_fringe_bitmaps_p = 1; |
| 5056 | assign_row (to, from); | 5056 | assign_row (to, from); |
| 5057 | to->enabled_p = 1, from->enabled_p = 0; | 5057 | to->enabled_p = 1, from->enabled_p = 0; |
| @@ -66,7 +66,7 @@ int use_file_dialog; | |||
| 66 | extern int minibuffer_auto_raise; | 66 | extern int minibuffer_auto_raise; |
| 67 | extern Lisp_Object minibuf_window; | 67 | extern Lisp_Object minibuf_window; |
| 68 | extern Lisp_Object Vlocale_coding_system; | 68 | extern Lisp_Object Vlocale_coding_system; |
| 69 | extern Lisp_Object Vloads_in_progress; | 69 | extern int load_in_progress; |
| 70 | 70 | ||
| 71 | Lisp_Object Qstring_lessp, Qprovide, Qrequire; | 71 | Lisp_Object Qstring_lessp, Qprovide, Qrequire; |
| 72 | Lisp_Object Qyes_or_no_p_history; | 72 | Lisp_Object Qyes_or_no_p_history; |
| @@ -3460,7 +3460,7 @@ The normal messages at start and end of loading FILENAME are suppressed. */) | |||
| 3460 | even if the feature specified is already loaded. | 3460 | even if the feature specified is already loaded. |
| 3461 | But not more than once in any file, | 3461 | But not more than once in any file, |
| 3462 | and not when we aren't loading a file. */ | 3462 | and not when we aren't loading a file. */ |
| 3463 | if (! NILP (Vloads_in_progress)) | 3463 | if (load_in_progress) |
| 3464 | { | 3464 | { |
| 3465 | tem = Fcons (Qrequire, feature); | 3465 | tem = Fcons (Qrequire, feature); |
| 3466 | if (NILP (Fmember (tem, Vcurrent_load_list))) | 3466 | if (NILP (Fmember (tem, Vcurrent_load_list))) |
diff --git a/src/fringe.c b/src/fringe.c index 39479dfed21..19e6e60d114 100644 --- a/src/fringe.c +++ b/src/fringe.c | |||
| @@ -700,11 +700,11 @@ draw_fringe_bitmap (w, row, left_p) | |||
| 700 | 700 | ||
| 701 | draw_fringe_bitmap_1 (w, row, left_p, overlay, NO_FRINGE_BITMAP); | 701 | draw_fringe_bitmap_1 (w, row, left_p, overlay, NO_FRINGE_BITMAP); |
| 702 | 702 | ||
| 703 | if (left_p && row->overlay_arrow_p) | 703 | if (left_p && row->overlay_arrow_bitmap != NO_FRINGE_BITMAP) |
| 704 | draw_fringe_bitmap_1 (w, row, 1, 1, | 704 | draw_fringe_bitmap_1 (w, row, 1, 1, |
| 705 | (w->overlay_arrow_bitmap | 705 | (row->overlay_arrow_bitmap < 0 |
| 706 | ? w->overlay_arrow_bitmap | 706 | ? OVERLAY_ARROW_BITMAP |
| 707 | : OVERLAY_ARROW_BITMAP)); | 707 | : row->overlay_arrow_bitmap)); |
| 708 | } | 708 | } |
| 709 | 709 | ||
| 710 | 710 | ||
| @@ -960,10 +960,10 @@ update_window_fringes (w, force_p) | |||
| 960 | cur->right_fringe_face_id = right_face_id; | 960 | cur->right_fringe_face_id = right_face_id; |
| 961 | } | 961 | } |
| 962 | 962 | ||
| 963 | if (row->overlay_arrow_p != cur->overlay_arrow_p) | 963 | if (row->overlay_arrow_bitmap != cur->overlay_arrow_bitmap) |
| 964 | { | 964 | { |
| 965 | redraw_p = row->redraw_fringe_bitmaps_p = cur->redraw_fringe_bitmaps_p = 1; | 965 | redraw_p = row->redraw_fringe_bitmaps_p = cur->redraw_fringe_bitmaps_p = 1; |
| 966 | cur->overlay_arrow_p = row->overlay_arrow_p; | 966 | cur->overlay_arrow_bitmap = row->overlay_arrow_bitmap; |
| 967 | } | 967 | } |
| 968 | 968 | ||
| 969 | row->left_fringe_bitmap = left; | 969 | row->left_fringe_bitmap = left; |
| @@ -1414,7 +1414,9 @@ Return nil if POS is not visible in WINDOW. */) | |||
| 1414 | if (row) | 1414 | if (row) |
| 1415 | return list3 (get_fringe_bitmap_name (row->left_fringe_bitmap), | 1415 | return list3 (get_fringe_bitmap_name (row->left_fringe_bitmap), |
| 1416 | get_fringe_bitmap_name (row->right_fringe_bitmap), | 1416 | get_fringe_bitmap_name (row->right_fringe_bitmap), |
| 1417 | (row->overlay_arrow_p ? Qt : Qnil)); | 1417 | (row->overlay_arrow_bitmap == 0 ? Qnil |
| 1418 | : row->overlay_arrow_bitmap < 0 ? Qt | ||
| 1419 | : get_fringe_bitmap_name (row->overlay_arrow_bitmap))); | ||
| 1418 | else | 1420 | else |
| 1419 | return Qnil; | 1421 | return Qnil; |
| 1420 | } | 1422 | } |
diff --git a/src/lread.c b/src/lread.c index d36d45c8c7d..869e95a00e0 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* Lisp parsing and input streams. | 1 | /* Lisp parsing and input streams. |
| 2 | Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1997, 1998, | 2 | Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1997, 1998, |
| 3 | 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. | 3 | 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -90,7 +90,7 @@ Lisp_Object Qinhibit_file_name_operation; | |||
| 90 | extern Lisp_Object Qevent_symbol_element_mask; | 90 | extern Lisp_Object Qevent_symbol_element_mask; |
| 91 | extern Lisp_Object Qfile_exists_p; | 91 | extern Lisp_Object Qfile_exists_p; |
| 92 | 92 | ||
| 93 | /* non-zero if inside `load' */ | 93 | /* non-zero iff inside `load' */ |
| 94 | int load_in_progress; | 94 | int load_in_progress; |
| 95 | 95 | ||
| 96 | /* Directory in which the sources were found. */ | 96 | /* Directory in which the sources were found. */ |
| @@ -194,7 +194,7 @@ static int new_backquote_flag; | |||
| 194 | /* A list of file names for files being loaded in Fload. Used to | 194 | /* A list of file names for files being loaded in Fload. Used to |
| 195 | check for recursive loads. */ | 195 | check for recursive loads. */ |
| 196 | 196 | ||
| 197 | Lisp_Object Vloads_in_progress; | 197 | static Lisp_Object Vloads_in_progress; |
| 198 | 198 | ||
| 199 | /* Non-zero means load dangerous compiled Lisp files. */ | 199 | /* Non-zero means load dangerous compiled Lisp files. */ |
| 200 | 200 | ||
diff --git a/src/macterm.c b/src/macterm.c index 5aab6ec5364..7bef378b590 100644 --- a/src/macterm.c +++ b/src/macterm.c | |||
| @@ -8590,13 +8590,15 @@ XTread_socket (sd, expected, hold_quit) | |||
| 8590 | struct frame *f = mac_focus_frame (dpyinfo); | 8590 | struct frame *f = mac_focus_frame (dpyinfo); |
| 8591 | WindowPtr window_ptr; | 8591 | WindowPtr window_ptr; |
| 8592 | 8592 | ||
| 8593 | if (!f) | 8593 | #if 0 |
| 8594 | if (dpyinfo->x_focus_frame == NULL) | ||
| 8594 | { | 8595 | { |
| 8595 | /* Beep if wheel move occurs when all the frames | 8596 | /* Beep if wheel move occurs when all the frames |
| 8596 | are invisible. */ | 8597 | are invisible. */ |
| 8597 | SysBeep(1); | 8598 | SysBeep(1); |
| 8598 | break; | 8599 | break; |
| 8599 | } | 8600 | } |
| 8601 | #endif | ||
| 8600 | 8602 | ||
| 8601 | GetEventParameter(eventRef, kEventParamMouseWheelDelta, | 8603 | GetEventParameter(eventRef, kEventParamMouseWheelDelta, |
| 8602 | typeSInt32, NULL, sizeof (SInt32), | 8604 | typeSInt32, NULL, sizeof (SInt32), |
| @@ -9011,6 +9013,7 @@ XTread_socket (sd, expected, hold_quit) | |||
| 9011 | break; | 9013 | break; |
| 9012 | #endif | 9014 | #endif |
| 9013 | 9015 | ||
| 9016 | #if 0 | ||
| 9014 | if (dpyinfo->x_focus_frame == NULL) | 9017 | if (dpyinfo->x_focus_frame == NULL) |
| 9015 | { | 9018 | { |
| 9016 | /* Beep if keyboard input occurs when all the frames | 9019 | /* Beep if keyboard input occurs when all the frames |
| @@ -9018,6 +9021,7 @@ XTread_socket (sd, expected, hold_quit) | |||
| 9018 | SysBeep (1); | 9021 | SysBeep (1); |
| 9019 | break; | 9022 | break; |
| 9020 | } | 9023 | } |
| 9024 | #endif | ||
| 9021 | 9025 | ||
| 9022 | { | 9026 | { |
| 9023 | static SInt16 last_key_script = -1; | 9027 | static SInt16 last_key_script = -1; |
diff --git a/src/window.c b/src/window.c index a1b3c879bb5..86c16ff5719 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -288,7 +288,6 @@ make_window () | |||
| 288 | p->fringes_outside_margins = Qnil; | 288 | p->fringes_outside_margins = Qnil; |
| 289 | p->scroll_bar_width = Qnil; | 289 | p->scroll_bar_width = Qnil; |
| 290 | p->vertical_scroll_bar_type = Qt; | 290 | p->vertical_scroll_bar_type = Qt; |
| 291 | p->overlay_arrow_bitmap = 0; | ||
| 292 | 291 | ||
| 293 | Vwindow_list = Qnil; | 292 | Vwindow_list = Qnil; |
| 294 | return val; | 293 | return val; |
diff --git a/src/window.h b/src/window.h index 8df0b6bb3eb..493b5aa9486 100644 --- a/src/window.h +++ b/src/window.h | |||
| @@ -259,9 +259,6 @@ struct window | |||
| 259 | /* This is handy for undrawing the cursor. */ | 259 | /* This is handy for undrawing the cursor. */ |
| 260 | int phys_cursor_ascent, phys_cursor_height; | 260 | int phys_cursor_ascent, phys_cursor_height; |
| 261 | 261 | ||
| 262 | /* Alternate overlay-arrow-bitmap in this window. */ | ||
| 263 | int overlay_arrow_bitmap; | ||
| 264 | |||
| 265 | /* Non-zero means the cursor is currently displayed. This can be | 262 | /* Non-zero means the cursor is currently displayed. This can be |
| 266 | set to zero by functions overpainting the cursor image. */ | 263 | set to zero by functions overpainting the cursor image. */ |
| 267 | unsigned phys_cursor_on_p : 1; | 264 | unsigned phys_cursor_on_p : 1; |
diff --git a/src/xdisp.c b/src/xdisp.c index c832f1fa5e0..12ee4fef7d3 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -9638,22 +9638,14 @@ redisplay () | |||
| 9638 | 9638 | ||
| 9639 | 9639 | ||
| 9640 | static Lisp_Object | 9640 | static Lisp_Object |
| 9641 | overlay_arrow_string_or_property (var, pbitmap) | 9641 | overlay_arrow_string_or_property (var) |
| 9642 | Lisp_Object var; | 9642 | Lisp_Object var; |
| 9643 | int *pbitmap; | ||
| 9644 | { | 9643 | { |
| 9645 | Lisp_Object pstr = Fget (var, Qoverlay_arrow_string); | 9644 | Lisp_Object val; |
| 9646 | Lisp_Object bitmap; | ||
| 9647 | 9645 | ||
| 9648 | if (pbitmap) | 9646 | if (val = Fget (var, Qoverlay_arrow_string), STRINGP (val)) |
| 9649 | { | 9647 | return val; |
| 9650 | *pbitmap = 0; | ||
| 9651 | if (bitmap = Fget (var, Qoverlay_arrow_bitmap), INTEGERP (bitmap)) | ||
| 9652 | *pbitmap = XINT (bitmap); | ||
| 9653 | } | ||
| 9654 | 9648 | ||
| 9655 | if (!NILP (pstr)) | ||
| 9656 | return pstr; | ||
| 9657 | return Voverlay_arrow_string; | 9649 | return Voverlay_arrow_string; |
| 9658 | } | 9650 | } |
| 9659 | 9651 | ||
| @@ -9703,7 +9695,7 @@ overlay_arrows_changed_p () | |||
| 9703 | continue; | 9695 | continue; |
| 9704 | if (! EQ (COERCE_MARKER (val), | 9696 | if (! EQ (COERCE_MARKER (val), |
| 9705 | Fget (var, Qlast_arrow_position)) | 9697 | Fget (var, Qlast_arrow_position)) |
| 9706 | || ! (pstr = overlay_arrow_string_or_property (var, 0), | 9698 | || ! (pstr = overlay_arrow_string_or_property (var), |
| 9707 | EQ (pstr, Fget (var, Qlast_arrow_string)))) | 9699 | EQ (pstr, Fget (var, Qlast_arrow_string)))) |
| 9708 | return 1; | 9700 | return 1; |
| 9709 | } | 9701 | } |
| @@ -9733,7 +9725,7 @@ update_overlay_arrows (up_to_date) | |||
| 9733 | Fput (var, Qlast_arrow_position, | 9725 | Fput (var, Qlast_arrow_position, |
| 9734 | COERCE_MARKER (val)); | 9726 | COERCE_MARKER (val)); |
| 9735 | Fput (var, Qlast_arrow_string, | 9727 | Fput (var, Qlast_arrow_string, |
| 9736 | overlay_arrow_string_or_property (var, 0)); | 9728 | overlay_arrow_string_or_property (var)); |
| 9737 | } | 9729 | } |
| 9738 | else if (up_to_date < 0 | 9730 | else if (up_to_date < 0 |
| 9739 | || !NILP (Fget (var, Qlast_arrow_position))) | 9731 | || !NILP (Fget (var, Qlast_arrow_position))) |
| @@ -9746,14 +9738,13 @@ update_overlay_arrows (up_to_date) | |||
| 9746 | 9738 | ||
| 9747 | 9739 | ||
| 9748 | /* Return overlay arrow string to display at row. | 9740 | /* Return overlay arrow string to display at row. |
| 9749 | Return t if display as bitmap in left fringe. | 9741 | Return integer (bitmap number) for arrow bitmap in left fringe. |
| 9750 | Return nil if no overlay arrow. */ | 9742 | Return nil if no overlay arrow. */ |
| 9751 | 9743 | ||
| 9752 | static Lisp_Object | 9744 | static Lisp_Object |
| 9753 | overlay_arrow_at_row (it, row, pbitmap) | 9745 | overlay_arrow_at_row (it, row) |
| 9754 | struct it *it; | 9746 | struct it *it; |
| 9755 | struct glyph_row *row; | 9747 | struct glyph_row *row; |
| 9756 | int *pbitmap; | ||
| 9757 | { | 9748 | { |
| 9758 | Lisp_Object vlist; | 9749 | Lisp_Object vlist; |
| 9759 | 9750 | ||
| @@ -9773,17 +9764,21 @@ overlay_arrow_at_row (it, row, pbitmap) | |||
| 9773 | && current_buffer == XMARKER (val)->buffer | 9764 | && current_buffer == XMARKER (val)->buffer |
| 9774 | && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val))) | 9765 | && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val))) |
| 9775 | { | 9766 | { |
| 9776 | val = overlay_arrow_string_or_property (var, pbitmap); | ||
| 9777 | if (FRAME_WINDOW_P (it->f) | 9767 | if (FRAME_WINDOW_P (it->f) |
| 9778 | && WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0) | 9768 | && WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0) |
| 9779 | return Qt; | 9769 | { |
| 9780 | if (STRINGP (val)) | 9770 | if (val = Fget (var, Qoverlay_arrow_bitmap), SYMBOLP (val)) |
| 9781 | return val; | 9771 | { |
| 9782 | break; | 9772 | int fringe_bitmap; |
| 9773 | if ((fringe_bitmap = lookup_fringe_bitmap (val)) != 0) | ||
| 9774 | return make_number (fringe_bitmap); | ||
| 9775 | } | ||
| 9776 | return make_number (-1); /* Use default arrow bitmap */ | ||
| 9777 | } | ||
| 9778 | return overlay_arrow_string_or_property (var); | ||
| 9783 | } | 9779 | } |
| 9784 | } | 9780 | } |
| 9785 | 9781 | ||
| 9786 | *pbitmap = 0; | ||
| 9787 | return Qnil; | 9782 | return Qnil; |
| 9788 | } | 9783 | } |
| 9789 | 9784 | ||
| @@ -14847,7 +14842,6 @@ display_line (it) | |||
| 14847 | struct it *it; | 14842 | struct it *it; |
| 14848 | { | 14843 | { |
| 14849 | struct glyph_row *row = it->glyph_row; | 14844 | struct glyph_row *row = it->glyph_row; |
| 14850 | int overlay_arrow_bitmap; | ||
| 14851 | Lisp_Object overlay_arrow_string; | 14845 | Lisp_Object overlay_arrow_string; |
| 14852 | 14846 | ||
| 14853 | /* We always start displaying at hpos zero even if hscrolled. */ | 14847 | /* We always start displaying at hpos zero even if hscrolled. */ |
| @@ -15255,9 +15249,9 @@ display_line (it) | |||
| 15255 | mark this glyph row as the one containing the overlay arrow. | 15249 | mark this glyph row as the one containing the overlay arrow. |
| 15256 | This is clearly a mess with variable size fonts. It would be | 15250 | This is clearly a mess with variable size fonts. It would be |
| 15257 | better to let it be displayed like cursors under X. */ | 15251 | better to let it be displayed like cursors under X. */ |
| 15258 | if ((overlay_arrow_string | 15252 | if ((row->displays_text_p || !overlay_arrow_seen) |
| 15259 | = overlay_arrow_at_row (it, row, &overlay_arrow_bitmap), | 15253 | && (overlay_arrow_string = overlay_arrow_at_row (it, row), |
| 15260 | !NILP (overlay_arrow_string))) | 15254 | !NILP (overlay_arrow_string))) |
| 15261 | { | 15255 | { |
| 15262 | /* Overlay arrow in window redisplay is a fringe bitmap. */ | 15256 | /* Overlay arrow in window redisplay is a fringe bitmap. */ |
| 15263 | if (STRINGP (overlay_arrow_string)) | 15257 | if (STRINGP (overlay_arrow_string)) |
| @@ -15287,8 +15281,8 @@ display_line (it) | |||
| 15287 | } | 15281 | } |
| 15288 | else | 15282 | else |
| 15289 | { | 15283 | { |
| 15290 | it->w->overlay_arrow_bitmap = overlay_arrow_bitmap; | 15284 | xassert (INTEGERP (overlay_arrow_string)); |
| 15291 | row->overlay_arrow_p = 1; | 15285 | row->overlay_arrow_bitmap = XINT (overlay_arrow_string); |
| 15292 | } | 15286 | } |
| 15293 | overlay_arrow_seen = 1; | 15287 | overlay_arrow_seen = 1; |
| 15294 | } | 15288 | } |
diff --git a/src/xfaces.c b/src/xfaces.c index 51dcfb144d1..89267c8f7f6 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -7115,8 +7115,9 @@ realize_x_face (cache, attrs, c, base_face) | |||
| 7115 | int c; | 7115 | int c; |
| 7116 | struct face *base_face; | 7116 | struct face *base_face; |
| 7117 | { | 7117 | { |
| 7118 | struct face *face = NULL; | ||
| 7118 | #ifdef HAVE_WINDOW_SYSTEM | 7119 | #ifdef HAVE_WINDOW_SYSTEM |
| 7119 | struct face *face, *default_face; | 7120 | struct face *default_face; |
| 7120 | struct frame *f; | 7121 | struct frame *f; |
| 7121 | Lisp_Object stipple, overline, strike_through, box; | 7122 | Lisp_Object stipple, overline, strike_through, box; |
| 7122 | 7123 | ||
| @@ -7312,8 +7313,8 @@ realize_x_face (cache, attrs, c, base_face) | |||
| 7312 | face->stipple = load_pixmap (f, stipple, &face->pixmap_w, &face->pixmap_h); | 7313 | face->stipple = load_pixmap (f, stipple, &face->pixmap_w, &face->pixmap_h); |
| 7313 | 7314 | ||
| 7314 | xassert (FACE_SUITABLE_FOR_CHAR_P (face, c)); | 7315 | xassert (FACE_SUITABLE_FOR_CHAR_P (face, c)); |
| 7315 | return face; | ||
| 7316 | #endif /* HAVE_WINDOW_SYSTEM */ | 7316 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 7317 | return face; | ||
| 7317 | } | 7318 | } |
| 7318 | 7319 | ||
| 7319 | 7320 | ||
diff --git a/src/xmenu.c b/src/xmenu.c index b29b74b6e44..f32074c2f6a 100644 --- a/src/xmenu.c +++ b/src/xmenu.c | |||
| @@ -771,7 +771,7 @@ cached information about equivalent key sequences. */) | |||
| 771 | Lisp_Object keymap, tem; | 771 | Lisp_Object keymap, tem; |
| 772 | int xpos = 0, ypos = 0; | 772 | int xpos = 0, ypos = 0; |
| 773 | Lisp_Object title; | 773 | Lisp_Object title; |
| 774 | char *error_name; | 774 | char *error_name = NULL; |
| 775 | Lisp_Object selection; | 775 | Lisp_Object selection; |
| 776 | FRAME_PTR f = NULL; | 776 | FRAME_PTR f = NULL; |
| 777 | Lisp_Object x, y, window; | 777 | Lisp_Object x, y, window; |
| @@ -2483,7 +2483,7 @@ create_and_show_popup_menu (f, first_wv, x, y, for_click) | |||
| 2483 | if (FRAME_X_DISPLAY_INFO (f)->grabbed & (1 << i)) | 2483 | if (FRAME_X_DISPLAY_INFO (f)->grabbed & (1 << i)) |
| 2484 | break; | 2484 | break; |
| 2485 | } | 2485 | } |
| 2486 | 2486 | ||
| 2487 | /* Display the menu. */ | 2487 | /* Display the menu. */ |
| 2488 | gtk_widget_show_all (menu); | 2488 | gtk_widget_show_all (menu); |
| 2489 | gtk_menu_popup (GTK_MENU (menu), 0, 0, pos_func, &popup_x_y, i, 0); | 2489 | gtk_menu_popup (GTK_MENU (menu), 0, 0, pos_func, &popup_x_y, i, 0); |
| @@ -2601,7 +2601,7 @@ create_and_show_popup_menu (f, first_wv, x, y, for_click) | |||
| 2601 | /* Display the menu. */ | 2601 | /* Display the menu. */ |
| 2602 | lw_popup_menu (menu, (XEvent *) &dummy); | 2602 | lw_popup_menu (menu, (XEvent *) &dummy); |
| 2603 | popup_activated_flag = 1; | 2603 | popup_activated_flag = 1; |
| 2604 | 2604 | ||
| 2605 | { | 2605 | { |
| 2606 | int fact = 4 * sizeof (LWLIB_ID); | 2606 | int fact = 4 * sizeof (LWLIB_ID); |
| 2607 | int specpdl_count = SPECPDL_INDEX (); | 2607 | int specpdl_count = SPECPDL_INDEX (); |
| @@ -3225,7 +3225,7 @@ pop_down_menu (arg) | |||
| 3225 | { | 3225 | { |
| 3226 | struct Lisp_Save_Value *p1 = XSAVE_VALUE (Fcar (arg)); | 3226 | struct Lisp_Save_Value *p1 = XSAVE_VALUE (Fcar (arg)); |
| 3227 | struct Lisp_Save_Value *p2 = XSAVE_VALUE (Fcdr (arg)); | 3227 | struct Lisp_Save_Value *p2 = XSAVE_VALUE (Fcdr (arg)); |
| 3228 | 3228 | ||
| 3229 | FRAME_PTR f = p1->pointer; | 3229 | FRAME_PTR f = p1->pointer; |
| 3230 | XMenu *menu = p2->pointer; | 3230 | XMenu *menu = p2->pointer; |
| 3231 | 3231 | ||
| @@ -3459,7 +3459,7 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) | |||
| 3459 | #ifndef MSDOS | 3459 | #ifndef MSDOS |
| 3460 | XMenuActivateSetWaitFunction (x_menu_wait_for_event, FRAME_X_DISPLAY (f)); | 3460 | XMenuActivateSetWaitFunction (x_menu_wait_for_event, FRAME_X_DISPLAY (f)); |
| 3461 | #endif | 3461 | #endif |
| 3462 | 3462 | ||
| 3463 | record_unwind_protect (pop_down_menu, | 3463 | record_unwind_protect (pop_down_menu, |
| 3464 | Fcons (make_save_value (f, 0), | 3464 | Fcons (make_save_value (f, 0), |
| 3465 | make_save_value (menu, 0))); | 3465 | make_save_value (menu, 0))); |