Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Confirm
Close Dialog

xcy7e's profile on WallpaperFusion.com
Hi there,

I'm wondering if there is a feature, that allows me to reduze the size of a window/application in fullscreen.

I am using the windows-taskbar at the top of the screen, and a rainmeter taskbar on the bottom. When "fullscreening" a window it is aligned below the windows-taskbar but overlaps the rainmeter "taskarea".

Would be very useful if I could make the windows going fullscreen until a specific pixel on the Y-Axis of the screen.
Do you understand what I mean? I'll attach an explaing screenshot. Maybe there is some workaround like a second DisplayFusion-Taskbar at the bottom, that is invisible or sth of a kind?

Screenshot explanation:
(1) is the state as is (default fullscreen window: top to bottom)
(2) is what I want it to be (having the window fullscreen but not to the very bottom for my "virtual taskbar" realized with the tool "rainmeter"

(The windows taskbar has been restyled but it's a default windows taskbar and behaves so)

EDIT:
Is there a way to apply the "Task"-Feature that can handle window appearance (size, position) dynamically for all applications on a specific monitor?

Cheers,
John
• Attachment: example.png [562,302 bytes]
example.png
example.png
Apr 22, 2017 (modified Apr 22, 2017)  • #1
Keith Lammers (BFS)'s profile on WallpaperFusion.com
There isn't currently a way to limit Triggers to a specific monitor without creating a Scripted Function, but that's an interesting idea. I've added it to our feature request list.

In the meantime, you can use monitor padding in the Monitor Configuration > Splits and Padding window to help here. Just set the bottom padding to whatever height your Rainmeter bar is. The full guide on Splits and Padding is here ("Monitor Padding" section is about half-way down the page): https://www.displayfusion.com/Discussions/View/working-with-monitor-splits/?ID=44152bec-fda4-42ef-a636-e40c7c4813fc
Apr 24, 2017  • #2
User Image
Jcee
205 discussion posts
If you adjust the desktopworkarea in rainmeter https://docs.rainmeter.net/manual/settings/rainmeter-section/

set your game(or whatever) to window(not window(fullscreen))
then maximize

you could probably use this 'borderless window' script to remove the border from a maximized window. (this could probably be automated too)

Code

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;
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, 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;
}
}
Apr 26, 2017  • #3
xcy7e's profile on WallpaperFusion.com
Thank you Keith! The screen-padding is exactly what I needed! Amazing!!
May 4, 2017  • #4
Subscribe to this discussion topic using RSS
Was this helpful?  Login to Vote(-)  Login to Vote(-)