Skip to content

Commit fd404da

Browse files
author
jan.nijtmans
committed
Backport more from X11R6
1 parent 25d2ed4 commit fd404da

File tree

1 file changed

+39
-31
lines changed

1 file changed

+39
-31
lines changed

xlib/X11/Xlib.h

Lines changed: 39 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -90,20 +90,20 @@ typedef int Status;
9090
#define QueuedAfterFlush 2
9191

9292
#define ConnectionNumber(dpy) ((dpy)->fd)
93-
#define RootWindow(dpy, scr) (((dpy)->screens[(scr)]).root)
93+
#define RootWindow(dpy, scr) (ScreenOfDisplay(dpy,scr)->root)
9494
#define DefaultScreen(dpy) ((dpy)->default_screen)
95-
#define DefaultRootWindow(dpy) (((dpy)->screens[(dpy)->default_screen]).root)
96-
#define DefaultVisual(dpy, scr) (((dpy)->screens[(scr)]).root_visual)
97-
#define DefaultGC(dpy, scr) (((dpy)->screens[(scr)]).default_gc)
98-
#define BlackPixel(dpy, scr) (((dpy)->screens[(scr)]).black_pixel)
99-
#define WhitePixel(dpy, scr) (((dpy)->screens[(scr)]).white_pixel)
95+
#define DefaultRootWindow(dpy) (ScreenOfDisplay(dpy,DefaultScreen(dpy))->root)
96+
#define DefaultVisual(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_visual)
97+
#define DefaultGC(dpy, scr) (ScreenOfDisplay(dpy,scr)->default_gc)
98+
#define BlackPixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->black_pixel)
99+
#define WhitePixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->white_pixel)
100100
#define AllPlanes ((unsigned long)~0L)
101101
#define QLength(dpy) ((dpy)->qlen)
102-
#define DisplayWidth(dpy, scr) (((dpy)->screens[(scr)]).width)
103-
#define DisplayHeight(dpy, scr) (((dpy)->screens[(scr)]).height)
104-
#define DisplayWidthMM(dpy, scr)(((dpy)->screens[(scr)]).mwidth)
105-
#define DisplayHeightMM(dpy, scr)(((dpy)->screens[(scr)]).mheight)
106-
#define DisplayPlanes(dpy, scr) (((dpy)->screens[(scr)]).root_depth)
102+
#define DisplayWidth(dpy, scr) (ScreenOfDisplay(dpy,scr)->width)
103+
#define DisplayHeight(dpy, scr) (ScreenOfDisplay(dpy,scr)->height)
104+
#define DisplayWidthMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mwidth)
105+
#define DisplayHeightMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mheight)
106+
#define DisplayPlanes(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_depth)
107107
#define DisplayCells(dpy, scr) (DefaultVisual((dpy), (scr))->map_entries)
108108
#define ScreenCount(dpy) ((dpy)->nscreens)
109109
#define ServerVendor(dpy) ((dpy)->vendor)
@@ -122,7 +122,7 @@ typedef int Status;
122122

123123
/* macros for screen oriented applications (toolkit) */
124124
#define ScreenOfDisplay(dpy, scr)(&((dpy)->screens[(scr)]))
125-
#define DefaultScreenOfDisplay(dpy) (&((dpy)->screens[(dpy)->default_screen]))
125+
#define DefaultScreenOfDisplay(dpy) ScreenOfDisplay(dpy,DefaultScreen(dpy))
126126
#define DisplayOfScreen(s) ((s)->display)
127127
#define RootWindowOfScreen(s) ((s)->root)
128128
#define BlackPixelOfScreen(s) ((s)->black_pixel)
@@ -244,6 +244,9 @@ typedef struct {
244244
* implementation dependent. A Screen should be treated as opaque
245245
* by application code.
246246
*/
247+
248+
struct _XDisplay; /* Forward declare before use for C++ */
249+
247250
typedef struct {
248251
XExtData *ext_data; /* hook for extension to hang data */
249252
struct _XDisplay *display;/* back pointer to display structure */
@@ -473,18 +476,23 @@ typedef struct {
473476
* The contents of this structure are implementation dependent.
474477
* A Display should be treated as opaque by application code.
475478
*/
476-
typedef struct _XDisplay {
479+
struct _XPrivate; /* Forward declare before use for C++ */
480+
struct _XrmHashBucketRec;
481+
482+
typedef struct
483+
_XDisplay
484+
{
477485
XExtData *ext_data; /* hook for extension to hang data */
478-
struct _XFreeFuncs *free_funcs; /* internal free functions */
486+
struct _XPrivate *private1;
479487
int fd; /* Network socket. */
480-
int conn_checker; /* ugly thing used by _XEventsQueued */
481-
int proto_major_version;/* maj. version of server's X protocol */
488+
int private2;
489+
int proto_major_version;/* major version of server's X protocol */
482490
int proto_minor_version;/* minor version of servers X protocol */
483491
char *vendor; /* vendor of the server hardware */
484-
XID resource_base; /* resource ID base */
485-
XID resource_mask; /* resource ID mask bits */
486-
XID resource_id; /* allocator current ID */
487-
int resource_shift; /* allocator shift to correct bits */
492+
XID private3;
493+
XID private4;
494+
XID private5;
495+
int private6;
488496
XID (*resource_alloc)( /* allocator function */
489497
struct _XDisplay*
490498
);
@@ -494,31 +502,31 @@ typedef struct _XDisplay {
494502
int bitmap_bit_order; /* LeastSignificant or MostSignificant */
495503
int nformats; /* number of pixmap formats in list */
496504
ScreenFormat *pixmap_format; /* pixmap format list */
497-
int vnumber; /* Xlib's X protocol version number. */
505+
int private8;
498506
int release; /* release of the server */
499-
struct _XSQEvent *head, *tail; /* Input event queue. */
507+
struct _XPrivate *private9, *private10;
500508
int qlen; /* Length of input event queue */
501509
unsigned long request; /* sequence number of last request. */
502-
char *last_req; /* beginning of last request, or dummy */
503-
char *buffer; /* Output buffer starting address. */
504-
char *bufptr; /* Output buffer index pointer. */
505-
char *bufmax; /* Output buffer maximum+1 address. */
510+
XPointer private11;
511+
XPointer private12;
512+
XPointer private13;
513+
XPointer private14;
506514
unsigned max_request_size; /* maximum number 32 bit words in request*/
507515
struct _XrmHashBucketRec *db;
508-
int (*synchandler)( /* Synchronization handler */
516+
int (*private15)(
509517
struct _XDisplay*
510518
);
511519
char *display_name; /* "host:display" string used on this connect*/
512520
int default_screen; /* default screen for operations */
513521
int nscreens; /* number of screens on this server*/
514522
Screen *screens; /* pointer to list of screens */
515523
unsigned long motion_buffer; /* size of motion buffer */
516-
unsigned long flags; /* internal connection flags */
524+
unsigned long private16;
517525
int min_keycode; /* minimum defined keycode */
518526
int max_keycode; /* maximum defined keycode */
519-
KeySym *keysyms; /* This server's keysyms */
520-
XModifierKeymap *modifiermap; /* This server's modifier keymap */
521-
int keysyms_per_keycode;/* number of rows */
527+
XPointer private17;
528+
XPointer private18;
529+
int private19;
522530
char *xdefaults; /* contents of defaults from server */
523531
/* there is more to this structure, but it is private to Xlib */
524532
} Display;

0 commit comments

Comments
 (0)