forked from enlightenment/enlightenment
some widget work... and maybe a fix for disappearing windows?
SVN revision: 17596
This commit is contained in:
parent
b7d8583c4c
commit
0adc7224c3
|
@ -593,11 +593,12 @@ e_border_hide(E_Border *bd, int manage)
|
||||||
if (e_config->focus_revert_on_hide_or_close)
|
if (e_config->focus_revert_on_hide_or_close)
|
||||||
e_desk_last_focused_focus(bd->desk);
|
e_desk_last_focused_focus(bd->desk);
|
||||||
}
|
}
|
||||||
if (manage)
|
if (manage == 1)
|
||||||
{
|
{
|
||||||
/* Make sure that this border isn't deleted */
|
/* Make sure that this border isn't deleted */
|
||||||
bd->await_hide_event++;
|
bd->await_hide_event++;
|
||||||
}
|
}
|
||||||
|
if (manage != 2)
|
||||||
ecore_x_window_hide(bd->client.win);
|
ecore_x_window_hide(bd->client.win);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2822,9 +2823,11 @@ _e_border_cb_window_hide(void *data, int ev_type, void *ev)
|
||||||
{
|
{
|
||||||
if (bd->await_hide_event > 0)
|
if (bd->await_hide_event > 0)
|
||||||
bd->await_hide_event--;
|
bd->await_hide_event--;
|
||||||
|
else
|
||||||
|
{
|
||||||
/* Only hide the border if it is visible */
|
/* Only hide the border if it is visible */
|
||||||
if (bd->visible)
|
if (bd->visible) e_border_hide(bd, 1);
|
||||||
e_border_hide(bd, 1);
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -232,7 +232,7 @@ e_desk_show(E_Desk *desk)
|
||||||
*/
|
*/
|
||||||
if (bd->fullscreen)
|
if (bd->fullscreen)
|
||||||
bd->want_fullscreen = 1;
|
bd->want_fullscreen = 1;
|
||||||
e_border_hide(bd, 1);
|
e_border_hide(bd, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,12 +18,16 @@ struct _E_Smart_Data
|
||||||
void (*del_func) (Evas_Object *obj);
|
void (*del_func) (Evas_Object *obj);
|
||||||
void (*focus_func) (Evas_Object *obj);
|
void (*focus_func) (Evas_Object *obj);
|
||||||
void (*activate_func) (Evas_Object *obj);
|
void (*activate_func) (Evas_Object *obj);
|
||||||
|
void (*disable_func) (Evas_Object *obj);
|
||||||
void (*on_focus_func) (void *data, Evas_Object *obj);
|
void (*on_focus_func) (void *data, Evas_Object *obj);
|
||||||
void *on_focus_data;
|
void *on_focus_data;
|
||||||
|
void (*on_change_func) (void *data, Evas_Object *obj);
|
||||||
|
void *on_change_data;
|
||||||
void *data;
|
void *data;
|
||||||
unsigned char can_focus : 1;
|
unsigned char can_focus : 1;
|
||||||
unsigned char child_can_focus : 1;
|
unsigned char child_can_focus : 1;
|
||||||
unsigned char focused : 1;
|
unsigned char focused : 1;
|
||||||
|
unsigned char disabled : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* local subsystem functions */
|
/* local subsystem functions */
|
||||||
|
@ -76,6 +80,13 @@ e_widget_activate_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj))
|
||||||
sd->activate_func = func;
|
sd->activate_func = func;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_widget_disable_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj))
|
||||||
|
{
|
||||||
|
API_ENTRY return;
|
||||||
|
sd->disable_func = func;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_widget_on_focus_hook_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), void *data)
|
e_widget_on_focus_hook_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), void *data)
|
||||||
{
|
{
|
||||||
|
@ -84,6 +95,14 @@ e_widget_on_focus_hook_set(Evas_Object *obj, void (*func) (void *data, Evas_Obje
|
||||||
sd->on_focus_data = data;
|
sd->on_focus_data = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_widget_on_change_hook_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), void *data)
|
||||||
|
{
|
||||||
|
API_ENTRY return;
|
||||||
|
sd->on_change_func = func;
|
||||||
|
sd->on_change_data = data;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_widget_data_set(Evas_Object *obj, void *data)
|
e_widget_data_set(Evas_Object *obj, void *data)
|
||||||
{
|
{
|
||||||
|
@ -183,7 +202,10 @@ int
|
||||||
e_widget_focus_jump(Evas_Object *obj, int forward)
|
e_widget_focus_jump(Evas_Object *obj, int forward)
|
||||||
{
|
{
|
||||||
API_ENTRY return 0;
|
API_ENTRY return 0;
|
||||||
if (!e_widget_can_focus_get(obj)) return 0;
|
if ((!e_widget_can_focus_get(obj)) ||
|
||||||
|
(e_widget_disabled_get(obj)))
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* if it has a focus func its an end-point widget like a button */
|
/* if it has a focus func its an end-point widget like a button */
|
||||||
if (sd->focus_func)
|
if (sd->focus_func)
|
||||||
{
|
{
|
||||||
|
@ -213,7 +235,8 @@ e_widget_focus_jump(Evas_Object *obj, int forward)
|
||||||
{
|
{
|
||||||
for (l = sd->subobjs; l; l = l->next)
|
for (l = sd->subobjs; l; l = l->next)
|
||||||
{
|
{
|
||||||
if (e_widget_can_focus_get(l->data))
|
if ((e_widget_can_focus_get(l->data)) &&
|
||||||
|
(!e_widget_disabled_get(l->data)))
|
||||||
{
|
{
|
||||||
if (focus_next)
|
if (focus_next)
|
||||||
{
|
{
|
||||||
|
@ -239,7 +262,8 @@ e_widget_focus_jump(Evas_Object *obj, int forward)
|
||||||
{
|
{
|
||||||
for (l = evas_list_last(sd->subobjs); l; l = l->prev)
|
for (l = evas_list_last(sd->subobjs); l; l = l->prev)
|
||||||
{
|
{
|
||||||
if (e_widget_can_focus_get(l->data))
|
if ((e_widget_can_focus_get(l->data)) &&
|
||||||
|
(!e_widget_disabled_get(l->data)))
|
||||||
{
|
{
|
||||||
if (focus_next)
|
if (focus_next)
|
||||||
{
|
{
|
||||||
|
@ -290,7 +314,8 @@ e_widget_focus_set(Evas_Object *obj, int first)
|
||||||
{
|
{
|
||||||
for (l = sd->subobjs; l; l = l->next)
|
for (l = sd->subobjs; l; l = l->next)
|
||||||
{
|
{
|
||||||
if (e_widget_can_focus_get(l->data))
|
if ((e_widget_can_focus_get(l->data)) &&
|
||||||
|
(!e_widget_disabled_get(l->data)))
|
||||||
{
|
{
|
||||||
e_widget_focus_set(l->data, first);
|
e_widget_focus_set(l->data, first);
|
||||||
break;
|
break;
|
||||||
|
@ -301,7 +326,8 @@ e_widget_focus_set(Evas_Object *obj, int first)
|
||||||
{
|
{
|
||||||
for (l = evas_list_last(sd->subobjs); l; l = l->prev)
|
for (l = evas_list_last(sd->subobjs); l; l = l->prev)
|
||||||
{
|
{
|
||||||
if (e_widget_can_focus_get(l->data))
|
if ((e_widget_can_focus_get(l->data)) &&
|
||||||
|
(!e_widget_disabled_get(l->data)))
|
||||||
{
|
{
|
||||||
e_widget_focus_set(l->data, first);
|
e_widget_focus_set(l->data, first);
|
||||||
break;
|
break;
|
||||||
|
@ -342,6 +368,7 @@ e_widget_focus_steal(Evas_Object *obj)
|
||||||
Evas_Object *parent, *o;
|
Evas_Object *parent, *o;
|
||||||
API_ENTRY return;
|
API_ENTRY return;
|
||||||
if (sd->focused) return;
|
if (sd->focused) return;
|
||||||
|
if (sd->disabled) return;
|
||||||
parent = obj;
|
parent = obj;
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
|
@ -370,6 +397,29 @@ e_widget_activate(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
API_ENTRY return;
|
API_ENTRY return;
|
||||||
if (sd->activate_func) sd->activate_func(obj);
|
if (sd->activate_func) sd->activate_func(obj);
|
||||||
|
e_widget_change(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_widget_change(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
API_ENTRY return;
|
||||||
|
if (sd->on_change_func) sd->on_change_func(sd->on_change_data, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_widget_disabled_set(Evas_Object *obj, int disabled)
|
||||||
|
{
|
||||||
|
API_ENTRY return;
|
||||||
|
sd->disabled = disabled;
|
||||||
|
if (sd->disable_func) sd->disable_func(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
e_widget_disabled_get(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
API_ENTRY return 0;
|
||||||
|
return sd->disabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* local subsystem functions */
|
/* local subsystem functions */
|
||||||
|
|
|
@ -10,7 +10,9 @@ EAPI Evas_Object *e_widget_add(Evas *evas);
|
||||||
EAPI void e_widget_del_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj));
|
EAPI void e_widget_del_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj));
|
||||||
EAPI void e_widget_focus_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj));
|
EAPI void e_widget_focus_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj));
|
||||||
EAPI void e_widget_activate_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj));
|
EAPI void e_widget_activate_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj));
|
||||||
|
EAPI void e_widget_disable_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj));
|
||||||
EAPI void e_widget_on_focus_hook_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), void *data);
|
EAPI void e_widget_on_focus_hook_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), void *data);
|
||||||
|
EAPI void e_widget_on_change_hook_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), void *data);
|
||||||
EAPI void e_widget_data_set(Evas_Object *obj, void *data);
|
EAPI void e_widget_data_set(Evas_Object *obj, void *data);
|
||||||
EAPI void *e_widget_data_get(Evas_Object *obj);
|
EAPI void *e_widget_data_get(Evas_Object *obj);
|
||||||
EAPI void e_widget_min_size_set(Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
|
EAPI void e_widget_min_size_set(Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
|
||||||
|
@ -27,6 +29,9 @@ EAPI void e_widget_focused_object_clear(Evas_Object *obj);
|
||||||
EAPI Evas_Object *e_widget_parent_get(Evas_Object *obj);
|
EAPI Evas_Object *e_widget_parent_get(Evas_Object *obj);
|
||||||
EAPI void e_widget_focus_steal(Evas_Object *obj);
|
EAPI void e_widget_focus_steal(Evas_Object *obj);
|
||||||
EAPI void e_widget_activate(Evas_Object *obj);
|
EAPI void e_widget_activate(Evas_Object *obj);
|
||||||
|
EAPI void e_widget_change(Evas_Object *obj);
|
||||||
|
EAPI void e_widget_disabled_set(Evas_Object *obj, int disabled);
|
||||||
|
EAPI int e_widget_disabled_get(Evas_Object *obj);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -110,6 +110,7 @@ _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char
|
||||||
{
|
{
|
||||||
e_widget_focus_steal(data);
|
e_widget_focus_steal(data);
|
||||||
_e_wid_activate_hook(data);
|
_e_wid_activate_hook(data);
|
||||||
|
e_widget_change(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -115,6 +115,7 @@ static void
|
||||||
_e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source)
|
_e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||||
{
|
{
|
||||||
_e_wid_do(data);
|
_e_wid_do(data);
|
||||||
|
e_widget_change(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -155,6 +155,7 @@ static void
|
||||||
_e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source)
|
_e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||||
{
|
{
|
||||||
_e_wid_do(data);
|
_e_wid_do(data);
|
||||||
|
e_widget_change(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue