Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Appmenu doesn't appear for windows spawned from tray icons. #63

Open
b1scu1t opened this issue May 25, 2022 · 8 comments
Open

Appmenu doesn't appear for windows spawned from tray icons. #63

b1scu1t opened this issue May 25, 2022 · 8 comments

Comments

@b1scu1t
Copy link

b1scu1t commented May 25, 2022

The current behavior of LIM is flaky if windows spawn/de-spawn. I currently have Strawberry Music Player (Qt5) with the tray icon enabled to toggle the main window. If I were to press 'X' to close the window, but re-spawn it by pressing the tray icon, the window will appear with no menu. It can be replicated every time, and it can be done with multiple applications. The Claws E-mail Client has a similar issue, but it happens every time the main window is toggled with the tray icon.

desktop_demo_1-2022-05-24_23.09.06.mp4

To make the menu re-appear, one must kill the application and relaunch it. The problem doesn't occur in Psifodoto's appmenu widget (as often). Edit: Nope, happens there too. However, if you were to swap between the default Breeze and this decoration, the menu button will sometimes re-appear there.

Operating System: openSUSE Leap 15.3
KDE Plasma Version: 5.24.5
KDE Frameworks Version: 5.94.0
Qt Version: 5.15.2
Kernel Version: 5.3.18-150300.59.68-default (64-bit)
Graphics Platform: X11
Processors: 4 × Intel® Core™ i5-3320M CPU @ 2.60GHz
Memory: 7.6 GiB of RAM
Graphics Processor: Mesa DRI Intel® HD Graphics 4000

@Zren
Copy link
Owner

Zren commented May 26, 2022

Open Konsole. Type xprop and hit Enter. Then click the Stawberry window.
There should be something like:

_KDE_NET_WM_APPMENU_OBJECT_PATH(STRING) = "/MenuBar/27"
_KDE_NET_WM_APPMENU_SERVICE_NAME(STRING) = ":1.56"

@b1scu1t
Copy link
Author

b1scu1t commented May 27, 2022

When Strawberry has the LIM working.

_NET_WM_ICON_NAME(UTF8_STRING) = 
XdndAware(ATOM) = BITMAP
WM_NAME(STRING) = "Strawberry Music Player"
_NET_WM_NAME(UTF8_STRING) = "Strawberry Music Player"
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 52860121
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x7e, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
WM_CLIENT_LEADER(WINDOW): window id # 0x2200008
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
                window id # of group leader: 0x2200008
WM_CLIENT_MACHINE(STRING) = "Leap.T430"
_NET_WM_PID(CARDINAL) = 2749
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 35651591
WM_CLASS(STRING) = "strawberry", "strawberry"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified location: 114, 70
                user specified size: 1138 by 630
                program specified minimum size: 658 by 215
                window gravity: Static

When Strawberry's LIM doesn't show

XdndAware(ATOM) = BITMAP
WM_NAME(STRING) = "Strawberry Music Player"
_NET_WM_NAME(UTF8_STRING) = "Strawberry Music Player"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x7e, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
WM_CLIENT_LEADER(WINDOW): window id # 0x2200008
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
                Initial state is Normal State.
                window id # of group leader: 0x2200008
WM_CLIENT_MACHINE(STRING) = "Leap.T430"
_NET_WM_PID(CARDINAL) = 2749
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 35651605
WM_CLASS(STRING) = "strawberry", "strawberry"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified location: 114, 70
                user specified size: 1138 by 630
                program specified minimum size: 658 by 215
                window gravity: Static

In both instances, the 'KDE_NET_WM_APPMENU' line isn't seen in xprops output.

When Claws Mail (GTK3) LIM works.

_KDE_NET_WM_APPMENU_OBJECT_PATH(STRING) = "/MenuBar/34"
_KDE_NET_WM_APPMENU_SERVICE_NAME(STRING) = "org.kde.plasma.gmenu_dbusmenu_proxy"

When Claws Mail LIM doesn't work.

_KDE_NET_WM_APPMENU_OBJECT_PATH(STRING) = "/MenuBar/35"
_KDE_NET_WM_APPMENU_SERVICE_NAME(STRING) = "org.kde.plasma.gmenu_dbusmenu_proxy"

@b1scu1t
Copy link
Author

b1scu1t commented May 27, 2022

I think it is related to this: #43, specifically the problem the user encountered with Virt Manager.

@Zren
Copy link
Owner

Zren commented May 27, 2022

In both instances, the 'KDE_NET_WM_APPMENU' line isn't seen in xprops output.

What about the stuff above the app icon?

# Filter out the app icon
xprop -f _NET_WM_ICON 8i
# Sort (most) keys+values, breaking the multiline values.
xprop -f _NET_WM_ICON 8i | sort

@b1scu1t
Copy link
Author

b1scu1t commented May 27, 2022

Strawberry with LIM working.

Client accepts input or input focus: True
                icon window: 0x0
_KDE_NET_WM_ACTIVITIES(STRING) = "b7a1258d-7ce5-442f-a07e-134d0e623274"
_KDE_NET_WM_APPMENU_OBJECT_PATH(STRING) = "/MenuBar/1"
_KDE_NET_WM_APPMENU_SERVICE_NAME(STRING) = ":1.1468"
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 0, 0, 22, 0
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 56205709
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x7e, 0x0, 0x0
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 22, 0
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_NET_WM_DESKTOP(CARDINAL) = 4294967295
_NET_WM_ICON(CARDINAL): Type mismatch: assumed size 8 bits, actual size 32 bits.
_NET_WM_ICON_GEOMETRY(CARDINAL) = 169, 740, 36, 28
_NET_WM_ICON_NAME(UTF8_STRING) = 
_NET_WM_NAME(UTF8_STRING) = "Strawberry Music Player"
_NET_WM_PID(CARDINAL) = 10883
_NET_WM_STATE(ATOM) = _NET_WM_STATE_FOCUSED, _NET_WM_STATE_SKIP_PAGER
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 35651591
_NET_WM_USER_TIME(CARDINAL) = 59952673
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
                program specified minimum size: 658 by 215
                user specified location: 114, 70
                user specified size: 1138 by 630
                window gravity: Static
                window id # of group leader: 0x2200008
                window state: Normal
WM_CLASS(STRING) = "strawberry", "strawberry"
WM_CLIENT_LEADER(WINDOW): window id # 0x2200008
WM_CLIENT_MACHINE(STRING) = "Leap.T430"
WM_HINTS(WM_HINTS):
WM_NAME(STRING) = "Strawberry Music Player"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_STATE(WM_STATE):
XdndAware(ATOM) = BITMAP
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1

Strawberry with non-working LIM.

           Client accepts input or input focus: True
                icon window: 0x0
_KDE_NET_WM_ACTIVITIES(STRING) = "b7a1258d-7ce5-442f-a07e-134d0e623274"
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 0, 0, 22, 0
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 60054173
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x7e, 0x0, 0x0
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 22, 0
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_NET_WM_DESKTOP(CARDINAL) = 4294967295
_NET_WM_ICON(CARDINAL): Type mismatch: assumed size 8 bits, actual size 32 bits.
_NET_WM_ICON_GEOMETRY(CARDINAL) = 169, 740, 36, 28
_NET_WM_ICON_NAME(UTF8_STRING) = 
_NET_WM_NAME(UTF8_STRING) = "Strawberry Music Player"
_NET_WM_PID(CARDINAL) = 10883
_NET_WM_STATE(ATOM) = _NET_WM_STATE_SKIP_PAGER
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 35651614
_NET_WM_USER_TIME(CARDINAL) = 60052297
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
                program specified minimum size: 658 by 215
                user specified location: 114, 70
                user specified size: 1138 by 630
                window gravity: Static
                window id # of group leader: 0x2200008
                window state: Normal
WM_CLASS(STRING) = "strawberry", "strawberry"
WM_CLIENT_LEADER(WINDOW): window id # 0x2200008
WM_CLIENT_MACHINE(STRING) = "Leap.T430"
WM_HINTS(WM_HINTS):
WM_NAME(STRING) = "Strawberry Music Player"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_STATE(WM_STATE):
XdndAware(ATOM) = BITMAP
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1

Sorry for the late response.

@b1scu1t
Copy link
Author

b1scu1t commented Jun 6, 2022

I must add that the bug doesn't occur in KTorrent at all.

   Client accepts input or input focus: True
                icon window: 0x0
                Initial state is Normal State.
_KDE_NET_WM_ACTIVITIES(STRING) = "b7a1258d-7ce5-442f-a07e-134d0e623274"
_KDE_NET_WM_APPMENU_OBJECT_PATH(STRING) = "/MenuBar/1"
_KDE_NET_WM_APPMENU_SERVICE_NAME(STRING) = ":1.3189"
_KDE_NET_WM_DESKTOP_FILE(UTF8_STRING) = "org.kde.ktorrent"
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 0, 0, 22, 0
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x7e, 0x0, 0x0
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 22, 0
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_NET_WM_DESKTOP(CARDINAL) = 1
_NET_WM_ICON(CARDINAL): Type mismatch: assumed size 8 bits, actual size 32 bits.
_NET_WM_ICON_GEOMETRY(CARDINAL) = 389, 740, 36, 28
_NET_WM_ICON_NAME(UTF8_STRING) = 
_NET_WM_NAME(UTF8_STRING) = "D: 0 B/s | U: 0 B/s \342\200\224 KTorrent"
_NET_WM_PID(CARDINAL) = 32424
_NET_WM_STATE(ATOM) = 
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 71303181
_NET_WM_USER_TIME(CARDINAL) = 125763651
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
                program specified minimum size: 717 by 474
                user specified size: 1234 by 584
                window gravity: Static
                window id # of group leader: 0x440000e
                window state: Normal
WM_CLASS(STRING) = "ktorrent", "ktorrent"
WM_CLIENT_LEADER(WINDOW): window id # 0x440000e
WM_CLIENT_MACHINE(STRING) = "Leap.T430"
WM_HINTS(WM_HINTS):
WM_NAME(STRING) = "D: 0 B/s | U: 0 B/s"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_STATE(WM_STATE):
WM_WINDOW_ROLE(STRING) = "MainWindow#1"
XdndAware(ATOM) = BITMAP
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1

Also, the bug affects KDE's default Global Menu as well. I assume the LIM decoration and Psifidoto's Appmenu are based on KDE's implementation. Should I close this bug and report it upstream?

@b1scu1t
Copy link
Author

b1scu1t commented Aug 4, 2022

This bug is inconsistent, it doesn't occur for all Qt or GTK apps with the tray feature. So the workaround is to disable Global Menu on the one-or-two misbehaving apps. For anyone with this problem, edit the desktop file of the application (right-click on the KDE kick-off, select 'Edit Applications' and search for the app) and prefix the Exec or Command line with:

KDE_NO_GLOBAL_MENU=1

For example:
KDE_NO_GLOBAL_MENU=1 strawberry %U

@b1scu1t
Copy link
Author

b1scu1t commented Sep 28, 2022

For anyone wanting to disable a GTK application's menu, using Valapanel's `appmenu-gtk-module' instead of Unity's will allow it.

For a specific GTK application.

1. Install and launch Dconf Editor (GUI)
2. Navigate to /org/appmenu/gtk-module/blacklist. The description should be 'Application Blacklist
3. Toggle 'Use Default Value' off.
4. Add the GTK application's executable name to list in the Custom Value box. E.g ['anjuta', 'freeciv', 'freeciv-gtk2', 'freeciv-gtk3', 'glade', 'gwyddion', 'app_name_here'].
5. After committing changes, re-launch the misbehaving application. The menu-bar should re-appear there. If it doesn't, manually enable the menu-bar with a keybind (usually Ctrl-M, Alt, Alt-M, or Ctrl-F12 (in Claws Mail's case...).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants