winboat icon indicating copy to clipboard operation
winboat copied to clipboard

[Bug] Scaling Bug? (gap between top of screen. MS Office Suite and visual code)

Open Dormant-Hero opened this issue 3 months ago • 1 comments

What version of WinBoat are you running?

v0.8.7 Prod

Your Environment

Fastfetch of my system info:

Image

Freerdp type urmmm marko@DESKTOP-KT6HD4V:~$ rpm -q freerdp freerdp-3.16.0-1.fc42.x86_64

Steps to Reproduce / Context

Bug

I have a gap between a windows application running in winbloat and the top of my screen. The video below demonstrates it and shows it may be limited to MS Office and visual programming application.

It can be clearly reproduced on my end with just opening ms office applications or ms visual code application for programming.

Any more information required let me know. Sorry if anything has been missed. I did try to look for this bug before posting as well.

https://youtu.be/Gui2Rp18pe0

Logs

winboat.log install.log

Expected Behavior

I expected the application to scale like any native linux app would. The video will demonstrate this best.

https://youtu.be/Gui2Rp18pe0

Current Behavior

Weird gap at the top of applications as per this video

https://youtu.be/Gui2Rp18pe0

Possible Solution

No response

Quality Notice

  • [x] I have checked the issue tracker and verified that this bug is a unique case.

Dormant-Hero avatar Oct 10 '25 23:10 Dormant-Hero

Hello, I also experienced the gap when running Affinity, what happens when you run this powershell script? To me it fixed the issue.


Add-Type  @"
    using System;
    using System.Runtime.InteropServices;

    public class Win32
    {
        public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);

        [DllImport("user32.dll")]
        public static extern bool EnumWindows(EnumWindowsProc enumProc, IntPtr lParam);

        [DllImport("user32.dll")]
        public static extern bool IsWindowVisible(IntPtr hWnd);

        [DllImport("user32.dll")]
        public static extern int GetWindowLong(IntPtr hWnd, int nIndex);

        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

        public const int GWL_STYLE = -16;
        public const int WS_MAXIMIZE = 0x01000000;
    }
"@

$callback = {
    param([IntPtr]$hWnd, [IntPtr]$lParam)
    
    if ([Win32]::IsWindowVisible($hWnd)) {
        $style = [Win32]::GetWindowLong($hWnd, [Win32]::GWL_STYLE)
        if (($style -band [Win32]::WS_MAXIMIZE) -ne 0) {
            [Win32]::MoveWindow($hWnd, 0, 0, 0, 0, $true)
        }
    }
    return $true
}

$enumDelegate = [Win32+EnumWindowsProc]$callback
$null = [Win32]::EnumWindows($enumDelegate, [IntPtr]::Zero)

AdianKozlica avatar Nov 10 '25 13:11 AdianKozlica