dragresize: Unregister global event handlers
This commit is contained in:
parent
97b8ecbbdf
commit
7866247f5d
@ -331,37 +331,47 @@ converse.plugins.add('converse-dragresize', {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
function onMouseMove (ev) {
|
||||||
|
if (!_converse.resizing || !_converse.allow_dragresize) { return true; }
|
||||||
|
ev.preventDefault();
|
||||||
|
_converse.resizing.chatbox.resizeChatBox(ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function onMouseUp (ev) {
|
||||||
|
if (!_converse.resizing || !_converse.allow_dragresize) { return true; }
|
||||||
|
ev.preventDefault();
|
||||||
|
const height = u.applyDragResistance(
|
||||||
|
_converse.resizing.chatbox.height,
|
||||||
|
_converse.resizing.chatbox.model.get('default_height')
|
||||||
|
);
|
||||||
|
const width = u.applyDragResistance(
|
||||||
|
_converse.resizing.chatbox.width,
|
||||||
|
_converse.resizing.chatbox.model.get('default_width')
|
||||||
|
);
|
||||||
|
if (_converse.api.connection.connected()) {
|
||||||
|
_converse.resizing.chatbox.model.save({'height': height});
|
||||||
|
_converse.resizing.chatbox.model.save({'width': width});
|
||||||
|
} else {
|
||||||
|
_converse.resizing.chatbox.model.set({'height': height});
|
||||||
|
_converse.resizing.chatbox.model.set({'width': width});
|
||||||
|
}
|
||||||
|
_converse.resizing = null;
|
||||||
|
}
|
||||||
|
|
||||||
/************************ BEGIN Event Handlers ************************/
|
/************************ BEGIN Event Handlers ************************/
|
||||||
function registerGlobalEventHandlers () {
|
function registerGlobalEventHandlers () {
|
||||||
|
document.addEventListener('mousemove', onMouseMove);
|
||||||
document.addEventListener('mousemove', function (ev) {
|
document.addEventListener('mouseup', onMouseUp);
|
||||||
if (!_converse.resizing || !_converse.allow_dragresize) { return true; }
|
|
||||||
ev.preventDefault();
|
|
||||||
_converse.resizing.chatbox.resizeChatBox(ev);
|
|
||||||
});
|
|
||||||
|
|
||||||
document.addEventListener('mouseup', function (ev) {
|
|
||||||
if (!_converse.resizing || !_converse.allow_dragresize) { return true; }
|
|
||||||
ev.preventDefault();
|
|
||||||
const height = u.applyDragResistance(
|
|
||||||
_converse.resizing.chatbox.height,
|
|
||||||
_converse.resizing.chatbox.model.get('default_height')
|
|
||||||
);
|
|
||||||
const width = u.applyDragResistance(
|
|
||||||
_converse.resizing.chatbox.width,
|
|
||||||
_converse.resizing.chatbox.model.get('default_width')
|
|
||||||
);
|
|
||||||
if (_converse.api.connection.connected()) {
|
|
||||||
_converse.resizing.chatbox.model.save({'height': height});
|
|
||||||
_converse.resizing.chatbox.model.save({'width': width});
|
|
||||||
} else {
|
|
||||||
_converse.resizing.chatbox.model.set({'height': height});
|
|
||||||
_converse.resizing.chatbox.model.set({'width': width});
|
|
||||||
}
|
|
||||||
_converse.resizing = null;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function unregisterGlobalEventHandlers () {
|
||||||
|
document.removeEventListener('mousemove', onMouseMove);
|
||||||
|
document.removeEventListener('mouseup', onMouseUp);
|
||||||
|
}
|
||||||
|
|
||||||
_converse.api.listen.on('registeredGlobalEventHandlers', registerGlobalEventHandlers);
|
_converse.api.listen.on('registeredGlobalEventHandlers', registerGlobalEventHandlers);
|
||||||
|
_converse.api.listen.on('unregisteredGlobalEventHandlers', unregisterGlobalEventHandlers);
|
||||||
_converse.api.listen.on('beforeShowingChatView', view => view.initDragResize().setDimensions());
|
_converse.api.listen.on('beforeShowingChatView', view => view.initDragResize().setDimensions());
|
||||||
/************************ END Event Handlers ************************/
|
/************************ END Event Handlers ************************/
|
||||||
}
|
}
|
||||||
|
@ -836,7 +836,7 @@ async function finishInitialization () {
|
|||||||
await initStorage();
|
await initStorage();
|
||||||
initClientConfig();
|
initClientConfig();
|
||||||
initPlugins();
|
initPlugins();
|
||||||
_converse.registerGlobalEventHandlers();
|
registerGlobalEventHandlers();
|
||||||
|
|
||||||
if (!Backbone.History.started) {
|
if (!Backbone.History.started) {
|
||||||
Backbone.history.start();
|
Backbone.history.start();
|
||||||
@ -927,6 +927,21 @@ async function getLoginCredentialsFromBrowser () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function registerGlobalEventHandlers () {
|
||||||
|
document.addEventListener("visibilitychange", _converse.saveWindowState);
|
||||||
|
_converse.saveWindowState({'type': document.hidden ? "blur" : "focus"}); // Set initial state
|
||||||
|
/**
|
||||||
|
* Called once Converse has registered its global event handlers
|
||||||
|
* (for events such as window resize or unload).
|
||||||
|
* Plugins can listen to this event as cue to register their own
|
||||||
|
* global event handlers.
|
||||||
|
* @event _converse#registeredGlobalEventHandlers
|
||||||
|
* @example _converse.api.listen.on('registeredGlobalEventHandlers', () => { ... });
|
||||||
|
*/
|
||||||
|
_converse.api.trigger('registeredGlobalEventHandlers');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function unregisterGlobalEventHandlers () {
|
function unregisterGlobalEventHandlers () {
|
||||||
document.removeEventListener("visibilitychange", _converse.saveWindowState);
|
document.removeEventListener("visibilitychange", _converse.saveWindowState);
|
||||||
_converse.api.trigger('unregisteredGlobalEventHandlers');
|
_converse.api.trigger('unregisteredGlobalEventHandlers');
|
||||||
@ -1174,20 +1189,6 @@ _converse.initialize = async function (settings, callback) {
|
|||||||
_converse.api.trigger('windowStateChanged', {state});
|
_converse.api.trigger('windowStateChanged', {state});
|
||||||
};
|
};
|
||||||
|
|
||||||
this.registerGlobalEventHandlers = function () {
|
|
||||||
document.addEventListener("visibilitychange", _converse.saveWindowState);
|
|
||||||
_converse.saveWindowState({'type': document.hidden ? "blur" : "focus"}); // Set initial state
|
|
||||||
/**
|
|
||||||
* Called once Converse has registered its global event handlers
|
|
||||||
* (for events such as window resize or unload).
|
|
||||||
* Plugins can listen to this event as cue to register their own
|
|
||||||
* global event handlers.
|
|
||||||
* @event _converse#registeredGlobalEventHandlers
|
|
||||||
* @example _converse.api.listen.on('registeredGlobalEventHandlers', () => { ... });
|
|
||||||
*/
|
|
||||||
_converse.api.trigger('registeredGlobalEventHandlers');
|
|
||||||
};
|
|
||||||
|
|
||||||
this.bindResource = async function () {
|
this.bindResource = async function () {
|
||||||
/**
|
/**
|
||||||
* Synchronous event triggered before we send an IQ to bind the user's
|
* Synchronous event triggered before we send an IQ to bind the user's
|
||||||
|
Loading…
Reference in New Issue
Block a user