## X Window System Interaction

X Window System Interaction

## Functions

#define | GDK_ROOT_WINDOW
#define | GDK_ROOT_PARENT
#define | GDK_DISPLAY
#define | GDK_WINDOW_XDISPLAY ()
#define | GDK_WINDOW_XID ()
#define | GDK_PIXMAP_XDISPLAY ()
#define | GDK_PIXMAP_XID ()
#define | GDK_DISPLAY_XDISPLAY ()
#define | GDK_DRAWABLE_XDISPLAY ()
#define | GDK_DRAWABLE_XID ()
#define | GDK_IMAGE_XDISPLAY ()
#define | GDK_IMAGE_XIMAGE ()
#define | GDK_GC_XDISPLAY ()
#define | GDK_COLORMAP_XDISPLAY ()
#define | GDK_COLORMAP_XCOLORMAP ()
#define | GDK_SCREEN_XDISPLAY ()
#define | GDK_SCREEN_XNUMBER ()
#define | GDK_SCREEN_XSCREEN ()
#define | GDK_VISUAL_XVISUAL ()
#define | GDK_FONT_XDISPLAY ()
#define | GDK_FONT_XFONT ()
#define | GDK_CURSOR_XCURSOR ()
#define | GDK_CURSOR_XDISPLAY ()
#define | GDK_GC_XGC ()
#define | GDK_GC_GET_XGC ()
GdkVisual * | gdkx_visual_get ()
GdkColormap * | gdkx_colormap_get ()
GdkPixmap * | gdk_pixmap_foreign_new ()
GdkPixmap * | gdk_pixmap_foreign_new_for_display ()
GdkPixmap * | gdk_pixmap_foreign_new_for_screen ()
GdkWindow * | gdk_window_foreign_new ()
GdkWindow * | gdk_window_foreign_new_for_display ()
gpointer | gdk_xid_table_lookup ()
gpointer | gdk_xid_table_lookup_for_display ()
GdkWindow * | gdk_window_lookup ()
GdkWindow * | gdk_window_lookup_for_display ()
GdkPixmap * | gdk_pixmap_lookup ()
GdkPixmap * | gdk_pixmap_lookup_for_display ()
#define | gdk_font_lookup ()
#define | gdk_font_lookup_for_display ()
GdkDisplay * | gdk_x11_lookup_xdisplay ()
guint32 | gdk_x11_get_server_time ()
gboolean | gdk_net_wm_supports ()
gboolean | gdk_x11_screen_supports_net_wm_hint ()
const char * | gdk_x11_screen_get_window_manager_name ()
XID | gdk_x11_screen_get_monitor_output ()
GdkVisual * | gdk_x11_screen_lookup_visual ()
void | gdk_x11_window_set_user_time ()
void | gdk_x11_window_move_to_current_desktop ()
guint32 | gdk_x11_display_get_user_time ()
GdkColormap * | gdk_x11_colormap_foreign_new ()
Colormap | gdk_x11_colormap_get_xcolormap ()
Display * | gdk_x11_colormap_get_xdisplay ()
Cursor | gdk_x11_cursor_get_xcursor ()
Display * | gdk_x11_cursor_get_xdisplay ()
void | gdk_x11_display_broadcast_startup_message ()
const gchar * | gdk_x11_display_get_startup_notification_id ()
Display * | gdk_x11_display_get_xdisplay ()
void | gdk_x11_display_grab ()
void | gdk_x11_display_ungrab ()
void | gdk_x11_display_set_cursor_theme ()
void | gdk_x11_register_standard_event_type ()
Display * | gdk_x11_drawable_get_xdisplay ()
XID | gdk_x11_drawable_get_xid ()
const char * | gdk_x11_font_get_name ()
Display * | gdk_x11_font_get_xdisplay ()
gpointer | gdk_x11_font_get_xfont ()
Display * | gdk_x11_gc_get_xdisplay ()
GC | gdk_x11_gc_get_xgc ()
Window | gdk_x11_get_default_root_xwindow ()
gint | gdk_x11_get_default_screen ()
Display * | gdk_x11_get_default_xdisplay ()
void | gdk_x11_grab_server ()
Display * | gdk_x11_image_get_xdisplay ()
XImage * | gdk_x11_image_get_ximage ()
int | gdk_x11_screen_get_screen_number ()
Screen * | gdk_x11_screen_get_xscreen ()
void | gdk_x11_ungrab_server ()
Visual * | gdk_x11_visual_get_xvisual ()
Atom | gdk_x11_atom_to_xatom ()
Atom | gdk_x11_atom_to_xatom_for_display ()
GdkAtom | gdk_x11_xatom_to_atom ()
GdkAtom | gdk_x11_xatom_to_atom_for_display ()
Atom | gdk_x11_get_xatom_by_name ()
Atom | gdk_x11_get_xatom_by_name_for_display ()
const gchar * | gdk_x11_get_xatom_name ()
const gchar * | gdk_x11_get_xatom_name_for_display ()
void | gdk_x11_set_sm_client_id ()
GdkWindow * | gdk_x11_window_foreign_new_for_display ()
GdkWindow * | gdk_x11_window_lookup_for_display ()

## Types and Values

#define | GDK_WINDOW_XWINDOW

## Includes

    #include <gdk/gdkx.h>

## Description

## Functions

### GDK_ROOT_WINDOW

    #define GDK_ROOT_WINDOW()             (gdk_x11_get_default_root_xwindow ())

### GDK_ROOT_PARENT

    #define GDK_ROOT_PARENT()             (gdk_get_default_root_window ())

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

### GDK_DISPLAY

    #define GDK_DISPLAY()                 gdk_display

### GDK_WINDOW_XDISPLAY()

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

### GDK_WINDOW_XID()

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

### GDK_PIXMAP_XDISPLAY()

    #define GDK_PIXMAP_XDISPLAY(pix)      (GDK_SCREEN_X11 (GDK_PIXMAP_SCREEN (pix))->xdisplay)

### GDK_PIXMAP_XID()

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

### GDK_DISPLAY_XDISPLAY()

    #define GDK_DISPLAY_XDISPLAY(display) (GDK_DISPLAY_X11(display)->xdisplay)

### GDK_DRAWABLE_XDISPLAY()

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

### GDK_DRAWABLE_XID()

    #define GDK_DRAWABLE_XID(win)         (GDK_IS_WINDOW (win) ? GDK_WINDOW_XID (win) : GDK_PIXMAP_XID (win))

### GDK_IMAGE_XDISPLAY()

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

### GDK_IMAGE_XIMAGE()

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

### GDK_GC_XDISPLAY()

    #define GDK_GC_XDISPLAY(gc)           (GDK_SCREEN_XDISPLAY(GDK_GC_X11(gc)->screen))

### GDK_COLORMAP_XDISPLAY()

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

### GDK_COLORMAP_XCOLORMAP()

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

### GDK_SCREEN_XDISPLAY()

    #define GDK_SCREEN_XDISPLAY(screen)   (GDK_SCREEN_X11 (screen)->xdisplay)

### GDK_SCREEN_XNUMBER()

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

### GDK_SCREEN_XSCREEN()

    #define GDK_SCREEN_XSCREEN(screen)    (GDK_SCREEN_X11 (screen)->xscreen)

### GDK_VISUAL_XVISUAL()

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

### GDK_FONT_XDISPLAY()

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

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

### GDK_FONT_XFONT()

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

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

### GDK_CURSOR_XCURSOR()

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

### GDK_CURSOR_XDISPLAY()

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

### GDK_GC_XGC()

    #define GDK_GC_XGC(gc)		      (GDK_GC_X11(gc)->xgc)

### GDK_GC_GET_XGC()

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

### gdkx_visual_get ()

    GdkVisual *
    gdkx_visual_get (VisualID xvisualid);

`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.

#### Parameters

xvisualid | a X visual id. |

#### Returns

the GdkVisual.

### gdkx_colormap_get ()

    GdkColormap *
    gdkx_colormap_get (Colormap xcolormap);

`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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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

`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.

#### Parameters

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

`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.

#### Parameters

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

`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.

#### Parameters

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

`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.

#### Parameters

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

`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.

#### Parameters

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

`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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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

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

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

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

### gdk_x11_lookup_xdisplay ()

    GdkDisplay *
    gdk_x11_lookup_xdisplay (Display *xdisplay);

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

#### Parameters

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.

#### Parameters

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

`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.

#### Parameters

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.

#### Parameters

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` .

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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()`.

#### Parameters

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

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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()`.

#### Parameters

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

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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

`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.

#### Parameters

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

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

Returns the display of a GdkFont.

#### Parameters

font | a GdkFont. |

#### Returns

an Xlib Display*.

### gdk_x11_font_get_xfont ()

    gpointer
    gdk_x11_font_get_xfont (GdkFont *font);

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

Returns the X font belonging to a GdkFont.

#### Parameters

font | a GdkFont. |

#### Returns

an Xlib XFontStruct* or an XFontSet.

### gdk_x11_gc_get_xdisplay ()

    Display *
    gdk_x11_gc_get_xdisplay (GdkGC *gc);

`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.

#### Parameters

gc | a GdkGC. |

#### Returns

an Xlib Display*.

### gdk_x11_gc_get_xgc ()

    GC
    gdk_x11_gc_get_xgc (GdkGC *gc);

`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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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`.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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

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

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

#### Parameters

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.

#### Parameters

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.

#### Parameters

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

## Types and Values

### GDK_WINDOW_XWINDOW

    #define GDK_WINDOW_XWINDOW	      GDK_DRAWABLE_XID