Created attachment 7319 Workaround for dnd in sockets and plugs. Drag and Drop inside GtkSocket and GtkPlug doesn't work correctly. There are actually many bugs concerning event propagation between GtkSocket and GtkPlug. For example: https://bugzilla.gnome.org/show_bug.cgi?id=343104 Something along these lines happens when xfwm4-settings is embedded into xfce4-settings-manager. The drag_end handler isn't called when a button from "Button layout" is dragged. Fortunately, this only happens when the button is dragged onto the the specified drag area. All we need to do is move the gtk_widget_show function at the end of the drag-data-received handler.
I forgot to the describe the problem. Not calling the drag_end handler on the buttons hides them and doesn't show them again. Meaning you have to reaload the menu to relocate stuff like the close and minimize button.
Thank you for the patch. I have tested it and it does fix the problem.
*** Bug 15733 has been marked as a duplicate of this bug. ***
Stefan Berzl referenced this bugreport in commit 1e3dd9c8a5510144676ac1df4c4a21ca88a69bf5 settings-dialog: Fix drag and drop of buttons https://git.xfce.org/xfce/xfwm4/commit?id=1e3dd9c8a5510144676ac1df4c4a21ca88a69bf5
Stefan Berzl referenced this bugreport in commit 629c8461c646eca5bad97e5cb59e298e53e76872 settings-dialog: Fix drag and drop of buttons https://git.xfce.org/xfce/xfwm4/commit?id=629c8461c646eca5bad97e5cb59e298e53e76872
*** Bug 16804 has been marked as a duplicate of this bug. ***