@@ -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+
247250typedef 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