• R/O
  • SSH

hyakutyping: コミット

ゲーム用のソースコード


コミットメタ情報

リビジョン057a1952804815f91d9a25332b63770e8bfb673f (tree)
日時2011-07-29 18:20:37
作者satofumi
コミッターsatofumi

ログメッセージ

キー操作とマウス操作を同時に操作すると Option の挙動が見苦しくなるのを修正した

変更サマリ

差分

diff -r c4a551c90935 -r 057a19528048 Option.cpp
--- a/Option.cpp Fri Jul 29 17:50:23 2011 +0900
+++ b/Option.cpp Fri Jul 29 18:20:37 2011 +0900
@@ -56,7 +56,8 @@
5656
5757 pImpl(const Rect<long>& rect)
5858 : rect_(rect), acceptable_(false), alpha_(1.0),
59- current_row_index_(0)
59+ current_row_index_(0),
60+ prev_cursor_(layer_manager_.cursor()), cursor_(prev_cursor_)
6061 {
6162 up_event_.key(SDLK_UP, SDL_KEYDOWN, KMOD_NONE);
6263 down_event_.key(SDLK_DOWN, SDL_KEYDOWN, KMOD_NONE);
@@ -125,7 +126,7 @@
125126 void updateSelectedRow(int next_row_index)
126127 {
127128 removeCursor();
128- plaseCursor(next_row_index);
129+ placeCursor(next_row_index);
129130
130131 current_row_index_ = next_row_index;
131132 }
@@ -138,12 +139,19 @@
138139 }
139140
140141
141- void plaseCursor(int index)
142+ void placeCursor(int index)
142143 {
143144 Cursor& cursor = cursors_[index];
144145 Menu* menu = components_[index];
145146 menu->setIconOffset(cursor.offset);
146147 menu->registerIconLabel(*cursor.label, cursor.draw_front);
148+
149+ // カーソルの操作を打ち消すために setIndex() を呼び出して
150+ // フォーカスを外す。フォーカスを外すと release() 扱いになるので、
151+ // press() を呼び出している
152+ size_t clicked_id = menu->clickedId();
153+ menu->setIndex(Menu::InvalidIndex);
154+ menu->press(clicked_id);
147155 }
148156
149157 void updateSelectedItem(int index, int xx)
旧リポジトリブラウザで表示