diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index ed63756ec0..a6197c28fc 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -1831,3 +1831,377 @@ gdk_display_get_device_manager (GdkDisplay *display) return display->device_manager; } + +/** + * gdk_display_get_name: + * @display: a #GdkDisplay + * + * Gets the name of the display. + * + * Returns: a string representing the display name. This string is owned + * by GDK and should not be modified or freed. + * + * Since: 2.2 + */ +G_CONST_RETURN gchar * +gdk_display_get_name (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->get_name (display); +} + +/** + * gdk_display_get_n_screens: + * @display: a #GdkDisplay + * + * Gets the number of screen managed by the @display. + * + * Returns: number of screens. + * + * Since: 2.2 + */ +gint +gdk_display_get_n_screens (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->get_n_screens (display); +} + +/** + * gdk_display_get_screen: + * @display: a #GdkDisplay + * @screen_num: the screen number + * + * Returns a screen object for one of the screens of the display. + * + * Returns: (transfer none): the #GdkScreen object + * + * Since: 2.2 + */ +GdkScreen * +gdk_display_get_screen (GdkDisplay *display, + gint screen_num) +{ + return GDK_DISPLAY_GET_CLASS(display)->get_screen (display, screen_num); +} + +/** + * gdk_display_get_default_screen: + * @display: a #GdkDisplay + * + * Get the default #GdkScreen for @display. + * + * Returns: (transfer none): the default #GdkScreen object for @display + * + * Since: 2.2 + */ +GdkScreen * +gdk_display_get_default_screen (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->get_default_screen (display); +} + +/** + * gdk_display_beep: + * @display: a #GdkDisplay + * + * Emits a short beep on @display + * + * Since: 2.2 + */ +void +gdk_display_beep (GdkDisplay *display) +{ + GDK_DISPLAY_GET_CLASS(display)->beep (display); +} + +/** + * gdk_display_sync: + * @display: a #GdkDisplay + * + * Flushes any requests queued for the windowing system and waits until all + * requests have been handled. This is often used for making sure that the + * display is synchronized with the current state of the program. Calling + * gdk_display_sync() before gdk_error_trap_pop() makes sure that any errors + * generated from earlier requests are handled before the error trap is + * removed. + * + * This is most useful for X11. On windowing systems where requests are + * handled synchronously, this function will do nothing. + * + * Since: 2.2 + */ +void +gdk_display_sync (GdkDisplay *display) +{ + GDK_DISPLAY_GET_CLASS(display)->sync (display); +} + +/** + * gdk_display_flush: + * @display: a #GdkDisplay + * + * Flushes any requests queued for the windowing system; this happens automatically + * when the main loop blocks waiting for new events, but if your application + * is drawing without returning control to the main loop, you may need + * to call this function explicitely. A common case where this function + * needs to be called is when an application is executing drawing commands + * from a thread other than the thread where the main loop is running. + * + * This is most useful for X11. On windowing systems where requests are + * handled synchronously, this function will do nothing. + * + * Since: 2.4 + */ +void +gdk_display_flush (GdkDisplay *display) +{ + GDK_DISPLAY_GET_CLASS(display)->flush (display); +} + +/** + * gdk_display_get_default_group: + * @display: a #GdkDisplay + * + * Returns the default group leader window for all toplevel windows + * on @display. This window is implicitly created by GDK. + * See gdk_window_set_group(). + * + * Return value: (transfer none): The default group leader window + * for @display + * + * Since: 2.4 + **/ +GdkWindow * +gdk_display_get_default_group (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->get_default_group (display); +} + +/** + * gdk_display_supports_selection_notification: + * @display: a #GdkDisplay + * + * Returns whether #GdkEventOwnerChange events will be + * sent when the owner of a selection changes. + * + * Return value: whether #GdkEventOwnerChange events will + * be sent. + * + * Since: 2.6 + **/ +gboolean +gdk_display_supports_selection_notification (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->supports_selection_notification (display); +} + +/** + * gdk_display_request_selection_notification: + * @display: a #GdkDisplay + * @selection: the #GdkAtom naming the selection for which + * ownership change notification is requested + * + * Request #GdkEventOwnerChange events for ownership changes + * of the selection named by the given atom. + * + * Return value: whether #GdkEventOwnerChange events will + * be sent. + * + * Since: 2.6 + **/ +gboolean +gdk_display_request_selection_notification (GdkDisplay *display, + GdkAtom selection) + +{ + return GDK_DISPLAY_GET_CLASS(display)->request_selection_notification (display, selection); +} + +/** + * gdk_display_supports_clipboard_persistence + * @display: a #GdkDisplay + * + * Returns whether the speicifed display supports clipboard + * persistance; i.e. if it's possible to store the clipboard data after an + * application has quit. On X11 this checks if a clipboard daemon is + * running. + * + * Returns: %TRUE if the display supports clipboard persistance. + * + * Since: 2.6 + */ +gboolean +gdk_display_supports_clipboard_persistence (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->supports_clipboard_persistence (display); +} + +/** + * gdk_display_store_clipboard + * @display: a #GdkDisplay + * @clipboard_window: a #GdkWindow belonging to the clipboard owner + * @time_: a timestamp + * @targets: an array of targets that should be saved, or %NULL + * if all available targets should be saved. + * @n_targets: length of the @targets array + * + * Issues a request to the clipboard manager to store the + * clipboard data. On X11, this is a special program that works + * according to the freedesktop clipboard specification, available at + * + * http://www.freedesktop.org/Standards/clipboard-manager-spec. + * + * Since: 2.6 + */ +void +gdk_display_store_clipboard (GdkDisplay *display, + GdkWindow *clipboard_window, + guint32 time_, + const GdkAtom *targets, + gint n_targets) +{ + GDK_DISPLAY_GET_CLASS(display)->store_clipboard (display, clipboard_window, time_, targets, n_targets); +} + +/** + * gdk_display_supports_shapes: + * @display: a #GdkDisplay + * + * Returns %TRUE if gdk_window_shape_combine_mask() can + * be used to create shaped windows on @display. + * + * Returns: %TRUE if shaped windows are supported + * + * Since: 2.10 + */ +gboolean +gdk_display_supports_shapes (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->supports_shapes (display); +} + +/** + * gdk_display_supports_input_shapes: + * @display: a #GdkDisplay + * + * Returns %TRUE if gdk_window_input_shape_combine_mask() can + * be used to modify the input shape of windows on @display. + * + * Returns: %TRUE if windows with modified input shape are supported + * + * Since: 2.10 + */ +gboolean +gdk_display_supports_input_shapes (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->supports_input_shapes (display); +} + +/** + * gdk_display_supports_composite: + * @display: a #GdkDisplay + * + * Returns %TRUE if gdk_window_set_composited() can be used + * to redirect drawing on the window using compositing. + * + * Currently this only works on X11 with XComposite and + * XDamage extensions available. + * + * Returns: %TRUE if windows may be composited. + * + * Since: 2.12 + */ +gboolean +gdk_display_supports_composite (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->supports_composite (display); +} + +/** + * gdk_display_list_devices: + * @display: a #GdkDisplay + * + * Returns the list of available input devices attached to @display. + * The list is statically allocated and should not be freed. + * + * Return value: (transfer none) (element-type GdkDevice): + * a list of #GdkDevice + * + * Since: 2.2 + * + * Deprecated: 3.0: Use gdk_device_manager_list_devices() instead. + **/ +GList * +gdk_display_list_devices (GdkDisplay *display) +{ + return GDK_DISPLAY_GET_CLASS(display)->list_devices (display); +} + +/** + * gdk_event_send_client_message_for_display: + * @display: the #GdkDisplay for the window where the message is to be sent. + * @event: the #GdkEvent to send, which should be a #GdkEventClient. + * @winid: the window to send the client message to. + * + * On X11, sends an X ClientMessage event to a given window. On + * Windows, sends a message registered with the name + * GDK_WIN32_CLIENT_MESSAGE. + * + * This could be used for communicating between different + * applications, though the amount of data is limited to 20 bytes on + * X11, and to just four bytes on Windows. + * + * Returns: non-zero on success. + * + * Since: 2.2 + */ +gboolean +gdk_event_send_client_message_for_display (GdkDisplay *display, + GdkEvent *event, + GdkNativeWindow winid) +{ + return GDK_DISPLAY_GET_CLASS(display)->send_client_message (display, event, winid); +} + +/** + * gdk_display_add_client_message_filter: + * @display: a #GdkDisplay for which this message filter applies + * @message_type: the type of ClientMessage events to receive. + * This will be checked against the @message_type field + * of the XClientMessage event struct. + * @func: the function to call to process the event. + * @data: user data to pass to @func. + * + * Adds a filter to be called when X ClientMessage events are received. + * See gdk_window_add_filter() if you are interested in filtering other + * types of events. + * + * Since: 2.2 + **/ +void +gdk_display_add_client_message_filter (GdkDisplay *display, + GdkAtom message_type, + GdkFilterFunc func, + gpointer data) +{ + GDK_DISPLAY_GET_CLASS(display)->add_client_message_filter (display, message_type, func, data); +} + +/** + * gdk_add_client_message_filter: + * @message_type: the type of ClientMessage events to receive. This will be + * checked against the message_type field of the + * XClientMessage event struct. + * @func: the function to call to process the event. + * @data: user data to pass to @func. + * + * Adds a filter to the default display to be called when X ClientMessage events + * are received. See gdk_display_add_client_message_filter(). + **/ +void +gdk_add_client_message_filter (GdkAtom message_type, + GdkFilterFunc func, + gpointer data) +{ + gdk_display_add_client_message_filter (gdk_display_get_default (), + message_type, func, data); +} diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index 65c3aa56d5..f5df53aaf0 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -280,6 +280,30 @@ struct _GdkDisplayClass GdkScreen * (*get_screen) (GdkDisplay *display, gint screen_num); GdkScreen * (*get_default_screen) (GdkDisplay *display); + void (*beep) (GdkDisplay *display); + void (*sync) (GdkDisplay *display); + void (*flush) (GdkDisplay *display); + GdkWindow * (*get_default_group) (GdkDisplay *display); + gboolean (*supports_selection_notification) (GdkDisplay *display); + gboolean (*request_selection_notification) (GdkDisplay *display, + GdkAtom selection); + gboolean (*supports_clipboard_persistence) (GdkDisplay *display); + void (*store_clipboard) (GdkDisplay *display, + GdkWindow *clipboard_window, + guint32 time_, + const GdkAtom *targets, + gint n_targets); + gboolean (*supports_shapes) (GdkDisplay *display); + gboolean (*supports_input_shapes) (GdkDisplay *display); + gboolean (*supports_composite) (GdkDisplay *display); + GList * (*list_devices) (GdkDisplay *display); + gboolean (*send_client_message) (GdkDisplay *display, + GdkEvent *event, + GdkNativeWindow winid); + void (*add_client_message_filter) (GdkDisplay *display, + GdkAtom message_type, + GdkFilterFunc func, + gpointer data); /* Signals */ diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 27ef251919..d09bec571a 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -162,15 +162,6 @@ G_DEFINE_TYPE_WITH_CODE (GdkDisplayX11, _gdk_display_x11, GDK_TYPE_DISPLAY, gdk_display_x11_event_translator_init)) -static void -_gdk_display_x11_class_init (GdkDisplayX11Class * class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (class); - - object_class->dispose = gdk_display_x11_dispose; - object_class->finalize = gdk_display_x11_finalize; -} - static void _gdk_display_x11_init (GdkDisplayX11 *display) { @@ -1526,57 +1517,25 @@ gdk_internal_connection_watch (Display *display, } #endif /* HAVE_X11R6 */ -/** - * gdk_display_get_name: - * @display: a #GdkDisplay - * - * Gets the name of the display. - * - * Returns: a string representing the display name. This string is owned - * by GDK and should not be modified or freed. - * - * Since: 2.2 - */ -G_CONST_RETURN gchar * -gdk_display_get_name (GdkDisplay *display) +static G_CONST_RETURN gchar * +gdk_x11_display_get_name (GdkDisplay *display) { g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); - + return (gchar *) DisplayString (GDK_DISPLAY_X11 (display)->xdisplay); } -/** - * gdk_display_get_n_screens: - * @display: a #GdkDisplay - * - * Gets the number of screen managed by the @display. - * - * Returns: number of screens. - * - * Since: 2.2 - */ -gint -gdk_display_get_n_screens (GdkDisplay *display) +static gint +gdk_x11_display_get_n_screens (GdkDisplay *display) { g_return_val_if_fail (GDK_IS_DISPLAY (display), 0); return ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay); } -/** - * gdk_display_get_screen: - * @display: a #GdkDisplay - * @screen_num: the screen number - * - * Returns a screen object for one of the screens of the display. - * - * Returns: (transfer none): the #GdkScreen object - * - * Since: 2.2 - */ -GdkScreen * -gdk_display_get_screen (GdkDisplay *display, - gint screen_num) +static GdkScreen * +gdk_x11_display_get_screen (GdkDisplay *display, + gint screen_num) { g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); g_return_val_if_fail (ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num, NULL); @@ -1584,18 +1543,8 @@ gdk_display_get_screen (GdkDisplay *display, return GDK_DISPLAY_X11 (display)->screens[screen_num]; } -/** - * gdk_display_get_default_screen: - * @display: a #GdkDisplay - * - * Get the default #GdkScreen for @display. - * - * Returns: (transfer none): the default #GdkScreen object for @display - * - * Since: 2.2 - */ -GdkScreen * -gdk_display_get_default_screen (GdkDisplay *display) +static GdkScreen * +gdk_x11_display_get_default_screen (GdkDisplay *display) { g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); @@ -1683,16 +1632,8 @@ gdk_device_ungrab (GdkDevice *device, } } -/** - * gdk_display_beep: - * @display: a #GdkDisplay - * - * Emits a short beep on @display - * - * Since: 2.2 - */ -void -gdk_display_beep (GdkDisplay *display) +static void +gdk_x11_display_beep (GdkDisplay *display) { g_return_if_fail (GDK_IS_DISPLAY (display)); @@ -1703,48 +1644,16 @@ gdk_display_beep (GdkDisplay *display) #endif } -/** - * gdk_display_sync: - * @display: a #GdkDisplay - * - * Flushes any requests queued for the windowing system and waits until all - * requests have been handled. This is often used for making sure that the - * display is synchronized with the current state of the program. Calling - * gdk_display_sync() before gdk_error_trap_pop() makes sure that any errors - * generated from earlier requests are handled before the error trap is - * removed. - * - * This is most useful for X11. On windowing systems where requests are - * handled synchronously, this function will do nothing. - * - * Since: 2.2 - */ -void -gdk_display_sync (GdkDisplay *display) +static void +gdk_x11_display_sync (GdkDisplay *display) { g_return_if_fail (GDK_IS_DISPLAY (display)); XSync (GDK_DISPLAY_XDISPLAY (display), False); } -/** - * gdk_display_flush: - * @display: a #GdkDisplay - * - * Flushes any requests queued for the windowing system; this happens automatically - * when the main loop blocks waiting for new events, but if your application - * is drawing without returning control to the main loop, you may need - * to call this function explicitely. A common case where this function - * needs to be called is when an application is executing drawing commands - * from a thread other than the thread where the main loop is running. - * - * This is most useful for X11. On windowing systems where requests are - * handled synchronously, this function will do nothing. - * - * Since: 2.4 - */ -void -gdk_display_flush (GdkDisplay *display) +static void +gdk_x11_display_flush (GdkDisplay *display) { g_return_if_fail (GDK_IS_DISPLAY (display)); @@ -1752,21 +1661,8 @@ gdk_display_flush (GdkDisplay *display) XFlush (GDK_DISPLAY_XDISPLAY (display)); } -/** - * gdk_display_get_default_group: - * @display: a #GdkDisplay - * - * Returns the default group leader window for all toplevel windows - * on @display. This window is implicitly created by GDK. - * See gdk_window_set_group(). - * - * Return value: (transfer none): The default group leader window - * for @display - * - * Since: 2.4 - **/ -GdkWindow * -gdk_display_get_default_group (GdkDisplay *display) +static GdkWindow * +gdk_x11_display_get_default_group (GdkDisplay *display) { g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); @@ -2230,43 +2126,17 @@ gdk_notify_startup_complete_with_id (const gchar* startup_id) NULL); } -/** - * gdk_display_supports_selection_notification: - * @display: a #GdkDisplay - * - * Returns whether #GdkEventOwnerChange events will be - * sent when the owner of a selection changes. - * - * Return value: whether #GdkEventOwnerChange events will - * be sent. - * - * Since: 2.6 - **/ -gboolean -gdk_display_supports_selection_notification (GdkDisplay *display) +static gboolean +gdk_x11_display_supports_selection_notification (GdkDisplay *display) { GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display); return display_x11->have_xfixes; } -/** - * gdk_display_request_selection_notification: - * @display: a #GdkDisplay - * @selection: the #GdkAtom naming the selection for which - * ownership change notification is requested - * - * Request #GdkEventOwnerChange events for ownership changes - * of the selection named by the given atom. - * - * Return value: whether #GdkEventOwnerChange events will - * be sent. - * - * Since: 2.6 - **/ -gboolean -gdk_display_request_selection_notification (GdkDisplay *display, - GdkAtom selection) +static gboolean +gdk_x11_display_request_selection_notification (GdkDisplay *display, + GdkAtom selection) { #ifdef HAVE_XFIXES @@ -2290,21 +2160,8 @@ gdk_display_request_selection_notification (GdkDisplay *display, return FALSE; } -/** - * gdk_display_supports_clipboard_persistence - * @display: a #GdkDisplay - * - * Returns whether the speicifed display supports clipboard - * persistance; i.e. if it's possible to store the clipboard data after an - * application has quit. On X11 this checks if a clipboard daemon is - * running. - * - * Returns: %TRUE if the display supports clipboard persistance. - * - * Since: 2.6 - */ -gboolean -gdk_display_supports_clipboard_persistence (GdkDisplay *display) +static gboolean +gdk_x11_display_supports_clipboard_persistence (GdkDisplay *display) { Atom clipboard_manager; @@ -2313,29 +2170,12 @@ gdk_display_supports_clipboard_persistence (GdkDisplay *display) return XGetSelectionOwner (GDK_DISPLAY_X11 (display)->xdisplay, clipboard_manager) != None; } -/** - * gdk_display_store_clipboard - * @display: a #GdkDisplay - * @clipboard_window: a #GdkWindow belonging to the clipboard owner - * @time_: a timestamp - * @targets: an array of targets that should be saved, or %NULL - * if all available targets should be saved. - * @n_targets: length of the @targets array - * - * Issues a request to the clipboard manager to store the - * clipboard data. On X11, this is a special program that works - * according to the freedesktop clipboard specification, available at - * - * http://www.freedesktop.org/Standards/clipboard-manager-spec. - * - * Since: 2.6 - */ -void -gdk_display_store_clipboard (GdkDisplay *display, - GdkWindow *clipboard_window, - guint32 time_, - const GdkAtom *targets, - gint n_targets) +static void +gdk_x11_display_store_clipboard (GdkDisplay *display, + GdkWindow *clipboard_window, + guint32 time_, + const GdkAtom *targets, + gint n_targets) { GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display); Atom clipboard_manager, save_targets; @@ -2396,36 +2236,14 @@ gdk_x11_display_get_user_time (GdkDisplay *display) return GDK_DISPLAY_X11 (display)->user_time; } -/** - * gdk_display_supports_shapes: - * @display: a #GdkDisplay - * - * Returns %TRUE if gdk_window_shape_combine_mask() can - * be used to create shaped windows on @display. - * - * Returns: %TRUE if shaped windows are supported - * - * Since: 2.10 - */ -gboolean -gdk_display_supports_shapes (GdkDisplay *display) +static gboolean +gdk_x11_display_supports_shapes (GdkDisplay *display) { return GDK_DISPLAY_X11 (display)->have_shapes; } -/** - * gdk_display_supports_input_shapes: - * @display: a #GdkDisplay - * - * Returns %TRUE if gdk_window_input_shape_combine_mask() can - * be used to modify the input shape of windows on @display. - * - * Returns: %TRUE if windows with modified input shape are supported - * - * Since: 2.10 - */ -gboolean -gdk_display_supports_input_shapes (GdkDisplay *display) +static gboolean +gdk_x11_display_supports_input_shapes (GdkDisplay *display) { return GDK_DISPLAY_X11 (display)->have_input_shapes; } @@ -2510,22 +2328,8 @@ gdk_x11_display_set_startup_notification_id (GdkDisplay *display, (guchar *)startup_id, strlen (startup_id)); } -/** - * gdk_display_supports_composite: - * @display: a #GdkDisplay - * - * Returns %TRUE if gdk_window_set_composited() can be used - * to redirect drawing on the window using compositing. - * - * Currently this only works on X11 with XComposite and - * XDamage extensions available. - * - * Returns: %TRUE if windows may be composited. - * - * Since: 2.12 - */ -gboolean -gdk_display_supports_composite (GdkDisplay *display) +static gboolean +gdk_x11_display_supports_composite (GdkDisplay *display) { GdkDisplayX11 *x11_display = GDK_DISPLAY_X11 (display); @@ -2534,50 +2338,18 @@ gdk_display_supports_composite (GdkDisplay *display) x11_display->have_xfixes; } -/** - * gdk_display_list_devices: - * @display: a #GdkDisplay - * - * Returns the list of available input devices attached to @display. - * The list is statically allocated and should not be freed. - * - * Return value: (transfer none) (element-type GdkDevice): - * a list of #GdkDevice - * - * Since: 2.2 - * - * Deprecated: 3.0: Use gdk_device_manager_list_devices() instead. - **/ -GList * -gdk_display_list_devices (GdkDisplay *display) +static GList * +gdk_x11_display_list_devices (GdkDisplay *display) { g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); return GDK_DISPLAY_X11 (display)->input_devices; } -/** - * gdk_event_send_client_message_for_display: - * @display: the #GdkDisplay for the window where the message is to be sent. - * @event: the #GdkEvent to send, which should be a #GdkEventClient. - * @winid: the window to send the client message to. - * - * On X11, sends an X ClientMessage event to a given window. On - * Windows, sends a message registered with the name - * GDK_WIN32_CLIENT_MESSAGE. - * - * This could be used for communicating between different - * applications, though the amount of data is limited to 20 bytes on - * X11, and to just four bytes on Windows. - * - * Returns: non-zero on success. - * - * Since: 2.2 - */ -gboolean -gdk_event_send_client_message_for_display (GdkDisplay *display, - GdkEvent *event, - GdkNativeWindow winid) +static gboolean +gdk_x11_display_send_client_message (GdkDisplay *display, + GdkEvent *event, + GdkNativeWindow winid) { XEvent sev; @@ -2594,26 +2366,11 @@ gdk_event_send_client_message_for_display (GdkDisplay *display, return _gdk_send_xevent (display, winid, False, NoEventMask, &sev); } -/** - * gdk_display_add_client_message_filter: - * @display: a #GdkDisplay for which this message filter applies - * @message_type: the type of ClientMessage events to receive. - * This will be checked against the @message_type field - * of the XClientMessage event struct. - * @func: the function to call to process the event. - * @data: user data to pass to @func. - * - * Adds a filter to be called when X ClientMessage events are received. - * See gdk_window_add_filter() if you are interested in filtering other - * types of events. - * - * Since: 2.2 - **/ -void -gdk_display_add_client_message_filter (GdkDisplay *display, - GdkAtom message_type, - GdkFilterFunc func, - gpointer data) +static void +gdk_x11_display_add_client_message_filter (GdkDisplay *display, + GdkAtom message_type, + GdkFilterFunc func, + gpointer data) { GdkClientFilter *filter; g_return_if_fail (GDK_IS_DISPLAY (display)); @@ -2628,26 +2385,6 @@ gdk_display_add_client_message_filter (GdkDisplay *display, filter); } -/** - * gdk_add_client_message_filter: - * @message_type: the type of ClientMessage events to receive. This will be - * checked against the message_type field of the - * XClientMessage event struct. - * @func: the function to call to process the event. - * @data: user data to pass to @func. - * - * Adds a filter to the default display to be called when X ClientMessage events - * are received. See gdk_display_add_client_message_filter(). - **/ -void -gdk_add_client_message_filter (GdkAtom message_type, - GdkFilterFunc func, - gpointer data) -{ - gdk_display_add_client_message_filter (gdk_display_get_default (), - message_type, func, data); -} - /* *-------------------------------------------------------------- * gdk_flush @@ -2965,3 +2702,33 @@ gdk_x11_display_error_trap_pop_ignored (GdkDisplay *display) gdk_x11_display_error_trap_pop_internal (display, FALSE); } + +static void +_gdk_display_x11_class_init (GdkDisplayX11Class * class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + GdkDisplayClass *display_class = GDK_DISPLAY_CLASS (class); + + object_class->dispose = gdk_display_x11_dispose; + object_class->finalize = gdk_display_x11_finalize; + + display_class->get_name = gdk_x11_display_get_name; + display_class->get_n_screens = gdk_x11_display_get_n_screens; + display_class->get_screen = gdk_x11_display_get_screen; + display_class->get_default_screen = gdk_x11_display_get_default_screen; + display_class->beep = gdk_x11_display_beep; + display_class->sync = gdk_x11_display_sync; + display_class->flush = gdk_x11_display_flush; + display_class->get_default_group = gdk_x11_display_get_default_group; + display_class->supports_selection_notification = gdk_x11_display_supports_selection_notification; + display_class->request_selection_notification = gdk_x11_display_request_selection_notification; + display_class->supports_clipboard_persistence = gdk_x11_display_supports_clipboard_persistence; + display_class->store_clipboard = gdk_x11_display_store_clipboard; + display_class->supports_shapes = gdk_x11_display_supports_shapes; + display_class->supports_input_shapes = gdk_x11_display_supports_input_shapes; + display_class->supports_composite = gdk_x11_display_supports_composite; + display_class->list_devices = gdk_x11_display_list_devices; + display_class->send_client_message = gdk_x11_display_send_client_message; + display_class->add_client_message_filter = gdk_x11_display_add_client_message_filter; +} +