-
Notifications
You must be signed in to change notification settings - Fork 14
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
Make Chrome work with the global menu #29
Comments
The issue may have to do with the fact that
And none of these either: Are these documented somewhere? But things do get published on D-Bus by Chrome:
So something seems to be half-broken? A Gtk application with working menu has:
I am not sure how exactly the KDE stuff ends up there, but I do notice the presence of |
Here is the code that
|
Curent theory: Gtk applications are supposed to load |
|
For comparison, here is a Gtk application where it works:
|
The source code of |
What is a "Unity Object Path", after all, is it the same as a "Gtk Menu Bar Object Path", and where is this documented? |
Suggestion: documentationEither:
|
https://github.com/helloSystem/hello/wiki/Status#what-does-not-work-yet should eventually give way to a proper changelog. What is the easiest way to maintain one? |
Note that https://www.youtube.com/watch?v=Qe_guKtmIy0 shows Chrome with global menus using When killing helloSystem Menu and killing helloSystem https://www.freshports.org/www/chromium says:
Possibly this needs to be discussed with chromium@FreeBSD.org? |
https://github.com/chromium/chromium/blob/master/chrome/browser/ui/views/frame/dbus_appmenu.cc suggests that there is/was global menu support in the Chromium source code. How can it be activated? Can it be as easy as enabling Possibly this needs to be discussed with chromium@FreeBSD.org? |
Upstream ticket: |
Is this on FreeBSD? If it is then one is able to something with stock www/chromium. Also FWIW I tried to set use_dbus=true in the www/chromium Makefile with no effect. Perhaps it would be a plan to look into apps like evince and other app without a menubar. Or to dig down how kde did it, if they did it on FreeBSD |
No, the screenshot is from a LInux distribution @jsm222:
Looking at the Chromium source code, it seems to need |
Yes, but that is set to true if use_dbus is set true. It is not an config setting on its own afaict |
Can you confirm that using |
FWIW You should be able to download them from the repo described at https://wiki.freebsd.org/helloDesktop |
Thanks @jsm222 unfortunately I can't run this on my FreeBSD 12.2 based system: getting
But the same is true for the "normal" chrome from the FreeBSD repo. |
Oh, ok I just checked the sums of the binaries themselfs, they are the same. I think if the buildsystem detects dbus it sets use_dbus automatically. But I will double check. |
Let's find out whether |
With or without explicit setting of use_dbus=true defines becomes
Output |
OK, so https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259575 is currently not addressing the root of the issue and needs to be changed? |
Yes, you should probably close it.. |
Closed. Now we need to isolate why it's not working... |
on FreeBSD..
on neon devel (linux)
|
dbus-send --session --print-reply --dest=org.freedesktop.DBus / org.freedesktop.DBus.GetConnectionUnixProcessID string:com.canonical.AppMenu.Registrar |
On helloSystem:
I think the question is: What is causing the |
@jsm222 mentioned in the chat:
We have:
Why isn't it working then? Doing manually
does not lead to a change. How exactly does Chrome determine whether a Global Menu is available on the system? We should be able to find this out by looking at the Chrome source code. |
I have looked into, under kde the fallback menu dbus adresses are set as window properties. the _KDE ones used by app-gtk-menu. It seems that chrome windows do not accept the change by app-gtk-menu lib done in XChangeProperty. Im still digging.. |
Do you mean these? Menu/src/appmenu/appmenumodel.cpp Lines 41 to 42 in aaf8427
Menu should be aware of them (although I have never fully understood why they are needed as a KDE-specific thing). |
I have looked into, under kde the fallback menu dbus adresses are set as window properties. the _KDE ones used by app-gtk-menu. It seems that chrome windows do not accept the change by app-gtk-menu lib done in XChangeProperty. Im still digging..
Yes, they are only set under plasma5 |
The
I never quite understood what those files are needed for - can't this kind of information be published over D-Bus itself ("introspection")? The concept of having to copy around xml files in the filesystem (in places only root can access) even though the files describe the per-user ("session") bus strikes me as strange. And I am completely at a loss at how to handle the situation that more than one application (e.g., helloSystem Menu) would need(?) to provide the same file, In any case, just copying KDE's |
@jsm222 thinks that in KDE Plasma, something else sets those, and on helloSystem they get set for the wrong window(id). |
Let's see what deals with (the largely undocumented)
So, is |
Try this patch https://gist.github.com/jsm222/8b6a92566e7ce53bdc5ec094c1093549. |
Bravo! @jsm222 this is an awesome contribution. Thank you very, very much. I would never have figured this out. |
Chrome does not show its menus in the global menu bar. Why?
In Chrome 12 https://www.omgubuntu.co.uk/2011/06/chrome-12-brings-unity-global-menu-support-and-heres-how-to-enable-it they added:
We need to figure out what happened to it and how to make it work.
The text was updated successfully, but these errors were encountered: