comparison src/redisplay-output.c @ 265:8efd647ea9ca r20-5b31

Import from CVS: tag r20-5b31
author cvs
date Mon, 13 Aug 2007 10:25:37 +0200
parents 727739f917cb
children 966663fcf606
comparison
equal deleted inserted replaced
264:682d2a9d41a5 265:8efd647ea9ca
748 int y = w->last_point_y[CURRENT_DISP]; 748 int y = w->last_point_y[CURRENT_DISP];
749 749
750 extern int cursor_in_echo_area; 750 extern int cursor_in_echo_area;
751 751
752 /* 752 /*
753 * Bail if cursor_in_echo_area is non-zero and we're fiddling 753 * Bail if cursor_in_echo_area is non-zero and we're fiddling with
754 * with the cursor in a minibuffer window, since that is a 754 * the cursor in a non-active minibuffer window, since that is a
755 * special case that is handled elsewhere and this function 755 * special case that is handled elsewhere and this function need
756 * need not handle it. Return 1 so the caller will assume we 756 * not handle it. Return 1 so the caller will assume we
757 * succeeded. 757 * succeeded.
758 */ 758 */
759 if (cursor_in_echo_area && MINI_WINDOW_P (w)) 759 if (cursor_in_echo_area && MINI_WINDOW_P (w) &&
760 w != XWINDOW (FRAME_SELECTED_WINDOW (f)))
760 return 1; 761 return 1;
761 762
762 if (y < 0 || y >= Dynarr_length (cla)) 763 if (y < 0 || y >= Dynarr_length (cla))
763 return 0; 764 return 0;
764 765
924 925
925 display_line_dynarr *dla = window_display_lines (w, CURRENT_DISP); 926 display_line_dynarr *dla = window_display_lines (w, CURRENT_DISP);
926 struct display_line *dl; 927 struct display_line *dl;
927 struct display_block *db; 928 struct display_block *db;
928 struct rune *rb; 929 struct rune *rb;
930 extern int cursor_in_echo_area;
929 931
930 int x = w->last_point_x[CURRENT_DISP]; 932 int x = w->last_point_x[CURRENT_DISP];
931 int y = w->last_point_y[CURRENT_DISP]; 933 int y = w->last_point_y[CURRENT_DISP];
934
935 if (cursor_in_echo_area && MINI_WINDOW_P (w) &&
936 !echo_area_active (f) && minibuf_level == 0)
937 {
938 MAYBE_DEVMETH (d, set_final_cursor_coords, (f, w->pixel_top, 0));
939 }
932 940
933 if (y < 0 || y >= Dynarr_length (dla)) 941 if (y < 0 || y >= Dynarr_length (dla))
934 return; 942 return;
935 943
936 if (MINI_WINDOW_P (w) && f != device_selected_frame (d) && 944 if (MINI_WINDOW_P (w) && f != device_selected_frame (d) &&
947 955
948 /* Don't call the output routine if the block isn't actually the 956 /* Don't call the output routine if the block isn't actually the
949 cursor. */ 957 cursor. */
950 if (rb->cursor_type == CURSOR_ON) 958 if (rb->cursor_type == CURSOR_ON)
951 { 959 {
960 MAYBE_DEVMETH (d, set_final_cursor_coords,
961 (f, dl->ypos - 1, rb->xpos));
962
952 if (run_end_begin_meths) 963 if (run_end_begin_meths)
953 DEVMETH (d, output_begin, (d)); 964 DEVMETH (d, output_begin, (d));
954 965
955 output_display_line (w, 0, dla, y, rb->xpos, rb->xpos + rb->width); 966 output_display_line (w, 0, dla, y, rb->xpos, rb->xpos + rb->width);
956 967