diff options
Diffstat (limited to 'sys/i386/isa/syscons.c')
-rw-r--r-- | sys/i386/isa/syscons.c | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c index a5b6577..586f5e5 100644 --- a/sys/i386/isa/syscons.c +++ b/sys/i386/isa/syscons.c @@ -35,7 +35,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: syscons.c,v 1.75 1994/11/03 11:40:01 ache Exp $ + * $Id: syscons.c,v 1.76 1994/11/06 00:30:16 bde Exp $ */ #include "sc.h" @@ -734,9 +734,19 @@ pcioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) scp->mode = cmd & 0xFF; scp->status |= UNKNOWN_MODE; /* graphics mode */ - if (scp == cur_console) + scp->xsize = (*(video_mode_ptr + (scp->mode*64))) * 8; + scp->ysize = (*(video_mode_ptr + (scp->mode*64) + 1) + 1) + * (*(video_mode_ptr + (scp->mode*64) + 2)); + if (scp == cur_console) { set_mode(scp); - /* clear_graphics();*/ + /* clear_graphics();*/ + } + if (tp->t_winsize.ws_xpixel != scp->xsize + || tp->t_winsize.ws_ypixel != scp->ysize) { + tp->t_winsize.ws_xpixel = scp->xsize; + tp->t_winsize.ws_ypixel = scp->ysize; + pgsignal(tp->t_pgrp, SIGWINCH, 1); + } return 0; case VT_SETMODE: /* set screen switcher mode */ @@ -2339,6 +2349,17 @@ next_code: case 0x53: /* grey delete key */ keycode = 0x67; break; + + /* the following 3 are only used on the MS "Natural" keyboard */ + case 0x5b: /* left Window key */ + keycode = 0x69; + break; + case 0x5c: /* right Window key */ + keycode = 0x6a; + break; + case 0x5d: /* menu key */ + keycode = 0x6b; + break; default: /* ignore everything else */ goto next_code; } |