OSDN Git Service

05:00-05:30の間に発生する現在時刻表示の不具合の修正
authorpeeweedee <peeweedee@users.sourceforge.jp>
Thu, 19 Dec 2013 06:23:43 +0000 (15:23 +0900)
committerpeeweedee <peeweedee@users.sourceforge.jp>
Thu, 19 Dec 2013 06:23:43 +0000 (15:23 +0900)
TinyBannavi/05_history.txt
TinyBannavi/src/tainavi/AbsPaperView.java

index 297f019..4825653 100644 (file)
 3.22.12β+1.5.12(2013-12-XX)\r
 ■変更点\r
  ・(新聞形式)番組枠内テキストの描画を、LineBreakMeasurerからdrawGlyphVectorに変更。それに伴い番組詳細の描画行数制限を廃止\r
+■バグ修正\r
+ ・(新聞形式)現在時刻表示、日跨りがおきたときに表示が05:00の座標へ移動しない問題を修正(>>649.)\r
+ ・(新聞形式)現在時刻移動ボタンを押した時、05:00-05:30の間は05:00の座標へ移動しない問題を修正\r
+ ・(新聞形式)現在時刻移動ボタンを押した時、上端から05:00までの間に30分分の空白が表示される場合がある問題を修正\r
 \r
 3.22.11β+1.5.12(2013-12-18)\r
 ■変更点\r
index 6abc4b1..c4e3d4b 100644 (file)
@@ -731,7 +731,6 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
         * 現在時刻追従スクロールを停止する\r
         */\r
        private boolean stopTimer() {\r
-               prevDT4Now = null;\r
                jLabel_timeline.setVisible(false);\r
                return (timer_now_enabled = false);\r
        }\r
@@ -1686,16 +1685,25 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
                        int minpos_new = (c.get(Calendar.HOUR_OF_DAY)-TIMEBAR_START+correct)*60+c.get(Calendar.MINUTE);\r
                        int timeline_vpos = jLabel_timeline.setMinpos(0, minpos_new, bounds.getPaperHeightMultiplier()*paperHeightZoom);\r
                        \r
-                       // ビューポートの位置(05:30まではスクロールしないよ)\r
-                       if ( env.getTimerbarScrollEnable() && minpos_new >= 30 ) {\r
-                               if ( reset ) {\r
-                                       // 初回描画\r
-                                       Rectangle ra = vport.getViewRect();\r
+                       // ビューポートの位置\r
+                       if ( reset ) {\r
+                               // 初回描画\r
+                               Rectangle ra = vport.getViewRect();\r
+                               if ( minpos_new >= 30 ) {\r
+                                       // 05:30以降\r
                                        ra.y =  Math.round(timeline_vpos - (float)bounds.getTimelinePosition() * bounds.getPaperHeightMultiplier() * paperHeightZoom);\r
                                        vport.setViewPosition(new Point(ra.x, ra.y));\r
                                }\r
                                else {\r
-                                       // 自動更新\r
+                                       // 05:30より前\r
+                                       if ( ra.y >= 30 ) {\r
+                                               vport.setViewPosition(new Point(ra.x, 0));\r
+                                       }\r
+                               }\r
+                       }\r
+                       else {\r
+                               if ( env.getTimerbarScrollEnable() && minpos_new >= 30 ) {\r
+                                       // 自動更新(05:30まではスクロールしないよ)\r
                                        vp.y += (timeline_vpos - tp.y);\r
                                        vport.setViewPosition(vp);\r
                                }\r
@@ -1783,11 +1791,14 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
                        // 日付が変わったらツリーを書き換える\r
                        redrawTreeByDate();\r
                        redrawTreeByPassed();\r
+                       \r
+                       // 前回実行日\r
                        prevDT4Tree = curDT;\r
                }\r
                \r
                if ( timer_now_enabled ) {\r
 \r
+                       MWin.appendMessage(prevDT4Now+", "+curDT);\r
                        if (prevDT4Now != null && ! prevDT4Now.equals(curDT)) {\r
                                // 日付切り替え\r
                                StdAppendError(MSGID+"日付が変わったので番組表を切り替えます("+CommonUtils.getDateTime(0)+")");\r