VirtualBox

Changeset 60905 in vbox for trunk/src/VBox


Ignore:
Timestamp:
May 9, 2016 6:56:00 PM (9 years ago)
Author:
vboxsync
Message:

bugref:8087: Additions/x11: support non-root X server: do not reset the absolute input device to screen position co-ordinate mapping when we reset the screen mode after restoring a saved state. Among other potential problems this fixes problems with the cursor hot-spot position.

Location:
trunk/src/VBox
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp

    r60465 r60905  
    547547}
    548548
    549 static int vbvaResize(PVGASTATE pVGAState, VBVAVIEW *pView, const VBVAINFOSCREEN *pNewScreen)
     549static int vbvaResize(PVGASTATE pVGAState, VBVAVIEW *pView, const VBVAINFOSCREEN *pNewScreen, bool fResetInputMapping)
    550550{
    551551    /* Callers ensure that pNewScreen contains valid data. */
     
    555555
    556556    uint8_t *pu8VRAM = pVGAState->vram_ptrR3 + pView->view.u32ViewOffset;
    557     return pVGAState->pDrv->pfnVBVAResize (pVGAState->pDrv, &pView->view, &pView->screen, pu8VRAM);
     557    return pVGAState->pDrv->pfnVBVAResize (pVGAState->pDrv, &pView->view, &pView->screen, pu8VRAM, fResetInputMapping);
    558558}
    559559
     
    20602060                if (RT_SUCCESS(rc))
    20612061                {
    2062                     vbvaResize(pVGAState, pView, &pView->screen);
     2062                    vbvaResize(pVGAState, pView, &pView->screen, false);
    20632063                }
    20642064                else
     
    22662266                && screen.u32StartOffset <= pView->u32ViewSize - (uint32_t)u64ScreenSize)
    22672267            {
    2268                 vbvaResize(pVGAState, &pCtx->aViews[screen.u32ViewIndex], &screen);
     2268                vbvaResize(pVGAState, &pCtx->aViews[screen.u32ViewIndex], &screen, true);
    22692269                return VINF_SUCCESS;
    22702270            }
  • trunk/src/VBox/Main/include/DisplayImpl.h

    r57088 r60905  
    343343                                                      uint32_t cx, uint32_t cy);
    344344    static DECLCALLBACK(int)   i_displayVBVAResize(PPDMIDISPLAYCONNECTOR pInterface, const PVBVAINFOVIEW pView,
    345                                                    const PVBVAINFOSCREEN pScreen, void *pvVRAM);
     345                                                   const PVBVAINFOSCREEN pScreen, void *pvVRAM,
     346                                                   bool fResetInputMapping);
    346347    static DECLCALLBACK(int)   i_displayVBVAMousePointerShape(PPDMIDISPLAYCONNECTOR pInterface, bool fVisible, bool fAlpha,
    347348                                                              uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy,
  • trunk/src/VBox/Main/src-client/DisplayImpl.cpp

    r59786 r60905  
    39213921
    39223922DECLCALLBACK(int) Display::i_displayVBVAResize(PPDMIDISPLAYCONNECTOR pInterface, const PVBVAINFOVIEW pView,
    3923                                                const PVBVAINFOSCREEN pScreen, void *pvVRAM)
     3923                                               const PVBVAINFOSCREEN pScreen, void *pvVRAM, bool fResetInputMapping)
    39243924{
    39253925    LogRelFlowFunc(("pScreen %p, pvVRAM %p\n", pScreen, pvVRAM));
     
    40124012    pFBInfo->flags = pScreen->u16Flags;
    40134013
    4014     pThis->xInputMappingOrigin = 0;
    4015     pThis->yInputMappingOrigin = 0;
    4016     pThis->cxInputMapping = 0;
    4017     pThis->cyInputMapping = 0;
     4014    if (fResetInputMapping)
     4015    {
     4016        pThis->xInputMappingOrigin = 0;
     4017        pThis->yInputMappingOrigin = 0;
     4018        pThis->cxInputMapping = 0;
     4019        pThis->cyInputMapping = 0;
     4020    }
    40184021
    40194022    if (fNewOrigin)
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