Keep the lister text field's right side in view
This commit is contained in:
parent
b9b44f481a
commit
25d07a750c
|
@ -219,14 +219,30 @@ lister_render(Application_Links *app, Frame_Info frame_info, View_ID view){
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
Vec2_f32 p = V2f32(text_field_rect.x0 + 3.f, text_field_rect.y0);
|
||||||
Fancy_Line text_field = {};
|
Fancy_Line text_field = {};
|
||||||
push_fancy_string(scratch, &text_field, fcolor_id(defcolor_pop1),
|
push_fancy_string(scratch, &text_field, fcolor_id(defcolor_pop1),
|
||||||
lister->query.string);
|
lister->query.string);
|
||||||
push_fancy_stringf(scratch, &text_field, " ");
|
push_fancy_stringf(scratch, &text_field, " ");
|
||||||
|
p = draw_fancy_line(app, face_id, fcolor_zero(), &text_field, p);
|
||||||
|
|
||||||
|
// TODO(allen): This is a bit of a hack. Maybe an upgrade to fancy to focus
|
||||||
|
// more on being good at this and less on overriding everything 10 ways to sunday
|
||||||
|
// would be good.
|
||||||
|
block_zero_struct(&text_field);
|
||||||
push_fancy_string(scratch, &text_field, fcolor_id(defcolor_text_default),
|
push_fancy_string(scratch, &text_field, fcolor_id(defcolor_text_default),
|
||||||
lister->text_field.string);
|
lister->text_field.string);
|
||||||
draw_fancy_line(app, face_id, fcolor_zero(), &text_field,
|
f32 width = get_fancy_line_width(app, face_id, &text_field);
|
||||||
V2f32(text_field_rect.x0 + 3.f, text_field_rect.y0));
|
f32 cap_width = text_field_rect.x1 - p.x - 6.f;
|
||||||
|
if (cap_width < width){
|
||||||
|
Rect_f32 prect = draw_set_clip(app, Rf32(p.x, text_field_rect.y0, p.x + cap_width, text_field_rect.y1));
|
||||||
|
p.x += cap_width - width;
|
||||||
|
draw_fancy_line(app, face_id, fcolor_zero(), &text_field, p);
|
||||||
|
draw_set_clip(app, prect);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
draw_fancy_line(app, face_id, fcolor_zero(), &text_field, p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue