Move revealers access away from base classes

Those should not appear in base classes, as they are available in main app only
This commit is contained in:
Rafał Dzięgiel
2021-09-06 15:27:37 +02:00
parent 873e724bf2
commit 8733610a9b
4 changed files with 27 additions and 19 deletions

View File

@@ -1,4 +1,4 @@
const { Gio, GObject, Gtk } = imports.gi;
const { Gio, GObject, Gdk, Gtk } = imports.gi;
const { AppBase } = imports.src.appBase;
const { Widget } = imports.src.widget;
const Debug = imports.src.debug;
@@ -43,6 +43,22 @@ class ClapperApp extends AppBase
this._openFilesAsync(files).then(() => this.activate()).catch(debug);
}
_onIconThemeChanged(gtkSettings)
{
super._onIconThemeChanged(gtkSettings);
const display = Gdk.Display.get_default();
if(!display) return;
const iconTheme = Gtk.IconTheme.get_for_display(display);
if(!iconTheme) return;
const { headerBar } = this.active_window.child.revealerTop;
if(!headerBar) return;
headerBar._onIconThemeChanged(iconTheme);
}
_onWindowMap(window)
{
window.disconnect(this.mapSignal);

View File

@@ -1,4 +1,4 @@
const { Gio, GLib, GObject, Gdk, Gtk } = imports.gi;
const { Gio, GLib, GObject, Gtk } = imports.gi;
const Debug = imports.src.debug;
const FileOps = imports.src.fileOps;
const Misc = imports.src.misc;
@@ -131,16 +131,5 @@ class ClapperAppBase extends Gtk.Application
}
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);
}
});

View File

@@ -28,4 +28,12 @@ class ClapperHeaderBar extends HeaderBarBase
{
this.root.fullscreen();
}
_onIconThemeChanged(iconTheme)
{
super._onIconThemeChanged(iconTheme);
const { controlsRevealer } = this.root.child;
this._updateFloatIcon(!controlsRevealer.reveal_child);
}
});

View File

@@ -245,16 +245,11 @@ class ClapperHeaderBarBase extends Gtk.Box
_onIconThemeChanged(iconTheme)
{
/* Those icons are relatively new,
* so check if theme has them */
/* Those icons are new, so check if theme has them */
this.hasPipIcons = (
iconTheme.has_icon('pip-in-symbolic')
&& iconTheme.has_icon('pip-out-symbolic')
);
const { controlsRevealer } = this.root.child;
this._updateFloatIcon(!controlsRevealer.reveal_child);
}
});