diff --git a/TODO b/TODO index 32fa440a1..eebe403e4 100644 --- a/TODO +++ b/TODO @@ -32,12 +32,6 @@ ISSUES: * virtual desktops need an overhaul. hacked in waay too quickly. * virtual desktops need fixing to work with zones properly * gadman gadget menu needs icons :) -* if container/zone changes size pager does not change/adjust to match -* if u disable modules by right click->enabled (select to uncheck) the gadman objects for thsoe moduels dont go away -* if u disable a module by right clicking on it all sorts of bad things happen (cant re-enable from menu - still thinks its enabled) -* pager on other xinerama heads doesnt save position/size etc. -* restart with multiple zones is... buggy with vd'as and pager -* rm -rf or mv ~/.e/e/applications and things go bad... diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 1a44cd5ae..5aa833a65 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -349,13 +349,13 @@ e_border_zone_set(E_Border *bd, E_Zone *zone) if (bd->desk->zone != bd->zone) { E_Desk *desk; - int x, y; +// int x, y; - e_desk_xy_get(bd->desk, &x, &y); - desk = e_desk_at_xy_get(bd->zone, x, y); - if (desk) - e_border_desk_set(bd, desk); - else +// e_desk_xy_get(bd->desk, &x, &y); +// desk = e_desk_at_xy_get(bd->zone, x, y); +// if (desk) +// e_border_desk_set(bd, desk); +// else e_border_desk_set(bd, e_desk_current_get(bd->zone)); } diff --git a/src/bin/e_gadman.c b/src/bin/e_gadman.c index e2ed9d9b2..c25c2dff5 100644 --- a/src/bin/e_gadman.c +++ b/src/bin/e_gadman.c @@ -920,11 +920,11 @@ static void _e_gadman_client_geometry_to_align(E_Gadman_Client *gmc) { if (gmc->w != gmc->zone->w) - gmc->ax = (double)gmc->x / (double)(gmc->zone->w - gmc->w); + gmc->ax = (double)(gmc->x - gmc->zone->x) / (double)(gmc->zone->w - gmc->w); else gmc->ax = 0.0; if (gmc->h != gmc->zone->h) - gmc->ay = (double)gmc->y / (double)(gmc->zone->h - gmc->h); + gmc->ay = (double)(gmc->y - gmc->zone->y) / (double)(gmc->zone->h - gmc->h); else gmc->ay = 0.0; } diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index 73cf70632..e1616c3f1 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -133,7 +133,9 @@ e_manager_manage_windows(E_Manager *man) con = e_manager_container_number_get(man, id); else con = e_manager_container_current_get(man); - + if (!con) + e_container_current_get(man); + ret = ecore_x_window_prop_card32_get(windows[i], E_ATOM_ZONE, &id, 1); @@ -141,7 +143,8 @@ e_manager_manage_windows(E_Manager *man) zone = e_container_zone_number_get(con, id); else zone = e_zone_current_get(con); - + if (!zone) + zone = e_zone_current_get(con); ret = ecore_x_window_prop_card32_get(windows[i], E_ATOM_DESK, deskxy, 2); diff --git a/src/modules/battery/e_mod_main.c b/src/modules/battery/e_mod_main.c index 2f3d702ab..69e1d5932 100644 --- a/src/modules/battery/e_mod_main.c +++ b/src/modules/battery/e_mod_main.c @@ -550,12 +550,14 @@ _battery_face_menu_new(Battery_Face *face) face->menu = mn; /* Enabled */ + /* mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Enabled"); e_menu_item_check_set(mi, 1); if (face->conf->enabled) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _battery_face_cb_menu_enabled, face); - + */ + /* Edit */ mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Edit Mode"); diff --git a/src/modules/clock/e_mod_main.c b/src/modules/clock/e_mod_main.c index 00e8e7934..0e611f664 100644 --- a/src/modules/clock/e_mod_main.c +++ b/src/modules/clock/e_mod_main.c @@ -298,12 +298,14 @@ _clock_face_menu_new(Clock_Face *face) face->menu = mn; /* Enabled */ + /* mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Enabled"); e_menu_item_check_set(mi, 1); if (face->conf->enabled) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _clock_face_cb_menu_enabled, face); - + */ + /* Edit */ mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Edit Mode"); diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index ff299d474..c82f7dfc4 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -545,12 +545,14 @@ _ibar_bar_menu_new(IBar_Bar *ibb) ibb->menu = mn; /* Enabled */ + /* mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Enabled"); e_menu_item_check_set(mi, 1); if (ibb->conf->enabled) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ibar_bar_cb_menu_enabled, ibb); - + */ + /* Edit */ mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Edit Mode"); diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c index a3ed87427..e8be30f7a 100644 --- a/src/modules/pager/e_mod_main.c +++ b/src/modules/pager/e_mod_main.c @@ -49,6 +49,7 @@ static int _pager_face_cb_event_border_lower(void *data, int type, void static int _pager_face_cb_event_border_icon_change(void *data, int type, void *event); static int _pager_face_cb_event_zone_desk_count_set(void *data, int type, void *event); static int _pager_face_cb_event_desk_show(void *data, int type, void *event); +static int _pager_face_cb_event_container_resize(void *data, int type, void *event); static void _pager_face_cb_menu_enabled(void *data, E_Menu *m, E_Menu_Item *mi); static void _pager_face_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi); @@ -321,6 +322,9 @@ _pager_face_new(E_Zone *zone) face->ev_handler_desk_show = ecore_event_handler_add(E_EVENT_DESK_SHOW, _pager_face_cb_event_desk_show, face); + face->ev_handler_container_resize = + ecore_event_handler_add(E_EVENT_CONTAINER_RESIZE, + _pager_face_cb_event_container_resize, face); /* the bg */ o = edje_object_add(face->evas); @@ -337,9 +341,9 @@ _pager_face_new(E_Zone *zone) edje_object_part_swallow(face->pager_object, "items", face->table_object); evas_object_show(o); + face->gmc = e_gadman_client_new(zone->container->gadman); _pager_face_zone_set(face, zone); - face->gmc = e_gadman_client_new(face->zone->container->gadman); e_gadman_client_domain_set(face->gmc, "module.pager", _pager_count++); e_gadman_client_zone_set(face->gmc, face->zone); e_gadman_client_policy_set(face->gmc, @@ -383,6 +387,7 @@ _pager_face_free(Pager_Face *face) ecore_event_handler_del(face->ev_handler_border_icon_change); ecore_event_handler_del(face->ev_handler_zone_desk_count_set); ecore_event_handler_del(face->ev_handler_desk_show); + ecore_event_handler_del(face->ev_handler_container_resize); e_object_del(E_OBJECT(face->menu)); @@ -401,12 +406,13 @@ _pager_face_menu_new(Pager_Face *face) mn = e_menu_new(); face->menu = mn; + /* mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Enabled"); e_menu_item_check_set(mi, 1); if (face->conf->enabled) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _pager_face_cb_menu_enabled, face); - + */ mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Edit Mode"); e_menu_item_callback_set(mi, _pager_face_cb_menu_edit, face); @@ -470,6 +476,9 @@ _pager_face_zone_set(Pager_Face *face, E_Zone *zone) if (pd) face->desks = evas_list_append(face->desks, pd); } } +// e_gadman_client_aspect_set(face->gmc, +// (double)(face->xnum * face->zone->w) / (double)(face->ynum * face->zone->h), +// (double)(face->xnum * face->zone->w) / (double)(face->ynum * face->zone->h)); } static void @@ -1187,6 +1196,9 @@ _pager_face_cb_event_zone_desk_count_set(void *data, int type, void *event) face->xnum = desks_x; face->ynum = desks_y; +// e_gadman_client_aspect_set(face->gmc, +// (double)(face->xnum * face->zone->w) / (double)(face->ynum * face->zone->h), +// (double)(face->xnum * face->zone->w) / (double)(face->ynum * face->zone->h)); e_gadman_client_resize(face->gmc, face->fw + dw, face->fh + dh); return 1; } @@ -1206,6 +1218,40 @@ _pager_face_cb_event_desk_show(void *data, int type, void *event) return 1; } +static int +_pager_face_cb_event_container_resize(void *data, int type, void *event) +{ + Pager_Face *face; + E_Event_Container_Resize *ev; + Evas_List *l; + Evas_Coord w, h, lw, lh; + + face = data; + ev = event; + if (face->zone->container != ev->container) return 1; + for (l = face->desks; l; l = l->next) + { + Pager_Desk *pd; + + pd = l->data; + e_layout_virtual_size_set(pd->layout_object, + face->zone->w, + face->zone->h); + } +// e_gadman_client_aspect_set(face->gmc, +// (double)(face->xnum * face->zone->w) / (double)(face->ynum * face->zone->h), +// (double)(face->xnum * face->zone->w) / (double)(face->ynum * face->zone->h)); + w = face->fw; + h = face->fh; + evas_object_geometry_get(face->table_object, NULL, NULL, &lw, &lh); + if ((face->xnum * face->zone->w) > (face->ynum * face->zone->h)) + w = face->xnum * ((face->zone->w * lh) / face->zone->h); + else + h = face->ynum * ((face->zone->h * lw) / face->zone->w); + e_gadman_client_resize(face->gmc, w, h); + return 1; +} + /*****/ static void diff --git a/src/modules/pager/e_mod_main.h b/src/modules/pager/e_mod_main.h index 36693a9aa..e94aad1d2 100644 --- a/src/modules/pager/e_mod_main.h +++ b/src/modules/pager/e_mod_main.h @@ -73,6 +73,7 @@ struct _Pager_Face Ecore_Event_Handler *ev_handler_border_icon_change; Ecore_Event_Handler *ev_handler_zone_desk_count_set; Ecore_Event_Handler *ev_handler_desk_show; + Ecore_Event_Handler *ev_handler_container_resize; }; struct _Pager_Desk diff --git a/src/modules/temperature/e_mod_main.c b/src/modules/temperature/e_mod_main.c index c28e5645d..b8e612c35 100644 --- a/src/modules/temperature/e_mod_main.c +++ b/src/modules/temperature/e_mod_main.c @@ -711,12 +711,13 @@ _temperature_face_menu_new(Temperature_Face *face) face->menu = mn; /* Enabled */ + /* mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Enabled"); e_menu_item_check_set(mi, 1); if (face->conf->enabled) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _temperature_face_cb_menu_enabled, face); - + */ /* Edit */ mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Edit Mode");