Changeset 54040 in vbox for trunk/src/VBox/Additions/x11/vboxvideo
- Timestamp:
- Jan 29, 2015 7:25:48 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 97957
- Location:
- trunk/src/VBox/Additions/x11/vboxvideo
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/x11/vboxvideo/getmode.c
r53966 r54040 341 341 pVBox->fLastCursorCapabilitiesFromProperty = *pfCursorCapabilities; 342 342 } 343 pVBox->fForceModeSet = (pVBox->fUseHardwareCursor != fOldUseHardwareCursor); 343 if (pVBox->fUseHardwareCursor != fOldUseHardwareCursor) 344 vbvxReprobeCursor(pScrn); 344 345 } 345 346 … … 369 370 pScrn = xf86Screens[pWin->drawable.pScreen->myNum]; 370 371 pVBox = VBOXGetRec(pScrn); 371 TRACE_LOG("pVBox->fForceModeSet=%u, pVBox->fUseHardwareCursor=%u\n", (unsigned)pVBox->fForceModeSet, 372 pVBox->fUseHardwareCursor); 372 TRACE_LOG("pVBox->fUseHardwareCursor=%u\n", pVBox->fUseHardwareCursor); 373 373 VBoxUpdateSizeHints(pScrn); 374 374 pMode = pScrn->modes; 375 375 if (pScrn->currentMode == pMode) 376 { 377 if (pVBox->fForceModeSet) /* Swap modes so that the new mode is before the current one. */ 378 { 379 pScrn->currentMode = pMode->next; 380 pMode->next->HDisplay = pMode->HDisplay; 381 pMode->next->VDisplay = pMode->VDisplay; 382 } 383 else 384 pMode = pMode->next; 385 } 376 pMode = pMode->next; 386 377 pMode->HDisplay = pVBox->pScreens[0].aPreferredSize.cx; 387 378 pMode->VDisplay = pVBox->pScreens[0].aPreferredSize.cy; 388 pVBox->fForceModeSet = false;389 379 } 390 380 -
trunk/src/VBox/Additions/x11/vboxvideo/helpers.c
r53777 r54040 25 25 #include <propertyst.h> 26 26 #include <windowstr.h> 27 #include <xf86.h> 27 28 #include <X11/Xatom.h> 28 29 #ifdef XORG_7X … … 76 77 return VINF_SUCCESS; 77 78 } 79 80 void vbvxReprobeCursor(ScrnInfoPtr pScrn) 81 { 82 if (ROOT_WINDOW(pScrn) == NULL) 83 return; 84 #ifdef XF86_SCRN_INTERFACE 85 pScrn->EnableDisableFBAccess(pScrn, FALSE); 86 pScrn->EnableDisableFBAccess(pScrn, TRUE); 87 #else 88 pScrn->EnableDisableFBAccess(pScrn->scrnIndex, FALSE); 89 pScrn->EnableDisableFBAccess(pScrn->scrnIndex, TRUE); 90 #endif 91 } -
trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo.c
r53966 r54040 456 456 457 457 static DisplayModePtr vbox_output_add_mode(VBOXPtr pVBox, DisplayModePtr *pModes, const char *pszName, int x, int y, 458 Bool isPreferred, Bool fDifferentRefresh, BoolisUserDef)458 Bool isPreferred, Bool isUserDef) 459 459 { 460 460 TRACE_LOG("pszName=%s, x=%d, y=%d\n", pszName ? pszName : "(null)", x, y); 461 461 DisplayModePtr pMode = xnfcalloc(1, sizeof(DisplayModeRec)); 462 int cRefresh = fDifferentRefresh ? 70 :60;462 int cRefresh = 60; 463 463 464 464 pMode->status = MODE_OK; … … 504 504 VBoxUpdateSizeHints(pScrn); 505 505 pMode = vbox_output_add_mode(pVBox, &pModes, NULL, pVBox->pScreens[iScreen].aPreferredSize.cx, 506 pVBox->pScreens[iScreen].aPreferredSize.cy, TRUE, pVBox->fUseHardwareCursor,FALSE);506 pVBox->pScreens[iScreen].aPreferredSize.cy, TRUE, FALSE); 507 507 VBOXEDIDSet(output, pMode); 508 508 /* Add standard modes supported by the host */ … … 512 512 if (cIndex == 0) 513 513 break; 514 vbox_output_add_mode(pVBox, &pModes, NULL, x, y, FALSE, FALSE , FALSE);514 vbox_output_add_mode(pVBox, &pModes, NULL, x, y, FALSE, FALSE); 515 515 } 516 516 … … 520 520 { 521 521 if (2 == sscanf(pScrn->display->modes[i], "%ux%u", &x, &y)) 522 vbox_output_add_mode(pVBox, &pModes, pScrn->display->modes[i], x, y, FALSE, FALSE,TRUE);522 vbox_output_add_mode(pVBox, &pModes, pScrn->display->modes[i], x, y, FALSE, TRUE); 523 523 } 524 524 TRACE_EXIT(); -
trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo.h
r53968 r54040 198 198 /** Do we currently want to use the host cursor? */ 199 199 Bool fUseHardwareCursor; 200 /** Do we want to force a reset of the current mode because the host cursor support changed? Only used by old servers. */201 Bool fForceModeSet;202 200 /** The last cursor capabilities data read from the X11 property. */ 203 201 int32_t fLastCursorCapabilitiesFromProperty; … … 246 244 #define VBOXGetRec vbvxGetRec /* Temporary */ 247 245 extern int vbvxGetIntegerPropery(ScrnInfoPtr pScrn, char *pszName, size_t *pcData, int32_t **ppaData); 246 extern void vbvxReprobeCursor(ScrnInfoPtr pScrn); 248 247 249 248 /* setmode.c */
Note:
See TracChangeset
for help on using the changeset viewer.