summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2020-04-24 15:54:15 -0600
committerPaul Davis <paul@linuxaudiosystems.com>2020-04-24 15:54:15 -0600
commitb1d5e8611ff5bbef9543ddce7cb8e5fc02fbedc1 (patch)
tree1dd21ea7b2f19bafed55fcc721fb5f8b63484e89 /gtk2_ardour
parentafc8dd90227d6b1f1b7e21b1f91997429467980d (diff)
carefully position floating text entry when editing transport master names
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/transport_masters_dialog.cc17
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;
}