Make the bg black when doing fullscreen.

Care about window constraints when doing fullscreen.


SVN revision: 15417
This commit is contained in:
sebastid 2005-06-18 05:08:17 +00:00 committed by sebastid
parent 5cf90d027c
commit 89ce449586
3 changed files with 65 additions and 6 deletions

View File

@ -85,6 +85,7 @@ static void _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi);
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 @@ e_border_fullscreen(E_Border *bd)
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 @@ e_border_fullscreen(E_Border *bd)
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 @@ e_border_unfullscreen(E_Border *bd)
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;
@ -4589,6 +4600,16 @@ _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key)
"widgets/border/default/borderless"),
"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);
@ -4742,11 +4763,11 @@ _e_border_menu_cb_on_top(void *data, E_Menu *m, E_Menu_Item *mi)
}
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 @@ _e_border_menu_cb_borderless(void *data, E_Menu *m, E_Menu_Item *mi)
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)

View File

@ -292,6 +292,26 @@ e_container_lower(E_Container *con)
#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)
{

View File

@ -98,6 +98,9 @@ EAPI void e_container_resize(E_Container *con, int w, int h);
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);