Fix blocks demo keyboard handling, add new shortcut.
The blocks demo was unintentionally intercepting ctrl/+ which was introduced in FLTK 1.4.0 to change scaling for HiDPI screens. Now this is separated: use ctrl/+/-/0 to change scaling, use '+' alone to change the game level. The new keyboard shortcut ALT+SHIFT+H allows users to reset their high scores without editing the preferences file. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12354 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
768ba675b0
commit
463b3e5d9d
4
CHANGES
4
CHANGES
@ -63,6 +63,10 @@ Changes in FLTK 1.4.0 Released: ??? ?? 2017
|
||||
Other Improvements
|
||||
|
||||
- (add new items here)
|
||||
- The blocks demo program got a new keyboard shortcut (ALT+SHIFT+H) to
|
||||
reset the user's high score. It is now slower than before in higher
|
||||
levels, hence you can expect higher scores (due to a bug fix in the
|
||||
timer code). You can use the '+' key to increase the level at all times.
|
||||
- Some methods of Fl_Tabs are now virtual and/or protected for easier
|
||||
subclassing without code duplication (STR #3211 and others).
|
||||
To be continued...
|
||||
|
@ -751,9 +751,22 @@ int BlockWindow::handle(int event) {
|
||||
switch (event) {
|
||||
|
||||
case FL_KEYBOARD:
|
||||
if (Fl::event_text()) {
|
||||
if (strcmp(Fl::event_text(), "+") == 0)
|
||||
up_level();
|
||||
|
||||
// '+': raise level
|
||||
if (Fl::event_text() &&
|
||||
!Fl::event_state(FL_CTRL | FL_ALT | FL_META) &&
|
||||
!strcmp(Fl::event_text(), "+")) {
|
||||
up_level();
|
||||
return (1);
|
||||
}
|
||||
|
||||
// ALT + SHIFT + 'H': clear highscore
|
||||
if (Fl::event_text() &&
|
||||
(Fl::event_state() & (FL_ALT | FL_SHIFT)) == (FL_ALT | FL_SHIFT) &&
|
||||
!strcmp(Fl::event_text(), "H")) {
|
||||
high_score_ = score_;
|
||||
prefs_.set("high_score", high_score_);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user