mirror of
https://github.com/morgan9e/dash-to-panel
synced 2026-04-14 00:04:17 +09:00
Disable Ubuntu dock when this extension is enabled #231
This commit is contained in:
36
extension.js
36
extension.js
@@ -29,16 +29,43 @@ const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Shell = imports.gi.Shell;
|
||||
const WindowManager = imports.ui.windowManager;
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const ExtensionSystem = imports.ui.extensionSystem;
|
||||
const Mainloop = imports.mainloop;
|
||||
|
||||
const UBUNTU_DOCK_UUID = 'ubuntu-dock@ubuntu.com';
|
||||
|
||||
let panel;
|
||||
let overview;
|
||||
let settings;
|
||||
let oldDash;
|
||||
let extensionChangedHandler;
|
||||
|
||||
function init() {
|
||||
}
|
||||
|
||||
function enable() {
|
||||
// Disable Ubuntu Dock
|
||||
if (ExtensionUtils.extensions[UBUNTU_DOCK_UUID] && ExtensionUtils.extensions[UBUNTU_DOCK_UUID].state == ExtensionSystem.ExtensionState.ENABLED) {
|
||||
Mainloop.timeout_add(0, () => {
|
||||
ExtensionSystem.disableExtension(UBUNTU_DOCK_UUID);
|
||||
return GLib.SOURCE_REMOVE;
|
||||
});
|
||||
}
|
||||
// The Ubuntu Dock extension might get enabled after this extension
|
||||
extensionChangedHandler = ExtensionSystem.connect('extension-state-changed', (evt, extension) => {
|
||||
if (extension.uuid == UBUNTU_DOCK_UUID) {
|
||||
Mainloop.timeout_add(0, () => {
|
||||
if(extension.state == ExtensionSystem.ExtensionState.ENABLED)
|
||||
ExtensionSystem.disableExtension(UBUNTU_DOCK_UUID);
|
||||
else if(extension.state == ExtensionSystem.ExtensionState.DISABLED)
|
||||
Main.overview._controls.dash.actor.hide(); // ubuntu dock shows this when disabled, hide it again
|
||||
|
||||
return GLib.SOURCE_REMOVE;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
settings = Convenience.getSettings('org.gnome.shell.extensions.dash-to-panel');
|
||||
panel = new Panel.dtpPanel(settings);
|
||||
panel.enable();
|
||||
@@ -83,4 +110,13 @@ function disable() {
|
||||
Shell.ActionMode.NORMAL |
|
||||
Shell.ActionMode.POPUP,
|
||||
Lang.bind(Main.wm, Main.wm._toggleAppMenu));
|
||||
|
||||
|
||||
// Re-enable Ubuntu Dock if it exists
|
||||
ExtensionSystem.disconnect(extensionChangedHandler);
|
||||
if (ExtensionUtils.extensions[UBUNTU_DOCK_UUID] && Main.sessionMode.allowExtensions) {
|
||||
Mainloop.timeout_add(0, () => {
|
||||
ExtensionSystem.enableExtension(UBUNTU_DOCK_UUID);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user