~cairo-dock-team/cairo-dock-core/popup_from_shortkey

« back to all changes in this revision

Viewing changes to src/gldit/cairo-dock-applications-manager.c

  • Committer: Fabrice Rey
  • Date: 2013-06-04 22:58:28 UTC
  • Revision ID: fabounet03@gmail.com-20130604225828-x8lg3mv9135jr114
updated various parts of the core to the new API (new icons type, 'delete' method, simplified functions, etc)

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
#include "gldi-config.h"
30
30
#include "cairo-dock-icon-manager.h"
31
31
#include "cairo-dock-indicator-manager.h"  // myIndicatorsParam.bDrawIndicatorOnAppli
 
32
#include "cairo-dock-class-icon-manager.h"
32
33
#include "cairo-dock-animations.h"  // cairo_dock_trigger_icon_removal_from_dock
33
34
#include "cairo-dock-dock-facility.h"  // cairo_dock_update_dock_size
34
 
#include "cairo-dock-icon-facility.h"  // cairo_dock_set_icon_name
 
35
#include "cairo-dock-icon-facility.h"  // gldi_icon_set_name
35
36
#include "cairo-dock-container.h"
36
37
#include "cairo-dock-object.h"
37
38
#include "cairo-dock-log.h"
125
126
                {
126
127
                        cd_message ("  pas dans un container, on la detruit donc immediatement");
127
128
                        cairo_dock_update_name_on_inhibitors (icon->cClass, actor, NULL);
128
 
                        cairo_dock_free_icon (icon);  // will call cairo_dock_unregister_appli and update the inhibitors.
 
129
                        gldi_object_unref (GLDI_OBJECT (icon));  // will call cairo_dock_unregister_appli and update the inhibitors.
129
130
                }
130
131
        }
131
132
        
141
142
        if (pIcon == NULL)
142
143
                return GLDI_NOTIFICATION_LET_PASS;
143
144
        
144
 
        cairo_dock_set_icon_name (actor->cName, pIcon, NULL);
 
145
        gldi_icon_set_name (pIcon, actor->cName);
145
146
        
146
147
        cairo_dock_update_name_on_inhibitors (actor->cClass, actor, pIcon->cName);
147
148
        return GLDI_NOTIFICATION_LET_PASS;
165
166
                                if (pDock->iRefCount != 0)
166
167
                                        cairo_dock_trigger_redraw_subdock_content (pDock);
167
168
                        }
168
 
                        cairo_dock_redraw_icon (icon, pContainer);
 
169
                        cairo_dock_redraw_icon (icon);
169
170
                }
170
171
        }
171
172
        
280
281
                {
281
282
                        icon->fAlpha = 1;  // on triche un peu.
282
283
                        if (pParentDock != NULL)
283
 
                                cairo_dock_redraw_icon (icon, CAIRO_CONTAINER (pParentDock));
 
284
                                cairo_dock_redraw_icon (icon);
284
285
                }
285
286
                
286
287
                // miniature (on le fait apres l'avoir inseree/detachee, car comme ca dans le cas ou on l'enleve du dock apres l'avoir deminimisee, l'icone est marquee comme en cours de suppression, et donc on ne recharge pas son icone. Sinon l'image change pendant la transition, ce qui est pas top. Comme ca ne change pas la taille de l'icone dans le dock, on peut faire ca apres l'avoir inseree.
290
291
                        cairo_dock_load_icon_image (icon, CAIRO_CONTAINER (pParentDock));
291
292
                        if (pParentDock)
292
293
                        {
293
 
                                cairo_dock_redraw_icon (icon, CAIRO_CONTAINER (pParentDock));
 
294
                                cairo_dock_redraw_icon (icon);
294
295
                                if (pParentDock->iRefCount != 0)  // on prevoit le redessin de l'icone pointant sur le sous-dock.
295
296
                                {
296
297
                                        cairo_dock_trigger_redraw_subdock_content (pParentDock);
423
424
                }
424
425
                else
425
426
                {
426
 
                        cairo_dock_redraw_icon (pLastActiveIcon, CAIRO_CONTAINER (pLastActiveParentDock));
 
427
                        cairo_dock_redraw_icon (pLastActiveIcon);
427
428
                        if (pLastActiveParentDock->iRefCount != 0)  // l'icone est dans un sous-dock, comme l'indicateur est aussi dessine sur l'icone pointant sur ce sous-dock, il faut la redessiner sans l'indicateur.
428
429
                        {
429
430
                                CairoDock *pMainDock = NULL;
430
431
                                Icon *pPointingIcon = cairo_dock_search_icon_pointing_on_dock (pLastActiveParentDock, &pMainDock);
431
432
                                if (pPointingIcon && pMainDock)
432
433
                                {
433
 
                                        cairo_dock_redraw_icon (pPointingIcon, CAIRO_CONTAINER (pMainDock));
 
434
                                        cairo_dock_redraw_icon (pPointingIcon);
434
435
                                }
435
436
                        }
436
437
                }
523
524
                                {
524
525
                                        cd_debug ("on degage le fake qui pointe sur %s", pDock->cDockName);
525
526
                                        cairo_dock_detach_icon_from_dock (pFakeClassIcon, pFakeClassParentDock);
526
 
                                        cairo_dock_free_icon (pFakeClassIcon);
 
527
                                        gldi_object_unref (GLDI_OBJECT (pFakeClassIcon));
527
528
                                        if (! pFakeClassParentDock->bIsMainDock)
528
529
                                                cairo_dock_update_dock_size (pFakeClassParentDock);
529
530
                                }
535
536
        gldi_icon_unset_appli (pIcon);  // on ne veut pas passer dans le 'unregister'
536
537
        g_free (pIcon->cClass);  // ni la gestion de la classe.
537
538
        pIcon->cClass = NULL;
538
 
        cairo_dock_free_icon (pIcon);
 
539
        gldi_object_unref (GLDI_OBJECT (pIcon));
539
540
        return TRUE;
540
541
}
541
542
static void _cairo_dock_stop_application_manager (void)
903
904
        // if not inside a dock, free it, else it will be freeed with the dock.
904
905
        if (pIcon->cParentDockName == NULL)  // not in a dock.
905
906
        {
906
 
                cairo_dock_free_icon (pIcon);
 
907
                gldi_object_unref (GLDI_OBJECT (pIcon));
907
908
        }
908
909
        
909
910
        return TRUE;
989
990
        Icon *icon = (Icon*)obj;
990
991
        GldiWindowActor *actor = (GldiWindowActor*)attr;
991
992
        
992
 
        icon->iTrueType = CAIRO_DOCK_ICON_TYPE_APPLI;
993
993
        icon->iGroup = CAIRO_DOCK_APPLI;
994
994
        icon->fOrder = CAIRO_DOCK_LAST_ORDER;
995
995
        gldi_icon_set_appli (icon, actor);
999
999
        
1000
1000
        icon->iface.load_image           = _load_appli;
1001
1001
        icon->iface.action_on_drag_hover = _show_appli_for_drop;
1002
 
        icon->iface.on_delete            = NULL;
1003
1002
        
1004
1003
        icon->bHasIndicator = myIndicatorsParam.bDrawIndicatorOnAppli;
1005
1004
        if (myTaskbarParam.bSeparateApplis)