Review: Needs Fixing
Diff comments: > > === modified file 'src/wui/game_message_menu.cc' > --- src/wui/game_message_menu.cc 2016-08-04 15:49:05 +0000 > +++ src/wui/game_message_menu.cc 2016-09-14 07:40:02 +0000 > @@ -357,23 +358,66 @@ > center_view(); > return true; > case SDLK_0: > - filter_messages(Widelands::Message::Type::kAllMessages); > - return true; > + if (code.mod & KMOD_ALT) { > + > filter_messages(Widelands::Message::Type::kAllMessages); > + last_keyboard_action_ = 0; > + return true; > + } > + return false; > case SDLK_1: > - filter_messages(Widelands::Message::Type::kGeologists); > - return true; > + if (code.mod & KMOD_ALT) { Actually doing this in the input loop would be less lines of codes and probably saver. I vote for that for b19. > + // Workaround for duplicate triggering of the > Alt key in Ubuntu: > + // Don't accept the same key twice for the same > gametime. > + // TODO(GunChleoc): This means that when the > game is paused, > + // the button won't toggle on and off by > pressing ALT + 1 repeatedly. > + const uint32_t gametime = > iplayer().game().get_gametime(); > + if (last_keyboard_action_ != gametime) { > + > filter_messages(Widelands::Message::Type::kGeologists); > + last_keyboard_action_ = gametime; > + return true; > + } > + } > + return false; > case SDLK_2: > - filter_messages(Widelands::Message::Type::kEconomy); > - return true; > + if (code.mod & KMOD_ALT) { > + const uint32_t gametime = > iplayer().game().get_gametime(); > + if (last_keyboard_action_ != gametime) { > + > filter_messages(Widelands::Message::Type::kEconomy); > + last_keyboard_action_ = gametime; > + return true; > + } > + } > + return false; > case SDLK_3: > - filter_messages(Widelands::Message::Type::kSeafaring); > - return true; > + if (code.mod & KMOD_ALT) { > + const uint32_t gametime = > iplayer().game().get_gametime(); > + if (last_keyboard_action_ != gametime) { > + > filter_messages(Widelands::Message::Type::kSeafaring); > + last_keyboard_action_ = gametime; > + return true; > + } > + } > + return false; > case SDLK_4: > - filter_messages(Widelands::Message::Type::kWarfare); > - return true; > + if (code.mod & KMOD_ALT) { > + const uint32_t gametime = > iplayer().game().get_gametime(); > + if (last_keyboard_action_ != gametime) { > + > filter_messages(Widelands::Message::Type::kWarfare); > + last_keyboard_action_ = gametime; > + return true; > + } > + } > + return false; > case SDLK_5: > - filter_messages(Widelands::Message::Type::kScenario); > - return true; > + if (code.mod & KMOD_ALT) { > + const uint32_t gametime = > iplayer().game().get_gametime(); > + if (last_keyboard_action_ != gametime) { > + > filter_messages(Widelands::Message::Type::kScenario); > + last_keyboard_action_ = gametime; > + return true; > + } > + } > + return false; > case SDLK_DELETE: > archive_or_restore(); > return true; -- https://code.launchpad.net/~widelands-dev/widelands/bug-1616661_messagebox_hotkeys/+merge/305381 Your team Widelands Developers is subscribed to branch lp:~widelands-dev/widelands/bug-1616661_messagebox_hotkeys. _______________________________________________ Mailing list: https://launchpad.net/~widelands-dev Post to : widelands-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~widelands-dev More help : https://help.launchpad.net/ListHelp