(!1654) Xnest: replace XGetModifierMapping() by xcb_get_modifier_mapping()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
		
							parent
							
								
									ea0605d28e
								
							
						
					
					
						commit
						a03e39525e
					
				| 
						 | 
					@ -97,8 +97,6 @@ xnestChangeKeyboardControl(DeviceIntPtr pDev, KeybdCtrl * ctrl)
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
xnestKeyboardProc(DeviceIntPtr pDev, int onoff)
 | 
					xnestKeyboardProc(DeviceIntPtr pDev, int onoff)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    XModifierKeymap *modifier_keymap;
 | 
					 | 
				
			||||||
    CARD8 modmap[MAP_LENGTH];
 | 
					 | 
				
			||||||
    int i, j;
 | 
					    int i, j;
 | 
				
			||||||
    XKeyboardState values;
 | 
					    XKeyboardState values;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -126,19 +124,34 @@ xnestKeyboardProc(DeviceIntPtr pDev, int onoff)
 | 
				
			||||||
            .map = xcb_get_keyboard_mapping_keysyms(keymap_reply),
 | 
					            .map = xcb_get_keyboard_mapping_keysyms(keymap_reply),
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        memset(modmap, 0, sizeof(modmap));
 | 
					        xcb_generic_error_t *mod_err = NULL;
 | 
				
			||||||
        modifier_keymap = XGetModifierMapping(xnestDisplay);
 | 
					        xcb_get_modifier_mapping_reply_t *mod_reply = xcb_get_modifier_mapping_reply(
 | 
				
			||||||
 | 
					            xnestUpstreamInfo.conn,
 | 
				
			||||||
 | 
					            xcb_get_modifier_mapping(xnestUpstreamInfo.conn),
 | 
				
			||||||
 | 
					            &mod_err);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (mod_err) {
 | 
				
			||||||
 | 
					            free(keymap_reply);
 | 
				
			||||||
 | 
					            ErrorF("Couldn't get keyboard modifier mapping: %d\n", mod_err->error_code);
 | 
				
			||||||
 | 
					            goto XkbError;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!mod_reply) {
 | 
				
			||||||
 | 
					            free(keymap_reply);
 | 
				
			||||||
 | 
					            ErrorF("Couldn't get keyboard modifier mapping: no reply\n");
 | 
				
			||||||
 | 
					            goto XkbError;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        xcb_keycode_t *mod_keycodes = xcb_get_modifier_mapping_keycodes(mod_reply);
 | 
				
			||||||
 | 
					        CARD8 modmap[MAP_LENGTH] = { 0 };
 | 
				
			||||||
        for (j = 0; j < 8; j++)
 | 
					        for (j = 0; j < 8; j++)
 | 
				
			||||||
            for (i = 0; i < modifier_keymap->max_keypermod; i++) {
 | 
					            for (i = 0; i < mod_reply->keycodes_per_modifier; i++) {
 | 
				
			||||||
                CARD8 keycode;
 | 
					                CARD8 keycode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if ((keycode =
 | 
					                if ((keycode =
 | 
				
			||||||
                     modifier_keymap->modifiermap[j *
 | 
					                     mod_keycodes[j * mod_reply->keycodes_per_modifier + i]))
 | 
				
			||||||
                                                  modifier_keymap->
 | 
					 | 
				
			||||||
                                                  max_keypermod + i]))
 | 
					 | 
				
			||||||
                    modmap[keycode] |= 1 << j;
 | 
					                    modmap[keycode] |= 1 << j;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        XFreeModifiermap(modifier_keymap);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        InitKeyboardDeviceStruct(pDev, NULL,
 | 
					        InitKeyboardDeviceStruct(pDev, NULL,
 | 
				
			||||||
                                 xnestBell, xnestChangeKeyboardControl);
 | 
					                                 xnestBell, xnestChangeKeyboardControl);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue