• Jonas Ådahl's avatar
    wayland: Use g_get_prgname() to get the xdg_surface.set_app_id string · e1fd8772
    Jonas Ådahl authored
    Prior to this patch, the ID of the GtkApplication was always used for
    clients which were GtkApplications. This would only be guaranteed to be
    correct for D-Bus activatable programs. As a result, all
    non-D-Bus-activatable applications would set the wrong ID making the
    shell unable to find the corresponding .desktop file.
    
    This change makes it so that the GDK backend always uses the name
    passed to g_set_prgname, or the default value if not explicitly set, as
    this more often corresponds to the .desktop file.
    
    This means that in order to make D-Bus activatable applications set the
    correct application ID, they must, for now, manually call
    g_set_prgname() with their application ID (basename of the .desktop
    file).
    
    If g_get_prgname() returns NULL, fallback to gdk_get_program_class()
    even though it will most likely never be correct according to the
    xdg_surface.set_app_id specification.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=746435
    e1fd8772