comparison src/redisplay.c @ 56:c0965ff3b039 r19-16-pre3

Import from CVS: tag r19-16-pre3
author cvs
date Mon, 13 Aug 2007 08:58:20 +0200
parents ee648375d8d6
children 131b0175ea99
comparison
equal deleted inserted replaced
55:9e8623109fad 56:c0965ff3b039
1902 else 1902 else
1903 data.cursor_type = NO_CURSOR; 1903 data.cursor_type = NO_CURSOR;
1904 } 1904 }
1905 else if (MINI_WINDOW_P (w) && !active_minibuffer) 1905 else if (MINI_WINDOW_P (w) && !active_minibuffer)
1906 data.cursor_type = NO_CURSOR; 1906 data.cursor_type = NO_CURSOR;
1907 else if (w == XWINDOW (FRAME_SELECTED_WINDOW (device_selected_frame (d)))) 1907 else if (w == XWINDOW (FRAME_SELECTED_WINDOW (f)) &&
1908 EQ(DEVICE_CONSOLE(d), Vselected_console) &&
1909 d == XDEVICE(CONSOLE_SELECTED_DEVICE(XCONSOLE(DEVICE_CONSOLE(d))))&&
1910 f == XFRAME(DEVICE_SELECTED_FRAME(d)))
1908 { 1911 {
1909 data.bi_cursor_bufpos = BI_BUF_PT (b); 1912 data.bi_cursor_bufpos = BI_BUF_PT (b);
1910 data.cursor_type = CURSOR_ON; 1913 data.cursor_type = CURSOR_ON;
1911 } 1914 }
1912 else if (w == XWINDOW (FRAME_SELECTED_WINDOW (f))) 1915 else if (w == XWINDOW (FRAME_SELECTED_WINDOW (f)))
4921 Lisp_Object old_buffer = w->buffer; 4924 Lisp_Object old_buffer = w->buffer;
4922 struct buffer *b; 4925 struct buffer *b;
4923 int echo_active = 0; 4926 int echo_active = 0;
4924 int startp = 1; 4927 int startp = 1;
4925 int pointm; 4928 int pointm;
4926 int selected; 4929 int selected_in_its_frame;
4930 int selected_globally;
4927 int skip_output = 0; 4931 int skip_output = 0;
4928 int truncation_changed; 4932 int truncation_changed;
4929 int inactive_minibuffer = 4933 int inactive_minibuffer =
4930 (MINI_WINDOW_P (w) && 4934 (MINI_WINDOW_P (w) &&
4931 (f != device_selected_frame (d)) && 4935 (f != device_selected_frame (d)) &&
4948 redisplay_windows (w->hchild, skip_selected); 4952 redisplay_windows (w->hchild, skip_selected);
4949 return; 4953 return;
4950 } 4954 }
4951 4955
4952 /* Is this window the selected window on its frame? */ 4956 /* Is this window the selected window on its frame? */
4953 selected = 4957 selected_in_its_frame = (w == XWINDOW (FRAME_SELECTED_WINDOW (f)));
4954 (w == XWINDOW (FRAME_SELECTED_WINDOW (device_selected_frame (d)))); 4958 selected_globally =
4955 if (skip_selected && selected) 4959 selected_in_its_frame &&
4960 EQ(DEVICE_CONSOLE(d), Vselected_console) &&
4961 XDEVICE(CONSOLE_SELECTED_DEVICE(XCONSOLE(DEVICE_CONSOLE(d)))) == d &&
4962 XFRAME(DEVICE_SELECTED_FRAME(d)) == f;
4963 if (skip_selected && selected_in_its_frame)
4956 return; 4964 return;
4957 4965
4958 /* It is possible that the window is not fully initialized yet. */ 4966 /* It is possible that the window is not fully initialized yet. */
4959 if (NILP (w->buffer)) 4967 if (NILP (w->buffer))
4960 return; 4968 return;
4969 4977
4970 if (echo_active) 4978 if (echo_active)
4971 pointm = 1; 4979 pointm = 1;
4972 else 4980 else
4973 { 4981 {
4974 if (selected) 4982 if (selected_globally)
4975 { 4983 {
4976 pointm = BUF_PT (b); 4984 pointm = BUF_PT (b);
4977 } 4985 }
4978 else 4986 else
4979 { 4987 {
5041 5049
5042 if (!point_visible (w, pointm, DESIRED_DISP) && !inactive_minibuffer) 5050 if (!point_visible (w, pointm, DESIRED_DISP) && !inactive_minibuffer)
5043 { 5051 {
5044 pointm = point_at_center (w, DESIRED_DISP, 0, 0); 5052 pointm = point_at_center (w, DESIRED_DISP, 0, 0);
5045 5053
5046 if (selected) 5054 if (selected_globally)
5047 BUF_SET_PT (b, pointm); 5055 BUF_SET_PT (b, pointm);
5048 5056
5049 Fset_marker (w->pointm[DESIRED_DISP], make_int (pointm), 5057 Fset_marker (w->pointm[DESIRED_DISP], make_int (pointm),
5050 old_buffer); 5058 old_buffer);
5051 5059
5069 && !truncation_changed) 5077 && !truncation_changed)
5070 { 5078 {
5071 /* Check if the cursor has actually moved. */ 5079 /* Check if the cursor has actually moved. */
5072 if (EQ (Fmarker_buffer (w->last_point[CURRENT_DISP]), w->buffer) 5080 if (EQ (Fmarker_buffer (w->last_point[CURRENT_DISP]), w->buffer)
5073 && pointm == marker_position (w->last_point[CURRENT_DISP]) 5081 && pointm == marker_position (w->last_point[CURRENT_DISP])
5074 && selected 5082 && selected_globally
5075 && !w->windows_changed 5083 && !w->windows_changed
5076 && !f->clip_changed 5084 && !f->clip_changed
5077 && !f->extents_changed 5085 && !f->extents_changed
5078 && !f->faces_changed 5086 && !f->faces_changed
5079 && !f->point_changed 5087 && !f->point_changed
5109 5117
5110 skip_output = 1; 5118 skip_output = 1;
5111 goto regeneration_done; 5119 goto regeneration_done;
5112 } 5120 }
5113 } 5121 }
5114 else if (!selected && !f->point_changed) 5122 else if (!selected_in_its_frame && !f->point_changed)
5115 { 5123 {
5116 if (f->modeline_changed) 5124 if (f->modeline_changed)
5117 regenerate_modeline (w); 5125 regenerate_modeline (w);
5118 5126
5119 skip_output = 1; 5127 skip_output = 1;
5663 window_line_number (struct window *w, int type) 5671 window_line_number (struct window *w, int type)
5664 { 5672 {
5665 struct device *d = XDEVICE (XFRAME (w->frame)->device); 5673 struct device *d = XDEVICE (XFRAME (w->frame)->device);
5666 struct buffer *b = XBUFFER (w->buffer); 5674 struct buffer *b = XBUFFER (w->buffer);
5667 Bufpos end = 5675 Bufpos end =
5668 ((w == XWINDOW (FRAME_SELECTED_WINDOW (device_selected_frame (d)))) 5676 (((w == XWINDOW (FRAME_SELECTED_WINDOW (device_selected_frame (d)))) &&
5677 EQ(DEVICE_CONSOLE(d), Vselected_console) &&
5678 XDEVICE(CONSOLE_SELECTED_DEVICE(XCONSOLE(DEVICE_CONSOLE(d)))) == d &&
5679 EQ(DEVICE_SELECTED_FRAME(d), w->frame))
5669 ? BUF_PT (b) 5680 ? BUF_PT (b)
5670 : marker_position (w->pointm[type])); 5681 : marker_position (w->pointm[type]));
5671 int lots = 999999999; 5682 int lots = 999999999;
5672 int shortage, line; 5683 int shortage, line;
5673 5684