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

Tray tooltip variables are used without checking for escape sequences #266

Open
trigg opened this issue Jul 20, 2024 · 1 comment
Open

Comments

@trigg
Copy link
Contributor

trigg commented Jul 20, 2024

"<b>" + tooltip_title + "</b>: " + tooltip_text :

both tooltip_title and tooltip_text should be checked for escapable characters before passing to set_markup

The equivalent python code I've written previously to clean this up is

def sanitize_string(self, string):
        """Sanitize a text message so that it doesn't interfere with Pango's XML format"""
        string = string.replace("&", "&amp;")
        string = string.replace("<", "&lt;")
        string = string .replace(">", "&gt;")
        string = string.replace("'", "&#39;")
        string = string.replace("\"", "&#34;")
        return string

And the error can be triggered with this short python code

import gi
gi.require_version("Gtk", "3.0")
gi.require_version('AppIndicator3', '0.1')
# pylint: disable=wrong-import-position,wrong-import-order
from gi.repository import Gtk, Gdk, GLib  # nopep8
from gi.repository import AppIndicator3

window = Gtk.Window()
window.set_title("& WHY")
window.show()
menu = Gtk.Menu()
ind = AppIndicator3.Indicator.new(
    "test",
    "test",
    AppIndicator3.IndicatorCategory.APPLICATION_STATUS)
ind.set_title("& discover")
ind.set_status(AppIndicator3.IndicatorStatus.ACTIVE)
ind.set_menu(menu)
window.connect('destroy', Gtk.main_quit)
Gtk.main()

@NamorNiradnug
Copy link
Collaborator

NamorNiradnug commented Jul 31, 2024

Hi! This is actually not a bug but a feature because StatusNotifierItem allows markup tags in tooltip text: https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/Markup/

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