option to restrict mouse desktop flipping if there are fullscreen windows

SVN revision: 39271
This commit is contained in:
Viktor Kojouharov 2009-02-27 18:36:08 +00:00
parent 6053a421dc
commit 82404b049e
12 changed files with 31 additions and 8 deletions

View File

@ -1,5 +1,5 @@
group "E_Config" struct {
value "config_version" int: 65837;
value "config_version" int: 65838;
value "show_splash" int: 0;
value "init_default_theme" string: "default.edj";
value "desktop_default_name" string: "Desktop %i, %i";
@ -481,6 +481,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "border_raise_on_focus" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "Tango";
value "desk_flip_animate_mode" int: 0;
value "desk_flip_animate_interpolation" int: 0;

View File

@ -1,5 +1,5 @@
group "E_Config" struct {
value "config_version" int: 65837;
value "config_version" int: 65838;
value "show_splash" int: 1;
value "init_default_theme" string: "default.edj";
value "desktop_default_name" string: "Desktop %i, %i";
@ -691,6 +691,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "border_raise_on_focus" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "openmoko-standard";
value "desk_flip_animate_mode" int: 0;
value "desk_flip_animate_interpolation" int: 0;

View File

@ -1,5 +1,5 @@
group "E_Config" struct {
value "config_version" int: 65837;
value "config_version" int: 65838;
value "show_splash" int: 1;
value "init_default_theme" string: "default.edj";
value "desktop_default_background" string: "Light_Gradient.edj";
@ -1895,6 +1895,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "border_raise_on_focus" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "Tango";
value "desk_flip_animate_mode" int: 1;
value "desk_flip_animate_interpolation" int: 0;

View File

@ -1,5 +1,5 @@
group "E_Config" struct {
value "config_version" int: 65837;
value "config_version" int: 65838;
value "show_splash" int: 1;
value "init_default_theme" string: "default.edj";
value "desktop_default_background" string: "Dark_Gradient.edj";
@ -1959,6 +1959,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "border_raise_on_focus" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "Tango";
value "desk_flip_animate_mode" int: 1;
value "desk_flip_animate_interpolation" int: 0;

View File

@ -1,5 +1,5 @@
group "E_Config" struct {
value "config_version" int: 65837;
value "config_version" int: 65838;
value "show_splash" int: 1;
value "init_default_theme" string: "default.edj";
value "desktop_default_name" string: "Desktop %i, %i";
@ -1982,6 +1982,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "border_raise_on_focus" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "Tango";
value "desk_flip_animate_mode" int: 1;
value "desk_flip_animate_interpolation" int: 0;

View File

@ -1,5 +1,5 @@
group "E_Config" struct {
value "config_version" int: 65837;
value "config_version" int: 65838;
value "show_splash" int: 1;
value "init_default_theme" string: "default.edj";
value "desktop_default_name" string: "Desktop %i, %i";
@ -1992,6 +1992,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "border_raise_on_focus" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "Tango";
value "desk_flip_animate_mode" int: 1;
value "desk_flip_animate_interpolation" int: 0;

View File

@ -1123,10 +1123,11 @@ ACT_FN_GO_EDGE(desk_flip_in_direction)
zone = _e_actions_zone_get(obj);
wev = E_NEW(E_Event_Pointer_Warp, 1);
if ((!wev) || (!zone)) return;
prev = e_desk_at_xy_get(zone, zone->desk_x_current, zone->desk_y_current);
if (prev->fullscreen_borders && (!e_config->fullscreen_flip)) return;
ecore_x_pointer_xy_get(zone->container->win, &x, &y);
wev->prev.x = x;
wev->prev.y = y;
prev = e_desk_at_xy_get(zone, zone->desk_x_current, zone->desk_y_current);
if (params)
{
if (sscanf(params, "%i", &offset) != 1)

View File

@ -2149,6 +2149,8 @@ e_border_fullscreen(E_Border *bd, E_Fullscreen policy)
bd->client_inset.t = 0;
bd->client_inset.b = 0;
bd->desk->fullscreen_borders++;
/* e_zone_fullscreen_set(bd->zone, 1); */
if (!e_config->allow_above_fullscreen)
e_border_layer_set(bd, 200);
@ -2223,6 +2225,7 @@ e_border_unfullscreen(E_Border *bd)
bd->pre_res_change.valid = 0;
bd->fullscreen = 0;
bd->need_fullscreen = 0;
bd->desk->fullscreen_borders--;
if ((screen_size.width != -1) && (screen_size.height != -1))
{

View File

@ -610,6 +610,7 @@ e_config_init(void)
E_CONFIG_VAL(D, T, border_raise_on_mouse_action, INT);
E_CONFIG_VAL(D, T, border_raise_on_focus, INT);
E_CONFIG_VAL(D, T, desk_flip_wrap, INT);
E_CONFIG_VAL(D, T, fullscreen_flip, INT);
E_CONFIG_VAL(D, T, icon_theme, STR);
@ -876,6 +877,10 @@ e_config_load(void)
COPYVAL(priority);
IFCFGEND;
IFCFG(0x012e);
COPYVAL(fullscreen_flip);
IFCFGEND;
e_config->config_version = E_CONFIG_FILE_VERSION;
_e_config_free(tcfg);
}
@ -973,6 +978,7 @@ e_config_load(void)
E_CONFIG_LIMIT(e_config->border_raise_on_mouse_action, 0, 1);
E_CONFIG_LIMIT(e_config->border_raise_on_focus, 0, 1);
E_CONFIG_LIMIT(e_config->desk_flip_wrap, 0, 1);
E_CONFIG_LIMIT(e_config->fullscreen_flip, 0, 1);
E_CONFIG_LIMIT(e_config->remember_internal_windows, 0, 1);
E_CONFIG_LIMIT(e_config->desk_auto_switch, 0, 1);

View File

@ -35,7 +35,7 @@ typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme;
/* increment this whenever a new set of config values are added but the users
* config doesn't need to be wiped - simply new values need to be put in
*/
#define E_CONFIG_FILE_GENERATION 0x012d
#define E_CONFIG_FILE_GENERATION 0x012e
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
#define E_EVAS_ENGINE_DEFAULT 0
@ -259,6 +259,7 @@ struct _E_Config
int border_raise_on_mouse_action; // GUI
int border_raise_on_focus; // GUI
int desk_flip_wrap; // GUI
int fullscreen_flip; // GUI
const char *icon_theme; // GUI

View File

@ -25,6 +25,7 @@ struct _E_Desk
int x, y;
char visible : 1;
unsigned int deskshow_toggle : 1;
int fullscreen_borders;
Evas_Object *bg_object;

View File

@ -23,6 +23,7 @@ struct _E_Config_Dialog_Data
/*- ADVANCED -*/
int edge_flip_dragging;
int flip_wrap;
int fullscreen_flip;
int flip_mode;
int flip_interp;
double flip_speed;
@ -65,6 +66,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->flip_animate = e_config->desk_flip_animate_mode > 0;
cfdata->edge_flip_dragging = e_config->edge_flip_dragging;
cfdata->flip_wrap = e_config->desk_flip_wrap;
cfdata->fullscreen_flip = e_config->fullscreen_flip;
cfdata->flip_mode = e_config->desk_flip_animate_mode;
cfdata->flip_interp = e_config->desk_flip_animate_interpolation;
cfdata->flip_speed = e_config->desk_flip_animate_time;
@ -160,6 +162,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
e_config->edge_flip_dragging = cfdata->edge_flip_dragging;
e_config->desk_flip_wrap = cfdata->flip_wrap;
e_config->fullscreen_flip = cfdata->fullscreen_flip;
e_config_save_queue();
return 1; /* Apply was OK */
@ -235,6 +238,8 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Wrap desktops around when flipping"), &(cfdata->flip_wrap));
e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Allow flipping with fullscreen windows"), &(cfdata->fullscreen_flip));
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ott, of, 1, 0, 1, 1, 1, 0, 1, 0);
of = e_widget_framelist_add(evas, _("Flip Animation"), 0);