From b1d5e8611ff5bbef9543ddce7cb8e5fc02fbedc1 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 24 Apr 2020 15:54:15 -0600 Subject: [PATCH] carefully position floating text entry when editing transport master names --- gtk2_ardour/transport_masters_dialog.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gtk2_ardour/transport_masters_dialog.cc b/gtk2_ardour/transport_masters_dialog.cc index 26e49ebd98..16648c3322 100644 --- a/gtk2_ardour/transport_masters_dialog.cc +++ b/gtk2_ardour/transport_masters_dialog.cc @@ -342,8 +342,25 @@ TransportMastersWidget::Row::name_press (GdkEventButton* ev) name_editor = new FloatingTextEntry (toplevel, tm->name()); name_editor->use_text.connect (sigc::mem_fun (*this, &TransportMastersWidget::Row::name_edited)); name_editor->show (); + + /* Now move the floating text entry window to be perfectly + * aligned with the upper left corner of the name/label box. + */ + + Gtk::Widget* tl = label_box.get_toplevel(); + Gtk::Window* top_level = dynamic_cast(tl); + + if (top_level) { + Glib::RefPtr win (top_level->get_window()); + int rx, ry; + win->get_position (rx, ry); + Gtk::Allocation alloc = label_box.get_allocation(); + name_editor->move (rx + alloc.get_x(), ry + alloc.get_y()); + } + return true; } + return false; }