1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-22 19:35:13 +00:00
QB64-PE/internal/c
Matthew Kilgore 3f709ba65b Add logic to correctly discover our process's Window
Currently we have two different ways of determining what Window handle
to tie our dialogs too - we either use GetForegroundWindow(), or create
a completely new and hidden handle. The associated window determines
what process names shows up on notifications, and also which window
can't be interacted with while a dialog is open.

Both of those approaches aren't really good. In the case of
GetForegroundWindow(), it just returns whatever window the user has in
focus, which might be a completely different process. With the hidden
window, it means the dialog and notification aren't really tied to the
QB64-PE program, so you can still interact with the window even when a
dialog is open, and the notification doesn't show an exectuable name.

To solve this we're now using EnumWindows() to enumerate over all the
Windows on the system and find one associated with our ProcessId. We
then check if it's the top-level window and return it if it is.

If that process fails to find a window (such as if this is a
console-only program, or $SCREENHIDE is used) then we check if
GetConsoleWindow() gives us a handle and use that.

If neither approach works, then we fall back to creating a hidden window
so that the dialogs can still work.
2022-11-12 19:16:43 -05:00
..
libqb Update test license files 2022-10-25 07:28:35 +05:30
parts Add logic to correctly discover our process's Window 2022-11-12 19:16:43 -05:00
.gitignore setup_win.bat: create internal/c/c_compiler 2022-04-28 17:15:35 -04:00
common.h Fix usage of mem_block type in _MEMSOUND 2022-09-04 05:16:41 +05:30
libqb.cpp Use signed type for xdelta and ydelta arrays 2022-11-08 01:32:05 -05:00
libqb.h Fix common dialogs build.mk bug 2022-10-23 22:44:39 +05:30
libqb.mm (Automated push) Update internal/source/* from qb64.bas 2015-08-02 05:12:44 -07:00
msbin.c Format other various source files 2022-05-06 13:20:30 -04:00
mtri1.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri1s.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri1t.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri1ts.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri2.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri2s.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri2t.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri2ts.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri3.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri3s.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri3t.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri3ts.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri4.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri4s.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri4t.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
mtri4ts.cpp Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
myip.cpp Step 10: Update remaining stuff 2022-08-12 02:54:12 +02:00
os.h Add initial MIDI language support 2022-09-04 23:35:14 -04:00
purge_all_precompiled_content.bat Change purge scripts to use make clean 2022-05-19 09:17:13 -04:00
purge_all_precompiled_content.command Change purge scripts to use make clean 2022-05-19 09:17:13 -04:00
purge_all_precompiled_content.sh Change purge scripts to use make clean 2022-05-19 09:17:13 -04:00
qbx.cpp Common dialogs support 2022-10-23 12:57:02 +05:30
time64.c Format other various source files 2022-05-06 13:20:30 -04:00
time64.h Format other various source files 2022-05-06 13:20:30 -04:00