VirtualBox

Changeset 98003 in vbox for trunk


Ignore:
Timestamp:
Jan 5, 2023 2:11:13 PM (2 years ago)
Author:
vboxsync
Message:

FE/Qt: Runtime UI: Reworking adjustGuestScreenSize for full-screen/seamless modes; This should make code and especially logging more obvious; Dangerous a bit.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/runtime
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.cpp

    r98000 r98003  
    134134void UIMachineViewFullscreen::adjustGuestScreenSize()
    135135{
    136     /* Should we adjust guest-screen size? Logging paranoia is required here to reveal the truth. */
    137     LogRel(("GUI: UIMachineViewFullscreen::adjustGuestScreenSize: Adjust guest-screen size if necessary.\n"));
    138     bool fAdjust = false;
    139 
    140     /* Step 1: Is the guest-screen of another size than necessary? */
    141     if (!fAdjust)
     136    /* Step 1: Is guest-screen visible? */
     137    if (!uisession()->isScreenVisible(screenId()))
    142138    {
    143         /* Acquire requested guest-screen size-hint or at least actual frame-buffer size: */
    144         QSize guestScreenSizeHint = requestedGuestScreenSizeHint();
    145         /* Take the scale-factor(s) into account: */
    146         guestScreenSizeHint = scaledForward(guestScreenSizeHint);
    147 
    148         /* Calculate maximum possible guest screen size: */
    149         const QSize maximumGuestScreenSize = calculateMaxGuestSize();
    150 
    151         if (guestScreenSizeHint != maximumGuestScreenSize)
    152         {
    153             LogRel2(("GUI: UIMachineViewFullscreen::adjustGuestScreenSize: Guest-screen is of another size than necessary, adjustment is required.\n"));
    154             fAdjust = true;
    155         }
     139        LogRel(("GUI: UIMachineViewFullscreen::adjustGuestScreenSize: "
     140                "Guest-screen #%d is not visible, adjustment is not required.\n",
     141                screenId()));
     142        return;
     143    }
     144    /* Step 2: Is guest-screen auto-resize enabled? */
     145    if (!isGuestAutoresizeEnabled())
     146    {
     147        LogRel(("GUI: UIMachineViewFullscreen::adjustGuestScreenSize: "
     148                "Guest-screen #%d auto-resize is disabled, adjustment is not required.\n",
     149                screenId()));
     150        return;
    156151    }
    157152
    158     /* Step 2: Is guest-screen visible? */
    159     if (fAdjust)
     153    /* What are the desired and requested hints? */
     154    const QSize sizeToApply = calculateMaxGuestSize();
     155    const QSize desiredSizeHint = scaledBackward(sizeToApply);
     156    const QSize requestedSizeHint = requestedGuestScreenSizeHint();
     157
     158    /* Step 3: Is the guest-screen of another size than necessary? */
     159    if (desiredSizeHint == requestedSizeHint)
    160160    {
    161         if (!uisession()->isScreenVisible(screenId()))
    162         {
    163             LogRel2(("GUI: UIMachineViewFullscreen::adjustGuestScreenSize: Guest-screen is not visible, adjustment is omitted.\n"));
    164             fAdjust = false;
    165         }
    166     }
    167     /* Step 3: Is guest-screen auto-resize enabled? */
    168     if (fAdjust)
    169     {
    170         if (!isGuestAutoresizeEnabled())
    171         {
    172             LogRel2(("GUI: UIMachineViewFullscreen::adjustGuestScreenSize: Guest-screen auto-resize is disabled, adjustment is omitted.\n"));
    173             fAdjust = false;
    174         }
     161        LogRel(("GUI: UIMachineViewFullscreen::adjustGuestScreenSize: "
     162                "Desired hint %dx%d for guest-screen #%d is already in IDisplay, adjustment is not required.\n",
     163                desiredSizeHint.width(), desiredSizeHint.height(), screenId()));
     164        return;
    175165    }
    176166
    177     /* Final step: Adjust if requested/allowed. */
    178     if (fAdjust)
    179     {
    180         sltPerformGuestResize(calculateMaxGuestSize());
    181         /* And remember the size to know what we are resizing out of when we exit: */
    182         uisession()->setLastFullScreenSize(screenId(), scaledForward(scaledBackward(calculateMaxGuestSize())));
    183     }
     167    /* Final step: Adjust .. */
     168    LogRel(("GUI: UIMachineViewFullscreen::adjustGuestScreenSize: "
     169            "Desired hint %dx%d for guest-screen #%d differs from the one in IDisplay, adjustment is required.\n",
     170            desiredSizeHint.width(), desiredSizeHint.height(), screenId()));
     171    sltPerformGuestResize(sizeToApply);
     172    /* And remember the size to know what we are resizing out of when we exit: */
     173    uisession()->setLastFullScreenSize(screenId(), scaledForward(desiredSizeHint));
    184174}
    185175
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.cpp

    r98000 r98003  
    147147void UIMachineViewSeamless::adjustGuestScreenSize()
    148148{
    149     /* Should we adjust guest-screen size? Logging paranoia is required here to reveal the truth. */
    150     LogRel(("GUI: UIMachineViewSeamless::adjustGuestScreenSize: Adjust guest-screen size if necessary.\n"));
    151     bool fAdjust = false;
    152 
    153     /* Step 1: Is the guest-screen of another size than necessary? */
    154     if (!fAdjust)
     149    /* Step 1: Is guest-screen visible? */
     150    if (!uisession()->isScreenVisible(screenId()))
    155151    {
    156         /* Acquire requested guest-screen size-hint or at least actual frame-buffer size: */
    157         QSize guestScreenSizeHint = requestedGuestScreenSizeHint();
    158         /* Take the scale-factor(s) into account: */
    159         guestScreenSizeHint = scaledForward(guestScreenSizeHint);
    160 
    161         /* Calculate maximum possible guest screen size: */
    162         const QSize maximumGuestScreenSize = calculateMaxGuestSize();
    163 
    164         if (guestScreenSizeHint != maximumGuestScreenSize)
    165         {
    166             LogRel2(("GUI: UIMachineViewSeamless::adjustGuestScreenSize: Guest-screen is of another size than necessary, adjustment is required.\n"));
    167             fAdjust = true;
    168         }
     152        LogRel(("GUI: UIMachineViewSeamless::adjustGuestScreenSize: "
     153                "Guest-screen #%d is not visible, adjustment is not required.\n",
     154                screenId()));
     155        return;
    169156    }
    170157
    171     /* Step 2: Is guest-screen visible? */
    172     if (fAdjust)
     158    /* What are the desired and requested hints? */
     159    const QSize sizeToApply = calculateMaxGuestSize();
     160    const QSize desiredSizeHint = scaledBackward(sizeToApply);
     161    const QSize requestedSizeHint = requestedGuestScreenSizeHint();
     162
     163    /* Step 2: Is the guest-screen of another size than necessary? */
     164    if (desiredSizeHint == requestedSizeHint)
    173165    {
    174         if (!uisession()->isScreenVisible(screenId()))
    175         {
    176             LogRel2(("GUI: UIMachineViewSeamless::adjustGuestScreenSize: Guest-screen is not visible, adjustment is omitted.\n"));
    177             fAdjust = false;
    178         }
     166        LogRel(("GUI: UIMachineViewSeamless::adjustGuestScreenSize: "
     167                "Desired hint %dx%d for guest-screen #%d is already in IDisplay, adjustment is not required.\n",
     168                desiredSizeHint.width(), desiredSizeHint.height(), screenId()));
     169        return;
    179170    }
    180171
    181     /* Final step: Adjust if requested/allowed. */
    182     if (fAdjust)
    183     {
    184         sltPerformGuestResize(calculateMaxGuestSize());
    185         /* And remember the size to know what we are resizing out of when we exit: */
    186         uisession()->setLastFullScreenSize(screenId(), scaledForward(scaledBackward(calculateMaxGuestSize())));
    187     }
     172    /* Final step: Adjust .. */
     173    LogRel(("GUI: UIMachineViewSeamless::adjustGuestScreenSize: "
     174            "Desired hint %dx%d for guest-screen #%d differs from the one in IDisplay, adjustment is required.\n",
     175            desiredSizeHint.width(), desiredSizeHint.height(), screenId()));
     176    sltPerformGuestResize(sizeToApply);
     177    /* And remember the size to know what we are resizing out of when we exit: */
     178    uisession()->setLastFullScreenSize(screenId(), scaledForward(desiredSizeHint));
    188179}
    189180
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