Bug 120965 - Phantom control point line in Bézier curve
Summary: Phantom control point line in Bézier curve
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Draw (show other bugs)
Version:
(earliest affected)
6.2.0.0.alpha1+
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:6.2.0 target:6.4.0 target:6.3....
Keywords: bibisected, bisected, regression
Depends on:
Blocks:
 
Reported: 2018-10-27 12:27 UTC by Regina Henschel
Modified: 2019-08-23 18:38 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
screenshot of not existing control point (11.34 KB, image/png)
2018-10-27 12:27 UTC, Regina Henschel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Regina Henschel 2018-10-27 12:27:11 UTC
Created attachment 146068 [details]
screenshot of not existing control point

Start Draw and go to options and  enable to show all control points for Bézier curves. Draw a simple Bézier curve with two points. Switch on point mode. Drag the control point from the end point. Notice, that there is a third control point at the top-left corner. If you hover it with the mouse, the mouse cursor shows the control point pointer. Try to drag it. Sometimes LO crashes then.

That control point is totally wrong. The curve does not have such control point.
Comment 1 Thorsten Behrens (allotropia) 2018-11-04 23:48:40 UTC
Confirmed. Assertion fires, with following stack:

#0  0x00002aaab26680b1 in Point::operator-=(Point const&) (this=0x7fffffff0180, rPoint=Point = {...}) at include/tools/gen.hxx:125
#1  0x00002aaab27b2e05 in ImpPathForDragAndCreate::getSpecialDragComment(SdrDragStat const&) const (this=0x7fffffff04c0, rDrag=...) at libo/svx/source/svdraw/svdopath.cxx:1033
#2  0x00002aaab27b8b6e in SdrPathObj::getSpecialDragComment(SdrDragStat const&) const (this=0x4fabbb0, rDrag=...) at libo/svx/source/svdraw/svdopath.cxx:2111
#3  0x00002aaab265b910 in SdrDragObjOwn::TakeSdrDragComment(rtl::OUString&) const (this=0x4ebbdf0, rStr="nothing") at libo/svx/source/svdraw/svddrgmt.cxx:1212
#4  0x00002aaab2853a08 in SdrView::GetStatusText() (this=0x2514c30) at libo/svx/source/svdraw/svdview.cxx:1194
#5  0x00002aaadcda5237 in sd::DrawViewShell::ShowMousePosInfo(tools::Rectangle const&, sd::Window const*) (this=0x3a12a50, rRect=..., pWin=0x3a12f20) at libo/sd/source/ui/view/drviews4.cxx:859
#6  0x00002aaadcda331c in sd::DrawViewShell::MouseMove(MouseEvent const&, sd::Window*) (this=0x3a12a50, rMEvt=..., pWin=0x3a12f20) at libo/sd/source/ui/view/drviews4.cxx:384
#7  0x00002aaadce16829 in sd::Window::MouseMove(MouseEvent const&) (this=0x3a12f20, rMEvt=...) at libo/sd/source/ui/view/sdwindow.cxx:257
#8  0x00002aaab5a4d9d6 in ImplHandleMouseEvent(VclPtr<vcl::Window> const&, MouseNotifyEvent, bool, long, long, unsigned long, unsigned short, MouseEventModifiers) (xWindow=..., nSVEvent=MouseNotifyEvent::MOUSEMOVE, bMouseLeave=false, nX=477, nY=75, nMsgTime=228712849, nCode=1, nMode=MouseEventModifiers::DRAGMOVE) at libo/vcl/source/window/winproc.cxx:685
#9  0x00002aaab5a520e0 in ImplHandleSalMouseMove(vcl::Window*, SalMouseEvent const*) (pWindow=0x3970f10, pEvent=0x7fffffff1460) at libo/vcl/source/window/winproc.cxx:1980
#10 0x00002aaab5a52fd5 in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) (_pWindow=0x3970f10, nEvent=SalEvent::MouseMove, pEvent=0x7fffffff1460) at libo/vcl/source/window/winproc.cxx:2299
#11 0x00002aaac7cdbc1f in SalFrame::CallCallback(SalEvent, void const*) const (this=0x28b2360, nEvent=SalEvent::MouseMove, pEvent=0x7fffffff1460) at libo/vcl/inc/salframe.hxx:280
#12 0x00002aaac7cdb0cf in GtkSalFrame::CallCallbackExc(SalEvent, void const*) const (this=0x28b2360, nEvent=SalEvent::MouseMove, pEvent=0x7fffffff1460) at libo/vcl/unx/gtk3/gtk3gtkframe.cxx:4492
#13 0x00002aaac7cd6dd9 in GtkSalFrame::signalMotion(_GtkWidget*, _GdkEventMotion*, void*) (pEvent=0x4fab210, frame=0x28b2360) at libo/vcl/unx/gtk3/gtk3gtkframe.cxx:2937
Comment 2 Thorsten Behrens (allotropia) 2018-11-05 01:01:55 UTC
Seems the code to look into is SdrPathObj::AddToPlusHdlList()
Comment 3 Regina Henschel 2018-11-06 18:25:55 UTC
It was OK in Version: 6.2.0.0.alpha0+ (x64)
Build ID: efe119aaa50e9f532b3fac1ef153469c80f24b80
CPU threads: 8; OS: Windows 10.0; UI render: GL; 
TinderBox: Win-x86_64@42, Branch:master, Time: 2018-09-10_01:36:26
Locale: de-DE (en_US); Calc: CL

It fails in Version: 6.2.0.0.alpha0+ (x64)
Build ID: 89a60912bba7ffd6f65ea99f4664f343c5025c95
CPU threads: 8; OS: Windows 10.0; UI render: GL; 
TinderBox: Win-x86_64@42, Branch:master, Time: 2018-10-01_03:18:33
Locale: de-DE (en_US); Calc: CL
Comment 4 Aron Budea 2018-11-06 23:31:48 UTC
This deteriorated in two steps, first the control point wasn't shown anymore, then later the buggy control point appeared along with the original. Bibisected both using repo bibisect-linux-64-6.2 . Adding Cc: to Noel Grandin, please take a look.

https://cgit.freedesktop.org/libreoffice/core/commit/?id=f74b888244fcefa7c03fa25db4d42c839ebbf642
author		Noel Grandin <noel.grandin@collabora.co.uk>	2018-09-20 14:23:13 +0200
committer	Noel Grandin <noel.grandin@collabora.co.uk>	2018-09-21 15:46:54 +0200

simplify PlusHdl logic


https://cgit.freedesktop.org/libreoffice/core/commit/?id=b4fc996520b47a6212661a9de3a1c72ccfc379a4
author		Noel Grandin <noel.grandin@collabora.co.uk>	2018-09-21 15:30:02 +0200
committer	Noel Grandin <noel.grandin@collabora.co.uk>	2018-09-25 13:57:36 +0200

loplugin:useuniqueptr in SdrHdlList
Comment 5 Commit Notification 2018-11-07 10:25:22 UTC
Noel Grandin committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/+/bdc97ababa5017422f5bcdb345969f6691fc818d%5E%21

tdf120965 Phantom control point line in Bézier curve

It will be available in 6.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 6 Regina Henschel 2018-11-07 13:59:27 UTC
Verified in Version: 6.2.0.0.alpha1+ (x64)
Build ID: 92b56816cd9b568b808cb880be920d26bc9e2693
CPU threads: 8; OS: Windows 10.0; UI render: GL; VCL: win; 
Locale: en-US (en_US); Calc: threaded

@Noel: I was going to assign it me, but you are much faster than I :)
Comment 7 Noel Grandin 2018-11-07 14:00:34 UTC
@Regina you are welcome to attempt to decipher the logic there and improve it, I have not enough context to understand what it is trying to do :-)
Comment 8 Regina Henschel 2018-11-07 16:45:01 UTC
@Noel: I have put my version to Gerrit https://gerrit.libreoffice.org/#/c/63036/ and add you as reviewer.
@Thorsten: Perhaps you can have a look too?
Comment 9 Commit Notification 2018-11-10 11:54:39 UTC
Regina Henschel committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/+/26001f4f84b0d921c8612d888856613735ba5314%5E%21

tdf120965 Simplify SdrPathObj::AddToHdlList()

It will be available in 6.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 10 Commit Notification 2019-08-21 18:51:42 UTC
Regina Henschel committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/+/59189f3e02acbdf4e5bbd35fc278252b30022f43%5E%21

tdf#126271 Revert "tdf120965 Simplify SdrPathObj::AddToHdlList()"

It will be available in 6.4.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 11 Commit Notification 2019-08-22 14:36:49 UTC
Regina Henschel committed a patch related to this issue.
It has been pushed to "libreoffice-6-3":

https://git.libreoffice.org/core/+/6f9e19c85ffc290e600084b33d9a929db28c144d%5E%21

tdf#126271 Revert "tdf120965 Simplify SdrPathObj::AddToHdlList()"

It will be available in 6.3.2.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 12 Commit Notification 2019-08-22 18:40:21 UTC
Regina Henschel committed a patch related to this issue.
It has been pushed to "libreoffice-6-2":

https://git.libreoffice.org/core/+/46c7341014870b4d2c9babd91c14dfed4422f93a%5E%21

tdf#126271 Revert "tdf120965 Simplify SdrPathObj::AddToHdlList()"

It will be available in 6.2.7.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 13 Commit Notification 2019-08-23 18:38:44 UTC
Regina Henschel committed a patch related to this issue.
It has been pushed to "libreoffice-6-3-1":

https://git.libreoffice.org/core/+/7bdaab829a4e17eabba0559cf9a4ac62bd7a6fbe%5E%21

tdf#126271 Revert "tdf120965 Simplify SdrPathObj::AddToHdlList()"

It will be available in 6.3.1.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.