Author Topic: The tabs close when you save a file.  (Read 2631 times)

Offline dthu

  • Multiple posting newcomer
  • *
  • Posts: 13
The tabs close when you save a file.
« on: August 09, 2026, 08:34:46 pm »
I had a project started with the source code located in its default position. I decided to move the code. In C::B, I removed all the files and then added them to their new location. I don't know if it's related, but since then, the program closes the tabs associated with the project files every time I save or compile. I realized that the .layout file is different from other projects, so I'm placing it here.

I've experienced this problem in both the stable version and r13923 on Linux.

Code
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Debug" />
</CodeBlocks_layout_file>
« Last Edit: August 09, 2026, 08:38:07 pm by dthu »

Offline Miguel Gimenez

  • Developer
  • Lives here!
  • *****
  • Posts: 1891
Re: The tabs close when you save a file.
« Reply #1 on: August 10, 2026, 11:05:37 am »
Delete the .layout file, it will be recreated.

Offline dthu

  • Multiple posting newcomer
  • *
  • Posts: 13
Re: The tabs close when you save a file.
« Reply #2 on: Yesterday at 04:36:58 am »
After deleting the file, the problem persists. An identical file was generated.

Offline christo

  • Developer
  • Multiple posting newcomer
  • *****
  • Posts: 85
Re: The tabs close when you save a file.
« Reply #3 on: Yesterday at 05:17:13 am »
Is it possible to share your .cbp file also?

Offline dthu

  • Multiple posting newcomer
  • *
  • Posts: 13
Re: The tabs close when you save a file.
« Reply #4 on: Yesterday at 05:24:19 am »
I traced the behavior of C:B but I got lost, I'll try again later.

Code
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="ajedrez4" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/ajedrez4" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Option use_console_runner="0" />
<Option projectLinkerOptionsRelation="2" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/Release/ajedrez4" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="0" />
<Option compiler="gcc" />
<Option projectLinkerOptionsRelation="2" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-pedantic" />
<Add option="-Wextra" />
<Add option="-Wall" />
<Add option="-std=c++23" />
<Add option="`wx-config --cflags`" />
<Add option="-Werror" />
</Compiler>
<Linker>
<Add option="`wx-config --libs`" />
<Add library="wx_gtk3u_richtext-3.3" />
</Linker>
<UnitsGlob directory="../../../../../4chess-viewer/src" wildcard="" recursive="0" id="2701167546" addToProject="1">
<Option target="Debug" />
<Option target="Release" />
</UnitsGlob>
<Unit filename="../../../../../4chess-viewer/src/CBJugador.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/CBPagina.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/CBTurn.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessBoard.cpp">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessBoard.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessBook.cpp">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessBook.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessFiles.cpp">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessFiles.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessFrame.cpp">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessFrame.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessNotation.cpp">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessNotation.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessParameters.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ChessStyleBoard.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/Common.h">
<Option glob="2701167546" />
</Unit>
<Unit filename="../../../../../4chess-viewer/src/ajedrez4App.cpp">
<Option glob="2701167546" />
</Unit>
<Extensions>
<lib_finder disable_auto="1" />
</Extensions>
</Project>
</CodeBlocks_project_file>

Offline christo

  • Developer
  • Multiple posting newcomer
  • *****
  • Posts: 85
Re: The tabs close when you save a file.
« Reply #5 on: Yesterday at 08:34:14 pm »
I could reproduce the issue. Editor is closed by below call trace. Looks like it is caused by Glob feature. I'm not much familiar with that feature. When I remove all the glob related data from the cbp manually, issue was not seen.

Code
#0  cbEditor::~cbEditor (this=0x452eda0) at cbeditor.cpp:843
#1  0x00007ffff63a86df in wxWindowBase::Destroy (this=0x452eda0) at ../src/common/wincmn.cpp:570
#2  0x00007ffff626634d in wxBookCtrlBase::DeletePage (this=0x1251170, nPage=37) at ../src/common/bookctrl.cpp:412
#3  0x00007ffff7771d65 in cbAuiNotebook::DeletePage (this=0x1251170, page=37) at cbauibook.cpp:475
#4  0x00007ffff7878992 in EditorManager::Close (this=0x11fb930, editor=0x452eda0, dontsave=false) at editormanager.cpp:758
#5  0x00007ffff78788fd in EditorManager::Close (this=0x11fb930, filename=..., dontsave=false) at editormanager.cpp:745
#6  0x00007ffff77b3cad in cbProject::RemoveFile (this=0x30ddcf0, pf=0x30ee360) at cbproject.cpp:1016
#7  0x00007ffff7916c7b in ProjectLoader::UpdateGlob (this=0x7fffffffd390, glob=...) at projectloader.cpp:1143


Offline blauzahn

  • Almost regular
  • **
  • Posts: 234
Re: The tabs close when you save a file.
« Reply #6 on: Today at 06:43:09 am »
A quick glance into projectloader.cpp function UpdateGlob shows a range for-loop with a temporary a few lines above line 1143:

Code
// First search for valid project files (glob id) and also for project files we have to remove
for (ProjectFile* file : m_pProject->GetFilesList())

This has been fixed in C++23 (see: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2644r1.pdf).

In the meantime I recommend to put the file list into a local variable like that:

Code
// First search for valid project files (glob id) and also for project files we have to remove
const auto& files = m_pProject->GetFilesList();
for (ProjectFile* file : files)

It may not be the reason for this issue but should be fixed anyway.