From 1a48844b7f1824f01e20fdd3f006c39949ead44b Mon Sep 17 00:00:00 2001 From: xcomputerman Date: Tue, 4 Jan 2005 01:32:23 +0000 Subject: [PATCH] Bugfixes - restore avoid_damage call on new borders, move background blank object to container level SVN revision: 12719 --- src/bin/e_border.c | 3 ++- src/bin/e_container.c | 15 +++++++++++++++ src/bin/e_desk.c | 6 ++++-- src/bin/e_object.h | 4 ++-- src/bin/e_zone.c | 12 ------------ 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index e08faa2c8..d139674fa 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -151,7 +151,7 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map) bd->bg_win = ecore_evas_software_x11_window_get(bd->bg_ecore_evas); ecore_evas_name_class_set(bd->bg_ecore_evas, "E", "Frame_Window"); ecore_evas_title_set(bd->bg_ecore_evas, "Enlightenment Frame"); - /* ecore_evas_avoid_damage_set(bd->bg_ecore_evas, 1); */ + ecore_evas_avoid_damage_set(bd->bg_ecore_evas, 1); ecore_evas_show(bd->bg_ecore_evas); evas_font_path_append(bd->bg_evas, e_path_find(path_data, "fonts")); bd->client.shell_win = ecore_x_window_override_new(bd->win, 0, 0, 1, 1); @@ -239,6 +239,7 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map) con->clients = evas_list_append(con->clients, bd); borders = evas_list_append(borders, bd); + return bd; } diff --git a/src/bin/e_container.c b/src/bin/e_container.c index fa63c1918..065638f72 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -37,6 +37,7 @@ e_container_new(E_Manager *man) { E_Container *con; E_Zone *zone; + Evas_Object *o; con = E_OBJECT_ALLOC(E_Container, _e_container_free); if (!con) return NULL; @@ -59,6 +60,16 @@ e_container_new(E_Manager *man) ecore_evas_callback_resize_set(con->bg_ecore_evas, _e_container_cb_bg_ecore_evas_resize); + o = evas_object_rectangle_add(con->bg_evas); + con->bg_blank_object = o; + evas_object_layer_set(o, -100); + evas_object_move(o, 0, 0); + evas_object_resize(o, con->w, con->h); + evas_object_color_set(o, 255, 255, 255, 255); + evas_object_name_set(o, "desktop/background"); + evas_object_data_set(o, "e_container", con); + evas_object_show(o); + e_pointer_container_set(con); /* FIXME: Add ecore code to fetch xinerama screens for zones */ @@ -94,6 +105,7 @@ e_container_move(E_Container *con, int x, int y) con->x = x; con->y = y; ecore_x_window_move(con->win, con->x, con->y); + evas_object_move(con->bg_blank_object, con->x, con->y); } void @@ -105,6 +117,7 @@ e_container_resize(E_Container *con, int w, int h) con->h = h; ecore_x_window_resize(con->win, con->w, con->h); ecore_evas_resize(con->bg_ecore_evas, con->w, con->h); + evas_object_resize(con->bg_blank_object, con->w, con->h); } void @@ -118,6 +131,8 @@ e_container_move_resize(E_Container *con, int x, int y, int w, int h) con->h = h; ecore_x_window_move_resize(con->win, con->x, con->y, con->w, con->h); ecore_evas_resize(con->bg_ecore_evas, con->w, con->h); + evas_object_move(con->bg_blank_object, con->x, con->y); + evas_object_resize(con->bg_blank_object, con->w, con->h); } void diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index d15808151..69f4e2b9f 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -19,6 +19,7 @@ e_desk_new(E_Zone *zone) desk = E_OBJECT_ALLOC(E_Desk, _e_desk_free); if (!desk) return NULL; + desk->clients = NULL; desk->zone = zone; desk->num = evas_list_count(zone->desks) + 1; snprintf(name, sizeof(name), "Desktop %d", desk->num); @@ -44,12 +45,13 @@ e_desk_show(E_Desk *desk) Evas_List *l; E_OBJECT_CHECK(desk); - + if (desk->visible) return; + for (l = desk->zone->clients; l; l = l->next) { E_Border *bd = l->data; - if (desk->clients && evas_list_find(desk->clients, bd)) + if (bd->desk == desk) e_border_show(bd); else e_border_hide(bd); diff --git a/src/bin/e_object.h b/src/bin/e_object.h index dcb3c49cc..70aff6ebf 100644 --- a/src/bin/e_object.h +++ b/src/bin/e_object.h @@ -10,8 +10,8 @@ /* OBJECT_CHECK is a simple null pointer and magic number check with no */ /* debug output */ -/* #define OBJECT_PARANOIA_CHECK */ -#define OBJECT_CHECK +#define OBJECT_PARANOIA_CHECK +//#define OBJECT_CHECK #ifndef __GLIBC__ # ifdef OBJECT_PARANOIA_CHECK diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index ca6d355d3..00bbebc82 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -40,14 +40,6 @@ e_zone_new(E_Container *con, int x, int y, int w, int h) char name[40]; Evas_Object *o; - o = evas_object_rectangle_add(con->bg_evas); - zone->bg_blank_object = o; - evas_object_layer_set(o, -100); - evas_object_move(o, x, y); - evas_object_resize(o, w, h); - evas_object_color_set(o, 255, 255, 255, 255); - evas_object_show(o); - o = edje_object_add(con->bg_evas); zone->bg_object = o; evas_object_layer_set(o, -1); @@ -96,7 +88,6 @@ e_zone_move(E_Zone *zone, int x, int y) if ((x == zone->x) && (y == zone->y)) return; zone->x = x; zone->y = y; - evas_object_move(zone->bg_blank_object, x, y); evas_object_move(zone->bg_object, x, y); evas_object_move(zone->bg_event_object, x, y); } @@ -109,7 +100,6 @@ e_zone_resize(E_Zone *zone, int w, int h) if ((w == zone->w) && (h == zone->h)) return; zone->w = w; zone->h = h; - evas_object_resize(zone->bg_blank_object, w, h); evas_object_resize(zone->bg_object, w, h); evas_object_resize(zone->bg_event_object, w, h); } @@ -127,10 +117,8 @@ e_zone_move_resize(E_Zone *zone, int x, int y, int w, int h) zone->w = w; zone->h = h; - evas_object_move(zone->bg_blank_object, x, y); evas_object_move(zone->bg_object, x, y); evas_object_move(zone->bg_event_object, x, y); - evas_object_resize(zone->bg_blank_object, w, h); evas_object_resize(zone->bg_object, w, h); evas_object_resize(zone->bg_event_object, w, h); }