• src/conio/win32gdi.c

    From Deuc¿@VERT to Git commit to main/sbbs/master on Sun Nov 17 11:08:47 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/22b0bdaa8df1e5876322ff6d
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    When SyncTERM is deactivated and it is in fullscreen mode, minimize.

    This appears to be the best we can do when Windows+M (minimize all)
    is pressed. We don't seem to be notified that we should minimize,
    only that a different application is being activated.

    This also makes Alt-TAB behave a bit more like expected.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Wed Jan 1 22:01:29 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/8af79c027793dc21498c2d54
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Fix an MSVC warning

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sun Jan 12 08:48:24 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/cf67458be4a36d4dd3f53aed
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Fix typo

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Nov 27 08:10:31 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/ca1ac24888f7a6ffece13c7d
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Possibly fix ticket 212

    And extra byte was being allocated to hold the UTF-16 string on
    Windows. Assuming this is to hold a terminating NUL, that needs
    to be two bytes since a NUL is two bytes in UTF-16.

    May fix ticket 212.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Nov 27 08:11:39 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/273d0081e2c95b51f9d38645
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Revert "Possibly fix ticket 212"

    This reverts commit ca1ac24888f7a6ffece13c7de15a54e05e4b9a99.

    The size + 1 was being multiplied by sizeof(*LPWSTR), so that
    wasn't the issue.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Dec 5 22:41:13 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/16458f3b0ba13c98bbd18fa2
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Add a dash of crazy to placate MSDN.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Dec 5 23:53:18 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/151af2c066100dff02f06712
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Almost, just turns out that CreatePipe() is useless.

    So, ReadFile() will work the same if you don't specify an OVERLAPPED
    structure regardless of a handle being overlapped or not. However, CreatePipe() doesn't create it overlapped, so we need to create our
    own CreatePipe() thing that does open the read end for overlapped.

    Also, fix some bugs in the overlapped bits and now it appears to work.

    Enjoy the lowered CPU utilization.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Jan 3 11:11:49 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/30e18fb3dc21780a29ade29d
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Only adjust the bottom/left corner of the sizing rectangle

    Adjusting anything else can lead to weirdness due to the unreliable
    nature of window decoration sizes.

    Should bug fix ticket 215

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Mar 19 14:38:35 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e3a6c390aae2eeb7a6ce5c2f
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Sync modifier key state on focus regain in Win32 GDI (ticket 226)

    After Ctrl+clicking a URL, the window loses focus before the Ctrl
    key-up event arrives, leaving the internal modifier state stuck.
    Poll GetKeyState() on WM_ACTIVATEAPP to reset mods to match reality.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Mar 21 20:46:07 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/95dbfeb369f2c4de0f7561e3
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Use GetAsyncKeyState for modifier sync on focus regain (ticket 226)

    GetKeyState returns message-queue-synchronized state, which is stale
    when the key-up event was delivered to another window. Switch to GetAsyncKeyState which reads the actual hardware key state, so Ctrl
    and Shift are correctly cleared when the user released them while
    the browser (or other app) had focus.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¨@VERT to Git commit to main/sbbs/master on Sat Mar 21 23:25:27 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/cb106dbe65584cdf688429e1
    Modified Files:
    src/conio/win32gdi.c
    Log Message:
    Fix stuck modifier keys by handling WM_KILLFOCUS/WM_SETFOCUS in gdi_WndProc (ticket 226)

    WM_KILLFOCUS and WM_SETFOCUS are sent (synchronous), not posted, so
    they go directly to gdi_WndProc bypassing the GetMessage/magic_message
    path entirely. The previous fix in magic_message never ran.

    Move mods to file scope so gdi_WndProc can access it. Clear mods on WM_KILLFOCUS, and re-sync from GetAsyncKeyState on WM_SETFOCUS to
    catch modifiers held across the focus boundary. Remove the
    WM_ACTIVATEAPP handler and message-loop sync machinery which were
    unnecessary Ä debug logging confirmed the thread keyboard state (GetKeyboardState) correctly showed Ctrl as released; only the mods
    variable was stale, causing magic_message to consume key events as
    Ctrl+key combos via the keyval table.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net