[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/dispnew.c
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/dispnew.c |
Date: |
Thu, 27 Nov 2003 16:15:54 -0500 |
Index: emacs/src/dispnew.c
diff -c emacs/src/dispnew.c:1.322 emacs/src/dispnew.c:1.323
*** emacs/src/dispnew.c:1.322 Sat Nov 22 19:09:19 2003
--- emacs/src/dispnew.c Thu Nov 27 16:15:53 2003
***************
*** 5692,5700 ****
to character positions. */
void
! buffer_posn_from_coords (w, x, y, object, pos)
struct window *w;
int *x, *y;
Lisp_Object *object;
struct display_pos *pos;
{
--- 5692,5701 ----
to character positions. */
void
! buffer_posn_from_coords (w, x, y, dx, dy, object, pos)
struct window *w;
int *x, *y;
+ int *dx, *dy;
Lisp_Object *object;
struct display_pos *pos;
{
***************
*** 5702,5707 ****
--- 5703,5709 ----
struct buffer *old_current_buffer = current_buffer;
struct text_pos startp;
struct glyph_row *row;
+ struct image *img;
int x0, x1;
current_buffer = XBUFFER (w->buffer);
***************
*** 5721,5727 ****
current_buffer = old_current_buffer;
! *object = STRINGP (it.string) ? it.string : w->buffer;
*pos = it.current;
*x = it.hpos;
*y = it.vpos;
--- 5723,5737 ----
current_buffer = old_current_buffer;
! *dx = x0 + it.first_visible_x - it.current_x;
! *dy = *y - it.current_y;
!
! if (it.what == IT_IMAGE
! && (img = IMAGE_FROM_ID (it.f, it.image_id)) != NULL
! && !NILP (img->spec))
! *object = img->spec;
! else
! *object = STRINGP (it.string) ? it.string : w->buffer;
*pos = it.current;
*x = it.hpos;
*y = it.vpos;
***************
*** 5734,5755 ****
the string returned. */
Lisp_Object
! mode_line_string (w, x, y, part, charpos)
struct window *w;
int *x, *y;
enum window_part part;
int *charpos;
{
struct glyph_row *row;
struct glyph *glyph, *end;
! int x0;
Lisp_Object string = Qnil;
if (part == ON_MODE_LINE)
row = MATRIX_MODE_LINE_ROW (w->current_matrix);
else
row = MATRIX_HEADER_LINE_ROW (w->current_matrix);
!
*y = row - MATRIX_FIRST_TEXT_ROW (w->current_matrix);
if (row->mode_line_p && row->enabled_p)
--- 5744,5766 ----
the string returned. */
Lisp_Object
! mode_line_string (w, x, y, dx, dy, part, charpos)
struct window *w;
int *x, *y;
+ int *dx, *dy;
enum window_part part;
int *charpos;
{
struct glyph_row *row;
struct glyph *glyph, *end;
! int x0, y0;
Lisp_Object string = Qnil;
if (part == ON_MODE_LINE)
row = MATRIX_MODE_LINE_ROW (w->current_matrix);
else
row = MATRIX_HEADER_LINE_ROW (w->current_matrix);
! y0 = *y - row->y;
*y = row - MATRIX_FIRST_TEXT_ROW (w->current_matrix);
if (row->mode_line_p && row->enabled_p)
***************
*** 5771,5777 ****
*x += x0 / WINDOW_FRAME_COLUMN_WIDTH (w);
}
else
! *x = 0;
return string;
}
--- 5782,5797 ----
*x += x0 / WINDOW_FRAME_COLUMN_WIDTH (w);
}
else
! {
! *x = 0;
! x0 = 0;
! }
!
! if (dx)
! {
! *dx = x0;
! *dy = y0;
! }
return string;
}
***************
*** 5782,5796 ****
the string returned. */
Lisp_Object
! marginal_area_string (w, x, y, part, charpos)
struct window *w;
int *x, *y;
enum window_part part;
int *charpos;
{
struct glyph_row *row = w->current_matrix->rows;
struct glyph *glyph, *end;
! int x0, i, wy = *y;
int area;
Lisp_Object string = Qnil;
--- 5802,5817 ----
the string returned. */
Lisp_Object
! marginal_area_string (w, x, y, dx, dy, part, charpos)
struct window *w;
int *x, *y;
+ int *dx, *dy;
enum window_part part;
int *charpos;
{
struct glyph_row *row = w->current_matrix->rows;
struct glyph *glyph, *end;
! int x0, y0, i, wy = *y;
int area;
Lisp_Object string = Qnil;
***************
*** 5804,5809 ****
--- 5825,5831 ----
for (i = 0; row->enabled_p && i < w->current_matrix->nrows; ++i, ++row)
if (wy >= row->y && wy < MATRIX_ROW_BOTTOM_Y (row))
break;
+ y0 = *y - row->y;
*y = row - MATRIX_FIRST_TEXT_ROW (w->current_matrix);
if (row->enabled_p)
***************
*** 5836,5842 ****
*x += x0 / WINDOW_FRAME_COLUMN_WIDTH (w);
}
else
! *x = 0;
return string;
}
--- 5858,5873 ----
*x += x0 / WINDOW_FRAME_COLUMN_WIDTH (w);
}
else
! {
! x0 = 0;
! *x = 0;
! }
!
! if (dx)
! {
! *dx = x0;
! *dy = y0;
! }
return string;
}