<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>DisplayFusion RSS: Help with borderless fullscreen function and mouse offset.</title>
<atom:link href="https://www.displayfusion.com/Discussions/RSS/?TopicID=198b026a-7e82-4055-a86a-49c84b6872e5" rel="self" type="application/rss+xml" />
<link>https://www.displayfusion.com/Discussions/RSS/?TopicID=198b026a-7e82-4055-a86a-49c84b6872e5</link>
<description>DisplayFusion RSS: Help with borderless fullscreen function and mouse offset.</description>
<lastBuildDate>Thu, 25 Jun 2026 09:37:40 GMT</lastBuildDate>
<language>en</language>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<generator>https://www.displayfusion.com/Discussions/RSS/?TopicID=198b026a-7e82-4055-a86a-49c84b6872e5</generator>
<item>
<title>RE: Help with borderless fullscreen function and mouse offset.</title>
<link>https://www.displayfusion.com/Discussions/View/help-with-borderless-fullscreen-function-and-mouse-offset/?ID=198b026a-7e82-4055-a86a-49c84b6872e5#4</link>
<pubDate>Tue, 08 Aug 2023 16:56:52 GMT</pubDate>
<dc:creator>Binary Fortress Software</dc:creator>
<guid isPermaLink="false">https://www.displayfusion.com/Discussions/View/help-with-borderless-fullscreen-function-and-mouse-offset/?ID=198b026a-7e82-4055-a86a-49c84b6872e5#4</guid>
<category>DisplayFusion</category>
<description><![CDATA[We took a look into this but it doesn't look like it's something we can fix unfortunately, sorry!]]></description>
<content:encoded><![CDATA[<div class="CTDiscussions">
We took a look into this but it doesn't look like it's something we can fix unfortunately, sorry!
</div>
]]></content:encoded>
</item>
<item>
<title>RE: Help with borderless fullscreen function and mouse offset.</title>
<link>https://www.displayfusion.com/Discussions/View/help-with-borderless-fullscreen-function-and-mouse-offset/?ID=198b026a-7e82-4055-a86a-49c84b6872e5#3</link>
<pubDate>Mon, 31 Jul 2023 15:02:48 GMT</pubDate>
<dc:creator>Binary Fortress Software</dc:creator>
<guid isPermaLink="false">https://www.displayfusion.com/Discussions/View/help-with-borderless-fullscreen-function-and-mouse-offset/?ID=198b026a-7e82-4055-a86a-49c84b6872e5#3</guid>
<category>DisplayFusion</category>
<description><![CDATA[Yes the mouse click is off from the pointer by (x,y) amount x and y being the about the border size it got rid of.
Like if I had my mouse on top  1/2 of the 'Delete Char' button it would be highlighting the 'change world tier button instead'
Example screenshot the 'change world tier' Clickable ...]]></description>
<content:encoded><![CDATA[<div class="CTDiscussions">
Yes the mouse click is off from the pointer by (x,y) amount x and y being the about the border size it got rid of.<br/>
<br/>
Like if I had my mouse on top  1/2 of the 'Delete Char' button it would be highlighting the 'change world tier button instead'<br/>
<br/>
Example screenshot the 'change world tier' Clickable area would be about the blue box I added to the screenshot from the tip of the mouse cursor. without the function it stays within its normal box.
</div>
]]></content:encoded>
</item>
<item>
<title>RE: Help with borderless fullscreen function and mouse offset.</title>
<link>https://www.displayfusion.com/Discussions/View/help-with-borderless-fullscreen-function-and-mouse-offset/?ID=198b026a-7e82-4055-a86a-49c84b6872e5#2</link>
<pubDate>Mon, 31 Jul 2023 14:46:28 GMT</pubDate>
<dc:creator>Binary Fortress Software</dc:creator>
<guid isPermaLink="false">https://www.displayfusion.com/Discussions/View/help-with-borderless-fullscreen-function-and-mouse-offset/?ID=198b026a-7e82-4055-a86a-49c84b6872e5#2</guid>
<category>DisplayFusion</category>
<description><![CDATA[Is it your mouse clicks that are offset from the actual pointer?]]></description>
<content:encoded><![CDATA[<div class="CTDiscussions">
Is it your mouse clicks that are offset from the actual pointer?
</div>
]]></content:encoded>
</item>
<item>
<title>Help with borderless fullscreen function and mouse offset.</title>
<link>https://www.displayfusion.com/Discussions/View/help-with-borderless-fullscreen-function-and-mouse-offset/?ID=198b026a-7e82-4055-a86a-49c84b6872e5</link>
<pubDate>Sat, 29 Jul 2023 00:37:48 GMT</pubDate>
<dc:creator>Binary Fortress Software</dc:creator>
<guid isPermaLink="false">https://www.displayfusion.com/Discussions/View/help-with-borderless-fullscreen-function-and-mouse-offset/?ID=198b026a-7e82-4055-a86a-49c84b6872e5</guid>
<category>DisplayFusion</category>
<description><![CDATA[Hello I found this borderless fullscreen macro which does seem to work with diablo 4, but when I use it my mouse if offset in the y-axis by the size of the windowed mode bar a the top I believe. the x axis is fine cause there is almost no bar offset there but it might be off by a few pixels. Is t...]]></description>
<content:encoded><![CDATA[<div class="CTDiscussions">
Hello I found this borderless fullscreen macro which does seem to work with diablo 4, but when I use it my mouse if offset in the y-axis by the size of the windowed mode bar a the top I believe. the x axis is fine cause there is almost no bar offset there but it might be off by a few pixels. Is there a way to fix this in the function?<br/>
<br/>
<div class="col-md-12 BoxWrap"><div class="Box table-responsive"><a name="code" style="width:0; height:0;"></a><h2 class="TableTitle" style="border:0"><div class="TableTitleText">Code</div><div class="TitleButtons"><div class="TableTitleButton"><a href="#" onclick="return false;" data-clipboard-target="#code019efe246ba270b59634a46f45cba172" class="ClipboardCopyControl"><img src="https://www.displayfusion.com/MediaCommon/SVGs/FontAwesome/clone.blue.svg" style="box-sizing:border-box;position:relative;overflow:hidden;width:auto;max-width:16px;height:16px;" /><span class="Text">Copy</span></a></div><div class="TableTitleButton"><a href="#" onclick="bfs.util.codeEditorSelectAll('code019efe246ba270b59634a46f45cba172Js'); return false;"><img src="https://www.displayfusion.com/MediaCommon/SVGs/FontAwesome/square-check.blue.svg" style="box-sizing:border-box;position:relative;overflow:hidden;width:auto;max-width:16px;height:16px;" /><span class="Text">Select All</span></a></div></div></h2><div class="TableTitleContent table-responsive"><div class="AceEditorWrapper" style="border-top:solid 1px var(--color-default-border);padding:0"><pre id="code019efe246ba270b59634a46f45cba172Js" contenteditable="true" spellcheck="true" class="skiptranslate" style="width:100%; min-height:75px;">using System;
using System.Drawing;

// The 'windowHandle' parameter will contain the window handle for the:
//   - Active window when run by hotkey
//   - Window Location target when run by a Window Location rule
//   - TitleBar Button owner when run by a TitleBar Button
//   - Jump List owner when run from a Taskbar Jump List
//   - Currently focused window if none of these match
public static class DisplayFusionFunction
{
    public static void Run(IntPtr windowHandle)
    {
        //get the window styles
        BFS.WindowEnum.WindowStyle style = BFS.Window.GetWindowStyle(windowHandle);
        
        //if the window has any borders and titles, make it full screen
        if(BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_CAPTION, windowHandle) ||
            BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_SYSMENU, windowHandle) ||
            BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_THICKFRAME__SIZEBOX, windowHandle) ||
            BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_MINIMIZEBOX, windowHandle) ||
            BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_MAXIMIZEBOX, windowHandle))
        {
            //save the size and position of the window
            SaveWindowSize(windowHandle);
            
            //make sure to remove the styles. just toggling these settings may turn on something we dont want
            style &= ~BFS.WindowEnum.WindowStyle.WS_CAPTION;
            style &= ~BFS.WindowEnum.WindowStyle.WS_SYSMENU;
            style &= ~BFS.WindowEnum.WindowStyle.WS_THICKFRAME__SIZEBOX;
            style &= ~BFS.WindowEnum.WindowStyle.WS_MINIMIZEBOX;
            
            //add Maximize Window in case it doesn't exist (needs to be done due to bug with DisplayFusion)
            style |= BFS.WindowEnum.WindowStyle.WS_MAXIMIZEBOX;
            
            //set the window style
            BFS.Window.SetWindowStyle(style, windowHandle);
            
        
            //get the bounds of the monitor that the window is in
            Rectangle bounds = BFS.Monitor.GetMonitorBoundsByWindow(windowHandle);
            
            //size and position the window to be fullscreen within the monitor
            BFS.Window.SetSizeAndLocation(windowHandle, 0, 0, 3440, 1440);
            
            //remove Maximize Window
            style &= ~BFS.WindowEnum.WindowStyle.WS_MAXIMIZEBOX;
            BFS.Window.SetWindowStyle(style, windowHandle);
        }
        else
        {
            //if we got here, then the window must already be fullscreen.
            //add non-fullscreen styles back to the window
            style |= BFS.WindowEnum.WindowStyle.WS_CAPTION;
            style |= BFS.WindowEnum.WindowStyle.WS_SYSMENU;
            style |= BFS.WindowEnum.WindowStyle.WS_THICKFRAME__SIZEBOX;
            style |= BFS.WindowEnum.WindowStyle.WS_MINIMIZEBOX;
            style |= BFS.WindowEnum.WindowStyle.WS_MAXIMIZEBOX;
            
            //try and load saved window size and position
            bool isMaximized;
            Rectangle bounds = GetSavedWindowSize(windowHandle, out isMaximized);
            
            //set the window style
            BFS.Window.SetWindowStyle(style, windowHandle);
            
            //if we couldnt load the size, exit the script
            if(bounds.Equals(Rectangle.Empty))
                return;
                
            //if the window was maximized, maximize it, otherwise set the window size and location with the values we loaded
            if(isMaximized)
                BFS.Window.Maximize(windowHandle);
            else
                BFS.Window.SetSizeAndLocation(windowHandle, bounds.X, bounds.Y, bounds.Width, bounds.Height);
        }
    }
    
    //this is a function that will save the window size and position in window properties
    private static void SaveWindowSize(IntPtr windowHandle)
    {
        Rectangle bounds = BFS.Window.GetBounds(windowHandle);
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_X", new IntPtr(bounds.X));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_Y", new IntPtr(bounds.Y));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_Width", new IntPtr(bounds.Width));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_Height", new IntPtr(bounds.Height));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_IsMaximized", new IntPtr(BFS.Window.IsMaximized(windowHandle) ? 1 : 0));
    }
    
    private static Rectangle GetSavedWindowSize(IntPtr windowHandle, out bool isMaximized)
    {
        Rectangle bounds = new Rectangle();
        bounds.X = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_X").ToInt32();
        bounds.Y = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_Y").ToInt32();
        bounds.Width = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_Width").ToInt32();
        bounds.Height = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_Height").ToInt32();
        isMaximized = (BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_IsMaximized").ToInt32() == 1);
        return bounds;
    }
}</pre><textarea id="code019efe246ba270b59634a46f45cba172" name="code019efe246ba270b59634a46f45cba172" style="position:absolute; top:0; left:-999999px; width:1px; height:1px;"></textarea></div>
</div></div></div><br/>
<br/>
This one works on WoW but not diablo 4. But the mouse doesnt have the offset issue.<br/>
<div class="col-md-12 BoxWrap"><div class="Box table-responsive"><a name="code" style="width:0; height:0;"></a><h2 class="TableTitle" style="border:0"><div class="TableTitleText">Code</div><div class="TitleButtons"><div class="TableTitleButton"><a href="#" onclick="return false;" data-clipboard-target="#code019efe246ba5718db9f06a4c48b7a0b9" class="ClipboardCopyControl"><img src="https://www.displayfusion.com/MediaCommon/SVGs/FontAwesome/clone.blue.svg" style="box-sizing:border-box;position:relative;overflow:hidden;width:auto;max-width:16px;height:16px;" /><span class="Text">Copy</span></a></div><div class="TableTitleButton"><a href="#" onclick="bfs.util.codeEditorSelectAll('code019efe246ba5718db9f06a4c48b7a0b9Js'); return false;"><img src="https://www.displayfusion.com/MediaCommon/SVGs/FontAwesome/square-check.blue.svg" style="box-sizing:border-box;position:relative;overflow:hidden;width:auto;max-width:16px;height:16px;" /><span class="Text">Select All</span></a></div></div></h2><div class="TableTitleContent table-responsive"><div class="AceEditorWrapper" style="border-top:solid 1px var(--color-default-border);padding:0"><pre id="code019efe246ba5718db9f06a4c48b7a0b9Js" contenteditable="true" spellcheck="true" class="skiptranslate" style="width:100%; min-height:75px;">using System;
using System.Drawing;

// The 'windowHandle' parameter will contain the window handle for the:
//   - Active window when run by hotkey
//   - Window Location target when run by a Window Location rule
//   - TitleBar Button owner when run by a TitleBar Button
//   - Jump List owner when run from a Taskbar Jump List
//   - Currently focused window if none of these match
public static class DisplayFusionFunction
{
    public static void Run(IntPtr windowHandle)
    {
        //Hide Taskbar
        //BFS.Taskbar.SetWindowsTaskbarAutoHide(!BFS.Taskbar.IsWindowsTaskbarAutoHideEnabled());
        
        //get the window styles
        BFS.WindowEnum.WindowStyle style = BFS.Window.GetWindowStyle(windowHandle);
        
        //if the window has any borders and titles, make it full screen
        if(BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_CAPTION, windowHandle) ||
            BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_SYSMENU, windowHandle) ||
            BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_THICKFRAME__SIZEBOX, windowHandle) ||
            BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_MINIMIZEBOX, windowHandle))
             //|| BFS.Window.HasWindowStyle(BFS.WindowEnum.WindowStyle.WS_MAXIMIZEBOX, windowHandle))
        {
            //save the size and position of the window
            SaveWindowSize(windowHandle);
            
            //make sure to remove the styles. just toggling these settings may turn on something we dont want
            style &= ~BFS.WindowEnum.WindowStyle.WS_CAPTION;
            style &= ~BFS.WindowEnum.WindowStyle.WS_SYSMENU;
            style &= ~BFS.WindowEnum.WindowStyle.WS_THICKFRAME__SIZEBOX;
            style &= ~BFS.WindowEnum.WindowStyle.WS_MINIMIZEBOX;
            //style &= ~BFS.WindowEnum.WindowStyle.WS_MAXIMIZEBOX;
        
            //get the bounds of the monitor that the window is in
            Rectangle bounds = BFS.Monitor.GetMonitorBoundsByWindow(windowHandle);
            
            //set the window style
            BFS.Window.SetWindowStyle(style, windowHandle);
                        
            //size and position the window to be fullscreen within the monitor
            BFS.Window.SetSizeAndLocation(windowHandle, bounds.X, bounds.Y, bounds.Width, bounds.Height);
        }
        else
        {
            //if we got here, then the window must already be fullscreen.
            //add non-fullscreen styles back to the window
            style |= BFS.WindowEnum.WindowStyle.WS_CAPTION;
            style |= BFS.WindowEnum.WindowStyle.WS_SYSMENU;
            style |= BFS.WindowEnum.WindowStyle.WS_THICKFRAME__SIZEBOX;
            style |= BFS.WindowEnum.WindowStyle.WS_MINIMIZEBOX;
            style |= BFS.WindowEnum.WindowStyle.WS_MAXIMIZEBOX;
            
            //try and load saved window size and position
            bool isMaximized;
            Rectangle bounds = GetSavedWindowSize(windowHandle, out isMaximized);
            
            //set the window style
            BFS.Window.SetWindowStyle(style, windowHandle);
            
            //if we couldnt load the size, exit the script
            if(bounds.Equals(Rectangle.Empty))
                return;
                
            //if the window was maximized, maximize it, otherwise set the window size and location with the values we loaded
            if(isMaximized)
                BFS.Window.Maximize(windowHandle);
            else
                BFS.Window.SetSizeAndLocation(windowHandle, bounds.X, bounds.Y, bounds.Width, bounds.Height);
        }
    }
    
    //this is a function that will save the window size and position in window properties
    private static void SaveWindowSize(IntPtr windowHandle)
    {
        Rectangle bounds = BFS.Window.GetBounds(windowHandle);
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_X", new IntPtr(bounds.X));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_Y", new IntPtr(bounds.Y));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_Width", new IntPtr(bounds.Width));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_Height", new IntPtr(bounds.Height));
        BFS.Window.SetWindowProperty(windowHandle, "ToggleFullscreen_IsMaximized", new IntPtr(BFS.Window.IsMaximized(windowHandle) ? 1 : 0));
    }
    
    private static Rectangle GetSavedWindowSize(IntPtr windowHandle, out bool isMaximized)
    {
        Rectangle bounds = new Rectangle();
        bounds.X = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_X").ToInt32();
        bounds.Y = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_Y").ToInt32();
        bounds.Width = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_Width").ToInt32();
        bounds.Height = BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_Height").ToInt32();
        isMaximized = (BFS.Window.GetWindowProperty(windowHandle, "ToggleFullscreen_IsMaximized").ToInt32() == 1);
        return bounds;
    }
}</pre><textarea id="code019efe246ba5718db9f06a4c48b7a0b9" name="code019efe246ba5718db9f06a4c48b7a0b9" style="position:absolute; top:0; left:-999999px; width:1px; height:1px;"></textarea></div>
</div></div></div>
</div>
]]></content:encoded>
</item>
</channel>
</rss>