Enlightenment CVS committal Author : iamsthitha Project : e_modules Module : taskbar
Dir : e_modules/taskbar Modified Files: e_mod_main.c Log Message: Put back the border property callback =================================================================== RCS file: /cvs/e/e_modules/taskbar/e_mod_main.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -3 -r1.41 -r1.42 --- e_mod_main.c 26 Apr 2008 02:41:37 -0000 1.41 +++ e_mod_main.c 26 Apr 2008 21:04:40 -0000 1.42 @@ -55,6 +55,7 @@ static void _taskbar_free(Taskbar *taskbar); static void _taskbar_refill(Taskbar *taskbar); static void _taskbar_refill_all(); +static void _taskbar_refill_border(E_Border *border); static void _taskbar_signal_emit(E_Border *border, char *sig, char *src); static Taskbar_Item *_taskbar_item_find(Taskbar *taskbar, E_Border *border); @@ -63,6 +64,7 @@ static int _taskbar_item_check_add(Taskbar *taskbar, E_Border *border); static void _taskbar_item_add(Taskbar *taskbar, E_Border *border); static void _taskbar_item_remove(Taskbar_Item *item); +static void _taskbar_item_refill(Taskbar_Item *item); static void _taskbar_item_fill(Taskbar_Item *item); static void _taskbar_item_free(Taskbar_Item *item); static void _taskbar_item_signal_emit(Taskbar_Item *item, char *sig, char *src); @@ -83,6 +85,7 @@ static int _taskbar_cb_event_border_desk_set(void *data, int type, void *event); static int _taskbar_cb_window_focus_in(void *data, int type, void *event); static int _taskbar_cb_window_focus_out(void *data, int type, void *event); +static int _taskbar_cb_event_border_property(void *data, int type, void *event); static int _taskbar_cb_event_desk_show(void *data, int type, void *event); static int _taskbar_cb_event_border_urgent_change(void *data, int type, void *event); @@ -157,6 +160,8 @@ taskbar_config->handlers = evas_list_append (taskbar_config->handlers, ecore_event_handler_add(E_EVENT_BORDER_FOCUS_OUT, _taskbar_cb_window_focus_out, NULL)); taskbar_config->handlers = evas_list_append + (taskbar_config->handlers, ecore_event_handler_add(E_EVENT_BORDER_PROPERTY, _taskbar_cb_event_border_property, NULL)); + taskbar_config->handlers = evas_list_append (taskbar_config->handlers, ecore_event_handler_add(E_EVENT_DESK_SHOW, _taskbar_cb_event_desk_show, NULL)); taskbar_config->handlers = evas_list_append (taskbar_config->handlers, ecore_event_handler_add @@ -387,6 +392,27 @@ } } + +static void +_taskbar_refill_border(E_Border *border) +{ + Evas_List *l; + Evas_List *m; + Taskbar *taskbar; + Taskbar_Item *item; + + for (l = taskbar_config->taskbars; l; l = l->next) + { + taskbar = l->data; + for (m = taskbar->items; m; m = m->next) + { + item = m->data; + if (item->border == border) + _taskbar_item_refill(item); + } + } +} + static void _taskbar_signal_emit(E_Border *border, char *sig, char *src) { @@ -507,6 +533,14 @@ } static void +_taskbar_item_refill(Taskbar_Item *item) +{ + if (item->o_icon) + evas_object_del(item->o_icon); + _taskbar_item_fill(item); +} + +static void _taskbar_item_fill(Taskbar_Item *item) { item->o_icon = e_border_icon_add(item->border, evas_object_evas_get(item->taskbar->o_items)); @@ -808,9 +842,28 @@ } static int +_taskbar_cb_event_border_property(void *data, int type, void *event) +{ + E_Event_Border_Property *ev; + E_Border *border; + + ev = event; + border = ev->border; + if (border) + _taskbar_refill_border(border); + return 1; +} + +static int _taskbar_cb_event_border_icon_change(void *data, int type, void *event) { - _taskbar_refill_all(); + E_Event_Border_Icon_Change *ev; + E_Border *border; + + ev = event; + border = ev->border; + if (border) + _taskbar_refill_border(border); return 1; } ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs