Feature #3879
openA few suggestions to make AdiIRC more usable without a form border
0%
Description
With 'Form Border' set to 'None', (options > windows > general) you lose the ability to resize your AdiIRC window and can only drag the window around by holding Alt while dragging.
- I would like an option to have the window still be resizeable when hovering your mouse over a corner to drag resize.
- I would also like to be able to drag the window around without the need to hold Alt. My suggestion would be to have the menubar act as a surface to grab in order to drag the window.
- Since you also lose the minimize, maximize and close buttons with disabling the form border, I would like an option to have these buttons on the menubar. The option would just replace the buttons currently present on the menubar.
Alternatively to all of this, adding the option for a customizeable form border would solve all these issues in a more elegant way.
Updated by Per Amundsen over 6 years ago
How often are you resizing/moving AdiIRC?
You could make a few custom shortcuts to toggle the borders on/off, also you can also make one that triggers /showadiirc which have parameters for minimize/restore/maximize, you could even make them global shortcuts usable in any program through /globalkeys.
The option to hide borders was a fan service to allow AdiIRC to be more minimalistic on smaller screens, it was not meant to be a replacement for proper window borders.
Updated by Tib Qu over 6 years ago
You could make a few custom shortcuts to toggle the borders on/off, also you can also make one that triggers /showadiirc which have parameters for minimize/restore/maximize, you could even make them global shortcuts usable in any program through /globalkeys.
That might work but bring along other issues. For example, when i manually set the Form Border to None in the options and hit Save, nothing happens. In order to actually remove the border I need to either restart AdiIRC or actually set the Form Border back to sizeable or something else and hit Save. (I can also reproduce this bug on a clean config.)
Another issue, after removing the window border without restarting AdiIRC, switching between maximized channel windows will now flash up the original (not maximized) borders of these windows. This visual glitch/bug is solved after restarting AdiIRC.
The option to hide borders was a fan service to allow AdiIRC to be more minimalistic on smaller screens, it was not meant to be a replacement for proper window borders.
I'm all for proper window borders, I just don't like to use my regular Windows 10 window borders as it doesn't fit my customized AdiIRC theme. So a proper customizable window border would be great.
Updated by Per Amundsen over 6 years ago
I will investigate changing border to None/Sizeable during runtime.
The glitch you talk about, is a bug inside the MDI (Multiple Document Interface) controller in .NET, it's not solvable to my knowledge, and it does limit my suggestion to toggle window borders at runtime if changing window borders causes this issue for you.
The window borders are drawn by windows, I just tell windows which one to use, they can't be customized.
A new suggestion, you could add toolbar buttons yourself (the restore/maximize/minimize buttons are also just buttons) with the /toolbar command, you can set the command for the buttons to use /showadiirc, in the future it will also be possible to remove/change the current buttons, they are excluded from the /toolbar command atm.
Regarding moving the main window, I think using ALT + mouse move is pretty standard for border-less windows, I don't like the Menubar idea but I will think about alternatives.
Regarding resizing the main window, I will see if it's feasible to detect mouse movement at the edges of the main window when ALT is pressed.
Updated by Tib Qu over 6 years ago
Regarding moving the main window, I think using ALT + mouse move is pretty standard for border-less windows, I don't like the Menubar idea but I will think about alternatives.
I can see why you wouldn't want to mess with the existing menubar. Perhaps a better option would be to add an entirely new bar called the 'titlebar' or something like that. This bar would be like a regular Windows border/titlebar on top with the minimize/maximize/close buttons and could be grabbed with the mouse to drag the whole window around. On the left it would just display the window title or have customizable options to display menus and buttons.
I'd also like a more modern approach like some programs just have their icon on the left corner of the titlebar and clicking on it opens a dropdown with the menupoints, rather than having all the menu points visible at all times like they are in the menubar right now.
Just some ideas there. I understand if this isn't a priority or even a consideration at all. I'm already quite happy with how customizable the client is. Thank you for even looking into all of this! =)
Regarding resizing the main window, I will see if it's feasible to detect mouse movement at the edges of the main window when ALT is pressed.
That would be nice!
I suppose if you manage to do that, it would be easy to also implement that functionality without holding the Alt key as well but you probably don't want to overload the options screen with yet another niche setting. So perhaps it could just be something I could edit in the config.ini ;D
Updated by Per Amundsen over 6 years ago
Updated by Tib Qu over 6 years ago
Per Amundsen wrote:
I misspoke earlier and mentioned toolbar and /toolbar, what I meant was Menubar and /menubar, you can completely customise it, removing the default items (except the restore/minimize/maximize icons, but that will be possible too soon).
Oh ok, I understand now. I'll see if I can replace the current menus with a single menu item that lists the current menus as a dropdown.
That along with the upcoming customizable buttons on the right will only leave me wanting the bar to act as a surface to grab for dragging and then it's perfect ;D
Updated by osc rom almost 5 years ago
You might be able to use WindowChrome class (https://docs.microsoft.com/en-us/dotnet/api/system.windows.shell.windowchrome?view=netframework-4.8) to use WindowStyle.None without having to implement resize functionality.
Updated by Per Amundsen almost 5 years ago
Can't use that.
I have tried various ways to make a reliable resize, but the Statubar at the bottom and the Menubar/Toolbar/Switchbar at the top makes it incredible hard since they hijack mouse events, I don't have a solution atm.
A workaround could be using the /showadiirc command with the [x y w h] parameters, not very elegant I'll admit.