[BUG] MT5 Build 5440 (21 Nov 2025): Critical GUI Rendering Issue in Custom MQL Applications - page 7

 
Alain Verleyen #:
Fixed in 5485.

no, NOT fixed

not fixed

 
Alain Verleyen #:

I can't do anything with screenshots.

For a bug to be fixed it needs to be reproduced, and to be reproduced we need mql5 source code.

1. First install Inter Font.

2. Compile and run expert.

3. It's obviously not Inter font and it's Arial Regular.

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025"
#property link      ""
#property version   "1.00"

#include <Controls\Button.mqh>


CButton myButton;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   
   if(!myButton.Create(0, "Inter ExtraBold Font Button", 0, 20, 20, 150, 50))
      return INIT_FAILED;
   
   
   myButton.Text("Click Me");
   
   
   myButton.FontSize(10);
   myButton.Font("Inter ExtraBold");
   
   
   myButton.Color(clrWhite);
   myButton.ColorBackground(clrDodgerBlue);
   myButton.ColorBorder(clrBlack);
   
   return INIT_SUCCEEDED;
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   
   myButton.Destroy();
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
   
}

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
   
   if(id == CHARTEVENT_OBJECT_CLICK)
   {
      if(sparam == "MyButton")
      {
         Print("Button clicked!");
      }
   }
}
//+------------------------------------------------------------------+
Inter - Google Fonts
Inter - Google Fonts
  • fonts.google.com
Inter is a variable font family carefully crafted & designed for computer screens. Inter features a tall x-height to aid in readability of mixed-case and lower-
 
Andrey Barinov #:

no, NOT fixed


Ok sorry. I had changed the code to check COLOR_FORMAT_ARGB_NORMALIZE.

With COLOR_FORMAT_ARGB_RAW it is not fixed.

 
abphzl #:

1. First install Inter Font.

2. Compile and run expert.

3. It's obviously not Inter font and it's Arial Regular.

Confirmed and reported.
 

Regression in MT5 Updates Affecting Rendering of Legacy Indicators (Font/Glyph Handling)

Hi Admin,

I am reporting a regression introduced in recent MT5 builds that has significantly affected the rendering and stability of legacy third-party indicators. Many of these indicators are closed-source, and users do not have access to the .mq5 source code to recompile or apply fixes, leaving us without any practical workaround.

Since the recent MT5 updates, multiple indicators that previously worked correctly now display incorrect glyphs (squares or unexpected symbols instead of the intended shapes) or, in some cases, cause terminal instability or freezing. Based on extensive testing, these issues do not occur on MT5 build 5430, which remains the last stable build for my setup. As a result, I am currently forced to downgrade and remain on build 5430 to maintain a usable trading environment.

Examples:

  • A KT Trendline indicator I use is affected by this update. The developer does not provide the source code even after purchase, making it impossible to adapt the indicator to recent MT5 changes.

  • The LuxAlgo Market Structure indicator is also impacted. On newer MT5 builds, attempting to use this indicator causes the terminal to freeze, forcing a manual restart.

Technical Observations (Based on Research and Testing):

  • Affected indicators rely on chart objects such as OBJ_TEXT , OBJ_LABEL , and related object types for drawing symbols, market structure elements, and annotations.

  • These objects appear to depend on symbol-based fonts (commonly Wingdings/Webdings or related variants) for rendering.

  • While I cannot confirm the exact internal implementation due to lack of source code, my research and testing suggest the issue may be related to changes in font rendering, glyph mapping, or fallback behavior in newer MT5 builds.

  • On newer builds, character codes that previously rendered correctly now appear as empty squares or incorrect symbols, indicating a possible regression in glyph resolution.

  • In the case of LuxAlgo Market Structure, the behavior suggests a potential rendering or object-creation failure triggered by invalid or unsupported glyph handling.

Impact:

This regression has effectively broken several widely used legacy indicators. Because these products are closed-source, users cannot resolve the issue independently. A single platform update has resulted in weeks of inactivity and forced stagnation, with no viable solution other than downgrading the terminal.

Request:

I kindly ask that this issue be investigated at the platform level, specifically:

  • Review recent changes related to font rendering, glyph resolution, and fallback mechanisms.

  • Restore backward compatibility for legacy indicators that rely on symbol-based fonts.

I understand that support may request indicator source code to debug this issue; however, in this case, it is not available. I cannot remain silent and simply wait indefinitely, hoping a future update resolves the problem, as this affects many users who rely on third-party legacy indicators.

Thank you for your time and consideration.

 

David Igbayilola #:

Last official build is 5430.

Never update to beta build and all will be good. All these issues are known.

 
Alain Verleyen #:

Last official build is 5430.

Never update to beta build and all will be good. All these issues are known.

Thank you

 

RTL text rendering broken in CButton/CLabel after migration to DirectWrite (Persian/Arabic)


After recent MetaTrader 5 updates (Build 54xx+, Nov 2025),

all RTL languages (Persian/Arabic/Hebrew) are rendered incorrectly

in standard GUI controls such as CButton and CLabel.

Symptoms:

  • Text is displayed in reversed logical order
  • Characters are not shaped (Arabic/Persian letters are disconnected)
  • Changing font (Tahoma, Arial, Segoe UI, etc.) does NOT help

Root cause is very likely incomplete DirectWrite migration:

  • Text is drawn without using IDWriteTextLayout
  • No BiDi algorithm applied
  • No RTL flow/reading direction configured

This worked correctly before GDI → DirectWrite migration.

Affects:

This makes RTL languages unusable in MT5 GUI.

Please see minimal reproducible example below.

#include <Controls/Button.mqh>

#include <Controls/Label.mqh>


CButton btn;

CLabel  lbl;


int OnInit()

{

   btn.Create(0, "btn", 0, 10, 10, 200, 40);

   btn.Text("سلام دنیا");


   lbl.Create(0, "lbl", 0, 10, 60, 300, 25);

   lbl.Text("حد ضرر / حد سود فعال");


   return(INIT_SUCCEEDED);

}
 
Mehdi Mashayekhi #:

RTL text rendering broken in CButton/CLabel after migration to DirectWrite (Persian/Arabic)


After recent MetaTrader 5 updates (Build 54xx+, Nov 2025),

all RTL languages (Persian/Arabic/Hebrew) are rendered incorrectly

in standard GUI controls such as CButton and CLabel.

Symptoms:

  • Text is displayed in reversed logical order
  • Characters are not shaped (Arabic/Persian letters are disconnected)
  • Changing font (Tahoma, Arial, Segoe UI, etc.) does NOT help

Root cause is very likely incomplete DirectWrite migration:

  • Text is drawn without using IDWriteTextLayout
  • No BiDi algorithm applied
  • No RTL flow/reading direction configured

This worked correctly before GDI → DirectWrite migration.

Affects:

This makes RTL languages unusable in MT5 GUI.

Please see minimal reproducible example below.

#include <Controls/Button.mqh>

#include <Controls/Label.mqh>


CButton btn;

CLabel  lbl;


int OnInit()

{

   btn.Create(0, "btn", 0, 10, 10, 200, 40);

   btn.Text("سلام دنیا");


   lbl.Create(0, "lbl", 0, 10, 60, 300, 25);

   lbl.Text("حد ضرر / حد سود فعال");


   return(INIT_SUCCEEDED);

}


Yes, I already wrote about this. By the way, the hieroglyphics issue has already been fixed. The only error remaining is in Arabic.
 
Mehdi Mashayekhi #:

RTL text rendering broken in CButton/CLabel after migration to DirectWrite (Persian/Arabic)

Confirmed and reported.