summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2010-10-30 19:56:20 +0000
committerMatthias Melcher <fltk@matthiasm.com>2010-10-30 19:56:20 +0000
commit8e30c66a9245fa1e367f8bb772268721549e4987 (patch)
tree8db372e0de70301574ac0605d4d65a852432132a
parent6017a6fae62090b58e466984d570263bb07114d1 (diff)
Fixed special handling for ISO back-tab keycode (STR #2369)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7779 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--CHANGES1
-rw-r--r--fluid/Fl_Window_Type.cxx2
-rw-r--r--src/Fl_Group.cxx1
-rw-r--r--src/Fl_Input.cxx1
-rw-r--r--src/Fl_Menu.cxx1
-rw-r--r--src/Fl_Tree.cxx3
-rw-r--r--src/Fl_x.cxx4
7 files changed, 6 insertions, 7 deletions
diff --git a/CHANGES b/CHANGES
index 8db8f842d..f144daa1c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,6 @@
CHANGES IN FLTK 1.3.0
+ - Fixed special handling for ISO back-tab keycode (STR #2369)
- Fixed wrong relative path (STR #2384)
- Fixed static allocation in Fl_Tabs (STR #2370)
- Fixed Fl_Widget::measure_label() to const (STR #2406)
diff --git a/fluid/Fl_Window_Type.cxx b/fluid/Fl_Window_Type.cxx
index 3d8f44616..8b9bf2832 100644
--- a/fluid/Fl_Window_Type.cxx
+++ b/fluid/Fl_Window_Type.cxx
@@ -1284,8 +1284,6 @@ int Fl_Window_Type::handle(int event) {
((Fl_Window*)o)->hide();
return 1;
- case 0xFE20: // backtab
- backtab = 1;
case FL_Tab: {
if (Fl::event_state(FL_SHIFT)) backtab = 1;
// find current child:
diff --git a/src/Fl_Group.cxx b/src/Fl_Group.cxx
index cd8f94d7d..a84cd2d7e 100644
--- a/src/Fl_Group.cxx
+++ b/src/Fl_Group.cxx
@@ -133,7 +133,6 @@ static int navkey() {
break;
case FL_Tab:
if (!Fl::event_state(FL_SHIFT)) return FL_Right;
- case 0xfe20: // XK_ISO_Left_Tab
return FL_Left;
case FL_Right:
return FL_Right;
diff --git a/src/Fl_Input.cxx b/src/Fl_Input.cxx
index d0e910c69..9277c37e2 100644
--- a/src/Fl_Input.cxx
+++ b/src/Fl_Input.cxx
@@ -500,7 +500,6 @@ int Fl_Input::handle(int event) {
up_down_position(line_start(size()));
break;
case FL_Tab:
- case 0xfe20: // XK_ISO_Left_Tab
position(size(),0);
break;
default:
diff --git a/src/Fl_Menu.cxx b/src/Fl_Menu.cxx
index e924bc209..e341b868a 100644
--- a/src/Fl_Menu.cxx
+++ b/src/Fl_Menu.cxx
@@ -660,7 +660,6 @@ int menuwindow::early_hide_handle(int e) {
case FL_KEYBOARD:
switch (Fl::event_key()) {
case FL_BackSpace:
- case 0xFE20: // backtab
BACKTAB:
if (!backward(pp.menu_number)) {pp.item_number = -1;backward(pp.menu_number);}
return 1;
diff --git a/src/Fl_Tree.cxx b/src/Fl_Tree.cxx
index 65f052da6..7704de04d 100644
--- a/src/Fl_Tree.cxx
+++ b/src/Fl_Tree.cxx
@@ -488,8 +488,7 @@ int Fl_Tree::handle(int e) {
break;
}
case FL_Left: // received focus via LEFT or UP?
- case FL_Up:
- case 0xfe20: { // XK_ISO_Left_Tab
+ case FL_Up: { // XK_ISO_Left_Tab
set_item_focus(next_visible_item(0, FL_Up));
break;
}
diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx
index 4467ff760..6300d5d56 100644
--- a/src/Fl_x.cxx
+++ b/src/Fl_x.cxx
@@ -1254,6 +1254,10 @@ int fl_handle(const XEvent& thisevent)
Fl::e_original_keysym = (int)keysym;
}
Fl::e_keysym = int(keysym);
+
+ // replace XK_ISO_Left_Tab (Shift-TAB) with FL_Tab (modifier flags are set correctly by X11)
+ if (Fl::e_keysym == 0xfe20) Fl::e_keysym = FL_Tab;
+
set_event_xy();
Fl::e_is_click = 0;
break;}