From 58541533dd70f88309f214fef493dca646b0aa8f Mon Sep 17 00:00:00 2001 From: Kazutaka YOKOTA Date: Tue, 3 Nov 1998 02:37:46 +0000 Subject: [PATCH] Don't update the screen while the cursor shape is being changed by the user-land program. PR: i386/8344 --- sys/dev/syscons/syscons.c | 6 +++++- sys/i386/isa/syscons.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index caf072af7188..d4178e88306d 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.284 1998/10/01 21:04:52 ache Exp $ + * $Id: syscons.c,v 1.285 1998/10/22 05:58:40 bde Exp $ */ #include "sc.h" @@ -978,10 +978,12 @@ scioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) * are affected. Update the cursor in the current console... */ if (!ISGRAPHSC(cur_console)) { + s = spltty(); remove_cursor_image(cur_console); if (sc_flags & CHAR_CURSOR) set_destructive_cursor(cur_console); draw_cursor_image(cur_console); + splx(s); } return 0; @@ -2820,10 +2822,12 @@ scan_esc(scr_stat *scp, u_char c) * are affected. Update the cursor in the current console... */ if (!ISGRAPHSC(cur_console)) { + i = spltty(); remove_cursor_image(cur_console); if (sc_flags & CHAR_CURSOR) set_destructive_cursor(cur_console); draw_cursor_image(cur_console); + splx(i); } break; diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c index caf072af7188..d4178e88306d 100644 --- a/sys/i386/isa/syscons.c +++ b/sys/i386/isa/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.284 1998/10/01 21:04:52 ache Exp $ + * $Id: syscons.c,v 1.285 1998/10/22 05:58:40 bde Exp $ */ #include "sc.h" @@ -978,10 +978,12 @@ scioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) * are affected. Update the cursor in the current console... */ if (!ISGRAPHSC(cur_console)) { + s = spltty(); remove_cursor_image(cur_console); if (sc_flags & CHAR_CURSOR) set_destructive_cursor(cur_console); draw_cursor_image(cur_console); + splx(s); } return 0; @@ -2820,10 +2822,12 @@ scan_esc(scr_stat *scp, u_char c) * are affected. Update the cursor in the current console... */ if (!ISGRAPHSC(cur_console)) { + i = spltty(); remove_cursor_image(cur_console); if (sc_flags & CHAR_CURSOR) set_destructive_cursor(cur_console); draw_cursor_image(cur_console); + splx(i); } break;