forked from enlightenment/enlightenment
things that grind my gears: when my shelf config dialogs don't have check changed
This commit is contained in:
parent
e00459f12e
commit
cf1ccd32f2
|
@ -1,3 +1,7 @@
|
|||
2013-06-19 Mike Blumenkrantz
|
||||
|
||||
* added check changed to shelf config dialog
|
||||
|
||||
2013-06-18 Mike Blumenkrantz
|
||||
|
||||
* fixed crash when multiple windows shared a remember
|
||||
|
|
1
NEWS
1
NEWS
|
@ -146,6 +146,7 @@ Improvements:
|
|||
* border menu now has top-level item to set borderless state
|
||||
* added dnd support for text/x-moz-url
|
||||
* filemanager dnd operations now show all files when dragging
|
||||
* added check changed to shelf config dialog
|
||||
|
||||
Fixes:
|
||||
* IBar menu didn't allow to configure different icon sources, show contents menu even on empty IBar.
|
||||
|
|
|
@ -12,7 +12,7 @@ struct _E_Config_Dialog_Data
|
|||
int orient, fit_along;
|
||||
int size;
|
||||
const char *style;
|
||||
int autohide, autohide_action;
|
||||
int autohide, autohide_show_action;
|
||||
double hide_timeout, hide_duration;
|
||||
int desk_show_mode;
|
||||
Eina_List *handlers;
|
||||
|
@ -21,6 +21,7 @@ struct _E_Config_Dialog_Data
|
|||
/* local function prototypes */
|
||||
static void *_create_data(E_Config_Dialog *cfd);
|
||||
static void _fill_data(E_Config_Dialog_Data *cfdata);
|
||||
static int _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
||||
static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
||||
static Evas_Object *_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||
static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||
|
@ -39,6 +40,7 @@ e_int_shelf_config(E_Shelf *es)
|
|||
v->free_cfdata = _free_data;
|
||||
v->basic.create_widgets = _basic_create;
|
||||
v->basic.apply_cfdata = _basic_apply;
|
||||
v->basic.check_changed = _basic_check_changed;
|
||||
|
||||
es->config_dialog =
|
||||
e_config_dialog_new(es->zone->container, _("Shelf Settings"),
|
||||
|
@ -103,7 +105,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
|
||||
/* autohide */
|
||||
cfdata->autohide = cfdata->escfg->autohide;
|
||||
cfdata->autohide_action = cfdata->escfg->autohide_show_action;
|
||||
cfdata->autohide_show_action = cfdata->escfg->autohide_show_action;
|
||||
cfdata->hide_timeout = cfdata->escfg->hide_timeout;
|
||||
cfdata->hide_duration = cfdata->escfg->hide_duration;
|
||||
|
||||
|
@ -112,6 +114,32 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
cfdata->desk_list = cfdata->escfg->desk_list;
|
||||
}
|
||||
|
||||
static int
|
||||
_basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
if (cfdata->escfg->popup)
|
||||
{
|
||||
if (cfdata->layer != 1 + (!!cfdata->escfg->layer)) return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cfdata->layer) return 1;
|
||||
}
|
||||
#define CHECK(X) if (cfdata->X != cfdata->escfg->X) return 1
|
||||
CHECK(overlap);
|
||||
CHECK(orient);
|
||||
CHECK(fit_along);
|
||||
CHECK(size);
|
||||
CHECK(style);
|
||||
CHECK(autohide);
|
||||
CHECK(autohide_show_action);
|
||||
CHECK(desk_show_mode);
|
||||
CHECK(desk_list);
|
||||
if (fabs(cfdata->hide_timeout - cfdata->escfg->hide_timeout > 0.19)) return 1;
|
||||
if (fabs(cfdata->hide_timeout - cfdata->escfg->hide_timeout > 0.04)) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
_free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
|
@ -213,7 +241,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
|
|||
e_widget_on_change_hook_set(cfdata->o_autohide, _cb_autohide_change, cfdata);
|
||||
e_widget_list_object_append(ol, cfdata->o_autohide, 1, 1, 0.5);
|
||||
|
||||
rg = e_widget_radio_group_new(&(cfdata->autohide_action));
|
||||
rg = e_widget_radio_group_new(&(cfdata->autohide_show_action));
|
||||
ow = e_widget_radio_add(evas, _("Show on mouse in"), 0, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->autohide);
|
||||
cfdata->autohide_list = eina_list_append(cfdata->autohide_list, ow);
|
||||
|
@ -324,8 +352,8 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
}
|
||||
|
||||
cfdata->escfg->overlap = cfdata->overlap;
|
||||
e_shelf_autohide_set(cfdata->es, cfdata->autohide + (cfdata->autohide * cfdata->autohide_action));
|
||||
cfdata->escfg->autohide_show_action = cfdata->autohide_action;
|
||||
e_shelf_autohide_set(cfdata->es, cfdata->autohide + (cfdata->autohide * cfdata->autohide_show_action));
|
||||
cfdata->escfg->autohide_show_action = cfdata->autohide_show_action;
|
||||
cfdata->escfg->hide_timeout = cfdata->hide_timeout;
|
||||
cfdata->escfg->hide_duration = cfdata->hide_duration;
|
||||
cfdata->escfg->desk_show_mode = cfdata->desk_show_mode;
|
||||
|
|
Loading…
Reference in New Issue