VirtualBox

Changeset 27463 in vbox for trunk/src/VBox/Devices/Input


Ignore:
Timestamp:
Mar 17, 2010 9:28:37 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
58950
Message:

Devices/Input/DevPS2: cleaned up some harmless messed up code and prevented harmful mouse wheel reporting if the wheel is not enabled

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Input/DevPS2.cpp

    r27188 r27463  
    685685                              : RT_MIN(s->mouse_dy, 255);
    686686    unsigned int b;
    687     unsigned fButtonsPacked;
    688     unsigned fButtonsLow = s->mouse_buttons & 0x03;
     687    unsigned fButtonsLow = s->mouse_buttons & 0x07;
    689688    s->mouse_dx -= dx1;
    690689    s->mouse_dy -= dy1;
    691     kbd_mouse_set_reported_buttons(s, fButtonsLow, 0x03);
    692     fButtonsPacked = (s->mouse_buttons & 0x04 ? 0x04 : 0);
    693     kbd_mouse_set_reported_buttons(s, s->mouse_buttons, 0x04);
    694     LogRel3(("%s: dx1=%d, dy1=%d, fButtonsLow=0x%x, fButtonsPacked=0x%x\n",
    695              __PRETTY_FUNCTION__, dx1, dy1, fButtonsLow, fButtonsPacked));
    696     b = 0x08 | ((dx1 < 0) << 4) | ((dy1 < 0) << 5) | fButtonsLow
    697              | (fButtonsPacked & 4) | ((fButtonsPacked & 3) << 6);
     690    kbd_mouse_set_reported_buttons(s, fButtonsLow, 0x07);
     691    LogRel3(("%s: dx1=%d, dy1=%d, fButtonsLow=0x%x\n",
     692             __PRETTY_FUNCTION__, dx1, dy1, fButtonsLow));
     693    b = 0x08 | ((dx1 < 0 ? 1 : 0) << 4) | ((dy1 < 0 ? 1 : 0) << 5)
     694             | fButtonsLow;
    698695    kbd_queue(s, b, aux);
    699696    kbd_queue(s, dx1 & 0xff, aux);
     
    707704    int dz1 = s->mouse_dz < 0 ? RT_MAX(s->mouse_dz, -127)
    708705                              : RT_MIN(s->mouse_dz, 127);
     706    LogRel3(("%s: dz1=%d\n", __PRETTY_FUNCTION__, dz1));
    709707    s->mouse_dz -= dz1;
    710708    kbd_queue(s, dz1 & 0xff, aux);
     
    719717        int dw1 = s->mouse_dw < 0 ? RT_MAX(s->mouse_dw, -31)
    720718                                  : RT_MIN(s->mouse_dw, 32);
     719        LogRel3(("%s: dw1=%d\n", __PRETTY_FUNCTION__, dw1));
    721720        s->mouse_dw -= dw1;
    722721        kbd_queue(s, 0x40 | (dw1 & 0x3f), aux);
     
    726725        int dz1 = s->mouse_dz < 0 ? RT_MAX(s->mouse_dz, -31)
    727726                                  : RT_MIN(s->mouse_dz, 32);
     727        LogRel3(("%s: dz1=%d\n", __PRETTY_FUNCTION__, dz1));
    728728        s->mouse_dz -= dz1;
    729729        kbd_queue(s, 0x80 | (dz1 & 0x3f), aux);
     
    733733        int dz1 = s->mouse_dz < 0 ? RT_MAX(s->mouse_dz, -7)
    734734                                  : RT_MIN(s->mouse_dz, 8);
     735        unsigned fButtonsHigh = s->mouse_buttons & 0x18;
     736        LogRel3(("%s: dz1=%d fButtonsHigh=0x%x\n",
     737                 __PRETTY_FUNCTION__, dz1, fButtonsHigh));
    735738        s->mouse_dz -= dz1;
    736         kbd_mouse_set_reported_buttons(s, s->mouse_buttons, 0x18);
    737         kbd_queue(s, (dz1 & 0x0f) | ((s->mouse_buttons & 0x18) << 1), aux);
     739        kbd_mouse_set_reported_buttons(s, fButtonsHigh, 0x18);
     740        kbd_queue(s, (dz1 & 0x0f) | (fButtonsHigh << 1), aux);
    738741    }
    739742}
     
    785788    s->mouse_dx += dx;
    786789    s->mouse_dy -= dy;
    787     s->mouse_dz += dz;
     790    if (   (s->mouse_type == MOUSE_PROT_IMPS2)
     791        || (s->mouse_type == MOUSE_PROT_IMEX))
     792        s->mouse_dz += dz;
    788793    if (   (   (s->mouse_type == MOUSE_PROT_IMEX)
    789794            && s->mouse_flags & MOUSE_REPORT_HORIZONTAL))
     
    986991            if (val == 40)
    987992            {
    988                 LogFlowFunc(("enabling IMEX horizontal scrolling reporting\n"));
     993                LogRelFlowFunc(("enabling IMEX horizontal scrolling reporting\n"));
    989994                s->mouse_flags |= MOUSE_REPORT_HORIZONTAL;
    990995            }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette