]> git.lyx.org Git - features.git/commitdiff
Tentative fix for the inset problems on Mac (#12418, maybe #12820, #12279)
authorJuergen Spitzmueller <spitz@lyx.org>
Mon, 21 Aug 2023 17:20:06 +0000 (19:20 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Mon, 21 Aug 2023 17:20:06 +0000 (19:20 +0200)
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

index acd8ab2cf24a11b8a28e8103d066a6fb32e5da51..05c6250a350c0a9ba71c131a5c126ab64fd85a88 100644 (file)
@@ -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