From 101363352c1112335c9b4f0a456df966e4b4d755 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Mon, 21 Aug 2023 19:20:06 +0200 Subject: [PATCH] Tentative fix for the inset problems on Mac (#12418, maybe #12820, #12279) This is committed now in order to get testing from Mac users in the next prerelease. Subject to change or even reversion. --- src/insets/Inset.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/insets/Inset.cpp b/src/insets/Inset.cpp index acd8ab2cf2..05c6250a35 100644 --- a/src/insets/Inset.cpp +++ b/src/insets/Inset.cpp @@ -383,6 +383,22 @@ bool Inset::showInsetDialog(BufferView * bv) const void Inset::doDispatch(Cursor & cur, FuncRequest &cmd) { switch (cmd.action()) { + // FIXME: The LFUN_MOUSE_MOTION case is a potential fix for #12418, and maybe also + // #12820 and #12279. This needs to be tested in the pre-release. Also it might + // add slight regressions with inset selection (when selection starts on the button + // of an inset). + // After this has been tested (by Mac users primarily), this comment should be + // updated if the fix is kept or after it has been modified. + case LFUN_MOUSE_MOTION: + // Do not attempt to select while hovering the inset button only (#12418). + if (!cur.selection() && cmd.button() == mouse_button::button1 + && clickable(cur.bv(), cmd.x(), cmd.y())) { + cur.noScreenUpdate(); + cur.dispatched(); + } else + cur.undispatched(); + break; + case LFUN_MOUSE_RELEASE: // if the derived inset did not explicitly handle mouse_release, // we assume we request the settings dialog