The info window is missing window controls
Blueman Version 2.44 Window manager: Marco
The info window cannot be closed using the touchscreen, because it is missing window controls. You have to open the screen keyboard first and hit the Esc button to close that window. This is very annoying.
I'm fine with having a Close button but I also think Marco should show window decorations when the dialog does not ask for client side decorations.
I'm fine with having a Close button but I also think Marco should show window decorations when the dialog does not ask for client side decorations.
I found out that this was a MATE related issue, this only affects the following themes:
- BlackMATE
- GreenLaguna
- Menta
Other themes like BlueMenta are not affected.
I tried different compositors for Marco (Xrender, GLX, compton, picom, xr-glx-hybrid, no-composite), but they all showed the same behaviour.
One thing to note is the following message, which appears when you open the info dialog:
Window manager warning: Invalid WM_TRANSIENT_FOR window 0x34009c2 specified for 0x3414dce (blueman).
This message disappears by changing
dialog = Gtk.Dialog(icon_name="blueman", title="blueman")
dialog.set_transient_for(parent)
to
dialog = Gtk.Dialog(icon_name="blueman", title="blueman", transient_for=parent)
but this does not change the window decoration at all.
The X11 manual says:
4.1.2.6. WM_TRANSIENT_FOR Property The WM_TRANSIENT_FOR property (of type WINDOW) contains the ID of another top-level window. The implication is that this window is a pop-up on behalf of the named window, and window managers may decide not to decorate transient windows or may treat them differently in other ways. In particular, window managers should present newly mapped WM_TRANSIENT_FOR windows without requiring any user interaction, even if mapping top-level windows normally does require interaction. Dialogue boxes, for example, are an example of windows that should have WM_TRANSIENT_FOR set.
It is important not to confuse WM_TRANSIENT_FOR with override-redirect. WM_TRANSIENT_FOR should be used in those cases where the pointer is not grabbed while the window is mapped (in other words, if other windows are allowed to be active while the transient is up). If other windows must be prevented from processing input (for example, when implementing pop-up menus), use override-redirect and grab the pointer while the window is mapped.
Something is very odd about this dialog (also the hard-coded Ctrl+C which does not allow you to copy text using the context menu).
Maybe replacing the Gtk.Dialog with a Gtk.Window would fix the issue with the missing window decorations on some themes?
@infirit Thank you for your feedback. I now tried another approach by converting the dialog to a window, which works fine for me and does not add another button.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
not stale
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
not_stale has_pr #2797