Page 1 of 1

XYplorer temporarily prevents control

Posted: 04 Oct 2026 09:32
by Native2904
Hi Don,

I've noticed a small issue that has been occurring for some time now.
When I launch a process (e.g. a *.bat) from a folder, the window that pops up sometimes ends up in the background. I think this might be related to the Glow changes. However, if you then try to delete another file in that folder or perform a similar action, XYplorer becomes unresponsive and simply does nothing.

I don't know whether this information is relevant to you or whether you're already aware of it.
xy.gif

Re: XYplorer temporarily prevents control

Posted: 04 Oct 2026 11:36
by admin
Need more info. Which process, which window.

Re: XYplorer temporarily prevents control

Posted: 04 Oct 2026 16:58
by Native2904
If I double-click a .bat file in a subfolder of my Downloads folder, Windows displays a confirmation dialog with the buttons “Yes” and “No”. However, when I click “Yes” with the mouse, the dialog loses foreground focus and is moved behind the other windows. This does not happen when I use the keyboard.

If I understood the discussion correctly, this may be related to twinBASIC.

Occasionally, however, if the Windows confirmation dialog has lost foreground focus but is still open, I can no longer access the files in the original folder (the Downloads subfolder). The files appear to be inaccessible until the background dialog is closed....if my observation is correct.

Re: XYplorer temporarily prevents control

Posted: 04 Oct 2026 17:03
by admin
Why do you make it a mystery? Show the BAT file, show the dialog.

Re: XYplorer temporarily prevents control

Posted: 04 Oct 2026 17:11
by Native2904

Code: Select all

@echo off
REM ============================================================
REM StreamList - DEBUG build (Logging per StreamList.ini [Debug] Log=1)
REM Angelehnt an SnipClips build_debug.bat (gleiche Toolchain).
REM Icon in eigener .rc (ohne #include), wie bei SnipClip.
REM ============================================================

set MINGW_ROOT=C:\mingw64
set MINGW32_ROOT=C:\mingw64\mingw32
set SRC_DIR=%~dp0src
set OUT_DIR=%~dp0build\debug
set OUT_NAME=StreamList

if not exist "%OUT_DIR%" mkdir "%OUT_DIR%"

echo.
echo ============================================================
echo  Checking prerequisites
echo ============================================================

if not exist "%SRC_DIR%\fsplugin.h" goto :missing_header
if not exist "%MINGW_ROOT%\bin\x86_64-w64-mingw32-g++.exe" goto :missing_64bit

set HAVE_32BIT=0
if exist "%MINGW32_ROOT%\bin\i686-w64-mingw32-g++.exe" set HAVE_32BIT=1

echo   OK - 64-bit compiler found.
if %HAVE_32BIT%==1 echo   OK - 32-bit compiler found.
if %HAVE_32BIT%==0 echo   NOTE - 32-bit compiler not found, skipping 32-bit build.
echo.
goto :build64

:missing_header
echo [ERROR] fsplugin.h not found in %SRC_DIR%
goto :fail

:missing_64bit
echo [ERROR] 64-bit compiler not found at:
echo         %MINGW_ROOT%\bin\x86_64-w64-mingw32-g++.exe
goto :fail

:build64
echo ============================================================
echo  Building 64-bit (%OUT_NAME%.wfx64)
echo ============================================================
"%MINGW_ROOT%\bin\windres.exe" --target=pe-x86-64 -I "%SRC_DIR%" "%SRC_DIR%\streamlist_icon.rc" -O coff -o "%OUT_DIR%\streamlist_icon_res64.o"
if errorlevel 1 goto :fail64
REM Everything SDK 3 (C-Code von voidtools) als statische Bibliothek -
REM --exclude-libs verhindert, dass seine Funktionen mit exportiert werden.
REM Hinweise zur MinGW-Anpassung: src\everything3\README_StreamList.txt
"%MINGW_ROOT%\bin\x86_64-w64-mingw32-gcc.exe" -c -O2 -DEVERYTHING3_LIB -DNDEBUG -Wno-incompatible-pointer-types "%SRC_DIR%\everything3\src\Everything3.c" -o "%OUT_DIR%\everything3_64.o"
if errorlevel 1 goto :fail64
if exist "%OUT_DIR%\libeverything3_64.a" del "%OUT_DIR%\libeverything3_64.a"
"%MINGW_ROOT%\bin\ar.exe" rcs "%OUT_DIR%\libeverything3_64.a" "%OUT_DIR%\everything3_64.o"
if errorlevel 1 goto :fail64
"%MINGW_ROOT%\bin\x86_64-w64-mingw32-g++.exe" -std=c++17 -g -O0 -D_DEBUG -DSTREAMLIST_DEBUG -Wall -shared -static -static-libgcc -static-libstdc++ -o "%OUT_DIR%\%OUT_NAME%.wfx64" "%SRC_DIR%\streamlist.cpp" "%OUT_DIR%\streamlist_icon_res64.o" -L"%OUT_DIR%" -leverything3_64 -lshell32 -Wl,--exclude-libs,ALL
if errorlevel 1 goto :fail64
echo   OK - %OUT_NAME%.wfx64 built.
echo.
if %HAVE_32BIT%==1 goto :build32
goto :success

:fail64
echo [ERROR] 64-bit build failed. See compiler output above.
goto :fail

REM -fno-stack-protector: vermeidet libssp-0.dll-Abhaengigkeit (siehe SnipClip)
REM -Wl,--kill-at: unverzierte Exportnamen (FsInitW statt _FsInitW@16)
:build32
echo ============================================================
echo  Building 32-bit (%OUT_NAME%.wfx)
echo ============================================================
"%MINGW_ROOT%\bin\windres.exe" --target=pe-i386 -I "%SRC_DIR%" "%SRC_DIR%\streamlist_icon.rc" -O coff -o "%OUT_DIR%\streamlist_icon_res32.o"
if errorlevel 1 goto :fail32
"%MINGW32_ROOT%\bin\i686-w64-mingw32-gcc.exe" -c -O2 -DEVERYTHING3_LIB -DNDEBUG -Wno-incompatible-pointer-types -fno-stack-protector "%SRC_DIR%\everything3\src\Everything3.c" -o "%OUT_DIR%\everything3_32.o"
if errorlevel 1 goto :fail32
if exist "%OUT_DIR%\libeverything3_32.a" del "%OUT_DIR%\libeverything3_32.a"
"%MINGW32_ROOT%\bin\ar.exe" rcs "%OUT_DIR%\libeverything3_32.a" "%OUT_DIR%\everything3_32.o"
if errorlevel 1 goto :fail32
"%MINGW32_ROOT%\bin\i686-w64-mingw32-g++.exe" -std=c++17 -g -O0 -D_DEBUG -DSTREAMLIST_DEBUG -Wall -fno-stack-protector -shared -static -static-libgcc -static-libstdc++ -Wl,--kill-at -o "%OUT_DIR%\%OUT_NAME%.wfx" "%SRC_DIR%\streamlist.cpp" "%OUT_DIR%\streamlist_icon_res32.o" -L"%OUT_DIR%" -leverything3_32 -lshell32 -Wl,--exclude-libs,ALL
if errorlevel 1 goto :fail32
echo   OK - %OUT_NAME%.wfx built.
echo.
goto :success

:fail32
echo [ERROR] 32-bit build failed. See compiler output above.
goto :fail

:success
set RELEASE_DIR=%~dp0debug
if exist "%RELEASE_DIR%" rmdir /s /q "%RELEASE_DIR%"
mkdir "%RELEASE_DIR%"
copy /y "%OUT_DIR%\%OUT_NAME%.wfx64" "%RELEASE_DIR%\" >nul
if %HAVE_32BIT%==1 copy /y "%OUT_DIR%\%OUT_NAME%.wfx" "%RELEASE_DIR%\" >nul
if exist "%~dp0%OUT_NAME%.ini" copy /y "%~dp0%OUT_NAME%.ini" "%RELEASE_DIR%\" >nul
if exist "%~dp0%OUT_NAME%.lng" copy /y "%~dp0%OUT_NAME%.lng" "%RELEASE_DIR%\" >nul
for %%F in ("%~dp0README*.txt" "%~dp0LIESMICH.txt") do if exist "%%~F" copy /y "%%~F" "%RELEASE_DIR%\" >nul
if exist "%~dp0pluginst.inf" copy /y "%~dp0pluginst.inf" "%RELEASE_DIR%\" >nul

echo.
echo ============================================================
echo  Build finished successfully.
echo  Debug folder: %RELEASE_DIR%
echo  Testplan: TESTPLAN.txt
echo ============================================================
goto :end

:fail
echo.
echo ============================================================
echo  BUILD FAILED - see messages above.
echo ============================================================
exit /b 1

:end
pause
This example is merely illustrative.

Re: XYplorer temporarily prevents control

Posted: 04 Oct 2026 17:14
by admin
OK, I cannot reproduce it here without installing stuff. Can you make a basic example that makes the issue reproducible?

Re: XYplorer temporarily prevents control

Posted: 04 Oct 2026 17:22
by Native2904
Of course I understand that, and I am honestly a little embarrassed, but I am not able to describe this particular case in a way that would allow you to draw any meaningful conclusions from it.

What I do know for certain, however, is that from time to time XYplorer stops responding to mouse clicks. It is not completely frozen, though — it only seems to affect certain tabs.

The next time it happens, I will record a video and post it here for you. Hopefully that will make it easier to understand what is happening.

Re: XYplorer temporarily prevents control

Posted: 04 Oct 2026 17:24
by admin
OK.

Generally, Windows is responsible for a meaningful Z-order of windows.

Re: XYplorer temporarily prevents control

Posted: 04 Oct 2026 17:40
by Native2904
Not mouse clicks but keyboard clicks – I’ll be back. Thank you!