Use new PiP icons when available

Use the new "pip-in" and "pip-out" GNOME symbolic icons if user theme has them for enter/leave floating mode button. When icon is unavailable on the host, old icon will be used instead.
This commit is contained in:
Rafał Dzięgiel
2021-06-23 14:24:59 +02:00
parent bad836cc6d
commit 5018b3a28a
3 changed files with 52 additions and 8 deletions

View File

@@ -1,4 +1,4 @@
const { Gio, GLib, GObject, Gtk } = imports.gi;
const { Gio, GLib, GObject, Gdk, Gtk } = imports.gi;
const Debug = imports.src.debug;
const FileOps = imports.src.fileOps;
const Misc = imports.src.misc;
@@ -144,15 +144,26 @@ class ClapperAppBase extends Gtk.Application
_onIconThemeChanged(gtkSettings)
{
const iconTheme = gtkSettings.gtk_icon_theme_name;
const iconThemeName = gtkSettings.gtk_icon_theme_name;
const window = this.active_window;
const hasAdwIcons = window.has_css_class('adwicons');
if(iconTheme === 'Adwaita' || iconTheme === 'Default') {
if(iconThemeName === 'Adwaita' || iconThemeName === 'Default') {
if(!hasAdwIcons)
window.add_css_class('adwicons');
}
else if(hasAdwIcons)
window.remove_css_class('adwicons');
const display = Gdk.Display.get_default();
if(!display) return;
const iconTheme = Gtk.IconTheme.get_for_display(display);
if(!iconTheme) return;
const { headerBar } = window.child.revealerTop;
if(!headerBar) return;
headerBar._onIconThemeChanged(iconTheme);
}
});