PopupMenu not showing


I am using Fedora 35 on Wayland, Python 3.9 and wxpython 4.1.1

Below is a generic example of a popup menu but the menu does not show when I right click.
Instead I get this error:
Gdk-Message: 15:44:34.818: Window 0x55c64daf3b70 is a temporary window without parent, application will not be able to position it on screen.

(test.py:211925): Gdk-CRITICAL **: 15:44:34.835: gdk_wayland_window_handle_configure_popup: assertion 'impl->transient_for' failed

What can I do about this?

import wx

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Popup Menu Example")
        self.panel = p = wx.Panel(self)
        menu = wx.Menu()
        exit = menu.Append(-1, "Exit")
        self.Bind(wx.EVT_MENU, self.OnExit, exit)

        menuBar = wx.MenuBar()
        menuBar.Append(menu, "Menu")

        wx.StaticText(p, -1, "Right-click on the panel to show a popup menu", (25, 25))

        self.popupmenu = wx.Menu()
        for text in "one two three four five".split():
            item = self.popupmenu.Append(-1, text)
            self.Bind(wx.EVT_MENU, self.OnPopupItemSelected, item)
        p.Bind(wx.EVT_CONTEXT_MENU, self.OnShowPopup)

    def OnShowPopup(self, event):
        pos = event.GetPosition()
        pos = self.panel.ScreenToClient(pos)
        self.panel.PopupMenu(self.popupmenu, pos)

    def OnPopupItemSelected(self, event):
        item = self.popupmenu.FindItemById(event.GetId())
        text = item.GetText()
        wx.MessageBox("You selected item '%s'" % text)

    def OnExit(self, event):

app = wx.PySimpleApp()
frame = MyFrame()

That’s strange. I have tested Python 3.8 with wxPython 4.1.1 on Ubuntu w. Wayland.
I see the message, but the popup appears as expected.
The only hard error I see is that item has no attribute GetText().

I tested it now and it works. I am absolutely confused. :smiley:
I swear I tested it at least 10 times and using different examples before I posted this thread and it did not work. I did not update anything, I did not make any changes in the code. I have no idea what changed. :smiley:

text = item.GetText() to text = item.GetItemLabel() it will work …

I found the problem. My IDE secretly had a second instance of the program running in background that I did not notice. I am not sure how that happens but when it does, everything works but the popup menu does not.