Bug 145604 - Dragging & dropping outline in navigator is off by one
Summary: Dragging & dropping outline in navigator is off by one
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
7.0.0.0.alpha0+
Hardware: All All
: medium normal
Assignee: Caolán McNamara
URL:
Whiteboard: target:7.4.0 target:7.3.0.0.beta2 tar...
Keywords: bibisectRequest, regression
Depends on:
Blocks:
 
Reported: 2021-11-09 16:09 UTC by David
Modified: 2021-12-07 16:39 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
Outline example (9.41 KB, application/octet-stream)
2021-11-09 16:09 UTC, David
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David 2021-11-09 16:09:17 UTC
Created attachment 176167 [details]
Outline example

When using the navigator, while in Navigation Content View, if you try to drag and drop an outline heading from one position to another position, the dropped entry actually ends up being one entry lower than where it was dropped. The entry needs to be dragged to one entry higher than where it is actually wanted in order for to be in the proper place. This behavior is a regression that began with version 7.0.x and continues with the latest 7.3 alpha. As an example of this, try rearranging the title headings in the attached document to their numerical order using the navigator window to drag-and-drop the outline headings.
Comment 1 psidiumcode 2021-11-17 18:13:17 UTC
Tried bisecting with mac64-7.0 repo, but LO crashes during the bisect. 
The crash happens after dragging an outline heading.

git bisect log:
# bad: [2578b8ec1a6c3c9436c372453e3761335951f74d] source 3870dd43e94c440a5094a57c47d3b7565658d73c
# good: [95c6b1ef0b0e185605bf6d62b85dbd84da8008ab] source 9bc848cf0d301aa57eabcffa101a1cf87bad6470
git bisect start 'master' 'oldest'
# good: [b61bbff6193e155faa3b0aa317cca1cd6a704c09] source 4b7b6993134a48c850608c758f7b7283bed27fec
git bisect good b61bbff6193e155faa3b0aa317cca1cd6a704c09
# good: [a7583dee202fa619b9bbac5e9de1633d42cf535a] source 11847cc5fd22c9b98fd9c2cf1389eee6e404a4fb
git bisect good a7583dee202fa619b9bbac5e9de1633d42cf535a
# bad: [b07e795e66470e6468f7e2260789e7795f986cd6] source 58c87f8261abf4f1528a43dc501e956cb9c1d2f2
git bisect bad b07e795e66470e6468f7e2260789e7795f986cd6
# skip: [3cbed8281178de41b57937d97ed7880210dad5ab] source b753515b0e6f24193d70dd64506df1b484e65423
git bisect skip 3cbed8281178de41b57937d97ed7880210dad5ab
# bad: [1ecf6caf5d8292b456fb886a4b838e3012053953] source 6bf3517d60272bdec878bb6dde92a47b45a3f866
git bisect bad 1ecf6caf5d8292b456fb886a4b838e3012053953
# skip: [00cd3e54b25f211a50d3033a99f0a975fa1e01c0] source 89b2fd604420d53b6d6ccc6e7656c3bcf282703d
git bisect skip 00cd3e54b25f211a50d3033a99f0a975fa1e01c0
# skip: [39a33c13900f56fb1c085c5d02aee534307e2d50] source 623d6cf06ccba392c1993a3b0ad271d508205e73
git bisect skip 39a33c13900f56fb1c085c5d02aee534307e2d50
# skip: [e65154217d9e0f5c9ad0acd42ee44d153935ac06] source a435887eaf747d9b17b3620884ac2ec06d63ac00
git bisect skip e65154217d9e0f5c9ad0acd42ee44d153935ac06
# skip: [0f98b2305cf70451c1d5f424b9432d384bb4cc67] source 42f1a7122745334974ad5de0e7277f584de13038
git bisect skip 0f98b2305cf70451c1d5f424b9432d384bb4cc67
# skip: [7d51dda57931a87dca06147bba7a0a96bdee8b19] source e3d130fbdf061da36b317a5b610eef4b4cc51732
git bisect skip 7d51dda57931a87dca06147bba7a0a96bdee8b19
# skip: [c226a2d3a078ca4a36c21411e649aab95f2471d6] source 4559ca1a9a276ed581e1799b3aa90fb084a3eb3f
git bisect skip c226a2d3a078ca4a36c21411e649aab95f2471d6
# skip: [49f2617af0fd5fbe872470061ada44d66aa40696] source f7ffda6d14ac67a37cb61ef0fff4ceef88632c3e
git bisect skip 49f2617af0fd5fbe872470061ada44d66aa40696
# skip: [c68608ceae523bee42a5f17ce1353cabc17f0253] source 3db13a8b12b36679bdd6cdb243633a0eb39bad38
git bisect skip c68608ceae523bee42a5f17ce1353cabc17f0253
# skip: [dfb2dfc094933b745fa3110d2f55bb548a772951] source 25468bba15a149edc1e53a7518070c64d4c967e9
git bisect skip dfb2dfc094933b745fa3110d2f55bb548a772951
# skip: [ff656f2d50450094a93484a1bcfe6377981bd3df] source 1ec7b4ae86a9fe666fc1510636c483d8980d04f6
git bisect skip ff656f2d50450094a93484a1bcfe6377981bd3df
# skip: [e53180f07a265a83dcc324500e04c5fa713a0880] source 2b3d0b943283ff0b4ce1de5a05efc338e467a7a1
git bisect skip e53180f07a265a83dcc324500e04c5fa713a0880
# skip: [6d43965cb8c94a71314a357ed3071250324f282d] source 10dba26804cc0c14f74069c26112e75dacf3865b
git bisect skip 6d43965cb8c94a71314a357ed3071250324f282d
# skip: [1725e5f2c193dc9e4e6bc83db0a9ac9f7fa36b8d] source 72d8f2961fd7f5670fe2564eeb3aa14a6eaf0d8d
git bisect skip 1725e5f2c193dc9e4e6bc83db0a9ac9f7fa36b8d
# skip: [fb39f9e380eb5a004b2f5dc129abaf5ea263dbef] source 1d23ff22c112f5b2bac23d9329a72c399007bf98
git bisect skip fb39f9e380eb5a004b2f5dc129abaf5ea263dbef
# skip: [39f89ff0ab442e63bda023e7777b2a706148fa1c] source 7a5b499dd25d7d1e077974053b52b72ee7f44ebc
git bisect skip 39f89ff0ab442e63bda023e7777b2a706148fa1c
# skip: [91a16e081a9019062909a57a392bec1efd1556f3] source 2c15856b0a7ea789844d8f37633bea57ebee72db
git bisect skip 91a16e081a9019062909a57a392bec1efd1556f3
# skip: [999de8902d98a217cd2982e73c512354c33b04cd] source 6b6359abb073b4eaf7cf0783e7d783e034ccadee
git bisect skip 999de8902d98a217cd2982e73c512354c33b04cd
# skip: [8f8205f90d8a61532113b694c833e81d991a9823] source a40455528c4ec2c079444f320a02d1946e1d8ac9
git bisect skip 8f8205f90d8a61532113b694c833e81d991a9823
# skip: [cbb17a195ff9251d46396fa721c8993a41c0002c] source 35a304c4918544d8978e4096f02b62063f1a0e4a
git bisect skip cbb17a195ff9251d46396fa721c8993a41c0002c
# skip: [ff4d4bc49e7cafd05043914d24a63d37e03fdcb1] source 2fe1ecae8a7937adffdf8f5e3bd9fe6f8b7de1e3
git bisect skip ff4d4bc49e7cafd05043914d24a63d37e03fdcb1
# skip: [1ee8b3bae0344a1e211889698e039a4f3bd540b1] source fcabb9a7263d4128ae934636b5a8eebc2a0217cc
git bisect skip 1ee8b3bae0344a1e211889698e039a4f3bd540b1
# skip: [ca9fa106fcfaa1f1809aa05b108a3ac076f1e648] source 9383baa32182215e071a58dbbb950531b513a47d
git bisect skip ca9fa106fcfaa1f1809aa05b108a3ac076f1e648
# skip: [ca9fa106fcfaa1f1809aa05b108a3ac076f1e648] source 9383baa32182215e071a58dbbb950531b513a47d
git bisect skip ca9fa106fcfaa1f1809aa05b108a3ac076f1e648
# skip: [f6d466d4d9908282beaa9aa44c2959d2b01a805c] source bc2f7800b110c14e1523ca993b323cfa58a892b4
git bisect skip f6d466d4d9908282beaa9aa44c2959d2b01a805c
Comment 2 David 2021-11-30 18:57:20 UTC
@john

Would this regression possibly have something to do with the work you have been doing on the Navigator?
Comment 3 David 2021-12-02 07:57:17 UTC
@jim

Would this regression possibly have something to do with the work you have been doing on the Navigator?
Comment 4 Jim Raykowski 2021-12-02 09:10:23 UTC
I bisect the change of behavior to commit e9fc6925985b6d6f389cce8b856968702aa2f7e2

Let's ask Caolán.
Comment 5 Caolán McNamara 2021-12-03 12:11:22 UTC
In these types of widgets when there isn't a tree, and just a flat list, like in tools, customize, menus, a single line over the entry that's dropped on works well to indicate the insertion point is between rows and will end up before the line being dropped on.

When its a tree where the element is dropped "on" a line and the idea of it becoming a child of the line has to be hinted at its not working out.

We could instead follow the mode used for the gtk case and for tree-mode change things to indicate the whole row, and keep things as they are for the list-mode case.
Comment 6 Commit Notification 2021-12-03 14:40:10 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/41f736f9bea66657bde2f41afe506e376fe8548e

tdf#145604 indicate the row as the target when dropping in a visual tree

It will be available in 7.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 7 Commit Notification 2021-12-03 15:56:03 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-7-3":

https://git.libreoffice.org/core/commit/d6b003da6d77471e5e17a9cb6a25172d6f52da2a

tdf#145604 indicate the row as the target when dropping in a visual tree

It will be available in 7.3.0.0.beta2.

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 8 Caolán McNamara 2021-12-06 11:29:57 UTC
that makes it look similar to how the gtk one does
Comment 9 Jim Raykowski 2021-12-06 17:45:50 UTC
verified fixed:

Version: 7.4.0.0.alpha0+ / LibreOffice Community
Build ID: 2934472ab888ebfe64a153984af2902fac63a7a0
CPU threads: 4; OS: Linux 5.4; UI render: default; VCL: x11
Locale: en-US (en_US.UTF-8); UI: en-US
Calc: threaded
Comment 10 Commit Notification 2021-12-07 16:24:03 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-7-2":

https://git.libreoffice.org/core/commit/6d685f7b1d600da749679853a4ba2fd9848f05c0

tdf#145604 indicate the row as the target when dropping in a visual tree

It will be available in 7.2.4.

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.