diff --git a/debian/changelog b/debian/changelog index 37dd617..a6efa7b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ usb-moded (0.45) unstable; urgency=low - * Send disconnect signal only after clean-up has been done. + * Only signal MODE_UNDEFINED when we have actually done all the modesetting handling + after disconnect. Fixes: NB#273204 * Actually use cdrom timeout -- Philippe De Swert Wed, 13 Jul 2011 14:45:42 +0300 diff --git a/src/usb_moded-modules.c b/src/usb_moded-modules.c index 94a733e..ca2254d 100644 --- a/src/usb_moded-modules.c +++ b/src/usb_moded-modules.c @@ -267,7 +267,6 @@ void check_module_state(const char *module_name) #ifdef NOKIA gboolean usb_cleanup_timeout(gpointer data) { - usb_moded_send_signal(USB_DISCONNECTED); usb_moded_mode_cleanup(get_usb_module()); usb_moded_module_cleanup(get_usb_module()); set_usb_mode(MODE_UNDEFINED); diff --git a/src/usb_moded.c b/src/usb_moded.c index d2a34fc..349d71e 100644 --- a/src/usb_moded.c +++ b/src/usb_moded.c @@ -130,12 +130,12 @@ static gboolean set_disconnected(gpointer data) if(!get_usb_connection_state()) { log_debug("usb disconnected\n"); + /* signal usb disconnected */ + usb_moded_send_signal(USB_DISCONNECTED); #ifdef NOKIA /* delayed clean-up of state */ timeout_source = g_timeout_add_seconds(3, usb_cleanup_timeout, NULL); #else - /* signal usb disconnected */ - usb_moded_send_signal(USB_DISCONNECTED); /* unload modules and general cleanup */ usb_moded_mode_cleanup(get_usb_module()); usb_moded_module_cleanup(get_usb_module());