[Bf-blender-cvs] [d914d10] master: UI: fix for drawing textselect outside of button
Campbell Barton
noreply at git.blender.org
Fri May 30 02:22:47 CEST 2014
Commit: d914d101ecc7f2e70398182978b491c9710ef64b
Author: Campbell Barton
Date: Fri May 30 10:20:58 2014 +1000
https://developer.blender.org/rBd914d101ecc7f2e70398182978b491c9710ef64b
UI: fix for drawing textselect outside of button
also draw cursor even when there is a selection.
===================================================================
M source/blender/editors/interface/interface_widgets.c
===================================================================
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index b25aac7..b0be614 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -1248,40 +1248,39 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
/* text button selection and cursor */
if (but->editstr && but->pos != -1) {
- short t = 0, pos = 0;
- short selsta_tmp, selend_tmp, selsta_draw, selwidth_draw;
+ /* text button selection */
if ((but->selend - but->selsta) > 0) {
- /* text button selection */
- selsta_tmp = but->selsta;
- selend_tmp = but->selend;
+ int selsta_draw, selwidth_draw;
if (drawstr[0] != 0) {
if (but->selsta >= but->ofs) {
- selsta_draw = BLF_width(fstyle->uifont_id, drawstr + but->ofs, selsta_tmp - but->ofs);
+ selsta_draw = BLF_width(fstyle->uifont_id, drawstr + but->ofs, but->selsta - but->ofs);
}
else {
selsta_draw = 0;
}
- selwidth_draw = BLF_width(fstyle->uifont_id, drawstr + but->ofs, selend_tmp - but->ofs);
+ selwidth_draw = BLF_width(fstyle->uifont_id, drawstr + but->ofs, but->selend - but->ofs);
glColor4ubv((unsigned char *)wcol->item);
- glRects(rect->xmin + selsta_draw, rect->ymin + 2, rect->xmin + selwidth_draw, rect->ymax - 2);
+ glRecti(rect->xmin + selsta_draw,
+ rect->ymin + 2,
+ min_ii(rect->xmin + selwidth_draw, rect->xmax - 2),
+ rect->ymax - 2);
}
}
- else {
- /* text cursor */
- pos = but->pos;
- if (pos >= but->ofs) {
- if (drawstr[0] != 0) {
- t = BLF_width(fstyle->uifont_id, drawstr + but->ofs, pos - but->ofs);
- }
- glColor3f(0.20, 0.6, 0.9);
- glRects(rect->xmin + t, rect->ymin + 2, rect->xmin + t + 2, rect->ymax - 2);
+ /* text cursor */
+ if (but->pos >= but->ofs) {
+ int t;
+ if (drawstr[0] != 0) {
+ t = BLF_width(fstyle->uifont_id, drawstr + but->ofs, but->pos - but->ofs);
}
+
+ glColor3f(0.20, 0.6, 0.9);
+ glRecti(rect->xmin + t, rect->ymin + 2, rect->xmin + t + 2, rect->ymax - 2);
}
}
More information about the Bf-blender-cvs
mailing list