diff --git a/common/utils/T/tracer/gui/gui.h b/common/utils/T/tracer/gui/gui.h
index 5902ea28318916d03a081b78651c319fe77b6f9a..2a60e08e963df9c1c905d401c38d816a1a6c00c6 100644
--- a/common/utils/T/tracer/gui/gui.h
+++ b/common/utils/T/tracer/gui/gui.h
@@ -59,6 +59,7 @@ void timeline_add_points(gui *gui, widget *this, int subline, int color,
     int *x, int len);
 void timeline_set_subline_background_color(gui *gui, widget *this,
     int subline, int color);
+void timeline_get_width(gui *gui, widget *this, int *width);
 
 void gui_loop(gui *gui);
 
diff --git a/common/utils/T/tracer/gui/timeline.c b/common/utils/T/tracer/gui/timeline.c
index 9e794dda4c164c5d4f9b44b02fe1910b5161a1db..7c8469f9280d211731275ca444c56700285b6237 100644
--- a/common/utils/T/tracer/gui/timeline.c
+++ b/common/utils/T/tracer/gui/timeline.c
@@ -148,3 +148,15 @@ void timeline_set_subline_background_color(gui *_gui, widget *_this,
 
   gunlock(g);
 }
+
+void timeline_get_width(gui *_gui, widget *_this, int *width)
+{
+  struct gui *g = _gui;
+  struct timeline_widget *this = _this;
+
+  glock(g);
+
+  *width = this->common.width == 0 ? this->wanted_width : this->common.width;
+
+  gunlock(g);
+}