[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: About x_draw_xwidget_glyph_string
From: |
Eli Zaretskii |
Subject: |
Re: About x_draw_xwidget_glyph_string |
Date: |
Sat, 09 Apr 2016 10:38:28 +0300 |
> From: address@hidden
> Cc: YAMAMOTO Mitsuharu <address@hidden>, address@hidden
> Date: Fri, 08 Apr 2016 17:35:23 +0200
>
> Eli Zaretskii <address@hidden> writes:
>
> >> Date: Mon, 25 Jan 2016 11:07:16 +0900
> >> From: YAMAMOTO Mitsuharu <address@hidden>
> >>
> >> 2. Comment on clipping.
> >>
> >> 578 /* Calculate clipping, which is used for all manner of
> >> onscreen
> >> 579 xwidget views. Each widget border can get clipped by
> >> other emacs
> >> 580 objects so there are four clipping variables. */
> >> 581 clip_right =
> >> 582 min (xww->width,
> >> 583 WINDOW_RIGHT_EDGE_X (s->w) - x -
> >> 584 WINDOW_RIGHT_SCROLL_BAR_AREA_WIDTH (s->w) -
> >> 585 WINDOW_RIGHT_FRINGE_WIDTH (s->w));
> >> 586 clip_left =
> >> 587 max (0,
> >> 588 WINDOW_LEFT_EDGE_X (s->w) - x +
> >> 589 WINDOW_LEFT_SCROLL_BAR_AREA_WIDTH (s->w) +
> >> 590 WINDOW_LEFT_FRINGE_WIDTH (s->w));
> >> 591
> >> 592 clip_bottom =
> >> 593 min (xww->height,
> >> 594 WINDOW_BOTTOM_EDGE_Y (s->w) - WINDOW_MODE_LINE_HEIGHT
> >> (s->w) - y);
> >> 595 clip_top = max (0, WINDOW_TOP_EDGE_Y (s->w) - y);
> >>
> >> I think the calculation of clipping should use the function window_box
> >> rather than manual calculation with various window macros. Otherwise,
> >> xwidget views will cover horizontal scroll bars, for example.
> >
> > I agree.
> >
> > Thanks.
> >
>
> I tried to do this, but I'm doing something wrong. How is window_box
> meant to be used?
>
> This is my attempt to replace the code above:
>
> //JAVE work in progressing, suggested by YAMAMOTO Mitsuharu
> int text_area_x, text_area_y, text_area_width, text_area_height;
>
> window_box (s->w,
> ANY_AREA, //also tried TEXT_AREA
You should use TEXT_AREA here.
> &text_area_x,
> &text_area_y,
> &text_area_width,
> &text_area_height);
> clip_right =
> min (xww->width,
> text_area_width);
> clip_left =
> max (0,
> text_area_x);
>
> clip_bottom =
> min (xww->height,
> text_area_y);
> clip_top = max (0, text_area_height);
I think clip_top should use text_area_y and clip_bottom should use
text_area_height.
Other than those two issues, what other problems do you see?
- Re: About x_draw_xwidget_glyph_string, joakim, 2016/04/08
- Re: About x_draw_xwidget_glyph_string,
Eli Zaretskii <=
- Re: About x_draw_xwidget_glyph_string, joakim, 2016/04/09
- Re: About x_draw_xwidget_glyph_string, Eli Zaretskii, 2016/04/09
- Re: About x_draw_xwidget_glyph_string, YAMAMOTO Mitsuharu, 2016/04/10
- Re: About x_draw_xwidget_glyph_string, YAMAMOTO Mitsuharu, 2016/04/10
- Re: About x_draw_xwidget_glyph_string, joakim, 2016/04/12
- Re: About x_draw_xwidget_glyph_string, joakim, 2016/04/12