discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0bd73b5a5424885eda5c985008bd83471b974c19
commit 0bd73b5a5424885eda5c985008bd83471b974c19 Author: Mike Blumenkrantz <[email protected]> Date: Fri Aug 25 14:47:04 2017 -0400 use client geometry for fileman popup positioning instead of win object geometry window objects don't return accurate geometry under wayland fix T3842 --- src/modules/fileman/e_fwin.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c index f673d5ce8..12b474d7e 100644 --- a/src/modules/fileman/e_fwin.c +++ b/src/modules/fileman/e_fwin.c @@ -826,15 +826,19 @@ _e_fwin_icon_hints(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *even popup_icon = e_fm2_icon_file_get(fwin->cur_page->fm_obj, fwin->over_file); if (!popup_icon) return; - zone = fwin->zone ?: e_comp_object_util_zone_get(fwin->win); e_fm2_icon_geometry_get(popup_icon->ic, &x, &y, &w, &h); if (fwin->zone) { + zone = fwin->zone; evas_object_geometry_get(popup_icon->fm, &fx, &fy, NULL, NULL); fx -= zone->x, fy -= zone->y; } else - evas_object_geometry_get(fwin->win, &fx, &fy, NULL, NULL); + { + E_Client *ec = e_win_client_get(fwin->win); + fx = ec->x, fy = ec->y; + zone = ec->zone; + } edje = evas_object_smart_parent_get(obj); /* failing to unswallow here causes edje to fail its min size calculations */ edje_object_part_unswallow(edje, obj); @@ -915,7 +919,8 @@ _e_fwin_icon_popup(void *data) e_widget_filepreview_path_set(o, buf, popup_icon->mime); e_widget_list_object_append(list, o, 1, 0, 0.5); edje_object_part_swallow(bg, "e.swallow.content", list); - + + _e_fwin_icon_hints(fwin, NULL, list, NULL); evas_object_event_callback_add(list, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _e_fwin_icon_hints, fwin); fwin->popup = e_comp_object_util_add(bg, E_COMP_OBJECT_TYPE_POPUP); --
