With a panel set as auto-hide, the windowlist plugin breaks this behavior once its menu is shown. The panel will be left shown unless xfce4-panel is restarted.
That probably because the menu is not deactivated. The panel register_menu function locks auto-hide until the menu is deactivated. Brian?
What do you mean by 'deactivated'? Does the plugin have to do something special when a menu closes?
When calling xfce_panel_plugin_register_menu() an internal counter is increased to prevent the panel from autohide. It also connects a "deactivate" signal to decrease this counter when the menu is closed. When 'somehow' the menu does not emit this signal, to panel will stay locked. When looking at the code it seems to break when the signal is connected 2 times, so I'll fix that tonight. To check the plugin side, you can connect a "deactivate" signal to see if it gets emitted when the menu is closed. If not, maybe the "destroy" signal is, but i suppose "deactivate" is always emitted before "destroy".
Er, looking at Mike's comment again... this is about the window list plugin, not the menu plugin. I didn't write the window list plugin.
Hehe, and I was thinking, "Ahhh Brian is such a curious guy" ^_^.
*** Bug 5486 has been marked as a duplicate of this bug. ***
Created attachment 2648 move gtk_widget_destroy inside a idle task The bug doesn't come from the xfce_panel_plugin_position_menu callback (which calls xfce_...register_menu), it is because the menu is destroyed on the deactivate signal. If it is postponed with a g_idle_add it works fine.
FYI: there is also exo_gtk_object_destroy_later. Will take a look at this.
(In reply to comment #8) > FYI: there is also exo_gtk_object_destroy_later. Will take a look at this. Convenient :) I never knew about it.
Fixed in b1fdd70.