## GdkSeat GdkSeat — Object representing a user seat |

## Functions

GdkDisplay * | gdk_seat_get_display ()
GdkSeatCapabilities | gdk_seat_get_capabilities ()
GdkDevice * | gdk_seat_get_pointer ()
GdkDevice * | gdk_seat_get_keyboard ()
GList * | gdk_seat_get_devices ()
GList * | gdk_seat_get_tools ()

## Properties

GdkDisplay * | display | Read / Write / Construct Only

## Signals

void | device-added | Run Last
void | device-removed | Run Last
void | tool-added | Run Last
void | tool-removed | Run Last

## Types and Values

| GdkSeat
enum | GdkSeatCapabilities

## Object Hierarchy

        GObject
        ╰── GdkSeat

## Includes

    #include <gdk/gdk.h>

## Description

The GdkSeat object represents a collection of input devices that belong to a user.

## Functions

### gdk_seat_get_display ()

    GdkDisplay *
    gdk_seat_get_display (GdkSeat *seat);

Returns the GdkDisplay this seat belongs to.

#### Parameters

seat | a GdkSeat |

#### Returns

a GdkDisplay. This object is owned by GTK and must not be freed.

[transfer none]

### gdk_seat_get_capabilities ()

    GdkSeatCapabilities
    gdk_seat_get_capabilities (GdkSeat *seat);

Returns the capabilities this GdkSeat currently has.

#### Parameters

seat | a GdkSeat |

#### Returns

the seat capabilities

### gdk_seat_get_pointer ()

    GdkDevice *
    gdk_seat_get_pointer (GdkSeat *seat);

Returns the device that routes pointer events.

#### Parameters

seat | a GdkSeat |

#### Returns

a GdkDevice with pointer capabilities. This object is owned by GTK and must not be freed.

[transfer none][nullable]

### gdk_seat_get_keyboard ()

    GdkDevice *
    gdk_seat_get_keyboard (GdkSeat *seat);

Returns the device that routes keyboard events.

#### Parameters

seat | a GdkSeat |

#### Returns

a GdkDevice with keyboard capabilities. This object is owned by GTK and must not be freed.

[transfer none][nullable]

### gdk_seat_get_devices ()

    GList *
    gdk_seat_get_devices (GdkSeat *seat,
                          GdkSeatCapabilities capabilities);

Returns the devices that match the given capabilities.

#### Parameters

seat | a GdkSeat |
capabilities | capabilities to get devices for |

#### Returns

A list of GdkDevices. The list must be freed with `g_list_free()`, the elements are owned by GTK and must not be freed.

[transfer container][element-type GdkDevice]

### gdk_seat_get_tools ()

    GList *
    gdk_seat_get_tools (GdkSeat *seat);

Returns all GdkDeviceTools that are known to the application.

#### Parameters

seat | A GdkSeat |

#### Returns

A list of tools. Free with `g_list_free()`.

[transfer container][element-type Gdk.DeviceTool]

## Types and Values

### GdkSeat

    typedef struct _GdkSeat GdkSeat;

The GdkSeat struct contains only private fields and should not be accessed directly.

### enum GdkSeatCapabilities

Flags describing the seat capabilities.

#### Members

GDK_SEAT_CAPABILITY_NONE | No input capabilities |
GDK_SEAT_CAPABILITY_POINTER | The seat has a pointer (e.g. mouse) |
GDK_SEAT_CAPABILITY_TOUCH | The seat has touchscreen(s) attached |
GDK_SEAT_CAPABILITY_TABLET_STYLUS | The seat has drawing tablet(s) attached |
GDK_SEAT_CAPABILITY_KEYBOARD | The seat has keyboard(s) attached |
GDK_SEAT_CAPABILITY_TABLET_PAD | The seat has drawing tablet pad(s) attached |
GDK_SEAT_CAPABILITY_ALL_POINTING | The union of all pointing capabilities |
GDK_SEAT_CAPABILITY_ALL | The union of all capabilities |

## Property Details

### The `“display”` property

      “display”                  GdkDisplay *

GdkDisplay of this seat.

Owner: GdkSeat

Flags: Read / Write / Construct Only

## Signal Details

### The `“device-added”` signal

    void
    user_function (GdkSeat   *seat,
                   GdkDevice *device,
                   gpointer   user_data)

The ::device-added signal is emitted when a new input device is related to this seat.

#### Parameters

seat | the object on which the signal is emitted |
device | the newly added GdkDevice. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“device-removed”` signal

    void
    user_function (GdkSeat   *seat,
                   GdkDevice *device,
                   gpointer   user_data)

The ::device-removed signal is emitted when an input device is removed (e.g. unplugged).

#### Parameters

seat | the object on which the signal is emitted |
device | the just removed GdkDevice. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“tool-added”` signal

    void
    user_function (GdkSeat       *seat,
                   GdkDeviceTool *tool,
                   gpointer       user_data)

The ::tool-added signal is emitted whenever a new tool is made known to the seat. The tool may later be assigned to a device (i.e. on proximity with a tablet). The device will emit the “tool-changed” signal accordingly.

A same tool may be used by several devices.

#### Parameters

seat | the object on which the signal is emitted |
tool | the new GdkDeviceTool known to the seat |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“tool-removed”` signal

    void
    user_function (GdkSeat       *seat,
                   GdkDeviceTool *tool,
                   gpointer       user_data)

This signal is emitted whenever a tool is no longer known to this `seat` .

#### Parameters

seat | the object on which the signal is emitted |
tool | the just removed GdkDeviceTool |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

## See Also

GdkDisplay, GdkDevice