Prevent Window from Becoming Visible or Open it Off-screen? - user-interface

I have a script in which I click a button that opens a new window. I'd like to do some stuff in that window, and then close it again, returning control to the original active window. Ideally, I want to do this without the user seeing the window pop open at all.
Right now, I have my script move the window offscreen immediately after I click the button to open it, but you can still see the window opening for a split-second before WinMove kicks in.
MouseClick, Left, %buttonX%, %buttonY%
WinWait, Pop Up Win Title,, 1
WinMove, 9000, 9000
I'm wondering if there's a way to pre-emptively make the window invisible before I open it, or to otherwise make it so the appearance of the window is not noticeable. I've also tried the code above without WinWait, but it didn't make a difference.
Is it possible?

Related

After FlashWindow, click the window and the taskbar remains highlight (orange)

When I click the application shortcut, if the program is already open, I will show the program and enable FlashWindow. (FlashWindow(true);)
After blinking once, the taskbar is highlighted.
Theoretically, clicking on the application window would unhighlight the taskbar.
But it doesn't.
There is no problem when the window is minimized.
But it doesn't work when the window is already displayed.
I tried to get all the window handles of the application based on the process id and activated them one by one, but that didn't work either.
For this step I printed the log and used GetForegroundWindow to confirm that the change did happen.
How to solve this problem?
Is there any other way to make the taskbar blink only once without keeping it highlighted?

Enable the disabled underlying window

Sometimes in the Windows OS, a program is able to open a new window which disables it's underlying window. Closing the newly opened window of course re-enables the first window. I want to enable the underlying window without closing the newly opened window with Autohotkey.
I made a gif which shows the situation perfectly:
https://imgur.com/a/EWt8OrF
I thought I might be able to pull this off with window styles and window extended styles, so here's what I tried:
^!e::
MouseGetPos,,, WindowUnderMouse
WinSet, Style, -0x8000000, ahk_id WindowUnderMouse
return
But it didn't work. I also did a lot of googling on this, but I didn't know what would be the proper keywords so I didn't find anything. Any idea how to accomplish this?
Some keywords for google:
How to make a modal window modeless
How to enable a disabled window
How to make a palette window
How to make a modal window a palette window
How to enable parent window
Child window disabling parent window
https://autohotkey.com/board/topic/49376-making-a-gui-dialog-modal/
https://autohotkey.com/docs/commands/Gui.htm

MacOS clicking in unactivated window causes it to move

I have a window in my mac app, and when I click on any control in it, the window moves. This only happens when the window is not activated (focused?). If the window is already the main window, it works fine.
What would cause this? I'm thinking I'm not returning some kind of 'handled' value so that the mouse event is getting passed back to the window's move routine, even though I am not over the move bar.
Thanks for any suggestions!

Activating a window while retaining Z-order

I need to activate a window that is possibly behind other windows, but the window should remain behind - it shouldn't be brought to front.
Is there a way to do that? I've tried SetWindowPos with various parameters, but no success so far.
Basically, I need to close a non-active window (by posting WM_SYSCOMMAND with SC_CLOSE), but that window may show a confirmation dialog before closing. If the dialog is shown, it needs to be brought to front, otherwise the window should stay behind.

Rgui - disable right click on plot window?

I've written a routine whereby a user is displayed an image (using grid.raster) and they click on it to define a region of interest (grid.locator).
I added in support for the user to right-click on the plot instead of left-click, which would undo their previously-clicked point.
This works by testing whether grid.locator() returns NULL (from the help file: "If the user did not click mouse button 1, the function (invisibly) returns NULL).
This works fine on Linux, but in Windows using Rgui, right-clicking the plot window brings up a context menu with 'Stop' and 'Continue' and continues waiting for you to click (i.e. the right click is not detected by grid.locator() since it's intercepted for the context menu first).
Is there some way to disable the right click context menu for the plot window in Rgui?
(The user is only going to use Rgui. For the moment I can tell them to use the middle click button to undo instead of right click and this works, but it is moot if they don't have a button with a scroll wheel/middle click button. Alternatively if there's some way I can listen for a keyboard event without having to load a UI package like gtk or tcltk I'm happy for that to happen too).

Resources