Bug: Conflict with Dash to Panel
Summary
Just Perfection removes the lookingGlass _oldResize
function that Dash to Panel stashes away, causing TypeError: this._oldResize is not a function
when Just Perfection calls lookingGlass._resize()
.
I have Dash to Panel set up to replicate the old gnome taskbar panel at the bottom of the screen (most things turned off, except for the Taskbar), and I use the "original" (according to dash to panel) gnome-shell top panel.
Steps to reproduce
- Dash To Panel > Fine-Tune: enable "Keep original gnome-shell top panel"
- Just Perfection > Visibility: enable Panel
- Just Perfection > Customize: set "Panel Position" to "Top"
Have Dash to Panel enabled, and then enable Just Perfection, alternatively it often triggers on wake (really anything that triggers _fixLookingGlassPosition
, eg: panelSetPosition
).
What is the current bug behavior?
When enabling Just Perfection it appears to fail, and has an error shown below it: this._oldResize is not a function
(or sometimes this._main.lookingGlass._resize is not a function
)
What is the expected correct behavior?
Just Perfection and Dash to Panel should co-exist peacefully. The simplest may be to just use a differently named attribute to avoid the conflict? Better would be to track if the resize override has been installed, and only uninstall it, if it was installed. If both Just Perfection and Dash to Panel install the resize override, will it be applied twice? It probably depends on the order in which they are installed.
Other Enabled Extensions
- Dash to Panel v50
Versions
Debian packages:
- gnome-shell 42.4-1
- gnome-shell-extensions 42.3-1
- gnome-shell-extension-dash-to-panel 50-1
Relevant logs and/or screenshots
when enabling:
JS ERROR: Extension just-perfection-desktop@just-perfection: TypeError: this._oldResize is not a function
_newLookingGlassResize@/usr/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/panelManager.js:740:10
_fixLookingGlassPosition@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:1724:41
_emitPanelPositionChanged@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:497:14
panelSetPosition@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:1679:18
_emitPanelPositionChanged@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:470:18
panelSetSize@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:410:14
_applyPanelSize@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/Manager.js:1096:23
applyAll@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/Manager.js:334:14
enable@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/extension.js:101:13
_callExtensionEnable@resource:///org/gnome/shell/ui/extensionSystem.js:182:32
_enableAllExtensions/<@resource:///org/gnome/shell/ui/extensionSystem.js:641:22
_enableAllExtensions@resource:///org/gnome/shell/ui/extensionSystem.js:640:37
_sessionUpdated@resource:///org/gnome/shell/ui/extensionSystem.js:657:14
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_sync@resource:///org/gnome/shell/ui/sessionMode.js:202:14
popMode@resource:///org/gnome/shell/ui/sessionMode.js:170:14
_continueDeactivate@resource:///org/gnome/shell/ui/screenShield.js:541:30
deactivate/<@resource:///org/gnome/shell/ui/screenShield.js:532:44
finish@resource:///org/gnome/shell/gdm/authPrompt.js:677:13
finish@resource:///org/gnome/shell/ui/unlockDialog.js:863:26
deactivate@resource:///org/gnome/shell/ui/screenShield.js:532:26
ScreenShield/</<@resource:///org/gnome/shell/ui/screenShield.js:111:57
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_convertToNativeSignal@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:152:19
or when disabling (I don't remember how I triggered the exact sequence of events to prepare this, I think locking/sleeping may have been involved):
JS ERROR: Extension just-perfection-desktop@just-perfection: TypeError: this._main.lookingGlass._resize is not a function
_fixLookingGlassPosition@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:1724:41
_emitPanelPositionChanged@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:497:14
panelSetPosition@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:1679:18
_emitPanelPositionChanged@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:470:18
panelSetSize@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:410:14
panelSetDefaultSize@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/API.js:381:14
_applyPanelSize@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/Manager.js:1094:23
revertAll@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/lib/Manager.js:401:14
disable@/home/normanr/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/extension.js:112:17
_callExtensionDisable@resource:///org/gnome/shell/ui/extensionSystem.js:123:32
_onEnabledExtensionsChanged/<@resource:///org/gnome/shell/ui/extensionSystem.js:534:45
_onEnabledExtensionsChanged@resource:///org/gnome/shell/ui/extensionSystem.js:534:24
createCheckedMethod/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:555:46
disableExtension@resource:///org/gnome/shell/ui/extensionSystem.js:224:29
DisableExtension@resource:///org/gnome/shell/ui/shellDBus.js:451:38
_handleMethodCall@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:324:38
_wrapJSObject/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:401:34
Settings Values
org.gnome.shell.extensions.just-perfection panel true
org.gnome.shell.extensions.just-perfection top-panel-position 0