patches/gnome-applets-12-accessx-xkb-crash.diff
changeset 3385 78d1e76d294b
parent 3384 c6e249d24ce7
child 3386 3e994fea39b1
equal deleted inserted replaced
3384:c6e249d24ce7 3385:78d1e76d294b
     1 --- gnome-applets-2.6.1/accessx-status/applet.c	2004-06-25 15:03:01.399991000 +0530
       
     2 +++ gnome-applets-2.6.1-new/accessx-status/applet.c	2004-06-25 19:45:08.039991000 +0530
       
     3 @@ -1030,6 +1030,12 @@ popup_error_dialog (AccessxStatusApplet*
       
     4  	case ACCESSX_STATUS_ERROR_XKB_DISABLED :
       
     5  		error_txt = g_strdup (_("XKB Extension is not enabled"));
       
     6  		break;
       
     7 +
       
     8 +	case ACCESSX_STATUS_ERROR_UNKNOWN :
       
     9 +
       
    10 +	default : 
       
    11 +		error_txt = g_strdup (_("Unknown error"));
       
    12 +		break;
       
    13  	}
       
    14  
       
    15  	dialog =   gtk_message_dialog_new (NULL,
       
    16 @@ -1244,16 +1250,22 @@ accessx_status_applet_reset (gpointer us
       
    17  	return FALSE;
       
    18  }
       
    19  
       
    20 -static void
       
    21 +static gboolean
       
    22  accessx_status_applet_initialize (AccessxStatusApplet *sapplet)
       
    23  {
       
    24  	if (!sapplet->initialized) {
       
    25  		sapplet->initialized = True;
       
    26 -		accessx_status_applet_xkb_select (sapplet);
       
    27 +		if (!accessx_status_applet_xkb_select (sapplet)) {
       
    28 +			disable_applet (sapplet);
       
    29 +			popup_error_dialog (sapplet);
       
    30 +			return FALSE;
       
    31 +		}
       
    32  		gdk_window_add_filter (NULL, accessx_status_xkb_filter, sapplet);
       
    33  	}
       
    34  	accessx_status_applet_init_modifiers (sapplet);
       
    35  	accessx_status_applet_update (sapplet, ACCESSX_STATUS_ALL, NULL);
       
    36 +
       
    37 +	return TRUE;
       
    38  }
       
    39  
       
    40  static void
       
    41 @@ -1261,7 +1273,9 @@ accessx_status_applet_realize (GtkWidget
       
    42  {
       
    43  	AccessxStatusApplet *sapplet = user_data;
       
    44  
       
    45 -	accessx_status_applet_initialize (sapplet);
       
    46 +	if (!accessx_status_applet_initialize (sapplet))
       
    47 +		return;
       
    48 +
       
    49  	g_idle_add (accessx_status_applet_reset, sapplet);
       
    50  	return;
       
    51  }