[wintab32 4/5] Capture the number of buttons earlier, allowing our button maps to be filled in.

Jeremy White jwhite at codeweavers.com
Mon Dec 24 13:35:13 CST 2007


---
 dlls/winex11.drv/wintab.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c
index 599e776..8b2fb59 100644
--- a/dlls/winex11.drv/wintab.c
+++ b/dlls/winex11.drv/wintab.c
@@ -456,8 +456,8 @@ void X11DRV_LoadTabletInfo(HWND hwnddefault)
                 int shft = 0;

                 X11DRV_expect_error(data->display,Tablet_ErrorHandler,NULL);
-                pXGetDeviceButtonMapping(data->display, opendevice, map, 32);
-                if (X11DRV_check_error())
+                cursor->BUTTONS = pXGetDeviceButtonMapping(data->display, opendevice, map, 32);
+                if (X11DRV_check_error() || cursor->BUTTONS <= 0)
                 {
                     TRACE("No buttons, Non Tablet Device\n");
                     pXCloseDevice(data->display, opendevice);
@@ -588,7 +588,8 @@ void X11DRV_LoadTabletInfo(HWND hwnddefault)
                         int i;

                         Button = (XButtonInfoPtr) any;
-                        cursor->BUTTONS = Button->num_buttons;
+                        TRACE("    ButtonInput %d: [class %d|length %d|num_buttons %d]\n",
+                                class_loop, (int) Button->class, Button->length, Button->num_buttons);
                         cursor->BTNNAMES = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR)*cchBuf);
                         for (i = 0; i < cursor->BUTTONS; i++)
                         {



More information about the wine-patches mailing list