diff --git a/src/render/Hook_event.cpp b/src/render/Hook_event.cpp
index 4de00c6aa288c20515f2e0ce9130c01a557bf7c1..64a9843e7e944cd4e91099e003ac3cf431d6e185 100644
--- a/src/render/Hook_event.cpp
+++ b/src/render/Hook_event.cpp
@@ -286,9 +286,8 @@ void Hook_event::mouseMoveEvent(QMouseEvent *event) {
 void Hook_event::mouseReleaseEvent(QMouseEvent *event) {
     // if the timer has not been connected yet, connect it (there is a problem with QT signal/slots and genericty, and the type of this isn't right in the constructor)
     if (!_connected) {
-        // connect(_timer, SIGNAL(timeout()), (Hook_event *) this, SLOT(update_vertical_line()));
         connect(_timer, &QTimer::timeout, this, [=]() {
-            update_vertical_line();
+            update_vertical_line(render_to_trace_x(screen_to_render_x(_mouse_x)));
         });
         _connected = true;
     }
@@ -364,21 +363,6 @@ void Hook_event::mouseReleaseEvent(QMouseEvent *event) {
             return;
         }
 
-        /* Thin box in the containers: ignore */
-        if (_mouse_pressed_inside_container && ((_new_mouse_y - _mouse_y) < _minimum_distance_for_selection)) {
-
-            // hide the vertical line if we press inside a container
-            _render_instance->set_vertical_line(0);
-
-            _render_instance->update_vertical_line();
-            // start the timer to catch a click or double click
-
-            _mouse_pressed = false;
-            _mouse_pressed_inside_container = false;
-            update_render();
-            return;
-        }
-
         /*
          * Now, user was drawing a box. Zoom in it!
          */
diff --git a/src/render/Render.hpp b/src/render/Render.hpp
index eab6e2625f3f0d7ae04c6a90f9679c25c01c90c4..249984092d54d854146f4d82c8e2927d798e139d 100644
--- a/src/render/Render.hpp
+++ b/src/render/Render.hpp
@@ -316,11 +316,6 @@ public:
 
     virtual void draw_vertical_line() = 0;
 
-    /*!
-     * \brief slot connected to the simple click event
-     */
-    virtual void update_vertical_line() = 0;
-
     /*!
      * \brief Draw the ruler display list.
      */
diff --git a/src/render/Render_abstract.cpp b/src/render/Render_abstract.cpp
index 794fe6ade9f5323b874ac195e7068fcd07f170a2..aa8f74f15b413e121d25325812f89706ddba8739 100644
--- a/src/render/Render_abstract.cpp
+++ b/src/render/Render_abstract.cpp
@@ -331,4 +331,20 @@ const int &Render_abstract::get_scroll_margin_x() const {
 
 const int &Render_abstract::get_scroll_margin_y() const {
     return _scroll_margin_y;
-}
\ No newline at end of file
+}
+
+void Render_abstract::update_vertical_line(const Element_pos &line_position) {
+    // Set new line position
+    set_vertical_line(line_position);
+
+    // Set new variable values to show
+    std::map<long int, double> var_map = _layout->get_trace()->update_text_variable_values(line_position);
+    std::map<long int, double>::const_iterator it = var_map.begin();
+    const std::map<long int, double>::const_iterator it_end = var_map.end();
+    while (it != it_end) {
+        draw_text_value((*it).first, (*it).second, -1);
+        it++;
+    }
+
+    update_render();
+}
diff --git a/src/render/Render_abstract.hpp b/src/render/Render_abstract.hpp
index 7bec5f7e12e3e5f033966cdd02e1b029a404744d..1e3454a0db0013c095d54627f7753f112100926f 100644
--- a/src/render/Render_abstract.hpp
+++ b/src/render/Render_abstract.hpp
@@ -173,6 +173,12 @@ public:
      */
     void apply_zoom_on_interval(const Element_pos &begin, const Element_pos &end) override;
 
+    /*!
+     * \brief method connected to the simple click event
+     * \param line_position the new position of the line
+     */
+    void update_vertical_line(const Element_pos &line_position);
+
     /**
      * \brief Set the RenderLayout in which the render is
      * \param layout new layout pointer value
diff --git a/src/render/Render_svg.cpp b/src/render/Render_svg.cpp
index 994541d349811a204249d477695a6896edc4f069..4bf3acb01b3a055ca5467f51245371f189585715 100644
--- a/src/render/Render_svg.cpp
+++ b/src/render/Render_svg.cpp
@@ -316,12 +316,6 @@ void Render_svg::end_draw() {
 void Render_svg::draw_vertical_line() {
 }
 
-/*!
- * \brief slot connected to the simple click event
- */
-void Render_svg::update_vertical_line() {
-}
-
 void Render_svg::set_vertical_line(Element_pos l) {
     (void)l;
 }
diff --git a/src/render/Render_svg.hpp b/src/render/Render_svg.hpp
index 4cf47b5c21de774edef6f7eea9cae85c32347745..643242501a17914299370970d37fddd99aa61a08 100644
--- a/src/render/Render_svg.hpp
+++ b/src/render/Render_svg.hpp
@@ -268,11 +268,6 @@ public:
 
     void draw_vertical_line() override;
 
-    /*!
-     * \brief slot connected to the simple click event
-     */
-    void update_vertical_line() override;
-
     /*!
      * \brief set the vertical line offset
      * \param l the line offset.
diff --git a/src/render/opengl/Render_opengl.cpp b/src/render/opengl/Render_opengl.cpp
index a413354b190f51fd14e9114210f3c5299631dbde..14162076410335533e2bff9c1aa2a8283288a464 100644
--- a/src/render/opengl/Render_opengl.cpp
+++ b/src/render/opengl/Render_opengl.cpp
@@ -1113,25 +1113,6 @@ void Render_opengl::draw_stored_circles() {
     glLineWidth(1.0);
 }
 
-void Render_opengl::update_vertical_line() {
-
-    if (_mouse_pressed_inside_container)
-        set_vertical_line(0);
-    else {
-        const Element_pos d = render_to_trace_x(screen_to_render_x(_mouse_x));
-        set_vertical_line(d);
-
-        std::map<long int, double> var_map = _layout->get_trace()->update_text_variable_values(d);
-        std::map<long int, double>::const_iterator it = var_map.begin();
-        const std::map<long int, double>::const_iterator it_end = var_map.end();
-        while (it != it_end) {
-            draw_text_value((*it).first, (*it).second, -1);
-            it++;
-        }
-    }
-    updateGL();
-}
-
 Element_pos Render_opengl::get_vertical_line() {
     return vertical_line;
 }
diff --git a/src/render/opengl/Render_opengl.hpp b/src/render/opengl/Render_opengl.hpp
index 9a8e4ace0b5bd214070e0d80e7d440284490327e..3e48b4ab5548e10b3b5862931f77e3f09def3907 100644
--- a/src/render/opengl/Render_opengl.hpp
+++ b/src/render/opengl/Render_opengl.hpp
@@ -394,15 +394,6 @@ public:
      * \brief display the scale
      */
     void display_time_scale() { }
-
-    //    void set_vertical_line(int l){}
-    //  void draw_vertical_line();
-
-public Q_SLOTS:
-    /*!
-     * \brief slot connected to the simple click event
-     */
-    void update_vertical_line() override;
 };
 
 #endif
diff --git a/src/render/vbo/Render_alternate.cpp b/src/render/vbo/Render_alternate.cpp
index e44701400b3de324207cc786845f9654cd0918de..2eb1e04828fe75737dfe283d55e18f913ae39716 100644
--- a/src/render/vbo/Render_alternate.cpp
+++ b/src/render/vbo/Render_alternate.cpp
@@ -1244,27 +1244,6 @@ void Render_alternate::draw_vertical_line() {
     checkGlError();
 }
 
-/*!
- * \brief slot connected to the simple click event
- */
-void Render_alternate::update_vertical_line() {
-    if (_mouse_pressed_inside_container)
-        set_vertical_line(0);
-    else {
-        const Element_pos d = render_to_trace_x(screen_to_render_x(_mouse_x));
-        set_vertical_line(d);
-
-        std::map<long int, double> var_map = _layout->get_trace()->update_text_variable_values(d);
-        std::map<long int, double>::const_iterator it = var_map.begin();
-        const std::map<long int, double>::const_iterator it_end = var_map.end();
-        while (it != it_end) {
-            draw_text_value((*it).first, (*it).second, -1);
-            it++;
-        }
-    }
-    updateGL();
-}
-
 /*!
  * \brief set the vertical line offset
  * \param l the line offset.
diff --git a/src/render/vbo/Render_alternate.hpp b/src/render/vbo/Render_alternate.hpp
index a9cac602e8826349555b1d0f2bb27f7ba88890b7..db446f706c88678dd311a3e74c725a9d192b7309 100644
--- a/src/render/vbo/Render_alternate.hpp
+++ b/src/render/vbo/Render_alternate.hpp
@@ -539,10 +539,6 @@ public:
                           std::map<EntityValue *, std::pair<Vbo *, Vbo *>> *evmap,
                           bool shaded);
 public Q_SLOTS:
-    /*!
-     * \brief slot connected to the simple click event
-     */
-    void update_vertical_line() override;
 
     /*!
      * \brief Function that only delete the text of the screen
diff --git a/src/render/vulkan/Render_vulkan.cpp b/src/render/vulkan/Render_vulkan.cpp
index 50e783c79b4aa401cf2ca1ad0f47fb8384bff72e..fa54f4a59346e52193b00f7dded346203573c367 100644
--- a/src/render/vulkan/Render_vulkan.cpp
+++ b/src/render/vulkan/Render_vulkan.cpp
@@ -232,8 +232,6 @@ void Render_vulkan::draw_vertical_line() { }
 
 void Render_vulkan::call_ruler() { }
 
-void Render_vulkan::update_vertical_line() { }
-
 bool Render_vulkan::build() {
     replace_scale_x(1); /* for states scaling */
     init_geometry();
diff --git a/src/render/vulkan/Render_vulkan.hpp b/src/render/vulkan/Render_vulkan.hpp
index 661c7f359173a23bca538bd265bbca6d41822bf3..55bc87886767e92feaa916bd245d3a2f983864c5 100644
--- a/src/render/vulkan/Render_vulkan.hpp
+++ b/src/render/vulkan/Render_vulkan.hpp
@@ -145,8 +145,6 @@ public:
 
     void call_ruler() override;
 
-    void update_vertical_line() override;
-
     /**
      * \brief Get the widget associated to the renderer to display in the window
      * @return