Fix shortcut (Esc) handling in test/keyboard.cxx

Esc is intentionally consumed by the test program (see comment) but
other keystrokes (shortcuts) must pass to allow zooming with ctrl/+/-/0.
The old code filtered all shortcuts which turned out to be wrong.

Not being able to zoom was caused by a previous commit that lowered
the priority of the zoom key handler - which alone was not wrong.
This commit is contained in:
Albrecht Schlosser 2024-03-05 03:08:30 +01:00
parent 72840ea2c1
commit 4c0a2ffb81

View File

@ -1,7 +1,7 @@
// //
// Keyboard/event test program for the Fast Light Tool Kit (FLTK). // Keyboard/event test program for the Fast Light Tool Kit (FLTK).
// //
// Copyright 1998-2021 by Bill Spitzak and others. // Copyright 1998-2024 by Bill Spitzak and others.
// //
// This library is free software. Distribution and use rights are outlined in // This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this // the file "COPYING" which should have been included with this file. If this
@ -38,9 +38,12 @@ void key_cb(Fl_Button*, void*) {}
void shift_cb(Fl_Button*, void*) {} void shift_cb(Fl_Button*, void*) {}
void wheel_cb(Fl_Dial*, void*) {} void wheel_cb(Fl_Dial*, void*) {}
// this is used to stop Esc from exiting the program: // This is used to stop Esc from exiting the program.
// Other keystrokes like zoom keys (ctrl/+/-/0) must pass though.
int handle(int e) { int handle(int e) {
return (e == FL_SHORTCUT); // eat all keystrokes if (e == FL_SHORTCUT && Fl::event_key() == FL_Escape)
return 1;
return 0;
} }
int MyWindow::handle(int msg) { int MyWindow::handle(int msg) {