The issue causing desktop icons at the bottom of the screen to be moved upwards and in some cases (sporadically) overlap other icons is caused by multiple setups of the desktop icon container in combination with a first too high top margin value setting the height of the desktop icon container. Futhermore, if a desktop icon container has been drawn it will not be redrawn with new margin values, see module libnautilus-private/nautilus-icon-container.c/redo_layout_internal.
In my case this issue occurs when a top margin value of 300 pixels appears (from Xlib XGetWindowProperty) and then is used to finally set the desktop icon container height. As the Unity panel is 24 pixels the the empty part in the lower part of the screen will be 300-24 = 276 pixels. So any icons in that lower empty area will then be moved upwards into the desktop icon container.
As the function redo_layout_internal today does not support redrawal of the desktop icon container one way is to filter "bad" margin values. As it only seems to be caused by a too high top margin value this can be done in the module src/nautilus-desktop-icon-view.c/icon_container_set_workarea.
The highest value to be passed is set to 49 in the following patch but can be reduced further down to max of panel height (top margin) for any sessions supported by ubuntu.
Furthermore, it might be included into the patch 02_additional_marge_for_unity.patch.
The issue causing desktop icons at the bottom of the screen to be moved upwards and in some cases (sporadically) overlap other icons is caused by multiple setups of the desktop icon container in combination with a first too high top margin value setting the height of the desktop icon container. Futhermore, if a desktop icon container has been drawn it will not be redrawn with new margin values, see module libnautilus- private/ nautilus- icon-container. c/redo_ layout_ internal.
In my case this issue occurs when a top margin value of 300 pixels appears (from Xlib XGetWindowProperty) and then is used to finally set the desktop icon container height. As the Unity panel is 24 pixels the the empty part in the lower part of the screen will be 300-24 = 276 pixels. So any icons in that lower empty area will then be moved upwards into the desktop icon container.
As the function redo_layout_ internal today does not support redrawal of the desktop icon container one way is to filter "bad" margin values. As it only seems to be caused by a too high top margin value this can be done in the module src/nautilus- desktop- icon-view. c/icon_ container_ set_workarea.
The highest value to be passed is set to 49 in the following patch but can be reduced further down to max of panel height (top margin) for any sessions supported by ubuntu.
Furthermore, it might be included into the patch 02_additional_ marge_for_ unity.patch.