## X Window System Interaction

X Window System Interaction — X backend-specific functions

## Synopsis

    #include <gdk/gdkx.h>

    #define     GDK_ROOT_WINDOW                 ()
    #define     GDK_ROOT_PARENT                 ()
    #define     GDK_DISPLAY                     ()
    #define     GDK_WINDOW_XDISPLAY             (win)
    #define     GDK_WINDOW_XID                  (win)
    #define     GDK_PIXMAP_XDISPLAY             (pix)
    #define     GDK_PIXMAP_XID                  (pix)
    #define     GDK_DISPLAY_XDISPLAY            (display)
    #define     GDK_DRAWABLE_XDISPLAY           (win)
    #define     GDK_DRAWABLE_XID                (win)
    #define     GDK_IMAGE_XDISPLAY              (image)
    #define     GDK_IMAGE_XIMAGE                (image)
    #define     GDK_GC_XDISPLAY                 (gc)
    #define     GDK_COLORMAP_XDISPLAY           (cmap)
    #define     GDK_COLORMAP_XCOLORMAP          (cmap)
    #define     GDK_SCREEN_XDISPLAY             (screen)
    #define     GDK_SCREEN_XNUMBER              (screen)
    #define     GDK_SCREEN_XSCREEN              (screen)
    #define     GDK_VISUAL_XVISUAL              (vis)
    #define     GDK_FONT_XDISPLAY               (font)
    #define     GDK_FONT_XFONT                  (font)
    #define     GDK_CURSOR_XCURSOR              (cursor)
    #define     GDK_CURSOR_XDISPLAY             (cursor)
    #define     GDK_GC_XGC                      (gc)
    #define     GDK_GC_GET_XGC                  (gc)
    #define     GDK_WINDOW_XWINDOW
    GdkVisual*  gdkx_visual_get                 (VisualID xvisualid);
    GdkColormap* gdkx_colormap_get              (Colormap xcolormap);
    GdkPixmap*  gdk_pixmap_foreign_new          (GdkNativeWindow anid);
    GdkPixmap*  gdk_pixmap_foreign_new_for_display
                                                (GdkDisplay *display,
                                                 GdkNativeWindow anid);
    GdkPixmap*  gdk_pixmap_foreign_new_for_screen
                                                (GdkScreen *screen,
                                                 GdkNativeWindow anid,
                                                 gint width,
                                                 gint height,
                                                 gint depth);
    GdkWindow*  gdk_window_foreign_new          (GdkNativeWindow anid);
    GdkWindow*  gdk_window_foreign_new_for_display
                                                (GdkDisplay *display,
                                                 GdkNativeWindow anid);
    gpointer    gdk_xid_table_lookup            (XID xid);
    gpointer    gdk_xid_table_lookup_for_display
                                                (GdkDisplay *display,
                                                 XID xid);
    GdkWindow*  gdk_window_lookup               (GdkNativeWindow anid);
    GdkWindow*  gdk_window_lookup_for_display   (GdkDisplay *display,
                                                 GdkNativeWindow anid);
    GdkPixmap*  gdk_pixmap_lookup               (GdkNativeWindow anid);
    GdkPixmap*  gdk_pixmap_lookup_for_display   (GdkDisplay *display,
                                                 GdkNativeWindow anid);
    #define     gdk_font_lookup                 (xid)
    #define     gdk_font_lookup_for_display     (display, xid)
    GdkDisplay* gdk_x11_lookup_xdisplay         (Display *xdisplay);
    guint32     gdk_x11_get_server_time         (GdkWindow *window);
    gboolean    gdk_net_wm_supports             (GdkAtom property);
    gboolean    gdk_x11_screen_supports_net_wm_hint
                                                (GdkScreen *screen,
                                                 GdkAtom property);
    const char* gdk_x11_screen_get_window_manager_name
                                                (GdkScreen *screen);
    GdkVisual*  gdk_x11_screen_lookup_visual    (GdkScreen *screen,
                                                 VisualID xvisualid);
    void        gdk_x11_window_set_user_time    (GdkWindow *window,
                                                 guint32 timestamp);
    void        gdk_x11_window_move_to_current_desktop
                                                (GdkWindow *window);
    guint32     gdk_x11_display_get_user_time   (GdkDisplay *display);
    GdkColormap* gdk_x11_colormap_foreign_new   (GdkVisual *visual,
                                                 Colormap xcolormap);
    Colormap    gdk_x11_colormap_get_xcolormap  (GdkColormap *colormap);
    Display*    gdk_x11_colormap_get_xdisplay   (GdkColormap *colormap);
    Cursor      gdk_x11_cursor_get_xcursor      (GdkCursor *cursor);
    Display*    gdk_x11_cursor_get_xdisplay     (GdkCursor *cursor);
    Display*    gdk_x11_display_get_xdisplay    (GdkDisplay *display);
    void        gdk_x11_display_grab            (GdkDisplay *display);
    void        gdk_x11_display_ungrab          (GdkDisplay *display);
    void        gdk_x11_display_set_cursor_theme
                                                (GdkDisplay *display,
                                                 const gchar *theme,
                                                 const gint size);
    void        gdk_x11_register_standard_event_type
                                                (GdkDisplay *display,
                                                 gint event_base,
                                                 gint n_events);
    Display*    gdk_x11_drawable_get_xdisplay   (GdkDrawable *drawable);
    XID         gdk_x11_drawable_get_xid        (GdkDrawable *drawable);
    const char* gdk_x11_font_get_name           (GdkFont *font);
    Display*    gdk_x11_font_get_xdisplay       (GdkFont *font);
    gpointer    gdk_x11_font_get_xfont          (GdkFont *font);
    Display*    gdk_x11_gc_get_xdisplay         (GdkGC *gc);
    GC          gdk_x11_gc_get_xgc              (GdkGC *gc);
    Window      gdk_x11_get_default_root_xwindow
                                                (void);
    gint        gdk_x11_get_default_screen      (void);
    Display*    gdk_x11_get_default_xdisplay    (void);
    void        gdk_x11_grab_server             (void);
    Display*    gdk_x11_image_get_xdisplay      (GdkImage *image);
    XImage*     gdk_x11_image_get_ximage        (GdkImage *image);
    int         gdk_x11_screen_get_screen_number
                                                (GdkScreen *screen);
    Screen*     gdk_x11_screen_get_xscreen      (GdkScreen *screen);
    void        gdk_x11_ungrab_server           (void);
    Visual*     gdk_x11_visual_get_xvisual      (GdkVisual *visual);
    Atom        gdk_x11_atom_to_xatom           (GdkAtom atom);
    Atom        gdk_x11_atom_to_xatom_for_display
                                                (GdkDisplay *display,
                                                 GdkAtom atom);
    GdkAtom     gdk_x11_xatom_to_atom           (Atom xatom);
    GdkAtom     gdk_x11_xatom_to_atom_for_display
                                                (GdkDisplay *display,
                                                 Atom xatom);
    Atom        gdk_x11_get_xatom_by_name       (const gchar *atom_name);
    Atom        gdk_x11_get_xatom_by_name_for_display
                                                (GdkDisplay *display,
                                                 const gchar *atom_name);
    const gchar* gdk_x11_get_xatom_name         (Atom xatom);
    const gchar* gdk_x11_get_xatom_name_for_display
                                                (GdkDisplay *display,
                                                 Atom xatom);

## Description

## Details

### GDK_ROOT_WINDOW()

    #define GDK_ROOT_WINDOW()             (gdk_x11_get_default_root_xwindow ())

Obtains the Xlib window id of the root window of the current screen.

### GDK_ROOT_PARENT()

    #define GDK_ROOT_PARENT()             (gdk_get_default_root_window ())

### Warning

`GDK_ROOT_PARENT` is deprecated and should not be used in newly-written code.

Obtains the Xlib window id of the root window of the default screen.

### GDK_DISPLAY()

    #define GDK_DISPLAY()                 gdk_display

The current display.

Returns : | an Xlib Display*.

### GDK_WINDOW_XDISPLAY()

    #define     GDK_WINDOW_XDISPLAY(win)

Returns the display of a GdkWindow.

`win` : | a GdkWindow.
Returns : | an Xlib Display*.

### GDK_WINDOW_XID()

    #define     GDK_WINDOW_XID(win)

Returns the X window belonging to a GdkWindow.

`win` : | a GdkWindow.
Returns : | the Xlib Window of `win`.

### GDK_PIXMAP_XDISPLAY()

    #define     GDK_PIXMAP_XDISPLAY(pix)

Returns the display of a GdkPixmap.

`pix` : | a GdkPixmap.
Returns : | an Xlib Display*.

### GDK_PIXMAP_XID()

    #define     GDK_PIXMAP_XID(pix)

Returns the X pixmap belonging to a GdkPixmap.

`pix` : | a GdkPixmap.
Returns : | the Xlib XPixmap of `win`.

### GDK_DISPLAY_XDISPLAY()

    #define     GDK_DISPLAY_XDISPLAY(display)

Returns the display of a GdkDisplay.

`display` : | a GdkDisplay.

### GDK_DRAWABLE_XDISPLAY()

    #define     GDK_DRAWABLE_XDISPLAY(win)

Returns the display of a GdkDrawable.

`win` : | a GdkDrawable.
Returns : | an Xlib Display*.

### GDK_DRAWABLE_XID()

    #define     GDK_DRAWABLE_XID(win)

Returns the X resource (window or pixmap) belonging to a GdkDrawable.

`win` : | a GdkDrawable.
Returns : | the ID of `win`'s X resource.

### GDK_IMAGE_XDISPLAY()

    #define GDK_IMAGE_XDISPLAY(image)     (gdk_x11_image_get_xdisplay (image))

Returns the display of a GdkImage.

`image` : | a GdkImage.
Returns : | an Xlib Display*.

### GDK_IMAGE_XIMAGE()

    #define GDK_IMAGE_XIMAGE(image)       (gdk_x11_image_get_ximage (image))

Returns the X image belonging to a GdkImage.

`image` : | a GdkImage.
Returns : | an XImage*.

### GDK_GC_XDISPLAY()

    #define     GDK_GC_XDISPLAY(gc)

Returns the display of a GdkGC.

`gc` : | a GdkGC.
Returns : | an Xlib Display*.

### GDK_COLORMAP_XDISPLAY()

    #define GDK_COLORMAP_XDISPLAY(cmap)   (gdk_x11_colormap_get_xdisplay (cmap))

Returns the display of a GdkColormap.

`cmap` : | a GdkColormap.
Returns : | an Xlib Display*.

### GDK_COLORMAP_XCOLORMAP()

    #define GDK_COLORMAP_XCOLORMAP(cmap)  (gdk_x11_colormap_get_xcolormap (cmap))

Returns the X colormap belonging to a GdkColormap.

`cmap` : | a GdkColormap.
Returns : | an Xlib Colormap.

### GDK_SCREEN_XDISPLAY()

    #define     GDK_SCREEN_XDISPLAY(screen)

Returns the display of a GdkScreen.

`screen` : | a GdkScreen.
Returns : | an Xlib Display*.

### GDK_SCREEN_XNUMBER()

    #define     GDK_SCREEN_XNUMBER(screen)

Returns the index of a GdkScreen.

`screen` : | a GdkScreen
Returns : | the position of `screen` among the screens of its display.

### GDK_SCREEN_XSCREEN()

    #define     GDK_SCREEN_XSCREEN(screen)

Returns the screen of a GdkScreen.

`screen` : | a GdkScreen
Returns : | an Xlib Screen*.

### GDK_VISUAL_XVISUAL()

    #define     GDK_VISUAL_XVISUAL(vis)

Returns the X visual belonging to a GdkVisual.

`vis` : | a GdkVisual.
Returns : | an Xlib Visual*.

### GDK_FONT_XDISPLAY()

    #define GDK_FONT_XDISPLAY(font)       (gdk_x11_font_get_xdisplay (font))

### Warning

`GDK_FONT_XDISPLAY` is deprecated and should not be used in newly-written code.

Returns the display of a GdkFont.

`font` : | a GdkFont.
Returns : | an Xlib Display*.

### GDK_FONT_XFONT()

    #define GDK_FONT_XFONT(font)          (gdk_x11_font_get_xfont (font))

### Warning

`GDK_FONT_XFONT` is deprecated and should not be used in newly-written code.

Returns the X font belonging to a GdkFont.

`font` : | a GdkFont.
Returns : | an Xlib XFontStruct* or an XFontSet.

### GDK_CURSOR_XCURSOR()

    #define GDK_CURSOR_XCURSOR(cursor)    (gdk_x11_cursor_get_xcursor (cursor))

Returns the X cursor belonging to a GdkCursor.

`cursor` : | a GdkCursor.
Returns : | an Xlib Cursor.

### GDK_CURSOR_XDISPLAY()

    #define GDK_CURSOR_XDISPLAY(cursor)   (gdk_x11_cursor_get_xdisplay (cursor))

Returns the display of a GdkCursor.

`cursor` : | a GdkCursor.
Returns : | an Xlib Display*.

### GDK_GC_XGC()

    #define     GDK_GC_XGC(gc)

Returns the X GC of a GdkGC.

`gc` : | a GdkGC.
Returns : | an Xlib GC.

### GDK_GC_GET_XGC()

    #define GDK_GC_GET_XGC(gc)	      (GDK_GC_X11(gc)->dirty_mask ? _gdk_x11_gc_flush (gc) : ((GdkGCX11 *)(gc))->xgc)

Returns the X GC of a GdkGC.

`gc` : | a GdkGC.
Returns : | an Xlib GC.

### GDK_WINDOW_XWINDOW

    #define     GDK_WINDOW_XWINDOW

Another name for `GDK_DRAWABLE_XID()`.

### gdkx_visual_get ()

    GdkVisual*  gdkx_visual_get                 (VisualID xvisualid);

Returns a GdkVisual corresponding to a X visual.

`xvisualid` : | a X visual id.
Returns : | the GdkVisual.

### gdkx_colormap_get ()

    GdkColormap* gdkx_colormap_get              (Colormap xcolormap);

### Warning

`gdkx_colormap_get` is deprecated and should not be used in newly-written code.

Returns a GdkColormap corresponding to a X colormap; this function only works if the colormap is already known to GTK+ (a colormap created by GTK+ or the default colormap for the screen), since GTK+

Always use `gdk_x11_colormap_foreign_new()` instead.

`xcolormap` : | the XID of a colormap for the default screen.
Returns : | the existing GdkColormap object if it was already known to GTK+, otherwise warns and return `NULL`.

### gdk_pixmap_foreign_new ()

    GdkPixmap*  gdk_pixmap_foreign_new          (GdkNativeWindow anid);

Wraps a native window for the default display in a GdkPixmap. This may fail if the pixmap has been destroyed.

For example in the X backend, a native pixmap handle is an Xlib XID.

`anid` : | a native pixmap handle.
Returns : | the newly-created GdkPixmap wrapper for the native pixmap or `NULL` if the pixmap has been destroyed.

### gdk_pixmap_foreign_new_for_display ()

    GdkPixmap*  gdk_pixmap_foreign_new_for_display
                                                (GdkDisplay *display,
                                                 GdkNativeWindow anid);

Wraps a native pixmap in a GdkPixmap. This may fail if the pixmap has been destroyed.

For example in the X backend, a native pixmap handle is an Xlib XID.

`display` : | The GdkDisplay where `anid` is located.
`anid` : | a native pixmap handle.
Returns : | the newly-created GdkPixmap wrapper for the native pixmap or `NULL` if the pixmap has been destroyed.

Since 2.2

### gdk_pixmap_foreign_new_for_screen ()

    GdkPixmap*  gdk_pixmap_foreign_new_for_screen
                                                (GdkScreen *screen,
                                                 GdkNativeWindow anid,
                                                 gint width,
                                                 gint height,
                                                 gint depth);

Wraps a native pixmap in a GdkPixmap. This may fail if the pixmap has been destroyed.

For example in the X backend, a native pixmap handle is an Xlib XID.

This function is an alternative to `gdk_pixmap_foreign_new_for_display()` for cases where the dimensions of the pixmap are known. For the X backend, this avoids a roundtrip to the server.

`screen` : | a GdkScreen
`anid` : | a native pixmap handle
`width` : | the width of the pixmap identified by `anid`
`height` : | the height of the pixmap identified by `anid`
`depth` : | the depth of the pixmap identified by `anid`
Returns : | the newly-created GdkPixmap wrapper for the native pixmap or `NULL` if the pixmap has been destroyed.

Since 2.10

### gdk_window_foreign_new ()

    GdkWindow*  gdk_window_foreign_new          (GdkNativeWindow anid);

Wraps a native window for the default display in a GdkWindow. This may fail if the window has been destroyed.

For example in the X backend, a native window handle is an Xlib XID.

`anid` : | a native window handle.
Returns : | the newly-created GdkWindow wrapper for the native window or `NULL` if the window has been destroyed.

### gdk_window_foreign_new_for_display ()

    GdkWindow*  gdk_window_foreign_new_for_display
                                                (GdkDisplay *display,
                                                 GdkNativeWindow anid);

Wraps a native window in a GdkWindow. This may fail if the window has been destroyed. If the window was already known to GDK, a new reference to the existing GdkWindow is returned.

For example in the X backend, a native window handle is an Xlib XID.

`display` : | the GdkDisplay where the window handle comes from.
`anid` : | a native window handle.
Returns : | a GdkWindow wrapper for the native window or `NULL` if the window has been destroyed. The wrapper will be newly created, if one doesn't exist already.

Since 2.2

### gdk_xid_table_lookup ()

    gpointer    gdk_xid_table_lookup            (XID xid);

Returns the Gdk object associated with the given X id.

`xid` : | an X id.
Returns : | the associated Gdk object, which may be a GdkPixmap, a GdkWindow or a GdkFont.

### gdk_xid_table_lookup_for_display ()

    gpointer    gdk_xid_table_lookup_for_display
                                                (GdkDisplay *display,
                                                 XID xid);

Returns the GDK object associated with the given X id.

`display` : | the GdkDisplay.
`xid` : | an X id.
Returns : | a GDK object associated with the given X id.

Since 2.2

### gdk_window_lookup ()

    GdkWindow*  gdk_window_lookup               (GdkNativeWindow anid);

Looks up the GdkWindow that wraps the given native window handle.

For example in the X backend, a native window handle is an Xlib XID.

`anid` : | a native window handle.
Returns : | the GdkWindow wrapper for the native window, or `NULL` if there is none.

### gdk_window_lookup_for_display ()

    GdkWindow*  gdk_window_lookup_for_display   (GdkDisplay *display,
                                                 GdkNativeWindow anid);

Looks up the GdkWindow that wraps the given native window handle.

For example in the X backend, a native window handle is an Xlib XID.

`display` : | the GdkDisplay corresponding to the window handle
`anid` : | a native window handle.
Returns : | the GdkWindow wrapper for the native window, or `NULL` if there is none.

Since 2.2

### gdk_pixmap_lookup ()

    GdkPixmap*  gdk_pixmap_lookup               (GdkNativeWindow anid);

Looks up the GdkPixmap that wraps the given native pixmap handle.

For example in the X backend, a native pixmap handle is an Xlib XID.

`anid` : | a native pixmap handle.
Returns : | the GdkWindow wrapper for the native window, or `NULL` if there is none.

### gdk_pixmap_lookup_for_display ()

    GdkPixmap*  gdk_pixmap_lookup_for_display   (GdkDisplay *display,
                                                 GdkNativeWindow anid);

Looks up the GdkPixmap that wraps the given native pixmap handle.

For example in the X backend, a native pixmap handle is an Xlib XID.

`display` : | the GdkDisplay associated with `anid`
`anid` : | a native pixmap handle.
Returns : | the GdkPixmap wrapper for the native pixmap, or `NULL` if there is none.

Since 2.2

### gdk_font_lookup()

    #define gdk_font_lookup(xid)	   ((GdkFont*) gdk_xid_table_lookup (xid))

### Warning

`gdk_font_lookup` is deprecated and should not be used in newly-written code.

Obtains the GdkFont for the given Xlib font ID, or `NULL` if no GdkFont has been created for `xid`.

`xid` : | an Xlib font ID

### gdk_font_lookup_for_display()

    #define gdk_font_lookup_for_display(display, xid) ((GdkFont*) gdk_xid_table_lookup_for_display (display, ((xid)|XID_FONT_BIT)))

### Warning

`gdk_font_lookup_for_display` is deprecated and should not be used in newly-written code.

Obtains the GdkFont for the given Xlib font ID on `display`, or `NULL` if no GdkFont has been created for `xid`.

`display` : | a GdkDisplay
`xid` : | an Xlib font ID Since: 2.2

### gdk_x11_lookup_xdisplay ()

    GdkDisplay* gdk_x11_lookup_xdisplay         (Display *xdisplay);

Find the GdkDisplay corresponding to `display`, if any exists.

`xdisplay` : | a pointer to an X Display
Returns : | the GdkDisplay, if found, otherwise `NULL`.

Since 2.2

### gdk_x11_get_server_time ()

    guint32     gdk_x11_get_server_time         (GdkWindow *window);

Routine to get the current X server time stamp.

`window` : | a GdkWindow, used for communication with the server. The window must have GDK_PROPERTY_CHANGE_MASK in its events mask or a hang will result.
Returns : | the time stamp.

### gdk_net_wm_supports ()

    gboolean    gdk_net_wm_supports             (GdkAtom property);

This function is specific to the X11 backend of GDK, and indicates whether the window manager for the default screen supports a certain hint from the Extended Window Manager Hints Specification. See `gdk_x11_screen_supports_net_wm_hint()` for complete details.

`property` : | a property atom.
Returns : | `TRUE` if the window manager supports `property`

### gdk_x11_screen_supports_net_wm_hint ()

    gboolean    gdk_x11_screen_supports_net_wm_hint
                                                (GdkScreen *screen,
                                                 GdkAtom property);

This function is specific to the X11 backend of GDK, and indicates whether the window manager supports a certain hint from the Extended Window Manager Hints Specification. You can find this specification on http://www.freedesktop.org.

When using this function, keep in mind that the window manager can change over time; so you shouldn't use this function in a way that impacts persistent application state. A common bug is that your application can start up before the window manager does when the user logs in, and before the window manager starts `gdk_x11_screen_supports_net_wm_hint()` will return `FALSE` for every property. You can monitor the window_manager_changed signal on GdkScreen to detect a window manager change.

`screen` : | the relevant GdkScreen.
`property` : | a property atom.
Returns : | `TRUE` if the window manager supports `property`

Since 2.2

### gdk_x11_screen_get_window_manager_name ()

    const char* gdk_x11_screen_get_window_manager_name
                                                (GdkScreen *screen);

Returns the name of the window manager for `screen`.

`screen` : | a GdkScreen
Returns : | the name of the window manager screen `screen`, or "unknown" if the window manager is unknown. The string is owned by GDK and should not be freed.

Since 2.2

### gdk_x11_screen_lookup_visual ()

    GdkVisual*  gdk_x11_screen_lookup_visual    (GdkScreen *screen,
                                                 VisualID xvisualid);

Looks up the GdkVisual for a particular screen and X Visual ID.

`screen` : | a GdkScreen.
`xvisualid` : | an X Visual ID.
Returns : | the GdkVisual (owned by the screen object), or `NULL` if the visual ID wasn't found.

Since 2.2

### gdk_x11_window_set_user_time ()

    void        gdk_x11_window_set_user_time    (GdkWindow *window,
                                                 guint32 timestamp);

The application can use this call to update the _NET_WM_USER_TIME property on a toplevel window. This property stores an Xserver time which represents the time of the last user input event received for this window. This property may be used by the window manager to alter the focus, stacking, and/or placement behavior of windows when they are mapped depending on whether the new window was created by a user action or is a "pop-up" window activated by a timer or some other event.

Note that this property is automatically updated by GDK, so this function should only be used by applications which handle input events bypassing GDK.

`window` : | A toplevel GdkWindow
`timestamp` : | An XServer timestamp to which the property should be set

Since 2.6

### gdk_x11_window_move_to_current_desktop ()

    void        gdk_x11_window_move_to_current_desktop
                                                (GdkWindow *window);

Moves the window to the correct workspace when running under a window manager that supports multiple workspaces, as described in the Extended Window Manager Hints. Will not do anything if the window is already on all workspaces.

`window` : | a GdkWindow

Since 2.8

### gdk_x11_display_get_user_time ()

    guint32     gdk_x11_display_get_user_time   (GdkDisplay *display);

Returns the timestamp of the last user interaction on `display`. The timestamp is taken from events caused by user interaction such as key presses or pointer movements. See `gdk_x11_window_set_user_time()`.

`display` : | a GdkDisplay
Returns : | the timestamp of the last user interaction

Since 2.8

### gdk_x11_colormap_foreign_new ()

    GdkColormap* gdk_x11_colormap_foreign_new   (GdkVisual *visual,
                                                 Colormap xcolormap);

If xcolormap refers to a colormap previously known to GTK+, returns a new reference to the existing GdkColormap object, otherwise creates a new GdkColormap object and returns that

`visual` : | a GdkVisual
`xcolormap` : | The XID of a colormap with visual `visual`
Returns : | the GdkColormap object for `xcolormap`. Free with `g_object_unref()`. Note that for colormap created with `gdk_x11_colormap_foreign_new()`, unref'ing the last reference to the object will only free the GdkColoramp object and not call `XFreeColormap()`

Since 2.2

### gdk_x11_colormap_get_xcolormap ()

    Colormap    gdk_x11_colormap_get_xcolormap  (GdkColormap *colormap);

Returns the X colormap belonging to a GdkColormap.

`colormap` : | a GdkColormap.
Returns : | an Xlib Colormap.

### gdk_x11_colormap_get_xdisplay ()

    Display*    gdk_x11_colormap_get_xdisplay   (GdkColormap *colormap);

Returns the display of a GdkColormap.

`colormap` : | a GdkColormap.
Returns : | an Xlib Display*.

### gdk_x11_cursor_get_xcursor ()

    Cursor      gdk_x11_cursor_get_xcursor      (GdkCursor *cursor);

Returns the X cursor belonging to a GdkCursor.

`cursor` : | a GdkCursor.
Returns : | an Xlib Cursor.

### gdk_x11_cursor_get_xdisplay ()

    Display*    gdk_x11_cursor_get_xdisplay     (GdkCursor *cursor);

Returns the display of a GdkCursor.

`cursor` : | a GdkCursor.
Returns : | an Xlib Display*.

### gdk_x11_display_get_xdisplay ()

    Display*    gdk_x11_display_get_xdisplay    (GdkDisplay *display);

Returns the X display of a GdkDisplay.

`display` : | a GdkDisplay
Returns : | an X display.

Since 2.2

### gdk_x11_display_grab ()

    void        gdk_x11_display_grab            (GdkDisplay *display);

Call `XGrabServer()` on `display`. To ungrab the display again, use `gdk_x11_display_ungrab()`.

`gdk_x11_display_grab()`/`gdk_x11_display_ungrab()` calls can be nested.

`display` : | a GdkDisplay

Since 2.2

### gdk_x11_display_ungrab ()

    void        gdk_x11_display_ungrab          (GdkDisplay *display);

Ungrab `display` after it has been grabbed with `gdk_x11_display_grab()`.

`display` : | a GdkDisplay

Since 2.2

### gdk_x11_display_set_cursor_theme ()

    void        gdk_x11_display_set_cursor_theme
                                                (GdkDisplay *display,
                                                 const gchar *theme,
                                                 const gint size);

Sets the cursor theme from which the images for cursor should be taken.

If the windowing system supports it, existing cursors created with `gdk_cursor_new()`, `gdk_cursor_new_for_display()` and `gdk_cursor_new_for_name()` are updated to reflect the theme change. Custom cursors constructed with `gdk_cursor_new_from_pixmap()` or `gdk_cursor_new_from_pixbuf()` will have to be handled by the application (GTK+ applications can learn about cursor theme changes by listening for change notification for the corresponding GtkSetting).

`display` : | a GdkDisplay
`theme` : | the name of the cursor theme to use, or `NULL` to unset a previously set value
`size` : | the cursor size to use, or 0 to keep the previous size

Since 2.8

### gdk_x11_register_standard_event_type ()

    void        gdk_x11_register_standard_event_type
                                                (GdkDisplay *display,
                                                 gint event_base,
                                                 gint n_events);

Registers interest in receiving extension events with type codes between `event_base` and `event_base + n_events - 1`. The registered events must have the window field in the same place as core X events (this is not the case for e.g. XKB extension events).

If an event type is registered, events of this type will go through global and window-specific filters (see `gdk_window_add_filter()`). Unregistered events will only go through global filters. GDK may register the events of some X extensions on its own.

This function should only be needed in unusual circumstances, e.g. when filtering XInput extension events on the root window.

`display` : | a GdkDisplay
`event_base` : | first event type code to register
`n_events` : | number of event type codes to register

Since 2.4

### gdk_x11_drawable_get_xdisplay ()

    Display*    gdk_x11_drawable_get_xdisplay   (GdkDrawable *drawable);

Returns the display of a GdkDrawable.

`drawable` : | a GdkDrawable.
Returns : | an Xlib Display*.

### gdk_x11_drawable_get_xid ()

    XID         gdk_x11_drawable_get_xid        (GdkDrawable *drawable);

Returns the X resource (window or pixmap) belonging to a GdkDrawable.

`drawable` : | a GdkDrawable.
Returns : | the ID of `drawable`'s X resource.

### gdk_x11_font_get_name ()

    const char* gdk_x11_font_get_name           (GdkFont *font);

### Warning

`gdk_x11_font_get_name` is deprecated and should not be used in newly-written code.

Return the X Logical Font Description (for font->type == GDK_FONT_FONT) or comma separated list of XLFDs (for font->type == GDK_FONT_FONTSET) that was used to load the font. If the same font was loaded via multiple names, which name is returned is undefined.

`font` : | a GdkFont.
Returns : | the name of the font. This string is owned by GDK and must not be modified or freed.

### gdk_x11_font_get_xdisplay ()

    Display*    gdk_x11_font_get_xdisplay       (GdkFont *font);

### Warning

`gdk_x11_font_get_xdisplay` is deprecated and should not be used in newly-written code.

Returns the display of a GdkFont.

`font` : | a GdkFont.
Returns : | an Xlib Display*.

### gdk_x11_font_get_xfont ()

    gpointer    gdk_x11_font_get_xfont          (GdkFont *font);

### Warning

`gdk_x11_font_get_xfont` is deprecated and should not be used in newly-written code.

Returns the X font belonging to a GdkFont.

`font` : | a GdkFont.
Returns : | an Xlib XFontStruct* or an XFontSet.

### gdk_x11_gc_get_xdisplay ()

    Display*    gdk_x11_gc_get_xdisplay         (GdkGC *gc);

Returns the display of a GdkGC.

`gc` : | a GdkGC.
Returns : | an Xlib Display*.

### gdk_x11_gc_get_xgc ()

    GC          gdk_x11_gc_get_xgc              (GdkGC *gc);

Returns the X GC of a GdkGC.

`gc` : | a GdkGC.
Returns : | an Xlib GC.

### gdk_x11_get_default_root_xwindow ()

    Window      gdk_x11_get_default_root_xwindow
                                                (void);

Gets the root window of the default screen (see `gdk_x11_get_default_screen()`).

Returns : | an Xlib Window.

### gdk_x11_get_default_screen ()

    gint        gdk_x11_get_default_screen      (void);

Gets the default GTK+ screen number.

Returns : | returns the screen number specified by the --display command line option or the DISPLAY environment variable when `gdk_init()` calls `XOpenDisplay()`.

### gdk_x11_get_default_xdisplay ()

    Display*    gdk_x11_get_default_xdisplay    (void);

Gets the default GTK+ display.

Returns : | the Xlib Display* for the display specified in the `--display` command line option or the `DISPLAY` environment variable.

### gdk_x11_grab_server ()

    void        gdk_x11_grab_server             (void);

Call `gdk_x11_display_grab()` on the default display. To ungrab the server again, use `gdk_x11_ungrab_server()`.

`gdk_x11_grab_server()`/`gdk_x11_ungrab_server()` calls can be nested.

### gdk_x11_image_get_xdisplay ()

    Display*    gdk_x11_image_get_xdisplay      (GdkImage *image);

Returns the display of a GdkImage.

`image` : | a GdkImage.
Returns : | an Xlib Display*.

### gdk_x11_image_get_ximage ()

    XImage*     gdk_x11_image_get_ximage        (GdkImage *image);

Returns the X image belonging to a GdkImage.

`image` : | a GdkImage.
Returns : | an XImage*.

### gdk_x11_screen_get_screen_number ()

    int         gdk_x11_screen_get_screen_number
                                                (GdkScreen *screen);

Returns the index of a GdkScreen.

`screen` : | a GdkScreen.
Returns : | the position of `screen` among the screens of its display.

Since 2.2

### gdk_x11_screen_get_xscreen ()

    Screen*     gdk_x11_screen_get_xscreen      (GdkScreen *screen);

Returns the screen of a GdkScreen.

`screen` : | a GdkScreen.
Returns : | an Xlib Screen*

Since 2.2

### gdk_x11_ungrab_server ()

    void        gdk_x11_ungrab_server           (void);

Ungrab the default display after it has been grabbed with `gdk_x11_grab_server()`.

### gdk_x11_visual_get_xvisual ()

    Visual*     gdk_x11_visual_get_xvisual      (GdkVisual *visual);

Returns the X visual belonging to a GdkVisual.

`visual` : | a GdkVisual.
Returns : | an Xlib Visual*.

### gdk_x11_atom_to_xatom ()

    Atom        gdk_x11_atom_to_xatom           (GdkAtom atom);

Converts from a GdkAtom to the X atom for the default GDK display with the same string value.

`atom` : | A GdkAtom
Returns : | the X atom corresponding to `atom`.

### gdk_x11_atom_to_xatom_for_display ()

    Atom        gdk_x11_atom_to_xatom_for_display
                                                (GdkDisplay *display,
                                                 GdkAtom atom);

Converts from a GdkAtom to the X atom for a GdkDisplay with the same string value.

`display` : | A GdkDisplay
`atom` : | A GdkAtom
Returns : | the X atom corresponding to `atom`.

Since 2.2

### gdk_x11_xatom_to_atom ()

    GdkAtom     gdk_x11_xatom_to_atom           (Atom xatom);

Convert from an X atom for the default display to the corresponding GdkAtom.

`xatom` : | an X atom for the default GDK display
Returns : | the corresponding GdkAtom.

### gdk_x11_xatom_to_atom_for_display ()

    GdkAtom     gdk_x11_xatom_to_atom_for_display
                                                (GdkDisplay *display,
                                                 Atom xatom);

Convert from an X atom for a GdkDisplay to the corresponding GdkAtom.

`display` : | A GdkDisplay
`xatom` : | an X atom
Returns : | the corresponding GdkAtom.

Since 2.2

### gdk_x11_get_xatom_by_name ()

    Atom        gdk_x11_get_xatom_by_name       (const gchar *atom_name);

Returns the X atom for GDK's default display corresponding to `atom_name`. This function caches the result, so if called repeatedly it is much faster than `XInternAtom()`, which is a round trip to the server each time.

`atom_name` : | a string
Returns : | a X atom for GDK's default display.

### gdk_x11_get_xatom_by_name_for_display ()

    Atom        gdk_x11_get_xatom_by_name_for_display
                                                (GdkDisplay *display,
                                                 const gchar *atom_name);

Returns the X atom for a GdkDisplay corresponding to `atom_name`. This function caches the result, so if called repeatedly it is much faster than `XInternAtom()`, which is a round trip to the server each time.

`display` : | a GdkDisplay
`atom_name` : | a string
Returns : | a X atom for a GdkDisplay

Since 2.2

### gdk_x11_get_xatom_name ()

    const gchar* gdk_x11_get_xatom_name         (Atom xatom);

Returns the name of an X atom for GDK's default display. This function is meant mainly for debugging, so for convenience, unlike ``XAtomName()`` and `gdk_atom_name()`, the result doesn't need to be freed. Also, this function will never return `NULL`, even if `xatom` is invalid.

`xatom` : | an X atom for GDK's default display
Returns : | name of the X atom; this string is owned by GTK+, so it shouldn't be modifed or freed.

### gdk_x11_get_xatom_name_for_display ()

    const gchar* gdk_x11_get_xatom_name_for_display
                                                (GdkDisplay *display,
                                                 Atom xatom);

Returns the name of an X atom for its display. This function is meant mainly for debugging, so for convenience, unlike `XAtomName()` and `gdk_atom_name()`, the result doesn't need to be freed.

`display` : | the GdkDisplay where `xatom` is defined
`xatom` : | an X atom
Returns : | name of the X atom; this string is owned by GDK, so it shouldn't be modifed or freed.

Since 2.2