1
Nightly builds / Re: The 27 May 2026 build (13855) is out.
« Last post by eckard_klotz on Today at 12:35:10 pm »Hello Developers.
Unfortunately the folding margin is located next to the text inside the editor and thus, it happens very easily that you force a folding even you just want click at the first line position, what is very annoying.
While reviewing the current margin configuration in cbEditor.cpp, I noticed that Code::Blocks defines its own margin IDs:
As far as I understand it, Scintilla (and wxScintilla) always render margins strictly in ascending ID order.
Because of this, the folding margin (ID 3) appears directly next to the text area in the editor. This placement makes it easy to accidentally trigger fold/unfold actions when clicking near column 1, especially on high‑resolution displays.
Other Scintilla‑based editors (SciTE, Geany, Notepad++) avoid this issue by placing the folding margin immediately to the right of the line‑number margin. This provides a natural buffer zone and significantly reduces accidental folding.
In Code::Blocks, the folding margin is configured here:
Since all margin‑related logic consistently seems to use the symbolic constants (C_FOLDING_MARGIN, C_MARKER_MARGIN, etc.), adjusting the margin order is limited to changing the four #define values. No other code changes should be required, and no plugins or configuration files are affected.
Suggested improvement:
Reassign the folding margin to a lower ID (e.g., 1), so the margin order becomes:
Line numbers → Folding → Marker → Changebar → Text
This can simply be changed while the definition of the preprocessor constants like this:
I think this small, isolated change would align Code::Blocks with common Scintilla practice and improve usability without introducing new settings or breaking existing functionality.
Please take a look to this and thank you in advance.
Best regards,
Eckard Klotz.
Unfortunately the folding margin is located next to the text inside the editor and thus, it happens very easily that you force a folding even you just want click at the first line position, what is very annoying.
While reviewing the current margin configuration in cbEditor.cpp, I noticed that Code::Blocks defines its own margin IDs:
Code
#define C_LINE_MARGIN 0
#define C_MARKER_MARGIN 1
#define C_CHANGEBAR_MARGIN 2
#define C_FOLDING_MARGIN 3
As far as I understand it, Scintilla (and wxScintilla) always render margins strictly in ascending ID order.
Because of this, the folding margin (ID 3) appears directly next to the text area in the editor. This placement makes it easy to accidentally trigger fold/unfold actions when clicking near column 1, especially on high‑resolution displays.
Other Scintilla‑based editors (SciTE, Geany, Notepad++) avoid this issue by placing the folding margin immediately to the right of the line‑number margin. This provides a natural buffer zone and significantly reduces accidental folding.
In Code::Blocks, the folding margin is configured here:
Code
control->SetMarginType(C_FOLDING_MARGIN, wxSCI_MARGIN_SYMBOL);
control->SetMarginWidth(C_FOLDING_MARGIN, foldingMarginBaseWidth);
control->SetMarginMask(C_FOLDING_MARGIN, ...);
control->SetMarginSensitive(C_FOLDING_MARGIN, 1);
Since all margin‑related logic consistently seems to use the symbolic constants (C_FOLDING_MARGIN, C_MARKER_MARGIN, etc.), adjusting the margin order is limited to changing the four #define values. No other code changes should be required, and no plugins or configuration files are affected.
Suggested improvement:
Reassign the folding margin to a lower ID (e.g., 1), so the margin order becomes:
Line numbers → Folding → Marker → Changebar → Text
This can simply be changed while the definition of the preprocessor constants like this:
Code
#define C_LINE_MARGIN 0
#define C_FOLDING_MARGIN 1
#define C_MARKER_MARGIN 2
#define C_CHANGEBAR_MARGIN 3
I think this small, isolated change would align Code::Blocks with common Scintilla practice and improve usability without introducing new settings or breaking existing functionality.
Please take a look to this and thank you in advance.
Best regards,
Eckard Klotz.
Recent Posts