Enlightenment CVS committal Author : sebastid Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c e_container.c e_container.h Log Message: Make the bg black when doing fullscreen. Care about window constraints when doing fullscreen. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.266 retrieving revision 1.267 diff -u -3 -r1.266 -r1.267 --- e_border.c 18 Jun 2005 04:35:40 -0000 1.266 +++ e_border.c 18 Jun 2005 05:08:17 -0000 1.267 @@ -85,6 +85,7 @@ static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_on_top(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_borderless(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_sendto(void *data, E_Menu *m, E_Menu_Item *mi); @@ -1252,7 +1253,11 @@ if ((bd->maximized) || (bd->shaded) || (bd->shading)) return; if (!bd->fullscreen) { + int x, y, w, h; // printf("FULLSCREEEN!\n"); + /* make container bg black and show it */ + e_container_bg_black(bd->zone->container); + bd->saved.x = bd->x; bd->saved.y = bd->y; bd->saved.w = bd->w; @@ -1262,11 +1267,14 @@ bd->layer = 200; e_border_raise(bd); - e_border_move_resize(bd, - bd->zone->x - bd->client_inset.l, - bd->zone->y - bd->client_inset.t, - bd->zone->w + bd->client_inset.l + bd->client_inset.r, - bd->zone->h + bd->client_inset.t + bd->client_inset.b); + x = bd->zone->x - bd->client_inset.l; + y = bd->zone->y - bd->client_inset.t; + w = bd->zone->w + bd->client_inset.l + bd->client_inset.r; + h = bd->zone->h + bd->client_inset.t + bd->client_inset.b; + _e_border_resize_limit(bd, &w, &h); + /* center x */ + x = x + (bd->zone->w + bd->client_inset.l + bd->client_inset.r - w) / 2; + e_border_move_resize(bd, x, y, w, h); bd->fullscreen = 1; bd->changes.pos = 1; @@ -1287,6 +1295,9 @@ if (bd->fullscreen) { // printf("UNFULLSCREEEN!\n"); + /* make container bg white and hide it */ + e_container_bg_white(bd->zone->container); + e_hints_window_fullscreen_set(bd, 0); bd->fullscreen = 0; @@ -4590,6 +4601,16 @@ "widgets/border/default/borderless"); mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Fullscreen")); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, bd->fullscreen); + e_menu_item_callback_set(mi, _e_border_menu_cb_fullscreen, bd); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/fullscreen"), + "widgets/border/default/fullscreen"); + + mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); mi = e_menu_item_new(m); @@ -4742,11 +4763,11 @@ } e_container_border_raise(bd); } + static void _e_border_menu_cb_borderless(void *data, E_Menu *m, E_Menu_Item *mi) { E_Border *bd; - int toggle; bd = data; @@ -4763,6 +4784,21 @@ bd->changed = 1; } +static void +_e_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Border *bd; + int toggle; + + bd = data; + if (!bd) return; + + toggle = e_menu_item_toggle_get(mi); + if (toggle) + e_border_fullscreen(bd); + else + e_border_unfullscreen(bd); +} static void _e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_container.c,v retrieving revision 1.66 retrieving revision 1.67 diff -u -3 -r1.66 -r1.67 --- e_container.c 3 Jun 2005 11:41:19 -0000 1.66 +++ e_container.c 18 Jun 2005 05:08:17 -0000 1.67 @@ -292,6 +292,26 @@ #endif } +void +e_container_bg_black(E_Container *con) +{ + Evas_Object *o; + + o = con->bg_blank_object; + evas_object_layer_set(o, 100); + evas_object_color_set(o, 0, 0, 0, 255); +} + +void +e_container_bg_white(E_Container *con) +{ + Evas_Object *o; + + o = con->bg_blank_object; + evas_object_layer_set(o, -100); + evas_object_color_set(o, 255, 255, 255, 255); +} + E_Zone * e_container_zone_at_point_get(E_Container *con, int x, int y) { =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_container.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- e_container.h 26 May 2005 15:30:10 -0000 1.23 +++ e_container.h 18 Jun 2005 05:08:17 -0000 1.24 @@ -98,6 +98,9 @@ EAPI void e_container_move_resize(E_Container *con, int x, int y, int w, int h); EAPI void e_container_raise(E_Container *con); EAPI void e_container_lower(E_Container *con); +EAPI void e_container_bg_black(E_Container *con); +EAPI void e_container_bg_white(E_Container *con); + EAPI E_Border_List *e_container_border_list_first(E_Container *con); EAPI E_Border_List *e_container_border_list_last(E_Container *con); ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs