Search code examples
gtk3glade

Create popover that can overpass window area


There is a small window application (50x50px) with only one image inside of it. When you click the image, a popover(GtkPopover) appears, but it cannot overpass the window borders and only part of it is shown.

How could I solve this issue without resizing the window?


Solution

  • Popovers in GTK under X11 cannot extend outside of the top-level window they belong to, because they do not use a separate windowing system surface; if they did, like menus, they would not be able to remain open even when clicking outside of them.

    This cannot be fixed in GTK3, see:

    You must use Wayland, or you must ensure that your window is big enough to display your popover.

    You also probably want to use gtk_popover_set_position(), gtk_popover_set_pointing_to(), or gtk_popover_set_constrain_to() to ensure that your popover always opens within the window surface, instead of outside.