diff --git a/FL/Fl_Input.H b/FL/Fl_Input.H index f165ddc6e..0967d332f 100644 --- a/FL/Fl_Input.H +++ b/FL/Fl_Input.H @@ -1,7 +1,7 @@ // // Input header file for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2021 by Bill Spitzak and others. // // 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 @@ -34,7 +34,7 @@ Character composition is done using dead keys and/or a compose key as defined by the operating system.

- +
Keyboard and mouse bindings.
@@ -220,7 +220,6 @@ class FL_EXPORT Fl_Input : public Fl_Input_ { friend class Fl_Screen_Driver; friend class Fl_Cocoa_Screen_Driver; // Not ideal, but probably no other platform will use it - int handle_key(); int shift_position(int p); int shift_up_down_position(int p); void handle_mouse(int keepmark=0); @@ -257,6 +256,8 @@ class FL_EXPORT Fl_Input : public Fl_Input_ { protected: void draw(); + int handle_key(); + public: int handle(int); Fl_Input(int,int,int,int,const char * = 0); diff --git a/src/Fl_Input.cxx b/src/Fl_Input.cxx index 9a3342eb2..5fa16bfb0 100644 --- a/src/Fl_Input.cxx +++ b/src/Fl_Input.cxx @@ -1,7 +1,7 @@ // // Input widget for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2020 by Bill Spitzak and others. +// Copyright 1998-2021 by Bill Spitzak and others. // // 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 @@ -300,9 +300,17 @@ int Fl_Input::kf_copy_cut() { return cut(); } -// Handle a keystroke. -// Returns 1 if handled by us, 0 if not. -// +/** Handles a keystroke. + + This \p protected method handles a keystroke in an Fl_Input or derived + class. It handles compose key sequences and can also be used e.g. in + Fl_Multiline_Input, Fl_Float_Input and several more derived classes. + + The details are way too complicated to be documented here and can be + changed as required. If in doubt, please consult the source code. + + \returns 1 if the keystroke is handled by us, 0 if not. +*/ int Fl_Input::handle_key() { char ascii = Fl::event_text()[0];