From 42a327a0bd1efbd6d148ade1efb0b5f06e6abd9d Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Fri, 16 Mar 2012 13:49:44 +0000 Subject: [PATCH] Corrigindo posicionamento do indicador de posição do cursor --- src/gtk/v3270/oia.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gtk/v3270/oia.c b/src/gtk/v3270/oia.c index 9310762..c311204 100644 --- a/src/gtk/v3270/oia.c +++ b/src/gtk/v3270/oia.c @@ -118,18 +118,15 @@ static void setup_cursor_position(GdkRectangle *rect, struct v3270_metrics *metr { int addr = lib3270_get_cursor_address(host); char buffer[10]; - cairo_text_extents_t extents; short2string(buffer,(addr/cols)+1,3); buffer[3] = '/'; short2string(buffer+4,(addr%cols)+1,3); buffer[7] = 0; - cairo_text_extents(cr,buffer,&extents); - rect->width = ((int) extents.width + 2); + rect->width = metrics->width * 8; rect->x -= rect->width; - if(lib3270_get_toggle(host,LIB3270_TOGGLE_CURSOR_POS)) { cairo_move_to(cr,rect->x,rect->y+metrics->height); @@ -666,6 +663,8 @@ void v3270_update_cursor(H3270 *session, unsigned short row, unsigned short col, if(lib3270_get_toggle(session,LIB3270_TOGGLE_CURSOR_POS)) { // Update OIA + cairo_text_extents_t extents; + cr = set_update_region(terminal,&rect,V3270_OIA_CURSOR_POSITION); short2string(buffer,row+1,3); @@ -673,6 +672,8 @@ void v3270_update_cursor(H3270 *session, unsigned short row, unsigned short col, short2string(buffer+4,col+1,3); buffer[7] = 0; + cairo_text_extents(cr,buffer,&extents); + cairo_move_to(cr,rect->x,rect->y+terminal->metrics.height); cairo_show_text(cr, buffer); cairo_stroke(cr); -- libgit2 0.21.2