diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2020-04-24 15:54:15 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2020-04-24 15:54:15 -0600 |
commit | b1d5e8611ff5bbef9543ddce7cb8e5fc02fbedc1 (patch) | |
tree | 1dd21ea7b2f19bafed55fcc721fb5f8b63484e89 /gtk2_ardour | |
parent | afc8dd90227d6b1f1b7e21b1f91997429467980d (diff) |
carefully position floating text entry when editing transport master names
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/transport_masters_dialog.cc | 17 |
1 files changed, 17 insertions, 0 deletions
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<Gtk::Window*>(tl); + + if (top_level) { + Glib::RefPtr<Gdk::Window> 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; } |