Bug 515839 - Cockpit and Dual screen window layouts not compatible with Krita 6
Summary: Cockpit and Dual screen window layouts not compatible with Krita 6
Status: CONFIRMED
Alias: None
Product: krita
Classification: Applications
Component: Usability (other bugs)
Version First Reported In: 6.0.0-beta1
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2026-02-10 22:14 UTC by vurentjie
Modified: 2026-02-11 15:58 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description vurentjie 2026-02-10 22:14:30 UTC
SUMMARY
The Cockpit and Dual screen window layouts are not compatible with Krita 6. I don't actually use these but I happened to try them today and noticed the issue.

STEPS TO REPRODUCE
1.  Open Krita 6
2.  Open or create a new document
3.  From the workspace switcher, select either one of the window layouts: "Cockpit (laptop mode)" or "Dual screen editing"

OBSERVED RESULT
Krita crashes with a seg fault. I think this might be an issue with the .kwl files compatibility. 

EXPECTED RESULT
Doesn't crash.

SOFTWARE/OS VERSIONS
Version: 6.0.0-beta1 (git db05298)
Hidpi: true
Qt: 6.8.0
OS Information
  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 6.14.0-37-generic
  Pretty Productname: Ubuntu 24.04.3 LTS
  Product Type: ubuntu
  Product Version: 24.04
  Desktop: ubuntu:GNOME
  Appimage build: Yes


ADDITIONAL INFORMATION
Comment 1 Freya Lupen 2026-02-11 15:58:24 UTC
Confirmed, selecting a window layout crashes on Qt6 but not Qt5.

It crashes here
> 0   libkritaresourcewidgets.21.0.0.dylib	       0x103dbc2e0 KisResourceItemChooser::activate(QModelIndex const&) + 336 (KisResourceItemChooser.cpp:515)

When the window layout is activated, the updates are blocked on the window layout chooser, it emits the resourceSelected signal, a bunch of other stuff happens,  and then eventually it unblocks the updates.
However, by the time it gets back to `d->updatesBlocked = false;`, `d` is null for some reason, so it crashes instead.