From 87e2bf0b2fb8ebfe56546eb59b27c9baa95c7d7f Mon Sep 17 00:00:00 2001 From: Michael Ochmann Date: Mon, 5 Feb 2024 16:18:19 +0100 Subject: [PATCH] improved "doubleclick to maximize" * no longer selecting text * no longer reacting to doubleclick on toolbar buttons --- src/ui/src/components/Ation.js | 2 +- src/ui/src/components/Toolbar.js | 25 ++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/ui/src/components/Ation.js b/src/ui/src/components/Ation.js index d0ca2a0..429a2cd 100644 --- a/src/ui/src/components/Ation.js +++ b/src/ui/src/components/Ation.js @@ -44,7 +44,7 @@ const Ation = () => { }); (async set => set(await window.api.appVersion()))(setVersion); //(async setFont => setFont(await window.appSettings.get("font", "Iosevka")))(setFont); - + }, [basePath, slide]); const openFile = () => { diff --git a/src/ui/src/components/Toolbar.js b/src/ui/src/components/Toolbar.js index 6b96f3f..07a5e1b 100644 --- a/src/ui/src/components/Toolbar.js +++ b/src/ui/src/components/Toolbar.js @@ -1,4 +1,4 @@ -import React, {useContext} from "react"; +import React, {useContext, useEffect, useRef} from "react"; import {Folder2Open, Cast, InfoCircle, XSquare, LayoutSplit} from "react-bootstrap-icons"; @@ -8,6 +8,7 @@ import Mode from "../models/Mode"; import {ReactComponent as Logo} from "../assets/images/logo_ation.svg"; const Toolbar = ({openFile, setShowTips, version, toggleEdit}) => { + const toolbar = useRef(); const {setMode, setSlide, slideCount} = useContext(SlideContext); const present = () => { @@ -16,12 +17,30 @@ const Toolbar = ({openFile, setShowTips, version, toggleEdit}) => { document.documentElement.requestFullscreen(); }; - const toggleMaximize = () => { + const toggleMaximize = event => { + if (event.target !== toolbar.current) + return; window.api.maximize(); + event.stopPropagation(); }; + // prevent text selection on doubleclick + useEffect(() => { + const tBar = toolbar.current; + const doubleClickListener = event => { + if (event.detail > 1) + event.preventDefault(); + }; + + tBar?.addEventListener("mousedown", doubleClickListener); + + return () => { + tBar?.removeEventListener("mousedown", doubleClickListener); + }; + }, [toolbar]); + return ( -