| Server IP : 172.67.191.97 / Your IP : 104.23.197.208 Web Server : Apache/2.4.63 (Ubuntu) System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.4.5 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/gnome-shell/extensions/[email protected]/app/ |
Upload File : |
/* DING: Desktop Icons New Generation for GNOME Shell
*
* Copyright (C) 2024 Sergio Costas ([email protected])
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
'use strict';
var SignalManager = class {
constructor() {
this._signal_list = [];
}
connectSignal(obj, signal_name, cb, {destroyCb, after}={destroyCb:null, after: false}) {
if (after)
var signal_id = obj.connect_after(signal_name, cb);
else
var signal_id = obj.connect(signal_name, cb);
let handler = {
signal_id,
obj,
destroyCb
}
this._signal_list.push(handler);
return handler;
}
disconnectAllSignals() {
this._signal_list.forEach((item) => {
item.obj.disconnect(item.signal_id);
if (item.destroyCb)
item.destroyCb();
});
this._signal_list = [];
}
disconnectSignal(handler) {
const idx = this._signal_list.indexOf(handler);
if (idx == -1)
return;
delete this._signal_list[idx];
handler.obj.disconnect(handler.signal_id);
if (handler.destroyCb)
handler.destroyCb();
}
}