📄 rfc1013.txt
字号:
Event sychronization There are certain race conditions possible when demultiplexing device events to clients (in particular deciding where pointer and keyboard events should be sent when in the middle of window management operations). The event synchronization mechanism allows synchronous processing of device events.M.I.T. [Page 6]RFC 1013 June 1987 Event propagation Device-related events "propagate" from the source window to ancestor windows until some client has expressed interest in handling that type of event, or until the event is discarded explicitly. Event source The smallest window containing the pointer is the "source" of a device related event. Exposure event Servers do not guarantee to preserve the contents of windows when windows are obscured or reconfigur contents of regions of windows have been lost. Extension Named "extensions" to the core protocol can be defined to extend the system. Extension to output requests, resources, and event types are all possible, and expected. Font A "font" is an array of glyphs (typically characters). The protocol does no translation or interpretation of character sets. The client simply indicates values used to index the glyph array. A font contains additional metric information to determine inter-glyph and inter-line spacing. Glyph A "glyph" is an image, typically of a character, in a font. Grab Keyboard keys, the keyboard, pointer buttons, the pointer, and the server can be "grabbed" for exclusive use by a client. In general, these facilities are not intended to be used by normal applications, but are intended for various input and window managers to implement various styles of user interfaces. Graphics context Various information for graphics output is stored in "GC"'s, such as foreground pixel, background pixel, line width, clipping region, etc. Hotspot A cursor has an associated "hot spot" which defines a point in the cursor that corresponds to the coordinates reported for the pointer. Identifier Each resource has an "identifier", a unique value associated with it that clients use to name the resource. An identifierM.I.T. [Page 7]RFC 1013 June 1987 can be used over any connection to name the resource. Inferiors The "inferiors" of a window are all of the subwindows nested below it: the children, the children's children, etc. Input focus The "input focus" is nominally where keyboard input goes. Keyboard events are by default sent to the client expressing interest on the window the pointer is in. This is said to be a "real estate driven" input focus. It is also possible to attach the keyboard input to a specific window; events will then be sent to the appropriate client independent of the pointer position. Input manager Control over keyboard input is typically provided by an "input manager" client. InputOnly window A window that cannot be used for graphics requests. InputOnly windows are "invisible", and can be used to control such things as cursors, input event generation, and grabbing. InputOutput window The "normal" kind of opaque window, used for both input and output. Key grabbing Keys on the keyboard may be passively "grabbed" by a client. When the key is pressed, the keyboard is then actively grabbed by the client. Keyboard grabbing A client can actively "grab" control of the keyboard, and key events will be sent to that client rather than the client the events would normally have been sent to. Mapping A window is said to be "mapped" if a map call has been performed on it. Unmapped windows are never viewable or visible. Modifier keys Shift, Control, Meta, Super, Hyper, ALT, Compose, Apple, CapsLock, ShiftLock, and similar keys are called "modifier" keys. Obscures Window A "obscures" window B if both are viewable InputOutput windows and A is higher in the global stackingM.I.T. [Page 8]RFC 1013 June 1987 order, and the rectangle defined by the outside edges of intersects the rectangle defined by the outside edges of B. Note the (fine) distinction with "occludes". Also note that window borders are included in the calculation. Occludes Window A "occludes" window B if both are mapped and A is higher in the global stacking order, and the rectangle defined by the outside edges of A intersects the rectangle defined by the outside edges of B. Note the (fine) distinction with "obscures". Also note that window borders are included in the calculation. Padding Some padding bytes are inserted in the data stream to maintain alignment of the protocol requests on natural boundaries. This increases ease of portability to some machine architectures. Parent window If C is a child of P, then P is the "parent" of C. Passive grab Grabbing a key or button is a "passive" grab. The grab activates when the key or button is actually pressed. Pixel value A "pixel" is an N-bit value, where N is the number of bit planes used in a particular window or pixmap. For a window, a pixel value indexes a colormap to derive an actual color to be displayed. Pixmap A "pixmap" is a three dimensional array of bits. A pixmap is normally thought of as a two dimensional array of pixels, where each pixel can be a value from 0 to (2^N)-1, where N is the depth (z axis) of the pixmap. A pixmap can also be thought of as a stack of N bitmaps. Plane mask Graphics operations can be restricted to only affect a subset of bit planes of a destination. A "plane mask" is a bit mask describing which planes are to be modified, and is stored in a graphics context. Pointer The "pointer" is the pointing device attached to the cursor, and tracked on the screens. Pointer grabbing A client can actively "grab" control of the pointer, andM.I.T. [Page 9]RFC 1013 June 1987 button and motion events will be sent to that client rather than the client the events would normally have been sent to. Pointing device A "pointing device" is typically a mouse or tablet, or some other device with effective dimensional motion. There is only one visible cursor is defined by the core protocol, and it tracks whatever pointing device is attached as the pointer. Property Windows may have associated "properties", consisting of a name, a type, a data format, and some data. The protocol places no interpretation on properties, they are intended as a general-purpose naming mechanism for clients. For example, clients might share information such as resize hints, program names, and icon formats with a window manager via properties. Property list The "property list" of a window is the list of properties that have been defined for the window. Redirecting control Window managers (or client programs) may wish to enforce window layout policy in various ways. When a client attempts to change the size or position of a window, the operation may be "redirected" to a specified client, rather than the operation actually being performed. Reply Information requested by a client program is sent back to the client with a "reply". Both events and replys are multipexed on the same connection. Most requests do not generate replies. Request A command to the server is called a "request". It is a single block of data sent over a connection. Resource Windows, pixmaps, cursors, fonts, graphics contexts, and colormaps are known as "resources". They all have unique identifiers associated with them for naming purposes. The lifetime of a resource is bounded by the lifetime of the connection over which the resource was created. Root The "root" of a pixmap or gcontext is the same as the root of whatever drawable was used when the pixmap or gcontext was created. The "root" of a window is the root windowM.I.T. [Page 10]RFC 1013 June 1987 under which the window was created. Root window Each screen has a "root window" covering it. It cannot be reconfigured or unmapped, but otherwise acts as a full fledged window. A root window has no parent. Save set The "save set" of a client is a list of other client's windows which, if they are inferiors of one of the client's windows at connection close, should not be destroyed, and which should be remapped if it is unmapped. Save sets are typically used by window managers to avoid lost windows if the manager should terminate abnormally. Screen A server may provide several independent "screens", which typically have physically independent monitors. This would be the expected configuration when there is only a single keyboard and pointer shared among the screens. Server The "server" provides the basic windowing mechanism. It handles IPC connections from clients, demultipexes graphics requests onto the screens, and multiplexes input back to the appropriate clients. Server grabbing The server can be "grabbed" by a single client for exclusive use. This prevents processing of any requests from other client connections until the grab is complete. This is typically only a transient state for such things as rubber-banding and pop-up menus, or to execute requests indivisibly. Sibling Children of the same parent window are known as "sibling" windows. Stacking order Sibling windows may "stack" on top of each other. Windows above both obscure and occlude lower windows. This is similar to paper on a desk. The relationship between sibling windows is known as the "stacking order". Stipple A "stipple pattern" is a bitmap that is used to tile a region to serve as an additional clip mask for a fill operation with the foreground color.M.I.T. [Page 11]RFC 1013 June 1987 Tile A pixmap can be replicated in two dimensions to "tile" a region. The pixmap itself is also known as a "tile". Timestamp A time value, expressed in milliseconds, typically since the last server reset. Timestamp values wrap around (after about 49.7 days). The server, given its current time is represented by timestamp T, always interprets timestamps from clients by treating half of the timestamp space as being earlier in time than T, and half of the timestamp space as being later in time than T. One timestamp value (named CurrentTime) is never generated by the server; this value is reserved for use in requests to represent the current server time. Type A type is an arbitrary atom used to identify the interpretation of property data. Types are completely uninterpreted by the server; they are solely for the benefit of clients. Unviewable A window is "unviewable" if it is mapped but some ancestor is unmapped.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -