boinc
boinc copied to clipboard
gtk_status_icon_set_visible is deprecated since Gtk 3.14
Describe the bug Several notification functions were deprecated since Gtk 3.14: https://developer.gnome.org/gtk3/stable/GtkStatusIcon.html#gtk-status-icon-set-visible Since we're using it, code should be updated accordingly
I've done a little bit of research on this (emphasis on little), and it isn't just a few functions that are deprecated, but the class StatusIcon is deprecated. GTK doesn't have a baked in system tray icon anymore.
I think there are three options to handle this:
- It appears that GTK is encouraging using the notification area in Linux instead. This would mean adding a not too insignificant amount of code, and I'm not sure if it would have the same functionality as the system tray icon currently does.
- According to wxWidgets, some Linux flavors may have system tray functionality. Although I like this idea because it keeps the functionality similar, I would think trying to test this may be difficult. Which flavors of Linux use this? I am not sure (I didn't look, either), but if there is a flavor that doesn't natively support it, then that functionality is lost.
- Remove all system tray functionality for Linux.
IMO, I think deciding which way to go with option 1or 2 above could take some time to discuss, plan, and execute. In the meantime, the Manager is not compiling in Linux as stated in #4010. I think it makes sense to just remove the taskbar icon functions related to Linux for now, and additional functionality, whatever that may be, can be done at a later date.
This would also mean removing the files in the clientgui/gtk directory. This code looks like it was branched from wxWidgets with some modifications for BOINC. I'm a little hesitant to remove complete files (mainly due to my lack of experience), but from my view we may want to start fresh if we remove the file and the reintroduce functionality. If you look at the same file that was branched from wxWidgets (located here) it has changed quite a bit. So, if we were to go with option 2 above, perhaps there is something better to obtain from the current wxWidgets file than the one we are using.
@Vulpine05, thank you for investigating this. I don't believe this is a good idea to remove any kind of functionality. I hope there is a better way to handle that. but assuming that we are currently successfully building BOINC for Linux even on the latest Ubuntu LTS 24.04, this is definitely a very low priority topic, and since it's more complex than just fixing a couple of lines, I suggest not wasting any more time on it at the moment. Again, thank you for taking care.
@Vulpine05, thank you for investigating this. I don't believe this is a good idea to remove any kind of functionality. I hope there is a better way to handle that. but assuming that we are currently successfully building BOINC for Linux even on the latest Ubuntu LTS 24.04, this is definitely a very low priority topic, and since it's more complex than just fixing a couple of lines, I suggest not wasting any more time on it at the moment. Again, thank you for taking care.
Understood, I'll hold off with removing functionality. However, I am not successfully building BOINC on Ubuntu. Let me collect my thoughts and I will post about that in the relevant issue.