Mercurial > emacs
comparison src/xterm.c @ 5872:6389c826f847
(x_display_cursor, process_expose_from_menu): Block input.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Wed, 09 Feb 1994 23:31:54 +0000 |
parents | b1f35db748d8 |
children | 105c99071e9b |
comparison
equal
deleted
inserted
replaced
5871:49029e28ed2c | 5872:6389c826f847 |
---|---|
462 | 462 |
463 Since the display generation code is responsible for calling | 463 Since the display generation code is responsible for calling |
464 compute_char_face and compute_glyph_face on everything it puts in | 464 compute_char_face and compute_glyph_face on everything it puts in |
465 the display structure, we can assume that the face code on each | 465 the display structure, we can assume that the face code on each |
466 glyph is a valid index into FRAME_COMPUTED_FACES (f), and the one | 466 glyph is a valid index into FRAME_COMPUTED_FACES (f), and the one |
467 to which we can actually apply intern_face. */ | 467 to which we can actually apply intern_face. |
468 Call this function with input blocked. */ | |
468 | 469 |
469 #if 1 | 470 #if 1 |
470 /* This is the multi-face code. */ | 471 /* This is the multi-face code. */ |
471 | 472 |
472 static void | 473 static void |
749 } | 750 } |
750 | 751 |
751 /* Erase the character (if any) at the position just before X, Y in frame F, | 752 /* Erase the character (if any) at the position just before X, Y in frame F, |
752 then redraw it and the character before it. | 753 then redraw it and the character before it. |
753 This is necessary when we erase starting at X, | 754 This is necessary when we erase starting at X, |
754 in case the character after X overlaps into the one before X. */ | 755 in case the character after X overlaps into the one before X. |
756 Call this function with input blocked. */ | |
755 | 757 |
756 static void | 758 static void |
757 redraw_previous_char (f, x, y) | 759 redraw_previous_char (f, x, y) |
758 FRAME_PTR f; | 760 FRAME_PTR f; |
759 int x, y; | 761 int x, y; |
1144 static void clear_cursor (); | 1146 static void clear_cursor (); |
1145 | 1147 |
1146 /* Output into a rectangle of an X-window (for frame F) | 1148 /* Output into a rectangle of an X-window (for frame F) |
1147 the characters in f->phys_lines that overlap that rectangle. | 1149 the characters in f->phys_lines that overlap that rectangle. |
1148 TOP and LEFT are the position of the upper left corner of the rectangle. | 1150 TOP and LEFT are the position of the upper left corner of the rectangle. |
1149 ROWS and COLS are the size of the rectangle. */ | 1151 ROWS and COLS are the size of the rectangle. |
1152 Call this function with input blocked. */ | |
1150 | 1153 |
1151 static void | 1154 static void |
1152 dumprectangle (f, left, top, cols, rows) | 1155 dumprectangle (f, left, top, cols, rows) |
1153 struct frame *f; | 1156 struct frame *f; |
1154 register int left, top, cols, rows; | 1157 register int left, top, cols, rows; |
2646 process_expose_from_menu (event) | 2649 process_expose_from_menu (event) |
2647 XEvent event; | 2650 XEvent event; |
2648 { | 2651 { |
2649 FRAME_PTR f; | 2652 FRAME_PTR f; |
2650 | 2653 |
2654 BLOCK_INPUT; | |
2655 | |
2651 f = x_window_to_frame (event.xexpose.window); | 2656 f = x_window_to_frame (event.xexpose.window); |
2652 if (f) | 2657 if (f) |
2653 { | 2658 { |
2654 if (f->async_visible == 0) | 2659 if (f->async_visible == 0) |
2655 { | 2660 { |
2670 = x_window_to_scroll_bar (event.xexpose.window); | 2675 = x_window_to_scroll_bar (event.xexpose.window); |
2671 | 2676 |
2672 if (bar) | 2677 if (bar) |
2673 x_scroll_bar_expose (bar, &event); | 2678 x_scroll_bar_expose (bar, &event); |
2674 } | 2679 } |
2680 | |
2681 UNBLOCK_INPUT; | |
2675 } | 2682 } |
2676 | 2683 |
2677 | 2684 |
2678 /* The main X event-reading loop - XTread_socket. */ | 2685 /* The main X event-reading loop - XTread_socket. */ |
2679 | 2686 |
3948 | 3955 |
3949 x_display_cursor (f, on) | 3956 x_display_cursor (f, on) |
3950 struct frame *f; | 3957 struct frame *f; |
3951 int on; | 3958 int on; |
3952 { | 3959 { |
3960 BLOCK_INPUT; | |
3961 | |
3953 if (FRAME_DESIRED_CURSOR (f) == filled_box_cursor) | 3962 if (FRAME_DESIRED_CURSOR (f) == filled_box_cursor) |
3954 x_display_box_cursor (f, on); | 3963 x_display_box_cursor (f, on); |
3955 else if (FRAME_DESIRED_CURSOR (f) == bar_cursor) | 3964 else if (FRAME_DESIRED_CURSOR (f) == bar_cursor) |
3956 x_display_bar_cursor (f, on); | 3965 x_display_bar_cursor (f, on); |
3957 else | 3966 else |
3958 /* Those are the only two we have implemented! */ | 3967 /* Those are the only two we have implemented! */ |
3959 abort (); | 3968 abort (); |
3969 | |
3970 UNBLOCK_INPUT; | |
3960 } | 3971 } |
3961 | 3972 |
3962 /* Icons. */ | 3973 /* Icons. */ |
3963 | 3974 |
3964 /* Refresh bitmap kitchen sink icon for frame F | 3975 /* Refresh bitmap kitchen sink icon for frame F |