
Estoy creando un proyecto de pantalla táctil en Fedora 23 (usando GNOME 3.18.2) que requiere una ventana de Firefox (o Chrome) en pantalla completa que el usuario no puede cerrar usando la pantalla táctil.
Sin embargo, nos dimos cuenta de que hay un gesto incorporado como parte de GNOME que abre el menú Actividades cuando deslizas el dedo hacia la derecha, comenzando en el borde izquierdo de la pantalla. Esto sucede incluso cuando nuestra ventana de Firefox o Chrome está en pantalla completa/en modo quiosco.
Ha habido muchas sugerencias en Internet sobre cómo desactivar los gestos multitáctiles en GNOME, pero no he visto una manera de desactivar el gesto de deslizar hacia la izquierda.
¿Hay alguna manera de hacer esto en Fedora?
EDITAR:Mi jefe tiene una pregunta relacionada que pidió que se agregara a la publicación:
"Estamos intentando ejecutar Firefox en modo "quiosco", pero notamos que hay una "función" en fedora gnome-shell 3.13.91 que permite a los usuarios arrastrar desde el lado izquierdo de la pantalla y abrir el tablero. -- invalidando el quiosco.
Creo que el código para esta función se encuentra en el código de gnome-shell.https://github.com/GNOME/gnome-shellen los archivos /js/ui/edgeDragAction.js
y js/ui/viewSelector.js
... pero podría estar completamente equivocado.
Creo que la sensibilidad al arrastre del borde está configurada /js/ui/edgeDragAction.js
(consulte el código a continuación)
Y la acción se agrega a js/ui/viewSelector.js
(Ver código a continuación)
¿Cuál es el mejor método recomendado para desactivar esto? ¿Escribir nuestra propia extensión Gnome? ¿Podemos anular estos métodos o cambiar los umbrales fácilmente?
Por ejemplo:
const EDGE_THRESHOLD = 20; <- change to 0
const DRAG_DISTANCE = 80; <- change to 1000
EDITAR 2:Con la ayuda de Florian Müllner, escribimos una extensión de Gnome con el siguiente código Javascript y parece haber solucionado nuestro problema:
/*
* Disable all of the touchscreen gestures.
*/
function enable() {
global.stage.get_actions().forEach(a => a.enabled = false);
}
/*
* Re-enable the touchscreen gestures.
*/
function disable() {
global.stage.get_actions().forEach(a => a.enabled = true);
}