Author Topic: The tabs close when you save a file.  (Read 5526 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: August 11, 2026, 04:36:58 am »
After deleting the file, the problem persists. An identical file was generated.

Offline christo

  • Developer
  • Multiple posting newcomer
  • *****
  • Posts: 86
Re: The tabs close when you save a file.
« Reply #3 on: August 11, 2026, 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: August 11, 2026, 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: 86
Re: The tabs close when you save a file.
« Reply #5 on: August 11, 2026, 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: Yesterday 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.

Offline christo

  • Developer
  • Multiple posting newcomer
  • *****
  • Posts: 86
Re: The tabs close when you save a file.
« Reply #7 on: Yesterday at 08:21:36 pm »
Issue is due to an extra file separator added in calculating relative path. This causes false failure  on checking if file is in glob list. And it results in editor being closed.

Fix added in svn r13949

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5579
Re: The tabs close when you save a file.
« Reply #8 on: Yesterday at 11:05:56 pm »
I originally wrote the glob feature, and then somebody worked on it, to provide a UI, and some other features.
Since that day, it has been driving me crazy, what I suffered from was, when I edited such opened file, and saved it, it always jumped to the start of the file, and the close thing I might have suffered from that too.

So nice to see, there is a fix. I will try to check if in my projects this is solved too.

I started ditching the glob feature use due to that regression, since I don't have time myself to go study what happened to the original feature.