diff --git a/ChangeLog b/ChangeLog index 0d954b91c5..a247aaf56e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2004-06-16 Michael Natterer + + * libgimpwidgets/gimpcontroller.c (gimp_controller_get_event_name) + (gimp_controller_get_event_blurb): always return a non-NULL + string (return "" as fallback). + + * modules/controller_linux_input.c: reenabled button event + dispatching. + + * app/widgets/gimpcontrollerinfo.c: fixed debugging output. + 2004-06-16 Simon Budig * modules/controller_linux_input.c: break out of the diff --git a/app/widgets/gimpcontrollerinfo.c b/app/widgets/gimpcontrollerinfo.c index 02a0fe35bd..51f8e1c663 100644 --- a/app/widgets/gimpcontrollerinfo.c +++ b/app/widgets/gimpcontrollerinfo.c @@ -427,9 +427,9 @@ gimp_controller_info_event (GimpController *controller, controller, event, action_name, &retval); if (retval) - g_print (" action was found\n\n"); + g_print (" action was found\n\n"); else - g_print (" action NOT found\n\n"); + g_print (" action NOT found\n\n"); return retval; } diff --git a/libgimpwidgets/gimpcontroller.c b/libgimpwidgets/gimpcontroller.c index dc118ba969..56eac16c37 100644 --- a/libgimpwidgets/gimpcontroller.c +++ b/libgimpwidgets/gimpcontroller.c @@ -221,26 +221,36 @@ const gchar * gimp_controller_get_event_name (GimpController *controller, gint event_id) { + const gchar *name = NULL; + g_return_val_if_fail (GIMP_IS_CONTROLLER (controller), NULL); if (GIMP_CONTROLLER_GET_CLASS (controller)->get_event_name) - return GIMP_CONTROLLER_GET_CLASS (controller)->get_event_name (controller, + name = GIMP_CONTROLLER_GET_CLASS (controller)->get_event_name (controller, event_id); - return NULL; + if (! name) + name = ""; + + return name; } const gchar * gimp_controller_get_event_blurb (GimpController *controller, gint event_id) { + const gchar *blurb = NULL; + g_return_val_if_fail (GIMP_IS_CONTROLLER (controller), NULL); if (GIMP_CONTROLLER_GET_CLASS (controller)->get_event_blurb) - return GIMP_CONTROLLER_GET_CLASS (controller)->get_event_blurb (controller, - event_id); + blurb = GIMP_CONTROLLER_GET_CLASS (controller)->get_event_blurb (controller, + event_id); - return NULL; + if (! blurb) + blurb = ""; + + return blurb; } void diff --git a/modules/controller_linux_input.c b/modules/controller_linux_input.c index 545d93ca0b..a7e867fd5a 100644 --- a/modules/controller_linux_input.c +++ b/modules/controller_linux_input.c @@ -394,11 +394,16 @@ linux_input_read_event (GIOChannel *io, for (i = 0; i < G_N_ELEMENTS (key_events); i++) if (ev.code == key_events[i].code) { + GimpController *controller = GIMP_CONTROLLER (data); GimpControllerEvent cevent; cevent.any.type = GIMP_CONTROLLER_EVENT_TRIGGER; cevent.any.source = GIMP_CONTROLLER (data); cevent.any.event_id = i; + + gimp_controller_event (controller, &cevent); + + break; } break;