openwebwork / webwork2

Course management front end for WeBWorK
http://webwork.maa.org/wiki/Main_Page
Other
146 stars 165 forks source link

Missplaced popup when showing correct answers in problem editor #2524

Closed somiaj closed 2 months ago

somiaj commented 2 months ago

When clicking 'Show Correct Answers" while testing problems in the problem editor, the feedback popup with the answer defaults to open, but gets put in the wrong place due to the time it takes MathJax to resize the math content, so the feedback button moves after the popup. Here is the result:

image

somiaj commented 2 months ago

Note closing and opening the popup puts it back into the right spot.

somiaj commented 2 months ago

I noticed I don't have this issue in chromium, and have also noticed some other issues with mathjax that also go away using chromium (if you see in this screenshot you'll see there is no padding on the right of the formula before the matrix brace, but it works in chromium or if I use the chtml render). So I suspect the issue is with firefox-esr version 115, which will hit the end of its life in the next month or so.

If no one else can reproduce these issues, or they go away when I upgrade firefox, I'll just close this as a firefox-esr 115 issue.

drgrice1 commented 2 months ago

I don't see this issue in Firefox 128.0.3 (not esr), nor in Google Chrome.

You could experiment with the timeout in pg/htdocs/js/Feedback.js on line 73. Try increasing the delay from 100 and see if that fixes it.

This is another one of those cases where the timeout is not the best solution. This may have nothing to do with Firefox or your version of it, but may be just a processing delay (perhaps your computer is a bit slower than mine!). If this is a persistent issue I will look into a better way of doing that. Perhaps working it into the MathJax promise.

drgrice1 commented 2 months ago

In fact, here is a better trial. Try changing line 17 of pg/htdocs/js/Feedback.js to

                MathJax.startup.promise = MathJax.startup.promise.then(() =>
                    MathJax.typesetPromise(['.popover-body']).then(() => feedbackPopover.update())
                );

and delete line 73. See if that works better.

somiaj commented 2 months ago

@drgrice1 that did fix the positioning issues with the popup in my testing so far, so would fix the original issue of placement of the popup.

Alex-Jordan commented 2 months ago

Fixed by #1098 and #1097.

somiaj commented 2 months ago

@drgrice1 I ran across another similar issue, but this time with MathQuill, so the popup completes before MathQuill answer boxes are done resizing. Probably due to my 'slow' machine, here are some screenshots.

image

The actual button feedback button is here

image

Not a big deal, but if there is an easy fix it would be nice.

somiaj commented 2 months ago

Note, there is very little MathJax in this problem, so the MathJax in this case finishes rendering before MathQuill does.