xdnd: Don't wait for the stage to be disabled when it is already visible

xdndHandler used to wait for the stage to show up before calling
global.init_xdnd() . Since commit 65303d027a xdndHandler is initalized
later so the stage might be already visible at this point causing the
show signal never to be emitted and thus global.init_xdnd will never
be called.

Fix that by checking by calling global.init_xdnd without waiting for
the stage's show signal to be emitted, as the stage is guaranted to be
visible at this point.
This commit is contained in:
Adel Gadllah 2013-02-22 19:26:17 +01:00
parent 6fcc7e3e23
commit f644bee831

View File

@ -21,14 +21,7 @@ const XdndHandler = new Lang.Class({
Shell.util_set_hidden_from_pick(this._dummy, true); Shell.util_set_hidden_from_pick(this._dummy, true);
this._dummy.hide(); this._dummy.hide();
// Mutter delays the creation of the output window as long
// as possible to avoid flicker. In case a plugin wants to
// access it directly it has to connect to the stage's show
// signal. (see comment in compositor.c:meta_compositor_manage_screen)
global.stage.connect('show', function () {
global.init_xdnd(); global.init_xdnd();
return false;
});
global.connect('xdnd-enter', Lang.bind(this, this._onEnter)); global.connect('xdnd-enter', Lang.bind(this, this._onEnter));
global.connect('xdnd-position-changed', Lang.bind(this, this._onPositionChanged)); global.connect('xdnd-position-changed', Lang.bind(this, this._onPositionChanged));