diff --git a/include/printwin.cpp b/include/printwin.cpp index ef54eec7d..4f2c0b9c6 100755 --- a/include/printwin.cpp +++ b/include/printwin.cpp @@ -50,7 +50,7 @@ void TPrintwin::paint_background(long j) { const char* line = printer().background_chars(rw); set_color (COLOR_BLACK, COLOR_WHITE); - printat (_hofs, (int)j, "%s", line); + xvt_dwin_draw_text(win(), _hofs , (rw*_chary + _chary - _descent + _vofs), (char*)line, -1); return; } if (!isbackground) return; @@ -64,21 +64,21 @@ void TPrintwin::paint_background(long j) case 'v': // verticale intera x1 = (byte)rwd[cnt++]-1; b.h = e.h = LEN_SPACES(win(), x1)+LEN_SPACES(win(), 1)/2+_hofs; - b.v = rw * _chary + _vofs; e.v = rw * _chary + _vofs; + b.v = rw * _chary + _vofs; e.v = (rw+1) * _chary + _vofs; xvt_dwin_draw_set_pos(win(),b); xvt_dwin_draw_line(win(),e); break; case 'o': // verticale pezzo sopra x1 = (byte)rwd[cnt++]-1; b.h = e.h = LEN_SPACES(win(), x1)+LEN_SPACES(win(), 1)/2 + _hofs; - b.v = rw * _chary + _vofs; e.v = rw * _chary - _chary/2 + _vofs; + b.v = rw * _chary + _vofs; e.v = rw * _chary + _chary/2 + _vofs; xvt_dwin_draw_set_pos(win(),b); xvt_dwin_draw_line(win(),e); break; case 'u': // verticale pezzo sotto x1 = (byte)rwd[cnt++]-1; b.h = e.h = LEN_SPACES(win(), x1)+LEN_SPACES(win(), 1)/2 + _hofs; - b.v = rw*_chary + _chary/2 + _vofs; e.v = rw * _chary + _vofs; + b.v = rw*_chary + _chary/2 + _vofs; e.v = (rw+1) * _chary + _vofs; xvt_dwin_draw_set_pos(win(),b); xvt_dwin_draw_line(win(),e); break; @@ -304,12 +304,15 @@ TPrintwin::TPrintwin(TTextfile& txt) #if XVT_OS != XVT_OS_SCOUNIX p.set_win_formlen(prwin); // Calcola offset e altre misure pagina - + + int abs_column=p.get_column_offset(); + int segno = abs_column>=0 ? 1 : -1; + abs_column*=segno; xvt_dwin_get_font_metrics(prwin, &_lead, &_ascent, &_descent); _bg = &p.getbgdesc(); _chary = p.get_dots_per_line(); - _hofs = p.get_horz_offset(); - _vofs = p.get_vert_offset(); + _hofs = p.get_horz_offset() + segno*LEN_SPACES(prwin,abs_column); + _vofs = p.get_vert_offset() + p.get_line_offset()*_chary; #endif _formlen = p.formlen();