summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-02-01 06:30:27 +0100
committerBenjamin Otte <otte@redhat.com>2011-02-01 06:33:02 +0100
commitc332ac207ab4cac8f4c32aa85cdf6406157340af (patch)
tree483935d62d3cfd0560f9ab1ee55e5d3c9507e0ea /gdk
parent040b21e7d7b97db426027dd80fa0269506542e57 (diff)
downloadgtk+-c332ac207ab4cac8f4c32aa85cdf6406157340af.tar.gz
gdk: Remove GdkEventClient
... and all APIs making use of it. That code like it hasn't been touched in years, Google codesearch didn't find any users and most importantly it's a horrendous API, so let's just make it die instead of having to port it over to non-GdkNativeWindow usage, which would be required for multi-backend GDK. http://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00049.html
Diffstat (limited to 'gdk')
-rw-r--r--gdk/gdk.symbols6
-rw-r--r--gdk/gdkdisplay.c112
-rw-r--r--gdk/gdkdisplay.h5
-rw-r--r--gdk/gdkdisplayprivate.h7
-rw-r--r--gdk/gdkevents.h41
-rw-r--r--gdk/gdkscreen.c26
-rw-r--r--gdk/gdkscreen.h3
-rw-r--r--gdk/x11/gdkdisplay-x11.c99
-rw-r--r--gdk/x11/gdkdisplay-x11.h3
-rw-r--r--gdk/x11/gdkscreen-x11.c87
10 files changed, 5 insertions, 384 deletions
diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols
index 9fb4b63149..bf7210c792 100644
--- a/gdk/gdk.symbols
+++ b/gdk/gdk.symbols
@@ -1,7 +1,6 @@
/* This file lists all exported symbols. It is used to generate
* the gdk.def file used to control exports on Windows.
*/
-gdk_add_client_message_filter
gdk_add_option_entries_libgtk_only
gdk_app_launch_context_get_type G_GNUC_CONST
gdk_app_launch_context_new
@@ -79,7 +78,6 @@ gdk_device_type_get_type G_GNUC_CONST
gdk_device_ungrab
gdk_device_warp
gdk_disable_multidevice
-gdk_display_add_client_message_filter
gdk_display_beep
gdk_display_close
gdk_display_device_is_grabbed
@@ -173,9 +171,6 @@ gdk_event_new
gdk_event_peek
gdk_event_put
gdk_event_request_motions
-gdk_event_send_client_message
-gdk_event_send_client_message_for_display
-gdk_event_send_clientmessage_toall
gdk_event_set_device
gdk_event_set_screen
gdk_event_set_source_device
@@ -260,7 +255,6 @@ gdk_rgba_get_type
gdk_rgba_hash
gdk_rgba_parse
gdk_rgba_to_string
-gdk_screen_broadcast_client_message
gdk_screen_get_active_window
gdk_screen_get_default
gdk_screen_get_display
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
index 22aebd7550..4caadef4ba 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
@@ -523,48 +523,6 @@ gdk_flush (void)
g_slist_free (list);
}
-/**
- * gdk_event_send_client_message:
- * @event: the #GdkEvent to send, which should be a #GdkEventClient.
- * @winid: the window to send the X ClientMessage event to.
- *
- * Sends an X ClientMessage event to a given window (which must be
- * on the default #GdkDisplay.)
- * This could be used for communicating between different applications,
- * though the amount of data is limited to 20 bytes.
- *
- * Return value: non-zero on success.
- **/
-gboolean
-gdk_event_send_client_message (GdkEvent *event,
- GdkNativeWindow winid)
-{
- g_return_val_if_fail (event != NULL, FALSE);
-
- return gdk_event_send_client_message_for_display (gdk_display_get_default (),
- event, winid);
-}
-
-/**
- * gdk_event_send_clientmessage_toall:
- * @event: the #GdkEvent to send, which should be a #GdkEventClient.
- *
- * Sends an X ClientMessage event to all toplevel windows on the default
- * #GdkScreen.
- *
- * Toplevel windows are determined by checking for the WM_STATE property, as
- * described in the Inter-Client Communication Conventions Manual (ICCCM).
- * If no windows are found with the WM_STATE property set, the message is sent
- * to all children of the root window.
- **/
-void
-gdk_event_send_clientmessage_toall (GdkEvent *event)
-{
- g_return_if_fail (event != NULL);
-
- gdk_screen_broadcast_client_message (gdk_screen_get_default (), event);
-}
-
void
_gdk_display_enable_motion_hints (GdkDisplay *display,
GdkDevice *device)
@@ -1675,76 +1633,6 @@ 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: (skip)
- * @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: (skip)
- * @message_type: the type of ClientMessage events to receive. This will be
- * checked against the <structfield>message_type</structfield> 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);
-}
-
static GdkAppLaunchContext *
gdk_display_real_get_app_launch_context (GdkDisplay *display)
{
diff --git a/gdk/gdkdisplay.h b/gdk/gdkdisplay.h
index af779096c8..65daad1991 100644
--- a/gdk/gdkdisplay.h
+++ b/gdk/gdkdisplay.h
@@ -80,11 +80,6 @@ void gdk_display_put_event (GdkDisplay *display,
const GdkEvent *event);
gboolean gdk_display_has_pending (GdkDisplay *display);
-void gdk_display_add_client_message_filter (GdkDisplay *display,
- GdkAtom message_type,
- GdkFilterFunc func,
- gpointer data);
-
void gdk_display_set_double_click_time (GdkDisplay *display,
guint msec);
void gdk_display_set_double_click_distance (GdkDisplay *display,
diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h
index fc82f4f093..7438b66c0b 100644
--- a/gdk/gdkdisplayprivate.h
+++ b/gdk/gdkdisplayprivate.h
@@ -163,13 +163,6 @@ struct _GdkDisplayClass
gint y);
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);
GdkAppLaunchContext * (*get_app_launch_context) (GdkDisplay *display);
GdkNativeWindow (*get_drag_protocol) (GdkDisplay *display,
GdkNativeWindow winid,
diff --git a/gdk/gdkevents.h b/gdk/gdkevents.h
index 91a5c8e0a7..97e3f3f707 100644
--- a/gdk/gdkevents.h
+++ b/gdk/gdkevents.h
@@ -89,7 +89,6 @@ typedef struct _GdkEventProperty GdkEventProperty;
typedef struct _GdkEventSelection GdkEventSelection;
typedef struct _GdkEventOwnerChange GdkEventOwnerChange;
typedef struct _GdkEventProximity GdkEventProximity;
-typedef struct _GdkEventClient GdkEventClient;
typedef struct _GdkEventDND GdkEventDND;
typedef struct _GdkEventWindowState GdkEventWindowState;
typedef struct _GdkEventSetting GdkEventSetting;
@@ -875,35 +874,6 @@ struct _GdkEventProximity
};
/**
- * GdkEventClient:
- * @type: the type of the event (%GDK_CLIENT_EVENT).
- * @window: the window which received the event.
- * @send_event: %TRUE if the event was sent explicitly (e.g. using
- * <function>XSendEvent</function>).
- * @message_type: the type of the message, which can be defined by the
- * application.
- * @data_format: the format of the data, given as the number of bits in each
- * data element, i.e. 8, 16, or 32. 8-bit data uses the b array of the
- * data union, 16-bit data uses the s array, and 32-bit data uses the l
- * array.
- *
- * An event sent by another client application.
- */
-struct _GdkEventClient
-{
- GdkEventType type;
- GdkWindow *window;
- gint8 send_event;
- GdkAtom message_type;
- gushort data_format;
- union {
- char b[20];
- short s[10];
- long l[5];
- } data;
-};
-
-/**
* GdkEventSetting:
* @type: the type of the event (%GDK_SETTING).
* @window: the window which received the event.
@@ -1060,7 +1030,6 @@ union _GdkEvent
GdkEventSelection selection;
GdkEventOwnerChange owner_change;
GdkEventProximity proximity;
- GdkEventClient client;
GdkEventDND dnd;
GdkEventWindowState window_state;
GdkEventSetting setting;
@@ -1125,19 +1094,9 @@ gboolean gdk_get_show_events (void);
gboolean gdk_setting_get (const gchar *name,
GValue *value);
-void gdk_add_client_message_filter (GdkAtom message_type,
- GdkFilterFunc func,
- gpointer data);
-gboolean gdk_event_send_client_message (GdkEvent *event,
- GdkNativeWindow winid);
-void gdk_event_send_clientmessage_toall (GdkEvent *event);
#endif /* GDK_MULTIHEAD_SAFE */
-gboolean gdk_event_send_client_message_for_display (GdkDisplay *display,
- GdkEvent *event,
- GdkNativeWindow winid);
-
G_END_DECLS
#endif /* __GDK_EVENTS_H__ */
diff --git a/gdk/gdkscreen.c b/gdk/gdkscreen.c
index 7658bfab9c..4dd9164a85 100644
--- a/gdk/gdkscreen.c
+++ b/gdk/gdkscreen.c
@@ -935,32 +935,6 @@ gdk_screen_get_window_stack (GdkScreen *screen)
}
/**
- * gdk_screen_broadcast_client_message:
- * @screen: the #GdkScreen where the event will be broadcasted.
- * @event: the #GdkEvent.
- *
- * On X11, sends an X ClientMessage event to all toplevel windows on
- * @screen.
- *
- * Toplevel windows are determined by checking for the WM_STATE property,
- * as described in the Inter-Client Communication Conventions Manual (ICCCM).
- * If no windows are found with the WM_STATE property set, the message is
- * sent to all children of the root window.
- *
- * On Windows, broadcasts a message registered with the name
- * GDK_WIN32_CLIENT_MESSAGE to all top-level windows. The amount of
- * data is limited to one long, i.e. four bytes.
- *
- * Since: 2.2
- */
-void
-gdk_screen_broadcast_client_message (GdkScreen *screen,
- GdkEvent *event)
-{
- return GDK_SCREEN_GET_CLASS(screen)->broadcast_client_message (screen, event);
-}
-
-/**
* gdk_screen_get_setting:
* @screen: the #GdkScreen where the setting is located
* @name: the name of the setting
diff --git a/gdk/gdkscreen.h b/gdk/gdkscreen.h
index dadb9666c4..0f16a8f0f6 100644
--- a/gdk/gdkscreen.h
+++ b/gdk/gdkscreen.h
@@ -74,9 +74,6 @@ gint gdk_screen_get_monitor_height_mm (GdkScreen *screen,
gchar * gdk_screen_get_monitor_plug_name (GdkScreen *screen,
gint monitor_num);
-void gdk_screen_broadcast_client_message (GdkScreen *screen,
- GdkEvent *event);
-
GdkScreen *gdk_screen_get_default (void);
gboolean gdk_screen_get_setting (GdkScreen *screen,
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index 18be58fcec..acc78a8ff7 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -846,56 +846,12 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
break;
case ClientMessage:
- {
- GList *tmp_list;
- GdkFilterReturn result = GDK_FILTER_CONTINUE;
- GdkAtom message_type = gdk_x11_xatom_to_atom_for_display (display, xevent->xclient.message_type);
-
- GDK_NOTE (EVENTS,
- g_message ("client message:\twindow: %ld",
- xevent->xclient.window));
-
- tmp_list = display_x11->client_filters;
- while (tmp_list)
- {
- GdkClientFilter *filter = tmp_list->data;
- tmp_list = tmp_list->next;
-
- if (filter->type == message_type)
- {
- result = (*filter->function) (xevent, event, filter->data);
- if (result != GDK_FILTER_CONTINUE)
- break;
- }
- }
-
- switch (result)
- {
- case GDK_FILTER_REMOVE:
- return_val = FALSE;
- break;
- case GDK_FILTER_TRANSLATE:
- return_val = TRUE;
- break;
- case GDK_FILTER_CONTINUE:
- /* Send unknown ClientMessage's on to Gtk for it to use */
- if (window == NULL)
- {
- return_val = FALSE;
- }
- else
- {
- event->client.type = GDK_CLIENT_EVENT;
- event->client.window = window;
- event->client.message_type = message_type;
- event->client.data_format = xevent->xclient.format;
- memcpy(&event->client.data, &xevent->xclient.data,
- sizeof(event->client.data));
- }
- break;
- }
- }
+ GDK_NOTE (EVENTS,
+ g_message ("client message:\twindow: %ld",
+ xevent->xclient.window));
+ /* Not currently handled */
+ return_val = FALSE;
break;
case MappingNotify:
@@ -1771,10 +1727,6 @@ gdk_x11_display_finalize (GObject *object)
/* Leader Window */
XDestroyWindow (display_x11->xdisplay, display_x11->leader_window);
- /* list of filters for client messages */
- g_list_foreach (display_x11->client_filters, (GFunc) g_free, NULL);
- g_list_free (display_x11->client_filters);
-
/* List of event window extraction functions */
g_slist_foreach (display_x11->event_types, (GFunc)g_free, NULL);
g_slist_free (display_x11->event_types);
@@ -2311,45 +2263,6 @@ gdk_x11_display_list_devices (GdkDisplay *display)
return GDK_X11_DISPLAY (display)->input_devices;
}
-static gboolean
-gdk_x11_display_send_client_message (GdkDisplay *display,
- GdkEvent *event,
- GdkNativeWindow winid)
-{
- XEvent sev;
-
- g_return_val_if_fail(event != NULL, FALSE);
-
- /* Set up our event to send, with the exception of its target window */
- sev.xclient.type = ClientMessage;
- sev.xclient.display = GDK_DISPLAY_XDISPLAY (display);
- sev.xclient.format = event->client.data_format;
- sev.xclient.window = winid;
- memcpy(&sev.xclient.data, &event->client.data, sizeof (sev.xclient.data));
- sev.xclient.message_type = gdk_x11_atom_to_xatom_for_display (display, event->client.message_type);
-
- return _gdk_x11_display_send_xevent (display, winid, False, NoEventMask, &sev);
-}
-
-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));
- filter = g_new (GdkClientFilter, 1);
-
- filter->type = message_type;
- filter->function = func;
- filter->data = data;
-
- GDK_X11_DISPLAY(display)->client_filters =
- g_list_append (GDK_X11_DISPLAY (display)->client_filters,
- filter);
-}
-
/**
* gdk_x11_register_standard_event_type:
* @display: a #GdkDisplay
@@ -2747,8 +2660,6 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
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;
display_class->get_app_launch_context = _gdk_x11_display_get_app_launch_context;
display_class->get_drag_protocol = _gdk_x11_display_get_drag_protocol;
display_class->get_cursor_for_type = _gdk_x11_display_get_cursor_for_type;
diff --git a/gdk/x11/gdkdisplay-x11.h b/gdk/x11/gdkdisplay-x11.h
index a18d647fb0..7fdb05e231 100644
--- a/gdk/x11/gdkdisplay-x11.h
+++ b/gdk/x11/gdkdisplay-x11.h
@@ -95,9 +95,6 @@ struct _GdkX11Display
GdkWindow *leader_gdk_window;
gboolean leader_window_title_set;
- /* list of filters for client messages */
- GList *client_filters;
-
/* List of functions to go from extension event => X window */
GSList *event_types;
diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c
index e5cc2aedf2..b6ceeb649e 100644
--- a/gdk/x11/gdkscreen-x11.c
+++ b/gdk/x11/gdkscreen-x11.c
@@ -1086,92 +1086,6 @@ gdk_x11_screen_get_window_stack (GdkScreen *screen)
return ret;
}
-/* Sends a ClientMessage to all toplevel client windows */
-static gboolean
-gdk_event_send_client_message_to_all_recurse (GdkDisplay *display,
- XEvent *xev,
- guint32 xid,
- guint level)
-{
- Atom type = None;
- int format;
- unsigned long nitems, after;
- unsigned char *data;
- Window *ret_children, ret_root, ret_parent;
- unsigned int ret_nchildren;
- gboolean send = FALSE;
- gboolean found = FALSE;
- gboolean result = FALSE;
- int i;
-
- gdk_x11_display_error_trap_push (display);
-
- if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), xid,
- gdk_x11_get_xatom_by_name_for_display (display, "WM_STATE"),
- 0, 0, False, AnyPropertyType,
- &type, &format, &nitems, &after, &data) != Success)
- goto out;
-
- if (type)
- {
- send = TRUE;
- XFree (data);
- }
- else
- {
- /* OK, we're all set, now let's find some windows to send this to */
- if (!XQueryTree (GDK_DISPLAY_XDISPLAY (display), xid,
- &ret_root, &ret_parent,
- &ret_children, &ret_nchildren))
- goto out;
-
- for(i = 0; i < ret_nchildren; i++)
- if (gdk_event_send_client_message_to_all_recurse (display, xev, ret_children[i], level + 1))
- found = TRUE;
-
- XFree (ret_children);
- }
-
- if (send || (!found && (level == 1)))
- {
- xev->xclient.window = xid;
- _gdk_x11_display_send_xevent (display, xid, False, NoEventMask, xev);
- }
-
- result = send || found;
-
- out:
- gdk_x11_display_error_trap_pop_ignored (display);
-
- return result;
-}
-
-static void
-gdk_x11_screen_broadcast_client_message (GdkScreen *screen,
- GdkEvent *event)
-{
- XEvent sev;
- GdkWindow *root_window;
-
- g_return_if_fail (event != NULL);
-
- root_window = gdk_screen_get_root_window (screen);
-
- /* Set up our event to send, with the exception of its target window */
- sev.xclient.type = ClientMessage;
- sev.xclient.display = GDK_WINDOW_XDISPLAY (root_window);
- sev.xclient.format = event->client.data_format;
- memcpy(&sev.xclient.data, &event->client.data, sizeof (sev.xclient.data));
- sev.xclient.message_type =
- gdk_x11_atom_to_xatom_for_display (GDK_WINDOW_DISPLAY (root_window),
- event->client.message_type);
-
- gdk_event_send_client_message_to_all_recurse (gdk_screen_get_display (screen),
- &sev,
- GDK_WINDOW_XID (root_window),
- 0);
-}
-
static gboolean
check_transform (const gchar *xsettings_name,
GType src_type,
@@ -1691,7 +1605,6 @@ gdk_x11_screen_class_init (GdkX11ScreenClass *klass)
screen_class->make_display_name = gdk_x11_screen_make_display_name;
screen_class->get_active_window = gdk_x11_screen_get_active_window;
screen_class->get_window_stack = gdk_x11_screen_get_window_stack;
- screen_class->broadcast_client_message = gdk_x11_screen_broadcast_client_message;
screen_class->get_setting = gdk_x11_screen_get_setting;
screen_class->visual_get_best_depth = _gdk_x11_screen_visual_get_best_depth;
screen_class->visual_get_best_type = _gdk_x11_screen_visual_get_best_type;