--- xkbd-0.8.16/src/xkbd.c +++ xkbd-0.8.16/src/xkbd.c @@ -307,21 +307,22 @@ 0, BlackPixel(display, screen_num), WhitePixel(display, screen_num)); + wret = DisplayWidth(display, screen_num); + hret = DisplayHeight(display, screen_num)/4; + xret = 0; + yret = DisplayHeight(display, screen_num) - hret; + // deactivate geometry for 0.8.16 release - mb geometry = NULL; if (geometry != NULL) { - XParseGeometry(geometry, &xret, &yret, &wret, &hret ); - } - else - { - if (wm_type != WM_MATCHBOX) - { - wret = DisplayWidth(display, screen_num); - hret = DisplayHeight(display, screen_num)/4; - xret = 0; - yret = DisplayHeight(display, screen_num) - hret; - } + int flags; + + flags = XParseGeometry(geometry, &xret, &yret, &wret, &hret ); + if( flags & XNegative ) + xret += DisplayWidth( display, screen_num ) - wret; + if( flags & YNegative ) + yret += DisplayHeight( display, screen_num ) - hret; } /* check for user selected keyboard conf file */