306
306
else if (CAIRO_DOCK_IS_APPLI (icon)) // une appli normale
308
gchar *ext = strrchr (cReceivedData, '.');
310
return CAIRO_DOCK_LET_PASS_NOTIFICATION;
311
if ((strcmp (ext, ".png") == 0 || strcmp (ext, ".svg") == 0) && !myAccessibility.bLockAll && ! myAccessibility.bLockIcons)
313
if (!myTaskBar.bOverWriteXIcons)
315
myTaskBar.bOverWriteXIcons = TRUE;
316
cairo_dock_update_conf_file (g_cConfFile,
317
G_TYPE_BOOLEAN, "TaskBar", "overwrite xicon", myTaskBar.bOverWriteXIcons,
319
cairo_dock_show_temporary_dialog_with_default_icon (_("The option 'overwrite X icons' has been automatically enabled in the config.\nIt is located in the 'Taskbar' module."), icon, pContainer, 6000);
323
if (strncmp (cReceivedData, "file://", 7) == 0) // tous les programmes ne gerent pas les URI; pour parer au cas ou il ne le gererait pas, dans le cas d'un fichier local, on convertit en un chemin
325
cPath = g_filename_from_uri (cReceivedData, NULL, NULL);
328
gchar *cCommand = g_strdup_printf ("cp '%s' '%s/%s%s'", cPath?cPath:cReceivedData, g_cCurrentIconsPath, icon->cClass, ext);
329
int r = system (cCommand);
332
cairo_dock_reload_icon_image (icon, pContainer);
333
cairo_dock_redraw_icon (icon, pContainer);
308
cairo_dock_set_custom_icon_on_appli (cReceivedData, icon, pContainer);
335
309
return CAIRO_DOCK_LET_PASS_NOTIFICATION;
337
311
else // autre chose.
358
332
return CAIRO_DOCK_LET_PASS_NOTIFICATION;
336
void cairo_dock_set_custom_icon_on_appli (const gchar *cFilePath, Icon *icon, CairoContainer *pContainer)
338
g_return_if_fail (CAIRO_DOCK_IS_APPLI (icon) && cFilePath != NULL);
339
gchar *ext = strrchr (cFilePath, '.');
342
cd_debug ("%s (%s)", __func__, cFilePath);
343
if ((strcmp (ext, ".png") == 0 || strcmp (ext, ".svg") == 0) && !myAccessibility.bLockAll && ! myAccessibility.bLockIcons)
345
if (!myTaskBar.bOverWriteXIcons)
347
myTaskBar.bOverWriteXIcons = TRUE;
348
cairo_dock_update_conf_file (g_cConfFile,
349
G_TYPE_BOOLEAN, "TaskBar", "overwrite xicon", myTaskBar.bOverWriteXIcons,
351
cairo_dock_show_temporary_dialog_with_default_icon (_("The option 'overwrite X icons' has been automatically enabled in the config.\nIt is located in the 'Taskbar' module."), icon, pContainer, 6000);
355
if (strncmp (cFilePath, "file://", 7) == 0)
357
cPath = g_filename_from_uri (cFilePath, NULL, NULL);
360
gchar *cCommand = g_strdup_printf ("cp '%s' '%s/%s%s'", cPath?cPath:cFilePath, g_cCurrentIconsPath, icon->cClass, ext);
361
cd_debug (" -> '%s'", cCommand);
362
int r = system (cCommand);
365
cairo_dock_reload_icon_image (icon, pContainer);
366
cairo_dock_redraw_icon (icon, pContainer);