- gtk_widget_set_events (drawing_area, GDK_EXPOSURE_MASK
- | GDK_LEAVE_NOTIFY_MASK
- | GDK_BUTTON_PRESS_MASK
- | GDK_KEY_PRESS_MASK
- | GDK_POINTER_MOTION_MASK
- | GDK_POINTER_MOTION_HINT_MASK
- | GDK_PROXIMITY_OUT_MASK);
-
- /* The following call enables tracking and processing of extension
- events for the drawing area */
- gtk_widget_set_extension_events (drawing_area, GDK_EXTENSION_EVENTS_ALL);
+ event_mask = GDK_EXPOSURE_MASK |
+ GDK_LEAVE_NOTIFY_MASK |
+ GDK_BUTTON_PRESS_MASK |
+ GDK_KEY_PRESS_MASK |
+ GDK_POINTER_MOTION_MASK |
+ GDK_POINTER_MOTION_HINT_MASK |
+ GDK_PROXIMITY_OUT_MASK;
+
+ gtk_widget_set_events (drawing_area, event_mask);
+
+ devices = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_FLOATING);
+
+ for (d = devices; d; d = d->next)
+ {
+ GdkDevice *device;
+
+ device = d->data;
+ gtk_widget_set_device_events (drawing_area, device, event_mask);
+ gdk_device_set_mode (device, GDK_MODE_SCREEN);
+ }
+
+ g_list_free (devices);