No description
afe7d996af
Before this commit, if several menu entries (possibly in different menus) had the same label after translation and latin1-ization by FGLocale::utf8toLatin1(), selecting one of them used to fire the bindings associated to all such entries. This is because the bindings used to be stored in an std::map whose keys were the translated-and-latin1-ized labels. This commit fixes the problem in the following way: - the std::map (_bindings) is turned into an std::forward_list; - each element of this std::forward_list references the bindings assigned to a menu entry; - in order to allow FGPUIMenuBar::fireItem() to find the bindings assigned to the menu entry that triggered it, FGPUIMenuBar::make_menu() calls puMenuBar::add_submenu() with an additional argument ("user data") that attaches to the puObject for each menu entry a pointer to the relevant element of _bindings. Note: given how the menubar is created, an std::vector wouldn't be appropriate for _bindings, because we need the pointers to its elements to be stable when new elements are added to _bindings. Reported by Wayne Bragg: https://sourceforge.net/p/flightgear/mailman/message/37682605/ |
||
---|---|---|
3rdparty | ||
CMakeModules | ||
docs-mini | ||
examples | ||
icons | ||
man | ||
package | ||
scripts | ||
src | ||
test_suite | ||
utils | ||
.clang-format | ||
.gitignore | ||
AUTHORS | ||
ChangeLog | ||
CMakeLists.txt | ||
COPYING | ||
flightgear-version | ||
INSTALL | ||
NEWS | ||
README | ||
README.cmake | ||
README.msvc | ||
README.OSG | ||
README.plib | ||
README.SimGear | ||
README.sound | ||
Thanks |
Welcome to the FlightGear Flight Simulator project. =================================================== The primary web page for this project is: http://www.flightgear.org For basic installation instructions see the "INSTALL" file. Before you can run FlightGear you will also need to download and install the "base" package which is a collection of textures, sounds, sample scenery, and other data files needed by the sim. For additional install help for specific platforms please browse the "docs-mini/" subdirectory. More complete documentation is available from our web page as a separate distribution. Please take a look at the "Thanks" file for a list of people who have contributed to this project. If you have contributed something but don't find your name in this file. Please send a polite reminder to http://www.flightgear.org/~curt For a summary of changes/additions by version see the "NEWS" file. This project is GPL'd. For complete details on our licensing please see the "COPYING" file. For information on available mailing lists, mailing list archives, and other available source code and documenation, please visit our web site. FlightGear is a product of the collaboration of large international group of volunteers. FlightGear is a work in progress. FlightGear comes with no warrantee. We hope you enjoy FlightGear and/or find it of some value!