Bug 163121 - UNO command to remove mouse-as-pen markings (all and per slide)
Summary: UNO command to remove mouse-as-pen markings (all and per slide)
Status: UNCONFIRMED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Impress (show other bugs)
Version:
(earliest affected)
24.8.1.2 release
Hardware: All All
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: UNO-Command-New annotation(pen)
  Show dependency treegraph
 
Reported: 2024-09-24 09:41 UTC by Aidar
Modified: 2024-09-26 09:17 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
Try to easily select and delete just the fresh PEN marking that is seemingly buried beneath other objects in multi-layered slide (15.47 KB, application/vnd.oasis.opendocument.presentation)
2024-09-24 09:41 UTC, Aidar
Details
Small contiguous Mouse pointer as PEN drawing is not a single artifact, but contains 400 distinct objects (112.81 KB, image/png)
2024-09-24 16:32 UTC, Aidar
Details
Presentation created at Google Docs, downloaded as ODP Document, then added Mouse pointer as a PEN drawing using LibreOffice Impress 24.8.1.2, resulted in 70+ objects (23.52 KB, application/vnd.oasis.opendocument.presentation)
2024-09-24 17:53 UTC, Aidar
Details
Blank presentation created locally in using LibreOffice Impress 24.8.1.2, added Mouse pointer as a PEN drawing during local Slide Show, resulted in 70+ objects (16.73 KB, application/vnd.oasis.opendocument.presentation)
2024-09-24 17:55 UTC, Aidar
Details
Context menu does not show up upon 1st right-click. Instead, Cut-Copy-Paste shows up (35.53 KB, image/png)
2024-09-24 21:03 UTC, Aidar
Details
Proper context menu shows up upon 2nd right-click (35.26 KB, image/png)
2024-09-24 21:04 UTC, Aidar
Details
screencast (12.85 MB, video/mp4)
2024-09-24 22:51 UTC, Regina Henschel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Aidar 2024-09-24 09:41:48 UTC
Created attachment 196645 [details]
Try to easily select and delete just the fresh PEN marking that is seemingly buried beneath other objects in multi-layered slide

As described in Bug 122274: “Annotating slide with INK using PEN cursor mode during edit session of file makes INK permanent” (https://bugs.documentfoundation.org/show_bug.cgi?id=122274).

The workaround “If you do not want that, do not check this option, but use the "mouse as pen" option which is available from context menu in running presentation” (https://bugs.documentfoundation.org/show_bug.cgi?id=122274#c8, https://ask.libreoffice.org/t/cannot-erase-pen-ink-from-slides/47502/7) does not seem to work in LibreOffice Impress 24.8.1.2, because right-clicking the presentation running Slide Show in Fullscreen mode on Windows 11 x64 exits the Fullscreen mode, which interferes with presentation flow.

The solution could have been simple: manually delete all unnecessary PEN markings after the end of the presentation. No big deal.

The problem is that in complex presentation, objects (backgrounds) are layered on top of each other to achieve the perfect composition on a slide. Unfortunately, LibreOffice Impress 24.8.1.2 does not seem to save PEN marking as the foremost front layer. 

Hence, it is difficult to select and delete PEN markings, without having to delete those preexisting slide objects that somehow ended up seemingly on top of the PEN markings.

One can reproduce the issue with the sample presentation from Bug 122274 - “Annotating slide with INK using PEN cursor mode during edit session of file makes INK permanent” (https://bugs.documentfoundation.org/show_bug.cgi?id=122274), re-attached to this bug. Try to easily select and delete the PEN marking, that is seemingly buried beneath other objects. When all other objects are indeed deleted, and the PEN marking is the only thing that remains on slide, it is very easy to finally select and delete it. The goal, however, is to select just the temporary PEN markings that accidentally ended up saved in the presentation and delete them.

--

1) Is it possible to create a practically usable, convenient way to get rid of all PEN markings accidentally saved in the presentation?

Perhaps by making PEN markings always the foremost front layer on top of other, pre-exisiting objects on the slide, when the PEN markings are in fact the last objects that has been put on the slide.

As of LibreOffice Impress 24.8.1.2, it seems to be almost as difficult to manually get rid of PEN markings in a complex multi-layered slide as it is to clear permanent marker accidentally used on a physical whiteboard.

At the same time, pressing “e” on keyboard during the Slide Show would temporarily clear the slide from permanently saved (after previous Slide Show) PEN markers, so LibreOffice Impress 24.8.1.2 already has the code that does exactly what is needed.  Perhaps, creating a similar command (“Clear all PEN markings”) when the presentation is opened in Edit mode will do.

--

2) Would it make sense to add a toggle that makes “Mouse pointer as pen” in “Slide Show Settings” either permanent (savable) or temporary?

Some would like to save their PEN markings made during the presentations to illustrate some point, then share the modified presentation with listeners. In other cases PEN markings are always temporary, only ruin the slides when accidentally saved, along with useful corrections to some other slides, during post-presentation work.

Thank you!
Comment 1 Buovjaga 2024-09-24 10:42:44 UTC
(In reply to Aidar from comment #0)
> The solution could have been simple: manually delete all unnecessary PEN
> markings after the end of the presentation. No big deal.
> 
> The problem is that in complex presentation, objects (backgrounds) are
> layered on top of each other to achieve the perfect composition on a slide.
> Unfortunately, LibreOffice Impress 24.8.1.2 does not seem to save PEN
> marking as the foremost front layer. 

You can use the Navigator panel in the Sidebar to easily select any shape. Recently Writer's Navigator acquired the ability to delete all elements of a certain content type: d5143c058bfdc0f5674c3e0a88fae2f9cbe28a0a Impress and Draw don't have this yet.

In any case, there should only be one issue per report, so let's make this about the toggle proposal.

> 2) Would it make sense to add a toggle that makes “Mouse pointer as pen” in
> “Slide Show Settings” either permanent (savable) or temporary?
> 
> Some would like to save their PEN markings made during the presentations to
> illustrate some point, then share the modified presentation with listeners.
> In other cases PEN markings are always temporary, only ruin the slides when
> accidentally saved, along with useful corrections to some other slides,
> during post-presentation work.

I feel this could be dangerous as it could cause accidental data loss. Let's loop UX into this.
Comment 2 Aidar 2024-09-24 16:31:25 UTC
@Bouvjaga, thank you for the super useful tip regarding the “Navigator”, it saved the day!

Indeed, a toggle that “protects” presentations from permanent PEN markings, frees a user from this issue would be a perfect solution.

Using the “Navigator” tool that you recommended, one discovers that small contiguous "Mouse pointer as pen" drawing is not a single artifact, but contains 400 distinct objects. Could be thousands in bigger PEN drawings (screenshot attached).
Indeed, "Navigator" seems like the perfect way to surgically choose them all, to delete an unnecessary, accidentally saved PEN drawing from a complex presentation.

From UX perspective, for technically unsavvy users, perhaps, an easier, specialized way should exist specifically for PEN presentation drawings, maybe working on top of forthcoming Navigator’s ability to delete all elements of certain content type that you mentioned.

A naturally ephemeral, imprecise, temporary PEN mouse drawing, it seems, should not be so sticky, one click away from being almost unremovable from the presentation, with sheer number of objects, unless a technical tool such as object Navigator is employed.

Looking forward to the new Navigator feature that already exists in the LibreOffice Writer that would enable to “get rid of all PEN markers” without carefully going through all consecutive relevant objects in Navigator, selecting hundreds of them while watching the selection on WYSIWYG slide, to ensure no preexisting objects get deleted with temporary (accidentally saved) PEN markers.
Comment 3 Aidar 2024-09-24 16:32:32 UTC
Created attachment 196657 [details]
Small contiguous Mouse pointer as PEN drawing is not a single artifact, but contains 400 distinct objects
Comment 4 Regina Henschel 2024-09-24 17:08:59 UTC
(In reply to Aidar from comment #3)
> Created attachment 196657 [details]
> Small contiguous Mouse pointer as PEN drawing is not a single artifact, but
> contains 400 distinct objects

Is it an old presentation or do you use an old LO version? With a new presentation made in LO 24.2 or 24.8 you should not get so many distinct objects, see bug 112687. A continues drawing should result in one object. Only when you release mouse button a new drawing should start.
Comment 5 Aidar 2024-09-24 17:50:48 UTC
(In reply to Regina Henschel from comment #4)
> 
> Is it an old presentation or do you use an old LO version? With a new
> presentation made in LO 24.2 or 24.8 you should not get so many distinct
> objects, see bug 112687. A continues drawing should result in one object.
> Only when you release mouse button a new drawing should start.

I only used the latest LibreOffice Impress 24.8.1.2 while on this case.

The presentation with 400 objects per short PEN line was originally downloaded from https://docs.google.com/presentation as “ODP document”.

Having received your reply, I have just created two new presentations (attached):
- “Google Docs to LibreOffice Impress 24.8.1.2.odp”
- “LibreOffice Impress 24.8.1.2 new presentation entirely offline.odp”

As names imply, the first has been created at https://docs.google.com/presentation, then downloaded as “ODP document”. The second was created offline using LibreOffice Impress 24.8.1.2.

In both cases a short line was drawn by “Mouse pointer as pen” during Slide Show with LibreOffice Impress 24.8.1.2 locally on Windows 11 x64, then saved. Mouse button was released only once, at the end of the line.

In both cases 70+ objects were created.

So it is a new blank presentation created with the latest LibreOffice Impress 24.8.1.2 where the issue seems to be reproducing.
Comment 6 Aidar 2024-09-24 17:53:11 UTC
Created attachment 196658 [details]
Presentation created at Google Docs, downloaded as ODP Document, then added Mouse pointer as a PEN drawing using LibreOffice Impress 24.8.1.2, resulted in 70+ objects
Comment 7 Aidar 2024-09-24 17:55:30 UTC
Created attachment 196659 [details]
Blank presentation created locally in using LibreOffice Impress 24.8.1.2, added Mouse pointer as a PEN drawing during local Slide Show, resulted in 70+ objects
Comment 8 Regina Henschel 2024-09-24 18:49:18 UTC
(In reply to Aidar from comment #7)
> Created attachment 196659 [details]
> Blank presentation created locally in using LibreOffice Impress 24.8.1.2,
> added Mouse pointer as a PEN drawing during local Slide Show, resulted in
> 70+ objects

Enable Mouse pointer as PEN in the Slideshow settings _before_ you start the slide show. Do you still get such huge number of objects then?


To remove all annotations after being back from show mode, you can try this macro:

sub EraseAllMouseAsPenAnnotations
dim oDocument as object: oDocument = ThisComponent
dim oLayerManager as object: oLayerManager = oDocument.LayerManager
do while oLayerManager.hasByName("DrawnInSlideshow")
	oLayerManager.remove(oLayerManager.getByname("DrawnInSlideshow"))
loop
end sub

Make a copy of the file, open the copy, run the macro and save the document. If you need help on how to use the macro, please ask on https://ask.libreoffice.org/c/english/5. When you use @Regina there, I'll be notified and can give you a step-by-step description.
Comment 9 Aidar 2024-09-24 21:02:51 UTC
(In reply to Regina Henschel from comment #8)
> 
> Enable Mouse pointer as PEN in the Slideshow settings _before_ you start the
> slide show. Do you still get such huge number of objects then?

@Regina, thank you so much for your kind offer and the relevant macros! 

I will be using https://ask.libreoffice.org/c/english/5 for macros-related inquiries then. 

On the first glance, if there are no “Mouse as a PEN” markings in the new presentation, the macros starts, oLayerManager.hasByName("DrawnInSlideshow") condition evaluates to false, the macros ends. 

On the other hand, if there are “Mouse as a PEN” markings, oLayerManager.hasByName("DrawnInSlideshow") seems to be always true, regardless of how many times the loop executes. Laptop CPU is at about 12,5% (which means one of its cores is at 100% serving the loop), fan becomes noisy, macros has to be stopped manually after few minutes.

It seems to be more efficient though to try to address the underlying cause, leaving finding out why LibreOffice Impress 24.8.1.2 does not obey macros’ instructions to clear out all the sticky traces of “Mouse as a PEN” markings to a later stage.

As for “Mouse pointer as PEN”, my understanding is that there are two places where it can be enabled:

(1) Upper Menu “Slide Show” ->  “Slide Show Settings” -> “Mouse pointer as PEN”
I always exclusively have been using the Upper Menu.

(2) Right-click on the running Slide Show (Context Menu).
I never use this one, because for some reason context menu does not show up upon 1st right-click. Instead, greyed out Cut-Copy-Paste shows up, as shown on attached screenshot. Sometimes, Fullscreen exits upon right-click to show greyed out Cut-Copy-Paste. Proper context menu shows up upon 2nd right-click.

So, to answer your question, when I reproduce the problem, naturally, Enable Mouse pointer as PEN in the Slideshow settings is always enabled _before_ I start the slide show. That is the only way I use it, and it consistently yields such a huge number of objects.
Comment 10 Aidar 2024-09-24 21:03:35 UTC
Created attachment 196664 [details]
Context menu does not show up upon 1st right-click. Instead, Cut-Copy-Paste shows up
Comment 11 Aidar 2024-09-24 21:04:01 UTC
Created attachment 196665 [details]
Proper context menu shows up upon 2nd right-click
Comment 12 Regina Henschel 2024-09-24 22:51:06 UTC
Created attachment 196667 [details]
screencast

Attached is a screen-cast. You can see, that for the line in the slideshow only one shape is generated. So I wonder what is different on your side.

I have used Version: 24.8.0.3 (X86_64) / LibreOffice Community
Build ID: 0bdf1299c94fe897b119f97f3c613e9dca6be583
CPU threads: 32; OS: Windows 11 X86_64 (10.0 build 22631); UI render: Skia/Vulkan; VCL: win
Locale: de-DE (de_DE); UI: en-US
Calc: threaded
Comment 13 Buovjaga 2024-09-25 05:14:09 UTC
(In reply to Aidar from comment #10)
> Created attachment 196664 [details]
> Context menu does not show up upon 1st right-click. Instead, Cut-Copy-Paste
> shows up

This is reported as bug 163124.
Comment 14 Heiko Tietze 2024-09-25 08:46:17 UTC
I struggle to understand the issue now. Is it the toggle to make the “Mouse pointer as pen” permanent? This would be a solution for what use case exactly? And if we talk about too many objects done with the pen where you click each item and press delete, why not group it (could be done automatically)?

So let's please start again with the actual use case (with a short description and no attachments *g*).
Comment 15 Buovjaga 2024-09-25 09:56:38 UTC
(In reply to Heiko Tietze from comment #14)
> I struggle to understand the issue now. Is it the toggle to make the “Mouse
> pointer as pen” permanent? This would be a solution for what use case
> exactly? And if we talk about too many objects done with the pen where you
> click each item and press delete, why not group it (could be done
> automatically)?
> 
> So let's please start again with the actual use case (with a short
> description and no attachments *g*).

Currently the markings *are* permanent. Aidar is asking for an option to make them temporary, which I think is a risk in case of accidental activation or forgetfulness on the part of users.
Comment 16 Regina Henschel 2024-09-25 12:38:25 UTC
The annotations are turned to shapes in method SlideshowImpl::endPresentation() by call of registerUserPaintPolygons.
https://opengrok.libreoffice.org/xref/core/sd/source/ui/slideshow/slideshowimpl.cxx?r=032cf092#1602

There maPresSettings.mbMouseAsPen is evaluated and creating shapes is only done if this setting is true. If the slideshow settings had an additional flag "Keep annotations after presentation has finished", it could be evaluated there. The struct PresentationSettings itself is in https://opengrok.libreoffice.org/xref/core/sd/inc/drawdoc.hxx?r=032cf092#98
Comment 17 Aidar 2024-09-25 16:06:09 UTC
@Buovjaga, thank you for reproducing & registering Bug 163124 – “Context menu for Mouse pointer as pen broken” with such an incredible speed!

---

@Heiko, thank you for soliciting the use case, here you go:

One reads the same presentation (same file) online to many different customers. During the speech and Q&A, one uses incredibly useful “Mouse pointer as pen” to draw attention to different parts of slides.
When the presentation is over, based on customer’s feedback, one can rearrange/change things, rephrase statements, correct misprints, add new notes. Then click Save.
Unfortunately, due to “Mouse pointer as pen” permanence, some slides in the presentation may end up riddled with unnecessary PEN scribbles (that make it unusable for the next customer), along with some useful abovementioned changes.

How does one cleanse the presentation from the unnecessary PEN scribbles that were accidentally saved?

Is the share of users that likewise treat PEN scribbles as something temporary sizable enough to treat this as a special case worth addressing?

---

The proposed solution with toggle would address the issue, because “unsavable” temporary PEN scribbles would never end up saved in the presentation.

If there was a (optional) button that would cleanse the presentation from “Mouse pointer as pen” scribbles (in one transaction, subject to standard Undo/Redo), even if those scribbles had already been saved, that would also address the problem. Though one would have to ensure that it is routinely clicked, so that each new customer gets “fresh” presentation.

---

Perhaps, a great workaround for this use case would be ZoomIt utility by Mark Russinovich (https://learn.microsoft.com/en-us/sysinternals/downloads/zoomit). Since it is a separate onscreen drawing tool, its mouse drawings could never get saved in the presentation. One has a choice:
- ZoomIt utility for temporary mouse drawings 
- “Mouse pointer as pen” for permanent drawings

That would satisfy @Buovjaga’s concern about those who’d rather their PEN drawings saved.

---

@Regina, thank you for the screencast that demonstrates perfect “Mouse pointer as pen” behavior. I compared the values in Slide Show Settings to mine and found the culprit!

“Presentation display” is grayed out on your screencast, which likely means that you have one (big) monitor.

I have three monitors: laptop screen and two external (with different resolutions, if that is relevant). 

When I set “Presentation display” to “All displays”, Impress behaves perfectly, with one new object (Polyline with 15 corners) per line, as in your screencast.

When I set “Presentation display” to any single display, tens of different objects are created per “Mouse pointer as pen” line.
Comment 18 Regina Henschel 2024-09-25 16:46:15 UTC
A different approach could be to make mouse-as-pen drawings always available after the slideshow ends and provide new additional commands "Erase mouse-as-pen drawings from current slide" and "Erase mouse-as-pen drawings from all slides".
Comment 19 Aidar 2024-09-25 17:07:05 UTC
(In reply to Regina Henschel from comment #18)
> A different approach could be to make mouse-as-pen drawings always available
> after the slideshow ends and provide new additional commands "Erase
> mouse-as-pen drawings from current slide" and "Erase mouse-as-pen drawings
> from all slides".

Looks perfect to me.

---

(In reply to Aidar from comment #17)
> When I set “Presentation display” to any single display, tens of different
> objects are created per “Mouse pointer as pen” line.

Upon further experiments, it seems it is not multiple monitors per se that causes this, but rather “Presenter console” that can only be shown when there are multiple monitors in place.

When “Presenter console” is “Disabled”, Impress behaves perfectly, with one new object (Polyline with 15 corners) per PEN line.

When “Presenter console” is “Fullscreen” or “Windowed”, the problem reproduces, tens of different objects are created per PEN line.

One would guess that since “Presenter console” has a small mirror image of what is happening on main “Presenter display”, including “Mouse pointer as pen” drawings in real time, perhaps, “Presenter console” wrestles away control/focus from “Presenter display”, thereby interrupting/interfering with LibreOffice Impress ability to focus on saving contiguous PEN line as a singe object.
Comment 20 Heiko Tietze 2024-09-26 08:22:47 UTC Comment hidden (me-too)
Comment 21 Buovjaga 2024-09-26 09:16:39 UTC
(In reply to Heiko Tietze from comment #20)
> (In reply to Regina Henschel from comment #18)
> > A different approach could be to make mouse-as-pen drawings always available
> > after the slideshow ends and provide new additional commands "Erase
> > mouse-as-pen drawings from current slide" and "Erase mouse-as-pen drawings
> > from all slides".
> 
> Sounds good to me too.

But why add a new command when Jim's delete all in Navigator could be implemented in Impress Navigator as well?