玉さん、ありがとうございます。
特定の解像度で起こるようです。
わざと指定を書き換えてもXサーバーが必ずしも指定どおりの解像度で動いてくれないので
再現は難しいですね。
コードを見ていて気づいたことがあります。
要は16ドットピッチのグリッドに乗せるのに四捨五入なのか切り捨て(切り上げ?)なのかということです。
問題が生じたハードで次を試してもらえないでしょうか。
http://shino.pos.to/linux/puppy/pup_eve ... _d-dupicon
ダウンロード、リネーム、実行属性を付けて
/sbin/pup_event_frontend_d と差し替えてXを再起動してください。
パッチも示します。
# diff -u pup_event_frontend_d-420JP pup_event_frontend_d
コード: 全て選択
--- pup_event_frontend_d-420JP 2009-05-23 08:57:56.000000000 +0900
+++ pup_event_frontend_d 2009-06-05 13:42:01.000000000 +0900
@@ -92,14 +92,14 @@
free_coord() {
#find a free place on desktop. v410 avoid exact overlapping icons...
COORDSGRID="`grep -o ' x="[0-9]*" y="[0-9]*" ' /root/Choices/ROX-Filer/PuppyPin | sed 's/[0-9]"/"/g'`"
+ COORD_Y=`expr $SCRN_Y - 64`
# Get the pinboard_grid_step value from the Options file. 23-Jun-09 y@s
PIN_GRID_STEP=`grep "pinboard_grid_step" $HOME/.config/rox.sourceforge.net/ROX-Filer/Options | sed -e "s/ *<[^>]*>//g"`
- #COORD_Y must be set to the multiple of pinboard_grid_step. 23-Jun-09 y@sa
- COORD_MAX_Y=`expr $SCRN_Y - 64`
- COORD_Y=0
- while [ ${COORD_Y} -lt ${COORD_MAX_Y} ];do
- COORD_Y=`expr ${COORD_Y} + ${PIN_GRID_STEP}`
- done
+ # 5Jun09 by Masaki Shinomiya : snap on the grid
+ if [ "$PIN_GRID_STEP" ] && [ $PIN_GRID_STEP -gt 0 ];then
+ PIN_GRID_STEP2=`expr $PIN_GRID_STEP / 2`
+ COORD_Y=`expr ¥( $COORD_Y + $PIN_GRID_STEP2 ¥) / $PIN_GRID_STEP '*' $PIN_GRID_STEP`
+ fi
COORD_X=32
MAX_X=`expr $SCRN_X - 96`
xPATTERN=" x=¥"${COORD_X}¥" y=¥"${COORD_Y}¥" "