Date: Thu, 6 Feb 2014 15:16:38 +0000 (UTC) From: Aleksandr Rybalko <ray@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r261553 - head/sys/dev/vt Message-ID: <201402061516.s16FGcC5087441@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ray Date: Thu Feb 6 15:16:38 2014 New Revision: 261553 URL: http://svnweb.freebsd.org/changeset/base/261553 Log: Add vt_set_border function to help to change border color. Use vt_set_border to reset color after font changed (different font size may change border sizes) Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/vt/vt_core.c Modified: head/sys/dev/vt/vt_core.c ============================================================================== --- head/sys/dev/vt/vt_core.c Thu Feb 6 15:12:44 2014 (r261552) +++ head/sys/dev/vt/vt_core.c Thu Feb 6 15:16:38 2014 (r261553) @@ -1045,6 +1045,30 @@ vt_change_font(struct vt_window *vw, str } static int +vt_set_border(struct vt_window *vw, struct vt_font *vf, term_color_t c) +{ + struct vt_device *vd = vw->vw_device; + int l, r, t, b, w, h; + + if (vd->vd_driver->vd_drawrect == NULL) + return (ENOTSUP); + + w = vd->vd_width - 1; + h = vd->vd_height - 1; + l = vd->vd_offset.tp_col - 1; + r = w - l; + t = vd->vd_offset.tp_row - 1; + b = h - t; + + vd->vd_driver->vd_drawrect(vd, 0, 0, w, t, 1, c); /* Top bar. */ + vd->vd_driver->vd_drawrect(vd, 0, t, l, b, 1, c); /* Left bar. */ + vd->vd_driver->vd_drawrect(vd, r, t, w, b, 1, c); /* Right bar. */ + vd->vd_driver->vd_drawrect(vd, 0, b, w, h, 1, c); /* Bottom bar. */ + + return (0); +} + +static int vt_proc_alive(struct vt_window *vw) { struct proc *p; @@ -1562,6 +1586,10 @@ skip_thunk: return (error); error = vt_change_font(vw, vf); + if (error == 0) { + /* XXX: replace 0 with current bg color. */ + vt_set_border(vw, vf, 0); + } vtfont_unref(vf); return (error); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402061516.s16FGcC5087441>