Index: libopie2/opiecore/device/odevice_ipaq.cpp
===================================================================
RCS file: /cvs/opie/libopie2/opiecore/device/odevice_ipaq.cpp,v
retrieving revision 1.26
diff -u -r1.26 odevice_ipaq.cpp
--- libopie2/opiecore/device/odevice_ipaq.cpp	2 Aug 2006 19:12:39 -0000	1.26
+++ libopie2/opiecore/device/odevice_ipaq.cpp	10 Oct 2006 15:07:21 -0000
@@ -84,76 +84,68 @@
 #define LED_ON    OD_IOW( 'f', 5, LED_IN )
 #define FLITE_ON  OD_IOW( 'f', 7, FLITE_IN )
 
+#define Model_Keyboardless_2_6 (Model_iPAQ_H191x | Model_iPAQ_H22xx | Model_iPAQ_HX4700 | Model_iPAQ_H4xxx)
+
 struct i_button ipaq_buttons [] = {
-    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x | Model_iPAQ_H22xx | Model_iPAQ_HX4700 | Model_iPAQ_H4xxx,
+
+    // Common button map for all keyboardless devices with 2.6 kernel
+    { Model_Keyboardless_2_6,
     Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
     "devicebuttons/ipaq_calendar",
     "datebook", "nextView()",
     "today", "raise()" },
-    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x | Model_iPAQ_H22xx | Model_iPAQ_HX4700 | Model_iPAQ_H4xxx,
+    { Model_Keyboardless_2_6,
     Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"),
     "devicebuttons/ipaq_contact",
     "addressbook", "raise()",
     "addressbook", "beamBusinessCard()" },
-    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx,
-    Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"),
-    "devicebuttons/ipaq_menu",
-    "QPE/TaskBar", "toggleMenu()",
-    "QPE/TaskBar", "toggleStartMenu()" },
-    { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
-    Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"),
+    { Model_Keyboardless_2_6,
+    Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Mail Button"),
     "devicebuttons/ipaq_mail",
     "opiemail", "raise()",
     "opiemail", "newMail()" },
-    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x | Model_iPAQ_H4xxx,
+    { Model_Keyboardless_2_6,
     Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"),
     "devicebuttons/ipaq_home",
     "QPE/Launcher", "home()",
     "buttonsettings", "raise()" },
-    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+    { Model_Keyboardless_2_6,
     Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"),
     "devicebuttons/ipaq_record",
     "QPE/VMemo", "toggleRecord()",
     "sound", "raise()" },
 
-    { Model_iPAQ_H191x | Model_iPAQ_H4xxx,
-    Qt::Key_F8, QT_TRANSLATE_NOOP("Button", "Mail Button"),
-    "devicebuttons/ipaq_mail",
-    "opiemail", "raise()",
-    "opiemail", "newMail()" },
-    { Model_iPAQ_H191x | Model_iPAQ_H4xxx,
-    Qt::Key_F7, QT_TRANSLATE_NOOP("Button", "Record Button"),
-    "devicebuttons/ipaq_record",
-    "QPE/VMemo", "toggleRecord()",
-    "sound", "raise()" },
-
-    //h2200 has different button mapping
-    { Model_iPAQ_H22xx,
-    Qt::Key_NumLock, QT_TRANSLATE_NOOP("Button", "Mail Button"),
-    "devicebuttons/ipaq_mail",
-    "opiemail", "raise()",
-    "opiemail", "newMail()" },
-    { Model_iPAQ_H22xx,
-    Qt::Key_ScrollLock, QT_TRANSLATE_NOOP("Button", "Menu Button"),
+    // Devices with 2.4 kernel
+    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+    Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
+    "devicebuttons/ipaq_calendar",
+    "datebook", "nextView()",
+    "today", "raise()" },
+    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+    Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"),
+    "devicebuttons/ipaq_contact",
+    "addressbook", "raise()",
+    "addressbook", "beamBusinessCard()" },
+    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx,
+    Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"),
     "devicebuttons/ipaq_menu",
     "QPE/TaskBar", "toggleMenu()",
     "QPE/TaskBar", "toggleStartMenu()" },
-    // and hx4700 has different button mapping still
-    { Model_iPAQ_HX4700,
-    Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Mail Button"),
+    { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+    Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"),
     "devicebuttons/ipaq_mail",
     "opiemail", "raise()",
     "opiemail", "newMail()" },
-    { Model_iPAQ_HX4700,
-    Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Record Button"),
-    "devicebuttons/ipaq_record",
-    "QPE/VMemo", "toggleRecord()",
-    "sound", "raise()" },
-    { Model_iPAQ_HX4700,
-    Qt::Key_Home, QT_TRANSLATE_NOOP("Button", "Home Button"),
+    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+    Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"),
     "devicebuttons/ipaq_home",
     "QPE/Launcher", "home()",
     "buttonsettings", "raise()" },
+    { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+    Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"),
+    "devicebuttons/ipaq_record",
+    "QPE/VMemo", "toggleRecord()",
+    "sound", "raise()" },
 
 };
 
@@ -346,11 +338,8 @@
             break;
         }
 
-        // map Power Button short/long press to F6 for h191x
-        case Key_F6:
-            if ( d->m_model != Model_iPAQ_H191x && d->m_model != Model_iPAQ_H4xxx )
-                break;
         // map Power Button short/long press to F34/F35
+        case HardKey_Suspend: // Hope we don't have infinite recursion here
         case Key_SysReq: {
             if ( isPress ) {
                 if ( m_power_timer )
Index: libopie2/opiecore/device/odevice_mypal.cpp
===================================================================
RCS file: /cvs/opie/libopie2/opiecore/device/odevice_mypal.cpp,v
retrieving revision 1.4
diff -u -r1.4 odevice_mypal.cpp
--- libopie2/opiecore/device/odevice_mypal.cpp	9 Jun 2006 08:27:01 -0000	1.4
+++ libopie2/opiecore/device/odevice_mypal.cpp	10 Oct 2006 15:07:21 -0000
@@ -60,29 +60,32 @@
 using namespace Opie::Core;
 using namespace Opie::Core::Internal;
 
+#define Model_Keyboardless_2_6 (Model_MyPal_716)
+
 struct m_button mypal_buttons [] = {
-    { Model_MyPal_716,
+    // Common button map for all keyboardless devices with 2.6 kernel
+    { Model_Keyboardless_2_6,
     Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
     "devicebuttons/ipaq_calendar",
     "datebook", "nextView()",
     "today", "raise()" },
-    { Model_MyPal_716,
+    { Model_Keyboardless_2_6,
     Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"),
     "devicebuttons/ipaq_contact",
     "addressbook", "raise()",
     "addressbook", "beamBusinessCard()" },
-    { Model_MyPal_716,
-    Qt::Key_F8, QT_TRANSLATE_NOOP("Button", "Mail Button"),
+    { Model_Keyboardless_2_6,
+    Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Mail Button"),
     "devicebuttons/ipaq_mail",
     "opiemail", "raise()",
     "opiemail", "newMail()" },
-    { Model_MyPal_716,
+    { Model_Keyboardless_2_6,
     Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"),
     "devicebuttons/ipaq_home",
     "QPE/Launcher", "home()",
     "buttonsettings", "raise()" },
-    { Model_MyPal_716,
-    Qt::Key_F7, QT_TRANSLATE_NOOP("Button", "Record Button"),
+    { Model_Keyboardless_2_6,
+    Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"),
     "devicebuttons/ipaq_record",
     "QPE/VMemo", "toggleRecord()",
     "sound", "raise()" },