AyatanaIndicators / libayatana-appindicator

Ayatana Application Indicators Shared Library
GNU Lesser General Public License v3.0
57 stars 14 forks source link

Add support for tooltips #17

Closed gber closed 2 weeks ago

gber commented 3 years ago

This also adds version checking macros in order to allow consumers to write backwards-compatible code. Note that this does not update the bindings since I'm unfamiliar with that.

sunweaver commented 3 years ago

@gber: We did a hell of a change for libayatana-appindicator recently (autoconf -> cmake). Can you rebase your PR branch please, please? Thanks

gber commented 3 years ago

I'm already on it, the only remaining issue is making g-ir-scanner work with the out of tree build, where one part of the header is inside the tree and the other one generated in the build directory. Needs some investigation/experiments.

gber commented 3 years ago

Something goes wrong with the GTK# bindings code generation, but I have zero experience with GTK# or C#.

gber commented 3 years ago

@sunweaver Building ayatana-appindicator3-sharp.dll fails with the following errors:

/home/gber/libayatana-appindicator/build/bindings/mono/AyatanaAppIndicator/ApplicationIndicator.cs(612,16): error CS1001: Unexpected symbol `=', expecting identifier
/home/gber/libayatana-appindicator/build/bindings/mono/AyatanaAppIndicator/ApplicationIndicator.cs(637,93): error CS1001: Unexpected symbol `;', expecting identifier
/home/gber/libayatana-appindicator/build/bindings/mono/AyatanaAppIndicator/ApplicationIndicator.cs(847,26): error CS1519: Unexpected symbol `;' in class, struct, or interface member declaration

Apparently the code generator fails to generate some method names, but I'm not sure what causes it.

Betterbird commented 2 years ago

I've used this patch in a test program with this code:

    app_indicator_set_status (ci, APP_INDICATOR_STATUS_ACTIVE);
    app_indicator_set_icon_full(ci, LOCAL_ICON, "Local Icon");
    app_indicator_set_title (ci, "Test Icon Title");
    app_indicator_set_tooltip_full (ci, NULL /* icon */, "New Mail", "Inbox: 2, Github: 1");

The result on Mint with an XFCE is that the tooltip is displayed underneath the icon, if the panel is horizontal, one can only see a light line at the bottom of the screen, no tooltip is visible. For a vertical panel, you see this: image The body of the tooltip is also missing. BTW, if you don't supply a tooltip title, the title is taken from the "set title" call.

EDIT: Full code and sample program here: https://github.com/Betterbird/thunderbird-patches/issues/20#issuecomment-1001768733

Betterbird commented 2 years ago

I gave my test program to a few people to play with. So far, I haven't seen an installation where it worked. KDE seems to display the app indicator title, not the tooltip: https://www.thunderbird-mail.de/forum/thread/88737-hilfe-beim-testen-des-systray-panel-indicators-auf-linux/?postID=489690#post489690 Also here: https://github.com/Betterbird/thunderbird-patches/issues/20#issuecomment-1001717993, that was with the current API ... and the tipo from here: https://github.com/AyatanaIndicators/libayatana-appindicator/blob/e689457fcdeecbac05c46be74f709d9c5a6bcbbc/example/simple-client.c#L170

@gber : On which platform did you test this?

Betterbird commented 1 year ago

We've integrated the application indicator into Betterbird now, see https://github.com/Betterbird/thunderbird-patches/issues/20#issuecomment-1375592968.

@sunweaver @gber - Any chance to get the tooltips?

Betterbird commented 1 year ago

We've decided to take the tooltip patch (https://github.com/AyatanaIndicators/libayatana-appindicator/commit/fc6f9f1ed961b2faa54522498cb2c5025d961505) to Betterbird: https://github.com/Betterbird/thunderbird-patches/blob/main/102/features/12-feature-linux-systray-tooltip.patch

It works well enough. We had no luck with the tooltip body, but the title works well enough. On our installations, if the dock/panel/taskbar was at the bottom of the screen, the tooltip was drawn beneath it, that is off-screen (already mentioned in https://github.com/AyatanaIndicators/libayatana-appindicator/pull/17#issuecomment-1001766352) and hence invisible.

gber commented 1 year ago

On which platform did you test this?

IIRC I tested this with Xfce back then, need to check current platforms (KDE, Xfce, Gnome Shell extension) again.

@sunweaver @gber - Any chance to get the tooltips?

I've rebased this against master, just the C# binding problem remains. I'll work on this as time permits.

Betterbird commented 1 year ago

IIRC I tested this with Xfce back then, need to check current platforms (KDE, Xfce, Gnome Shell extension) again.

As I wrote earlier, we've deployed the tooltips for a few months now. Mileage varies, it works best on KDE and Xfce and explicitly doesn't work on Gnome.

Of course there is also issue #62 which we had to fix.

tari01 commented 1 year ago

@gber: We should wait with this until https://github.com/AyatanaIndicators/libayatana-appindicator/pull/63 goes in first to take care of the type signature/documentation/binding mess.

Betterbird commented 1 year ago

We've rebased the patch, maybe it's useful to someone: https://github.com/Betterbird/thunderbird-patches/blob/main/115/features/12-feature-linux-systray-tooltip.patch

sunweaver commented 2 weeks ago

Superceded finally by #82