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
This commit is contained in:
		| @ -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; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Benjamin Otte
					Benjamin Otte