forked from enlightenment/enlightenment
- fixed e_remember_default_match to set match values
since these are not set by e_remember_update anymore - remove E_Remember parameter from e_remmber_update. if update is possible bd->remember is already set - do not overwrite bordername value of remember on update. should only be set by conf_border dialog - make sure on update that match values are set otherwise delete remember SVN revision: 42435
This commit is contained in:
parent
f9fc3d09aa
commit
7bcc49c2fe
|
@ -670,8 +670,7 @@ e_border_zone_set(E_Border *bd, E_Zone *zone)
|
|||
ecore_event_add(E_EVENT_BORDER_ZONE_SET, ev, _e_border_event_border_zone_set_free, NULL);
|
||||
|
||||
ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_ZONE, &bd->zone->num, 1);
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -713,8 +712,7 @@ e_border_desk_set(E_Border *bd, E_Desk *desk)
|
|||
e_border_desk_set(child, bd->desk);
|
||||
}
|
||||
}
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -1311,8 +1309,7 @@ e_border_raise(E_Border *bd)
|
|||
}
|
||||
|
||||
ecore_event_add(E_EVENT_BORDER_STACK, ev, _e_border_event_border_stack_free, NULL);
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -1397,8 +1394,7 @@ e_border_lower(E_Border *bd)
|
|||
}
|
||||
|
||||
ecore_event_add(E_EVENT_BORDER_STACK, ev, _e_border_event_border_stack_free, NULL);
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -1452,8 +1448,7 @@ e_border_stack_above(E_Border *bd, E_Border *above)
|
|||
}
|
||||
|
||||
ecore_event_add(E_EVENT_BORDER_STACK, ev, _e_border_event_border_stack_free, NULL);
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -1507,8 +1502,7 @@ e_border_stack_below(E_Border *bd, E_Border *below)
|
|||
}
|
||||
|
||||
ecore_event_add(E_EVENT_BORDER_STACK, ev, _e_border_event_border_stack_free, NULL);
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -1918,8 +1912,7 @@ e_border_shade(E_Border *bd, E_Direction dir)
|
|||
}
|
||||
|
||||
}
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -2027,8 +2020,7 @@ e_border_unshade(E_Border *bd, E_Direction dir)
|
|||
}
|
||||
|
||||
}
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -2188,8 +2180,7 @@ e_border_maximize(E_Border *bd, E_Maximize max)
|
|||
bd->maximized & E_MAXIMIZE_VERTICAL);
|
||||
|
||||
}
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -2284,8 +2275,7 @@ e_border_unmaximize(E_Border *bd, E_Maximize max)
|
|||
e_hints_window_maximized_set(bd, bd->maximized & E_MAXIMIZE_HORIZONTAL,
|
||||
bd->maximized & E_MAXIMIZE_VERTICAL);
|
||||
}
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -2379,8 +2369,7 @@ e_border_fullscreen(E_Border *bd, E_Fullscreen policy)
|
|||
bd->client.border.changed = 1;
|
||||
bd->changed = 1;
|
||||
}
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -2414,8 +2403,7 @@ e_border_unfullscreen(E_Border *bd)
|
|||
bd->client.border.changed = 1;
|
||||
bd->changed = 1;
|
||||
}
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -2454,8 +2442,7 @@ e_border_iconify(E_Border *bd)
|
|||
e_border_iconify(child);
|
||||
}
|
||||
}
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -2497,8 +2484,7 @@ e_border_uniconify(E_Border *bd)
|
|||
e_border_uniconify(child);
|
||||
}
|
||||
}
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -2531,8 +2517,7 @@ e_border_stick(E_Border *bd)
|
|||
e_object_ref(E_OBJECT(bd));
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_stick_event");
|
||||
ecore_event_add(E_EVENT_BORDER_STICK, ev, _e_border_event_border_stick_free, NULL);
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -2566,8 +2551,7 @@ e_border_unstick(E_Border *bd)
|
|||
ecore_event_add(E_EVENT_BORDER_UNSTICK, ev, _e_border_event_border_unstick_free, NULL);
|
||||
|
||||
e_border_desk_set(bd, e_desk_current_get(bd->zone));
|
||||
if (bd->remember)
|
||||
e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -6346,8 +6330,8 @@ _e_border_eval0(E_Border *bd)
|
|||
}
|
||||
}
|
||||
|
||||
if ((bd->remember) && (rem_change))
|
||||
e_remember_update(bd->remember, bd);
|
||||
if (rem_change)
|
||||
e_remember_update(bd);
|
||||
|
||||
if (change_urgent)
|
||||
{
|
||||
|
@ -7226,8 +7210,8 @@ _e_border_eval(E_Border *bd)
|
|||
bd->need_fullscreen = 0;
|
||||
}
|
||||
|
||||
if ((bd->remember) && (rem_change))
|
||||
e_remember_update(bd->remember, bd);
|
||||
if (rem_change)
|
||||
e_remember_update(bd);
|
||||
|
||||
if (send_event) // FIXME: send only if a property changed - above need to
|
||||
// check on that. for now - always send.
|
||||
|
|
|
@ -192,8 +192,8 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
if (cfdata->border->remember)
|
||||
{
|
||||
cfdata->border->remember->apply |= E_REMEMBER_APPLY_LOCKS;
|
||||
cfdata->border->remember->match = e_remember_default_match(cfdata->border);
|
||||
e_remember_update(cfdata->border->remember, cfdata->border);
|
||||
e_remember_default_match_set(cfdata->border->remember, cfdata->border);
|
||||
e_remember_update(cfdata->border);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -252,8 +252,8 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
if (cfdata->border->remember)
|
||||
{
|
||||
cfdata->border->remember->apply |= E_REMEMBER_APPLY_LOCKS;
|
||||
cfdata->border->remember->match = e_remember_default_match(cfdata->border);
|
||||
e_remember_update(cfdata->border->remember, cfdata->border);
|
||||
e_remember_default_match_set(cfdata->border->remember, cfdata->border);
|
||||
e_remember_update(cfdata->border);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -674,7 +674,7 @@ _e_border_menu_cb_skip_winlist(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
else
|
||||
bd->user_skip_winlist = 0;
|
||||
bd->changed = 1;
|
||||
if (bd->remember) e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -689,7 +689,7 @@ _e_border_menu_cb_skip_pager(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
else
|
||||
bd->client.netwm.state.skip_pager = 0;
|
||||
bd->changed = 1;
|
||||
if (bd->remember) e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -704,7 +704,7 @@ _e_border_menu_cb_skip_taskbar(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
else
|
||||
bd->client.netwm.state.skip_taskbar = 0;
|
||||
bd->changed = 1;
|
||||
if (bd->remember) e_remember_update(bd->remember, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -435,7 +435,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
|
||||
if (rem)
|
||||
{
|
||||
rem->match = e_remember_default_match(cfdata->border);
|
||||
e_remember_default_match_set(rem, cfdata->border);
|
||||
|
||||
if (cfdata->mode == MODE_GEOMETRY)
|
||||
rem->apply = E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE;
|
||||
|
@ -453,10 +453,12 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
cfdata->remember.apply_desktop_file = 0;
|
||||
_remember_update(rem, cfdata);
|
||||
_check_matches(cfdata, 1);
|
||||
e_remember_update(rem, cfdata->border);
|
||||
|
||||
cfdata->border->remember = rem;
|
||||
e_remember_update(cfdata->border);
|
||||
}
|
||||
|
||||
cfdata->border->remember = rem;
|
||||
|
||||
|
||||
e_config_save_queue();
|
||||
return 1; /* Apply was OK */
|
||||
|
@ -583,10 +585,10 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
if (cfdata->remember.set_focus_on_start) rem->apply |= E_REMEMBER_SET_FOCUS_ON_START;
|
||||
|
||||
_remember_update(rem, cfdata);
|
||||
cfdata->border->remember = rem;
|
||||
_check_matches(cfdata, 1);
|
||||
rem->keep_settings = 0;
|
||||
e_remember_update(rem, cfdata->border);
|
||||
cfdata->border->remember = rem;
|
||||
e_remember_update(cfdata->border);
|
||||
rem->keep_settings = cfdata->remember.keep_settings;
|
||||
}
|
||||
|
||||
|
|
|
@ -135,6 +135,8 @@ e_remember_del(E_Remember *rem)
|
|||
}
|
||||
return;
|
||||
}
|
||||
else
|
||||
_e_remember_free(rem);
|
||||
}
|
||||
|
||||
EAPI E_Remember *
|
||||
|
@ -192,40 +194,67 @@ e_remember_match_update(E_Remember *rem)
|
|||
}
|
||||
|
||||
EAPI int
|
||||
e_remember_default_match(E_Border *bd)
|
||||
e_remember_default_match_set(E_Remember *rem, E_Border *bd)
|
||||
{
|
||||
const char *title, *clasz, *name, *role;
|
||||
|
||||
if (rem->name) eina_stringshare_del(rem->name);
|
||||
if (rem->class) eina_stringshare_del(rem->class);
|
||||
if (rem->title) eina_stringshare_del(rem->title);
|
||||
if (rem->role) eina_stringshare_del(rem->role);
|
||||
rem->name = NULL;
|
||||
rem->class = NULL;
|
||||
rem->title = NULL;
|
||||
rem->role = NULL;
|
||||
|
||||
name = bd->client.icccm.name;
|
||||
if (!name || name[0] == 0) name = NULL;
|
||||
clasz = bd->client.icccm.class;
|
||||
if (!clasz || clasz[0] == 0) clasz = NULL;
|
||||
role = bd->client.icccm.window_role;
|
||||
if (!role || role[0] == 0) role = NULL;
|
||||
|
||||
int match = E_REMEMBER_MATCH_TRANSIENT;
|
||||
if ((bd->client.icccm.name) &&
|
||||
(bd->client.icccm.class) &&
|
||||
(bd->client.icccm.name[0] != 0) &&
|
||||
(bd->client.icccm.class[0] != 0))
|
||||
match |= E_REMEMBER_MATCH_NAME | E_REMEMBER_MATCH_CLASS;
|
||||
else
|
||||
if ((e_border_name_get(bd))[0] != 0)
|
||||
match |= E_REMEMBER_MATCH_TITLE;
|
||||
|
||||
if ((bd->client.icccm.window_role) &&
|
||||
(bd->client.icccm.window_role[0] != 0))
|
||||
match |= E_REMEMBER_MATCH_ROLE;
|
||||
|
||||
if (bd->client.netwm.type != ECORE_X_WINDOW_TYPE_UNKNOWN)
|
||||
match |= E_REMEMBER_MATCH_TYPE;
|
||||
if (name && clasz)
|
||||
{
|
||||
match |= E_REMEMBER_MATCH_NAME | E_REMEMBER_MATCH_CLASS;
|
||||
rem->name = eina_stringshare_add(name);
|
||||
rem->class = eina_stringshare_add(clasz);
|
||||
}
|
||||
else if ((title = e_border_name_get(bd)) && title[0])
|
||||
{
|
||||
match |= E_REMEMBER_MATCH_TITLE;
|
||||
rem->title = eina_stringshare_add(title);
|
||||
}
|
||||
if (role)
|
||||
{
|
||||
match |= E_REMEMBER_MATCH_ROLE;
|
||||
rem->role = eina_stringshare_add(role);
|
||||
}
|
||||
|
||||
rem->match = match;
|
||||
|
||||
return match;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_remember_update(E_Remember *rem, E_Border *bd)
|
||||
e_remember_update(E_Border *bd)
|
||||
{
|
||||
if (!rem) return;
|
||||
E_Remember *rem;
|
||||
|
||||
if (bd->new_client) return;
|
||||
if (!bd->remember) return;
|
||||
if (bd->remember->keep_settings) return;
|
||||
|
||||
rem = bd->remember;
|
||||
|
||||
if (bd->remember && bd->remember->keep_settings)
|
||||
return;
|
||||
|
||||
if (rem->prop.border) eina_stringshare_del(rem->prop.border);
|
||||
rem->prop.border = NULL;
|
||||
|
||||
if (!(rem->name || rem->class ||
|
||||
rem->title || rem->role))
|
||||
{
|
||||
e_remember_del(rem);
|
||||
return;
|
||||
}
|
||||
|
||||
e_remember_match_update(rem);
|
||||
|
||||
rem->type = bd->client.netwm.type;
|
||||
|
@ -252,15 +281,9 @@ e_remember_update(E_Remember *rem, E_Border *bd)
|
|||
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.layer = bd->layer;
|
||||
|
||||
if (bd->bordername)
|
||||
rem->prop.border = eina_stringshare_add(bd->bordername);
|
||||
|
||||
rem->prop.fullscreen = bd->fullscreen;
|
||||
}
|
||||
|
||||
|
@ -720,7 +743,7 @@ _e_remember_cb_hook_eval_post_new_border(void *data, E_Border *bd)
|
|||
rem->match |= E_REMEMBER_MATCH_TRANSIENT;
|
||||
rem->apply = E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | E_REMEMBER_APPLY_BORDER;
|
||||
e_remember_use(rem);
|
||||
e_remember_update(rem, bd);
|
||||
e_remember_update(bd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -108,8 +108,8 @@ EAPI void e_remember_del(E_Remember *rem);
|
|||
EAPI E_Remember *e_remember_find(E_Border *bd);
|
||||
EAPI E_Remember *e_remember_find_usable(E_Border *bd);
|
||||
EAPI void e_remember_match_update(E_Remember *rem);
|
||||
EAPI void e_remember_update(E_Remember *rem, E_Border *bd);
|
||||
EAPI int e_remember_default_match(E_Border *bd);
|
||||
EAPI void e_remember_update(E_Border *bd);
|
||||
EAPI int e_remember_default_match_set(E_Remember *rem, E_Border *bd);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -151,17 +151,22 @@ _basic_apply_border(E_Config_Dialog_Data *cfdata)
|
|||
}
|
||||
if (cfdata->remember_border)
|
||||
{
|
||||
if (!cfdata->border->remember)
|
||||
E_Remember *rem = cfdata->border->remember;
|
||||
|
||||
if (!rem)
|
||||
{
|
||||
cfdata->border->remember = e_remember_new();
|
||||
if (cfdata->border->remember)
|
||||
e_remember_use(cfdata->border->remember);
|
||||
rem = e_remember_new();
|
||||
if (rem)
|
||||
e_remember_use(rem);
|
||||
}
|
||||
if (cfdata->border->remember)
|
||||
if (rem)
|
||||
{
|
||||
cfdata->border->remember->apply |= E_REMEMBER_APPLY_BORDER;
|
||||
cfdata->border->remember->match = e_remember_default_match(cfdata->border);
|
||||
e_remember_update(cfdata->border->remember, cfdata->border);
|
||||
rem->apply |= E_REMEMBER_APPLY_BORDER;
|
||||
e_remember_default_match_set(rem, cfdata->border);
|
||||
if (rem->prop.border) eina_stringshare_del(rem->prop.border);
|
||||
rem->prop.border = eina_stringshare_add(cfdata->border->bordername);
|
||||
cfdata->border->remember = rem;
|
||||
e_remember_update(cfdata->border);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue