set_attached_to
представляется правильным способом позиционирования всплывающего окна относительно виджета в Wayland:
Примеры мест, где указание этого отношения полезно дляinstance [...] всплывающее окно завершения, созданное Gtk.Entry [...]
К сожалению, это только приводит к ошибке
Gdk-Message: 12:13: 16.143: Окно 0x1822340 является временным окном без родителя, приложение не сможет разместить его на экране.
Попытка раскомментировать строку popup.set_parent(entry)
добавляет только предупреждение:
(try_entry_popup.py:4539): Gtk-WARNING **: 12: 17: 34.185: Невозможно установить родительский элемент для виджета верхнего уровня
, за которым следует та же ошибка.
Вот минимальный пример:
#!/usr/bin/env python
# stripped down from https://gitlab.gnome.org/GNOME/gtk/issues/1541#note_396391
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
entry = Gtk.Entry()
popup = Gtk.Window(type=Gtk.WindowType.POPUP)
#popup.set_parent(entry)
popup.set_attached_to(entry)
popup.show_all()
layout = Gtk.VBox()
layout.pack_start(entry, False, True, 0)
window = Gtk.Window()
window.connect("destroy", Gtk.main_quit)
window.add(layout)
window.show_all()
Gtk.main()
Из источника завершения ввода похоже, что он определенно должен работать. Используете ли вы частные функции? Или чего мне не хватает?