Compare commits

...

6 Commits

Author SHA1 Message Date
Mike Blumenkrantz 6ee583047d debug3 2017-03-21 16:57:59 -04:00
Mike Blumenkrantz c058c96398 debug2 2017-03-21 15:53:41 -04:00
Mike Blumenkrantz d53bc7c29b debug 2017-03-21 15:52:59 -04:00
Mike Blumenkrantz 0e48660e76 disable client maximize anims when unmaximizing before a fullscreen
this ensures accurate positioning of windows about to be fullscreened
2017-03-21 11:26:49 -04:00
Mike Blumenkrantz 1435e12b16 use compositor win object for client volume slider
ERR<elementary>lib/elementary/elm_widget.c:1159 You passed a wrong parent parameter (0x4000005c7a973cf5 edje). Elementary widget's parent should be an elementary widget
2017-03-21 11:26:49 -04:00
Mike Blumenkrantz beca758d57 add flag for wl clients to determine ssd mouse-in vs client mouse-in
better handling for moving mouse into ssd region with xwl clients
2017-03-21 11:26:49 -04:00
7 changed files with 60 additions and 17 deletions

View File

@ -283,7 +283,8 @@ static Eina_Bool
_e_client_hook_call(E_Client_Hook_Point hookpoint, E_Client *ec)
{
E_Client_Hook *ch;
Eina_Bool ret;
e_object_ref_debug_set(ec, 0);
e_object_ref(E_OBJECT(ec));
_e_client_hooks_walking++;
EINA_INLIST_FOREACH(_e_client_hooks[hookpoint], ch)
@ -300,7 +301,10 @@ _e_client_hook_call(E_Client_Hook_Point hookpoint, E_Client *ec)
_e_client_hooks_walking--;
if ((_e_client_hooks_walking == 0) && (_e_client_hooks_delete > 0))
_e_client_hooks_clean();
return !!e_object_unref(E_OBJECT(ec));
ret = !!e_object_unref(E_OBJECT(ec));
if (ret)
e_object_ref_debug_set(ec, 1);
return ret;
}
///////////////////////////////////////////
@ -309,7 +313,9 @@ static void
_e_client_event_simple_free(void *d EINA_UNUSED, E_Event_Client *ev)
{
UNREFD(ev->ec, 3);
e_object_unref(E_OBJECT(ev->ec));
e_object_ref_debug_set(ev->ec, 0);
if (e_object_unref(E_OBJECT(ev->ec)))
e_object_ref_debug_set(ev->ec, 1);
free(ev);
}
@ -321,7 +327,9 @@ _e_client_event_simple(E_Client *ec, int type)
ev = E_NEW(E_Event_Client, 1);
ev->ec = ec;
REFD(ec, 3);
e_object_ref_debug_set(ec, 0);
e_object_ref(E_OBJECT(ec));
e_object_ref_debug_set(ec, 1);
ecore_event_add(type, ev, (Ecore_End_Cb)_e_client_event_simple_free, NULL);
}
@ -334,7 +342,9 @@ _e_client_event_property(E_Client *ec, int prop)
ev->ec = ec;
ev->property = prop;
REFD(ec, 33);
e_object_ref_debug_set(ec, 0);
e_object_ref(E_OBJECT(ec));
e_object_ref_debug_set(ec, 1);
ecore_event_add(E_EVENT_CLIENT_PROPERTY, ev, (Ecore_End_Cb)_e_client_event_simple_free, NULL);
}
@ -342,7 +352,9 @@ static void
_e_client_event_desk_set_free(void *d EINA_UNUSED, E_Event_Client_Desk_Set *ev)
{
UNREFD(ev->ec, 4);
e_object_unref(E_OBJECT(ev->ec));
e_object_ref_debug_set(ev->ec, 0);
if (e_object_unref(E_OBJECT(ev->ec)))
e_object_ref_debug_set(ev->ec, 1);
e_object_unref(E_OBJECT(ev->desk));
free(ev);
}
@ -351,7 +363,10 @@ static void
_e_client_event_zone_set_free(void *d EINA_UNUSED, E_Event_Client_Zone_Set *ev)
{
UNREFD(ev->ec, 5);
e_object_unref(E_OBJECT(ev->ec));
e_object_ref_debug_set(ev->ec, 0);
if (e_object_unref(E_OBJECT(ev->ec)))
e_object_ref_debug_set(ev->ec, 1);
e_object_unref(E_OBJECT(ev->zone));
free(ev);
}
@ -2583,6 +2598,8 @@ e_client_new(E_Pixmap *cp, int first_map, int internal)
if (!ec) return NULL;
e_object_del_func_set(E_OBJECT(ec), E_OBJECT_CLEANUP_FUNC(_e_client_del));
e_object_ref_debug_set(ec, 1);
ec->focus_policy_override = E_FOCUS_LAST;
ec->w = 1;
ec->h = 1;
@ -2812,7 +2829,9 @@ e_client_desk_set(E_Client *ec, E_Desk *desk)
ev = E_NEW(E_Event_Client_Desk_Set, 1);
ev->ec = ec;
UNREFD(ec, 4);
e_object_ref_debug_set(ec, 0);
e_object_ref(E_OBJECT(ec));
e_object_ref_debug_set(ec, 1);
ev->desk = old_desk;
e_object_ref(E_OBJECT(old_desk));
ecore_event_add(E_EVENT_CLIENT_DESK_SET, ev, (Ecore_End_Cb)_e_client_event_desk_set_free, NULL);
@ -3316,7 +3335,9 @@ e_client_zone_set(E_Client *ec, E_Zone *zone)
ev = E_NEW(E_Event_Client_Zone_Set, 1);
ev->ec = ec;
REFD(ec, 5);
e_object_ref_debug_set(ec, 0);
e_object_ref(E_OBJECT(ec));
e_object_ref_debug_set(ec, 1);
ev->zone = zone;
e_object_ref(E_OBJECT(zone));
@ -4324,7 +4345,11 @@ e_client_fullscreen(E_Client *ec, E_Fullscreen policy)
if (ec->maximized)
{
Eina_Bool maximize_anims_disabled = ec->maximize_anims_disabled;
ec->maximize_anims_disabled = 1;
e_client_unmaximize(ec, E_MAXIMIZE_BOTH);
ec->maximize_anims_disabled = maximize_anims_disabled;
ec->saved.x = x;
ec->saved.y = y;
ec->saved.w = w;

View File

@ -432,7 +432,7 @@ e_client_volume_object_add(E_Client *ec, Evas *evas)
if (edje_object_part_exists(bx, "e.swallow.volume"))
{
o = edje_object_add(evas);
o = elm_slider_add(bx);
o = elm_slider_add(e_comp->elm);
elm_slider_min_max_set(o, ec->volume_min,
ec->volume_max);
elm_slider_span_size_set(o, ec->volume_max

View File

@ -240,6 +240,10 @@ _e_comp_wl_evas_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, v
static void
_e_comp_wl_cb_ssd_mouse_in(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{
E_Client *ec = data;
if (!e_object_is_del(data))
ec->comp_data->ssd_mouse_in = 1;
_e_comp_wl_mouse_in(data, event_info);
}
@ -289,6 +293,10 @@ _e_comp_wl_evas_cb_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj E
static void
_e_comp_wl_cb_ssd_mouse_out(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
E_Client *ec = data;
if (!e_object_is_del(data))
ec->comp_data->ssd_mouse_in = 0;
_e_comp_wl_mouse_out(data);
}

View File

@ -358,6 +358,7 @@ struct _E_Comp_Wl_Client_Data
Eina_Bool buffer_commit : 1;
Eina_Bool need_xdg6_configure : 1;
Eina_Bool maximize_anims_disabled : 1;
Eina_Bool ssd_mouse_in : 1;
};
struct _E_Comp_Wl_Output

View File

@ -76,8 +76,14 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou
}
if (!surface_resource)
{
ecore_evas_cursor_unset(e_comp->ee);
evas_object_hide(e_comp->pointer->o_ptr);
if (e_comp_object_frame_exists(ec->frame) &&
ec->mouse.in && (!ec->comp_data->ssd_mouse_in))
e_pointer_object_set(e_comp->pointer, NULL, 0, 0);
else
{
ecore_evas_cursor_unset(e_comp->ee);
evas_object_hide(e_comp->pointer->o_ptr);
}
return;
}
ec = wl_resource_get_user_data(surface_resource);

View File

@ -11,6 +11,8 @@ static void _e_object_segv(int sig);
static sigjmp_buf _e_object_segv_buf;
#endif
E_API void e_bt(void);
/* externally accessible functions */
E_API void *
e_object_alloc(int size, int type, E_Object_Cleanup_Func cleanup_func)
@ -125,7 +127,10 @@ e_object_ref(E_Object *obj)
E_OBJECT_CHECK_RETURN(obj, -1);
obj->references++;
if (obj->ref_debug)
INF("[%p] REF (REF: %d)", obj, obj->references);
{
INF("[%p] REF (REF: %d)", obj, obj->references);
e_bt();
}
return obj->references;
}
@ -140,6 +145,7 @@ e_object_unref(E_Object *obj)
ref = obj->references;
if (obj->ref_debug)
{
e_bt();
if ((ref > 1) && (ref < 1000))
INF("[%p] UNREF (REF: %d)", obj, ref);
else if (ref == 1)
@ -160,7 +166,6 @@ e_object_ref_get(E_Object *obj)
return obj->references;
}
#if 0
E_API void
e_bt(void)
{
@ -173,18 +178,12 @@ e_bt(void)
{
for (i = 1; i < trace_num; i++)
{
int j;
for (j = 1; j < i; j++)
putchar(' ');
printf("%s\n", messages[i]);
fprintf(stderr, "%s\n", messages[i]);
}
free(messages);
}
}
#endif
E_API int
e_object_error(E_Object *obj)
{

View File

@ -706,7 +706,9 @@ _e_remember_event_free(void *d EINA_UNUSED, void *event)
{
E_Event_Remember_Update *ev = event;
UNREFD(ev->ec, 10);
e_object_ref_debug_set(ev->ec, 0);
e_object_unref(E_OBJECT(ev->ec));
e_object_ref_debug_set(ev->ec, 1);
free(ev);
}
@ -827,7 +829,9 @@ _e_remember_update(E_Client *ec, E_Remember *rem)
if (!ev) return;
ev->ec = ec;
REFD(ec, 10);
e_object_ref_debug_set(ec, 0);
e_object_ref(E_OBJECT(ec));
e_object_ref_debug_set(ec, 1);
ecore_event_add(E_EVENT_REMEMBER_UPDATE, ev, _e_remember_event_free, NULL);
}
}