## 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);
    XID                 gdk_x11_screen_get_monitor_output   (GdkScreen *screen,
                                                             gint monitor_num);
    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);
    void                gdk_x11_display_broadcast_startup_message
                                                            (GdkDisplay *display,
                                                             const char *message_type,
                                                             ...);
    const gchar *       gdk_x11_display_get_startup_notification_id
                                                            (GdkDisplay *display);
    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);
    void                gdk_x11_set_sm_client_id            (const gchar *sm_client_id);
    GdkWindow *         gdk_x11_window_foreign_new_for_display
                                                            (GdkDisplay *display,
                                                             Window window);
    GdkWindow *         gdk_x11_window_lookup_for_display   (GdkDisplay *display,
                                                             Window window);

## 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

### Warning

`GDK_DISPLAY` has been deprecated since version 2.22 and should not be used in newly-written code. Use `gdk_display_get_default()` to get the default GdkDisplay or `gdk_x11_get_default_xdisplay()` to get the corresponding Xlib Display *

The current display.

Returns : | an Xlib Display*.

### GDK_WINDOW_XDISPLAY()

    #define GDK_WINDOW_XDISPLAY(win)      (GDK_SCREEN_X11 (GDK_WINDOW_SCREEN (win))->xdisplay)

Returns the display of a GdkWindow.

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

### GDK_WINDOW_XID()

    #define GDK_WINDOW_XID(win)           (GDK_DRAWABLE_IMPL_X11(((GdkWindowObject *)win)->impl)->xid)

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)      (GDK_SCREEN_X11 (GDK_PIXMAP_SCREEN (pix))->xdisplay)

Returns the display of a GdkPixmap.

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

### GDK_PIXMAP_XID()

    #define GDK_PIXMAP_XID(pix)           (GDK_DRAWABLE_IMPL_X11(((GdkPixmapObject *)pix)->impl)->xid)

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) (GDK_DISPLAY_X11(display)->xdisplay)

Returns the display of a GdkDisplay.

`display` : | a GdkDisplay.

### GDK_DRAWABLE_XDISPLAY()

    #define GDK_DRAWABLE_XDISPLAY(win)    (GDK_IS_WINDOW (win) ? GDK_WINDOW_XDISPLAY (win) : GDK_PIXMAP_XDISPLAY (win))

Returns the display of a GdkDrawable.

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

### GDK_DRAWABLE_XID()

    #define GDK_DRAWABLE_XID(win)         (GDK_IS_WINDOW (win) ? GDK_WINDOW_XID (win) : GDK_PIXMAP_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)           (GDK_SCREEN_XDISPLAY(GDK_GC_X11(gc)->screen))

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)   (GDK_SCREEN_X11 (screen)->xdisplay)

Returns the display of a GdkScreen.

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

### GDK_SCREEN_XNUMBER()

    #define GDK_SCREEN_XNUMBER(screen)    (GDK_SCREEN_X11 (screen)->screen_num)

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)    (GDK_SCREEN_X11 (screen)->xscreen)

Returns the screen of a GdkScreen.

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

### GDK_VISUAL_XVISUAL()

    #define GDK_VISUAL_XVISUAL(vis)       (((GdkVisualPrivate *) vis)->xvisual)

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)		      (GDK_GC_X11(gc)->xgc)

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	      GDK_DRAWABLE_XID

Another name for `GDK_DRAWABLE_XID()`.

### gdkx_visual_get ()

    GdkVisual *         gdkx_visual_get                     (VisualID xvisualid);

### Warning

`gdkx_visual_get` has been deprecated since version 2.24 and should not be used in newly-written code. Use `gdk_x11_screen_lookup_visual()` instead

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);

### Warning

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

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);

### Warning

`gdk_window_foreign_new_for_display` has been deprecated since version 2.24 and should not be used in newly-written code. Use `gdk_x11_window_foreign_new_for_display()` or equivalent backend-specific API instead

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);

### Warning

`gdk_xid_table_lookup` has been deprecated since version 2.24 and should not be used in newly-written code. This function will be removed in GTK+ 3.0. GTK+ only stores windows in its X id table nowadays, so use `gdk_x11_window_lookup_for_display()` instead.

Returns the Gdk object associated with the given X id for the default display.

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

### gdk_xid_table_lookup_for_display ()

    gpointer            gdk_xid_table_lookup_for_display    (GdkDisplay *display,
                                                             XID xid);

### Warning

`gdk_xid_table_lookup_for_display` has been deprecated since version 2.24 and should not be used in newly-written code. This function will be removed in GTK+ 3.0. GTK+ only stores windows in its X id table nowadays, so use `gdk_x11_window_lookup_for_display()` instead.

Returns the GDK object associated with the given X id.

`display` : | the GdkDisplay.
`xid` : | an X id.
Returns : | the associated Gdk object, which may be a GdkPixmap, a GdkWindow or a GdkFont or `NULL` if no object is associated with the X id.

Since 2.2

### gdk_window_lookup ()

    GdkWindow *         gdk_window_lookup                   (GdkNativeWindow anid);

### Warning

`gdk_window_lookup` has been deprecated since version 2.24 and should not be used in newly-written code. Use `gdk_x11_window_lookup_for_display()` or equivalent backend-specific functionality instead

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);

### Warning

`gdk_window_lookup_for_display` has been deprecated since version 2.24 and should not be used in newly-written code. Use `gdk_x11_window_lookup_for_display()` instead

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 GdkPixmap wrapper for the native pixmap, 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);

### Warning

`gdk_net_wm_supports` has been deprecated since version 2.24 and should not be used in newly-written code. Use `gdk_x11_screen_supports_net_wm_hint()` instead

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_get_monitor_output ()

    XID                 gdk_x11_screen_get_monitor_output   (GdkScreen *screen,
                                                             gint monitor_num);

Gets the XID of the specified output/monitor. If the X server does not support version 1.2 of the RANDR extension, 0 is returned.

`screen` : | a GdkScreen
`monitor_num` : | number of the monitor, between 0 and gdk_screen_get_n_monitors (screen)
Returns : | the XID of the monitor

Since 2.14

### 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. [transfer none]

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_broadcast_startup_message ()

    void                gdk_x11_display_broadcast_startup_message
                                                            (GdkDisplay *display,
                                                             const char *message_type,
                                                             ...);

Sends a startup notification message of type `message_type` to `display`.

This is a convenience function for use by code that implements the freedesktop startup notification specification. Applications should not normally need to call it directly. See the Startup Notification Protocol specification for definitions of the message types and keys that can be used.

`display` : | a GdkDisplay
`message_type` : | startup notification message type ("new", "change", or "remove")
`...` : | a list of key/value pairs (as strings), terminated by a `NULL` key. (A `NULL` value for a key will cause that key to be skipped in the output.)

Since 2.12

### gdk_x11_display_get_startup_notification_id ()

    const gchar *       gdk_x11_display_get_startup_notification_id
                                                            (GdkDisplay *display);

Gets the startup notification ID for a display.

`display` : | a GdkDisplay
Returns : | the startup notification ID for `display`

Since 2.12

### 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);

### Warning

`gdk_x11_gc_get_xdisplay` has been deprecated since version 2.22 and should not be used in newly-written code. GdkGC has been replaced by cairo_t.

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);

### Warning

`gdk_x11_gc_get_xgc` has been deprecated since version 2.22 and should not be used in newly-written code. GdkGC has been replaced by cairo_t.

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*. [transfer none]

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. The special value `GDK_NONE` is converted to `None`.

`display` : | A GdkDisplay
`atom` : | A GdkAtom, or `GDK_NONE`
Returns : | the X atom corresponding to `atom`, or `None`

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

### gdk_x11_set_sm_client_id ()

    void                gdk_x11_set_sm_client_id            (const gchar *sm_client_id);

Sets the `SM_CLIENT_ID` property on the application's leader window so that the window manager can save the application's state using the X11R6 ICCCM session management protocol.

See the X Session Management Library documentation for more information on session management and the Inter-Client Communication Conventions Manual

`sm_client_id` : | the client id assigned by the session manager when the connection was opened, or `NULL` to remove the property.

Since 2.24

### gdk_x11_window_foreign_new_for_display ()

    GdkWindow *         gdk_x11_window_foreign_new_for_display
                                                            (GdkDisplay *display,
                                                             Window window);

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.

`display` : | the GdkDisplay where the window handle comes from.
`window` : | an XLib Window
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.24

### gdk_x11_window_lookup_for_display ()

    GdkWindow *         gdk_x11_window_lookup_for_display   (GdkDisplay *display,
                                                             Window window);

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

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

Since 2.24