XkbComputeShapeBounds(3)
π XkbComputeShapeBounds β XKB FUNCTIONS β¨
πΈ NAME πΈ
XkbComputeShapeBounds β updates the bounding box of a shape. periodt π
π SYNOPSIS π
Bool XkbComputeShapeBounds (XkbShapePtr shape);
π¦ ARGUMENTS π¦
shapeβ the shape to be examined π
β¨ DESCRIPTION β¨
okay bestie, so Xkb gives you a bunch of convenience functions to help you use a keyboard geometry. These include functions to return the bounding box of a shape's top surface and to update the bounding box of a shape row or section. iconic behavior ngl π
A shape is made up of a number of outlines. Each outline is a polygon made up of a number of points. The bounding box of a shape is a rectangle that contains all the outlines of that shape. it's giving container energy fr fr π
A ShapeRec contains a BoundsRec that describes the bounds of the shape. If you add or delete an outline to or from a shape, the bounding box must be updated. no cap, keep it fresh β¨
XkbComputeShapeBounds updates the BoundsRec contained in the shape by examining all the outlines of the shape and setting the BoundsRec to the minimum x and minimum y, and maximum x and maximum y values found in those outlines. XkbComputeShapeBounds returns False if shape is NULL or if there are no outlines for the shape; otherwise, it returns True. lowkey important: NULL or empty outlines = False, bestie π
If you add or delete a key to or from a row, or if you update the shape of one of the keys in that row, you may need to update the bounding box of that row. To update the bounding box of a row, use XkbComputeRowBounds. that's your row-bounds bestie right there π«Ά
π STRUCTURES π
typedef struct _XkbShape {
Atom name; /* shape's name */
unsigned short num_outlines; /* number of outlines for the shape */
unsigned short sz_outlines; /* size of the outlines array */
XkbOutlinePtr outlines; /* array of outlines for the shape */
XkbOutlinePtr approx; /* pointer into the array to the approximating outline */
XkbOutlinePtr primary; /* pointer into the array to the primary outline */
XkbBoundsRec bounds; /* bounding box for the shape; encompasses all outlines */
} XkbShapeRec, *XkbShapePtr;
typedef struct _XkbBounds {
short x1,y1; /* upper left corner of the bounds, in mm/10 */
short x2,y2; /* lower right corner of the bounds, in mm/10 */
} XkbBoundsRec, *XkbBoundsPtr;
π SEE ALSO π
made with π from the X Version 11 / libX11 1.8.14 footer β the original page doesn't show a separate date, so no date tea to spill π«Άβ¨
π¦ where this page comes from
- alpine 3.24: libx11-doc 1.8.14-r0 Β· X11
- arch rolling: libx11 1.8.14-1 Β· MIT AND X11
- nixos 26.05: libx11 1.8.14
- nixpkgs unstable: libx11 1.8.14
- Copyright (c) 1999, Oracle and/or its affiliates
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms