NEEDS WINDOWS TESTING - #21829 darktable steals focus when export progress messages update - #21843
Draft
Arecsu wants to merge 2 commits into
Draft
NEEDS WINDOWS TESTING - #21829 darktable steals focus when export progress messages update#21843Arecsu wants to merge 2 commits into
Arecsu wants to merge 2 commits into
Conversation
…ring export Temporary logging (DT_DEBUG_ALWAYS) to correlate the Windows focus-steal during batch export with progress/notify/grab events. Remove once a Windows tester reproduces it.
…diagnosis Add EXPORT STARTED/ENDED markers in the export job, and main-window focus-IN/focus-OUT events, so a Windows tester can paste the terminal output and we can correlate each focus steal with progress messages.
Contributor
Author
|
@lintujuh would you be able to compile this branch and collect logs? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
NEEDS WINDOWS TESTING
This PR is a diagnosis build for #21829 — on Windows, darktable steals the input focus (and can switch the active virtual desktop) each time an export progress message updates while you're working in another window.
Please help reproduce it — a macOS/Linux developer can't trigger this. Any Windows tester is welcome to run the steps below and paste the terminal output.
Why this build
Static analysis of the export path found no explicit focus-grabbing call (
gtk_window_present/grab_focus/SetForegroundWindow) — GTK3 on Windows can only steal focus viagdk_window_focus(fromgtk_window_present/grab_focus) and transient-window restore, none of which fire during a progress update. The only WM interaction isdt_ui_notify_user()→gtk_window_set_urgency_hint(TRUE)→FlashWindowEx(FLASHW_ALL|FLASHW_TIMER)at the end of a job.So we need real data. This branch logs the whole export lifecycle plus window focus changes. Every line already has a timestamp (seconds since darktable started) and is prefixed
[21829]:How to test (Windows)
That's it — no need to time anything manually. The
focus-INlines mark exactly when darktable grabs focus, and their timestamps let us match them to the export/progress/notify lines.What we're checking
_lib_backgroundjobs_message_updated, or withdt_ui_notify_user(once at job end)?dt_gui_cursor_set_busy/gtk_grab_addfire during export at all?Not for merge — temporary diagnostics, will be removed once the cause is pinned down.