add fullscreen state remember

SVN revision: 39414
This commit is contained in:
Viktor Kojouharov 2009-03-08 10:35:05 +00:00
parent 91ed5787da
commit 4d1fea4705
6 changed files with 49 additions and 24 deletions

View File

@ -6205,6 +6205,11 @@ _e_border_eval(E_Border *bd)
bd->client.border.changed = 1;
}
}
if (rem->apply & E_REMEMBER_APPLY_FULLSCREEN)
{
if (rem->prop.fullscreen)
e_border_fullscreen(bd, e_config->fullscreen_policy);
}
if (rem->apply & E_REMEMBER_APPLY_STICKY)
{
if (rem->prop.sticky) e_border_stick(bd);

View File

@ -362,6 +362,7 @@ e_config_init(void)
E_CONFIG_VAL(D, T, prop.skip_winlist, UCHAR);
E_CONFIG_VAL(D, T, prop.skip_pager, UCHAR);
E_CONFIG_VAL(D, T, prop.skip_taskbar, UCHAR);
E_CONFIG_VAL(D, T, prop.fullscreen, UCHAR);
E_CONFIG_VAL(D, T, prop.desk_x, INT);
E_CONFIG_VAL(D, T, prop.desk_y, INT);
E_CONFIG_VAL(D, T, prop.zone, INT);

View File

@ -140,9 +140,7 @@ e_int_border_menu_create(E_Border *bd)
(bd->client.icccm.min_h == bd->client.icccm.max_h)) ||
(bd->lock_user_maximize)))
{
/* Only allow to change layer for windows in "normal" layers */
if ((!bd->lock_user_maximize) && (!bd->shaded) &&
((bd->layer == 50) || (bd->layer == 100) || (bd->layer == 150)))
if ((!bd->lock_user_maximize) && (!bd->shaded) && (!bd->fullscreen))
{
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Maximize"));
@ -523,8 +521,7 @@ _e_border_menu_cb_more_pre(void *data, E_Menu *m, E_Menu_Item *mi)
"e/widgets/border/default/skip"),
"e/widgets/border/default/skip");
if ((!bd->lock_user_stacking) &&
((bd->layer == 50) || (bd->layer == 100) || (bd->layer == 150)))
if ((!bd->lock_user_stacking) && (!bd->fullscreen))
{
submi = e_menu_item_new(subm);
e_menu_item_label_set(submi, _("Stacking"));

View File

@ -40,6 +40,7 @@ struct _E_Config_Dialog_Data
int apply_sticky;
int apply_desktop;
int apply_shade;
int apply_fullscreen;
int apply_zone;
int apply_skip_winlist;
int apply_skip_pager;
@ -99,6 +100,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_STICKY) cfdata->remember.apply_sticky = 1;
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_DESKTOP) cfdata->remember.apply_desktop = 1;
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_SHADE) cfdata->remember.apply_shade = 1;
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_FULLSCREEN) cfdata->remember.apply_fullscreen = 1;
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_ZONE) cfdata->remember.apply_zone = 1;
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_SKIP_WINLIST) cfdata->remember.apply_skip_winlist = 1;
if (cfdata->border->remember->apply & E_REMEMBER_APPLY_SKIP_PAGER) cfdata->remember.apply_skip_pager = 1;
@ -114,7 +116,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
(cfdata->remember.apply_border) && (cfdata->remember.apply_sticky) &&
(cfdata->remember.apply_desktop) && (cfdata->remember.apply_shade) &&
(cfdata->remember.apply_zone) && (cfdata->remember.apply_skip_winlist) &&
(cfdata->remember.apply_skip_pager) && (cfdata->remember.apply_skip_taskbar))
(cfdata->remember.apply_skip_pager) && (cfdata->remember.apply_fullscreen) &&
(cfdata->remember.apply_skip_taskbar))
cfdata->mode = MODE_ALL;
else if ((cfdata->remember.apply_pos) && (cfdata->remember.apply_size) &&
(cfdata->remember.apply_locks))
@ -284,7 +287,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
E_REMEMBER_APPLY_LOCKS | E_REMEMBER_APPLY_BORDER | E_REMEMBER_APPLY_STICKY |
E_REMEMBER_APPLY_DESKTOP | E_REMEMBER_APPLY_SHADE | E_REMEMBER_APPLY_ZONE |
E_REMEMBER_APPLY_SKIP_WINLIST | E_REMEMBER_APPLY_SKIP_PAGER | E_REMEMBER_APPLY_SKIP_TASKBAR |
E_REMEMBER_APPLY_ICON_PREF;
E_REMEMBER_APPLY_FULLSCREEN | E_REMEMBER_APPLY_ICON_PREF;
cfdata->border->remember->apply_first_only = 0;
e_remember_update(cfdata->border->remember, cfdata->border);
}
@ -305,7 +308,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
(cfdata->remember.apply_zone) || (cfdata->remember.apply_skip_winlist) ||
(cfdata->remember.apply_skip_pager) || (cfdata->remember.apply_skip_taskbar) ||
(cfdata->remember.apply_run) || (cfdata->remember.apply_icon_pref) ||
(cfdata->remember.set_focus_on_start)))
(cfdata->remember.set_focus_on_start) || (cfdata->remember.apply_fullscreen)))
{
if (cfdata->border->remember)
{
@ -410,6 +413,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
if (cfdata->remember.apply_sticky) cfdata->border->remember->apply |= E_REMEMBER_APPLY_STICKY;
if (cfdata->remember.apply_desktop) cfdata->border->remember->apply |= E_REMEMBER_APPLY_DESKTOP;
if (cfdata->remember.apply_shade) cfdata->border->remember->apply |= E_REMEMBER_APPLY_SHADE;
if (cfdata->remember.apply_fullscreen) cfdata->border->remember->apply |= E_REMEMBER_APPLY_FULLSCREEN;
if (cfdata->remember.apply_zone) cfdata->border->remember->apply |= E_REMEMBER_APPLY_ZONE;
if (cfdata->remember.apply_skip_winlist) cfdata->border->remember->apply |= E_REMEMBER_APPLY_SKIP_WINLIST;
if (cfdata->remember.apply_skip_pager) cfdata->border->remember->apply |= E_REMEMBER_APPLY_SKIP_PAGER;
@ -522,14 +526,16 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 1);
ob = e_widget_check_add(evas, _("Shaded state"), &(cfdata->remember.apply_shade));
e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 1, 1);
ob = e_widget_check_add(evas, _("Current Screen"), &(cfdata->remember.apply_zone));
ob = e_widget_check_add(evas, _("Fullscreen state"), &(cfdata->remember.apply_fullscreen));
e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 1);
ob = e_widget_check_add(evas, _("Skip Window List"), &(cfdata->remember.apply_skip_winlist));
ob = e_widget_check_add(evas, _("Current Screen"), &(cfdata->remember.apply_zone));
e_widget_frametable_object_append(of, ob, 1, 3, 1, 1, 1, 1, 1, 1);
ob = e_widget_check_add(evas, _("Skip Pager"), &(cfdata->remember.apply_skip_pager));
ob = e_widget_check_add(evas, _("Skip Window List"), &(cfdata->remember.apply_skip_winlist));
e_widget_frametable_object_append(of, ob, 1, 4, 1, 1, 1, 1, 1, 1);
ob = e_widget_check_add(evas, _("Skip Taskbar"), &(cfdata->remember.apply_skip_taskbar));
ob = e_widget_check_add(evas, _("Skip Pager"), &(cfdata->remember.apply_skip_pager));
e_widget_frametable_object_append(of, ob, 1, 5, 1, 1, 1, 1, 1, 1);
ob = e_widget_check_add(evas, _("Skip Taskbar"), &(cfdata->remember.apply_skip_taskbar));
e_widget_frametable_object_append(of, ob, 1, 6, 1, 1, 1, 1, 1, 1);
e_widget_list_object_append(o, of, 1, 1, 0.5);
ob = e_widget_check_add(evas, _("Match only one window"), &(cfdata->remember.apply_first_only));

View File

@ -244,17 +244,34 @@ e_remember_update(E_Remember *rem, E_Border *bd)
else
rem->transient = 0;
rem->prop.pos_x = bd->x - bd->zone->x;
rem->prop.pos_y = bd->y - bd->zone->y;
rem->prop.res_x = bd->zone->w;
rem->prop.res_y = bd->zone->h;
rem->prop.pos_w = bd->client.w;
rem->prop.pos_h = bd->client.h;
if (bd->fullscreen)
{
rem->prop.fullscreen = bd->fullscreen;
rem->prop.pos_x = bd->saved.x;
rem->prop.pos_y = bd->saved.y;
rem->prop.pos_w = bd->saved.w;
rem->prop.pos_h = bd->saved.h;
rem->prop.layer = bd->saved.layer;
}
else
{
rem->prop.pos_x = bd->x - bd->zone->x;
rem->prop.pos_y = bd->y - bd->zone->y;
rem->prop.res_x = bd->zone->w;
rem->prop.res_y = bd->zone->h;
rem->prop.pos_w = bd->client.w;
rem->prop.pos_h = bd->client.h;
rem->prop.w = bd->client.w;
rem->prop.h = bd->client.h;
rem->prop.w = bd->client.w;
rem->prop.h = bd->client.h;
rem->prop.layer = bd->layer;
rem->prop.layer = bd->layer;
if (bd->bordername)
rem->prop.border = eina_stringshare_add(bd->bordername);
rem->prop.fullscreen = bd->fullscreen;
}
rem->prop.lock_user_location = bd->lock_user_location;
rem->prop.lock_client_location = bd->lock_client_location;
@ -280,9 +297,6 @@ e_remember_update(E_Remember *rem, E_Border *bd)
rem->prop.lock_focus_out = bd->lock_focus_out;
rem->prop.lock_life = bd->lock_life;
if (bd->bordername)
rem->prop.border = eina_stringshare_add(bd->bordername);
rem->prop.sticky = bd->sticky;
if (bd->shaded)

View File

@ -27,6 +27,7 @@ typedef struct _E_Remember E_Remember;
#define E_REMEMBER_APPLY_SKIP_TASKBAR (1 << 12)
#define E_REMEMBER_APPLY_ICON_PREF (1 << 13)
#define E_REMEMBER_SET_FOCUS_ON_START (1 << 14)
#define E_REMEMBER_APPLY_FULLSCREEN (1 << 15)
#else
#ifndef E_REMEMBER_H
@ -82,6 +83,7 @@ struct _E_Remember
unsigned char sticky;
unsigned char shaded;
unsigned char fullscreen;
unsigned char skip_winlist;
unsigned char skip_pager;
unsigned char skip_taskbar;