Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Locking Screen sometimes dock and window list will remain in view #46

Closed
ghost opened this issue Oct 12, 2015 · 5 comments
Closed

Locking Screen sometimes dock and window list will remain in view #46

ghost opened this issue Oct 12, 2015 · 5 comments

Comments

@ghost
Copy link

ghost commented Oct 12, 2015

Sometimes when I lock the screen, the dock and window list will be in view.
I am running Gnome 3.14 on EL7.2 Beta with EasyScreenCast 0.97.

(gnome-shell:25649): Gjs-WARNING **: JS ERROR: Exception in callback for signal: updated: Error: Type name EasyScreenCastSettingsWidget is already registered
GObjectMeta<._construct@resource:///org/gnome/gjs/modules/overrides/GObject.js:125
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
Class.prototype._construct/newClass@resource:///org/gnome/gjs/modules/lang.js:204
@/usr/share/gnome-shell/extensions/EasyScreenCast@iacopodeenosee.gmail.com/prefs.js:329
@/usr/share/gnome-shell/extensions/EasyScreenCast@iacopodeenosee.gmail.com/convenience.js:34
@/usr/share/gnome-shell/extensions/EasyScreenCast@iacopodeenosee.gmail.com/extension.js:36
initExtension@resource:///org/gnome/shell/ui/extensionSystem.js:221
enableExtension@resource:///org/gnome/shell/ui/extensionSystem.js:110
enableAllExtensions/<@resource:///org/gnome/shell/ui/extensionSystem.js:345
enableAllExtensions@resource:///org/gnome/shell/ui/extensionSystem.js:344
_sessionUpdated@resource:///org/gnome/shell/ui/extensionSystem.js:372
_emit@resource:///org/gnome/gjs/modules/signals.js:124
SessionMode<._sync@resource:///org/gnome/shell/ui/sessionMode.js:205
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
SessionMode<.popMode@resource:///org/gnome/shell/ui/sessionMode.js:174
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
ScreenShield<._continueDeactivate@resource:///org/gnome/shell/ui/screenShield.js:1218
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
ScreenShield<.deactivate/<@resource:///org/gnome/shell/ui/screenShield.js:1203
AuthPrompt<.finish@resource:///org/gnome/shell/gdm/authPrompt.js:494
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
UnlockDialog<.finish@resource:///org/gnome/shell/ui/unlockDialog.js:147
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
ScreenShield<.deactivate@resource:///org/gnome/shell/ui/screenShield.js:1202
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
ScreenShield<._init/</<@resource:///org/gnome/shell/ui/screenShield.js:564
_emit@resource:///org/gnome/gjs/modules/signals.js:124
_convertToNativeSignal@resource:///org/gnome/gjs/modules/overrides/Gio.js:129

@ghost ghost added the bug label Oct 12, 2015
@ghost ghost self-assigned this Oct 12, 2015
@ghost
Copy link
Author

ghost commented Oct 12, 2015

hi, can you explain better the problem? if you use a screenshot or screencast is better; however the log shown to me I see an error in the creation of the options window. thx

@rhertzog
Copy link

rhertzog commented Apr 6, 2017

We also have this bug in Kali: https://bugs.kali.org/view.php?id=2513
When we deinstall this extension, then we can no longer reproduce the problem. This is a long-standing issue on our side... but it seems to be triggered only in very specific cases. We manage to reproduce the issue during a system upgrade that for some reason triggers gnome-shell to revalidate the extensions (onVersionValidationChanged).

Here's a video made by a Kali user showcasing the problem:
https://www.youtube.com/watch?v=UNiLo9RERBo

The problem is that the dock (provided by another extension) is not properly hidden in the lock screen. In my case, I just lock the screen without suspending the laptop but the result is the same. Somehow the EasyScreenCast extension badly interfers with the code disabling extensions for the lock screen...

For the record, the extension for the dock is https://micheleg.github.io/dash-to-dock/

@sbrun
Copy link

sbrun commented Apr 6, 2017

Hi,
To complete @rhertzog comment:
I made a screencast of the issue. As you can see, when I lock the screen, we still have the dock and the menu.
We can launch the applications. When I unlock the screen, the applications are running.

kali-dev.zip

@rhertzog
Copy link

rhertzog commented Apr 7, 2017

The initial trigger seems to be by running "dconf update" which triggers some sort of internal reload in gnome-shell. That works only if "dconf update" does actually something... i.e. when of the database files are actually updated. In our case, we have an updated file in /etc/dconf/db/local.d/ and /etc/dconf/profile/user points the user back to a system-wide database named "local":

$ cat /etc/dconf/profile/user
user-db:user
system-db:local

And the file we install in /etc/dconf/db/local.d/ is used to setup AppFolders as defined here:
https://developer.gnome.org/AppFolders/

When "dconf update" is run, the EasyScreenCast icon disappears from the GNOME Shell... in gnome-tweak-tool the extensions seems to be disabled but checking with "gsettings get org.gnome.shell enabled-extensions" the extension is still enabled. On next try to lock the screen, everything is fine. But afterwards, every try to lock the screen shows the problem... until you reboot or restart GNOME Shell.

I hope this is enough for you to reproduce the problem.

epozuelo added a commit to epozuelo/EasyScreenCast that referenced this issue Apr 19, 2017
To avoid importing and registering the prefs window from the extension,
which breaks gnome-shell when it reloads the extension.

Fixes EasyScreenCast#46
@epozuelo
Copy link
Contributor

Hi,

The above pull request fixes this bug for me. The problem is that prefs.js is a special file for gnome-shell extensions, hardcoded in gnome-shell to load the extensions' preferences from e.g. gnome-shell-extensions-prefs. Currently easyscreenshare loads prefs.js from multiple places, and that confuses gnome-shell when this reload is triggered. The fix is to split the settings handling from the preferences dialog.

There is still a gnome-shell bug in that it shouldn't enable other extensions in the lock screen if one extension failed to load, so that if e.g. easyscreenshare is broken and fails to load, other extensions aren't loaded in the lock screen. I need to investigate the gnome-shell code some more, and will file a bug upstream about this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants