Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=49f3bbda413451dcf7fbeca523769a48741bd4aa

commit 49f3bbda413451dcf7fbeca523769a48741bd4aa
Author: crazy <cr...@frugalware.org>
Date:   Sat Aug 12 19:12:07 2017 +0200

efl-1.20.2-1-x86_64
* Version bump

diff --git a/source/enlightenment-extra/efl/FrugalBuild 
b/source/enlightenment-extra/efl/FrugalBuild
index 7ed0c73..82da618 100644
--- a/source/enlightenment-extra/efl/FrugalBuild
+++ b/source/enlightenment-extra/efl/FrugalBuild
@@ -2,12 +2,12 @@
# Maintainer: crazy <cr...@frugalware.org>

pkgname=efl
-pkgver=1.20.1
-pkgrel=2
+pkgver=1.20.2
+pkgrel=1
pkgdesc="Enlightenment Foundation Libraries"
url="https://www.enlightenment.org/";
license="BSD, GPL2, LGPL2.1"
-source=(https://download.enlightenment.org/rel/libs/$pkgname/$pkgname-$pkgver.tar.xz
 branch.patch)
+source=(https://download.enlightenment.org/rel/libs/$pkgname/$pkgname-$pkgver.tar.xz)
_F_archive_grepv="alpha\|beta"
up2date="Flasttar https://download.enlightenment.org/rel/libs/$pkgname/";
groups=('enlightenment-extra' 'e-libs')
@@ -22,8 +22,7 @@ depends=('glibc' 'luajit2' 'libgcc' 'libstdc++' 'glib2' 
'openssl' 'zlib' 'libjpe
'libxi' 'libtiff' 'libwebp' 'libgif' 'openjpeg' 'libgl' 'libxshmfence' 
'libglapi' 'libxxf86vm' 'gst1-plugins-base' \
'gstreamer1' 'orc' 'poppler>=0.53.0' 'libraw>=0.18.0' 'librsvg' 'libspectre' 
'libgif' 'wayland' 'wayland-protocols')
makedepends=('x11-protos' 'mesa')
-sha1sums=('240d5f64b9bbee611bdc7d5405a275a6d9aefc70' \
-          'c9ce117d2bbc4101df55718513a3d318fd2b3295')
+sha1sums=('c88120d5a99bacd0202e1ad5803a7f859acd67c5')
## libvlc need be 3.0* , xine support . sdl2 ?
Fconfopts+=" --enable-systemd \
--enable-drm \
diff --git a/source/enlightenment-extra/efl/branch.patch 
b/source/enlightenment-extra/efl/branch.patch
deleted file mode 100644
index b43330c..0000000
--- a/source/enlightenment-extra/efl/branch.patch
+++ /dev/null
@@ -1,765 +0,0 @@
-diff --git a/data/elementary/themes/edc/start.edc 
b/data/elementary/themes/edc/start.edc
-index bdf4726170..edd558f155 100644
---- a/data/elementary/themes/edc/start.edc
-+++ b/data/elementary/themes/edc/start.edc
-@@ -50,7 +50,7 @@ group { name: "e/modules/start/main";
-             max: 14 17;
-          }
-       }
--      part { name: "arrow";
-+      part { name: "arrow"; clip: "arrow_base";
-          description { state: "default" 0.0;
-             image.normal: "big_arrow_up.png";
-             aspect: (17/14) (17/14);
-diff --git a/src/bin/elementary/test_win_stack.c 
b/src/bin/elementary/test_win_stack.c
-index 23df1bf16b..77b88b89af 100644
---- a/src/bin/elementary/test_win_stack.c
-+++ b/src/bin/elementary/test_win_stack.c
-@@ -91,12 +91,20 @@ _bt_pressed(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUS
-    evas_object_show(win);
- }
-
-+static void
-+_del()
-+{
-+   level = 0;
-+   popto_win = NULL;
-+}
-+
- void
- test_win_stack(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
- {
-    Evas_Object *bg, *bx, *bt, *lb, *win;
-
-    win = elm_win_add(NULL, "window-stack", ELM_WIN_BASIC);
-+   evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _del, NULL);
-    efl_ui_win_stack_base_set(win, EINA_TRUE);
-    elm_win_title_set(win, "Window Stack");
-    elm_win_autodel_set(win, EINA_TRUE);
-diff --git a/src/lib/ecore_drm2/ecore_drm2_device.c 
b/src/lib/ecore_drm2/ecore_drm2_device.c
-index 446230edb9..3545d1a299 100644
---- a/src/lib/ecore_drm2/ecore_drm2_device.c
-+++ b/src/lib/ecore_drm2/ecore_drm2_device.c
-@@ -77,7 +77,7 @@ _drm2_device_modeset_capable(int fd)
-    int ret = EINA_TRUE;
-    drmModeRes *res;
-
--   res = drmModeGetResources(fd);
-+   res = sym_drmModeGetResources(fd);
-    if (!res)
-      return EINA_FALSE;
-
-@@ -86,7 +86,7 @@ _drm2_device_modeset_capable(int fd)
-        res->count_encoders <= 0)
-      ret = EINA_FALSE;
-
--   drmModeFreeResources(res);
-+   sym_drmModeFreeResources(res);
-
-    return ret;
- }
-diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c 
b/src/lib/ecore_wl2/ecore_wl2_display.c
-index f1699ecbad..79a9e59fc5 100644
---- a/src/lib/ecore_wl2/ecore_wl2_display.c
-+++ b/src/lib/ecore_wl2/ecore_wl2_display.c
-@@ -143,7 +143,7 @@ _aux_hints_supported_aux_hints(void *data, struct 
efl_aux_hints *aux_hints EINA_
-    ev->win = win->id;
-    ev->display = ewd;
-    ewd->refs++;
--   ecore_event_add(ECORE_WL2_EVENT_AUX_HINT_SUPPORTED, ev, 
_display_event_free, NULL);
-+   ecore_event_add(ECORE_WL2_EVENT_AUX_HINT_SUPPORTED, ev, 
_display_event_free, ewd);
- }
-
- static void
-@@ -163,7 +163,7 @@ _aux_hints_allowed_aux_hint(void *data, struct 
efl_aux_hints *aux_hints  EINA_UN
-    ev->id = id;
-    ev->display = ewd;
-    ewd->refs++;
--   ecore_event_add(ECORE_WL2_EVENT_AUX_HINT_ALLOWED, ev, _display_event_free, 
NULL);
-+   ecore_event_add(ECORE_WL2_EVENT_AUX_HINT_ALLOWED, ev, _display_event_free, 
ewd);
- }
-
-  static void
-@@ -852,7 +852,7 @@ found:
-    return ewd;
- }
-
--static Eina_Bool
-+Eina_Bool
- _ecore_wl2_display_sync_get(void)
- {
-    Ecore_Wl2_Display *sewd;
-diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h 
b/src/lib/ecore_wl2/ecore_wl2_private.h
-index 2bdf0610e0..3569db9f39 100644
---- a/src/lib/ecore_wl2/ecore_wl2_private.h
-+++ b/src/lib/ecore_wl2/ecore_wl2_private.h
-@@ -170,6 +170,8 @@ struct _Ecore_Wl2_Window
-    uint32_t configure_serial;
-    void (*configure_ack)(struct xdg_surface *surface, uint32_t serial);
-    void (*zxdg_configure_ack)(struct zxdg_surface_v6 *surface, uint32_t 
serial);
-+   void (*zxdg_set_min_size)(struct zxdg_toplevel_v6 *toplevel, int32_t w, 
int32_t h);
-+   void (*zxdg_set_max_size)(struct zxdg_toplevel_v6 *toplevel, int32_t w, 
int32_t h);
-
-    Eina_Rectangle saved;
-    Eina_Rectangle geometry;
-@@ -515,6 +517,7 @@ void _ecore_wl2_window_www_surface_init(Ecore_Wl2_Window 
*window);
- void _ecore_wl2_window_semi_free(Ecore_Wl2_Window *window);
-
- void _ecore_wl2_offer_unref(Ecore_Wl2_Offer *offer);
-+Eina_Bool _ecore_wl2_display_sync_get(void);
-
- EAPI extern int _ecore_wl2_event_window_www;
- EAPI extern int _ecore_wl2_event_window_www_drag;
-diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c 
b/src/lib/ecore_wl2/ecore_wl2_window.c
-index f12d73230c..78f6129af0 100644
---- a/src/lib/ecore_wl2/ecore_wl2_window.c
-+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
-@@ -356,14 +356,13 @@ _ecore_wl2_window_type_set(Ecore_Wl2_Window *win)
-       case ECORE_WL2_WINDOW_TYPE_TOPLEVEL:
-         if (win->zxdg_surface)
-           {
--             struct zxdg_toplevel_v6 *ptop;
-+             struct zxdg_toplevel_v6 *ptop = NULL;
-
-              if (win->parent)
-                ptop = win->parent->zxdg_toplevel;
--             else
--               ptop = NULL;
-
--             zxdg_toplevel_v6_set_parent(win->zxdg_toplevel, ptop);
-+             if (ptop)
-+               zxdg_toplevel_v6_set_parent(win->zxdg_toplevel, ptop);
-           }
-         else if (win->xdg_surface)
-           xdg_surface_set_parent(win->xdg_surface, NULL);
-@@ -460,8 +459,8 @@ _ecore_wl2_window_shell_surface_init(Ecore_Wl2_Window 
*window)
-         if (window->class)
-           zxdg_toplevel_v6_set_app_id(window->zxdg_toplevel, window->class);
-
--        zxdg_toplevel_v6_set_min_size(window->zxdg_toplevel, 1, 1);
--        zxdg_toplevel_v6_set_max_size(window->zxdg_toplevel, 32767, 32767);
-+        window->zxdg_set_min_size = zxdg_toplevel_v6_set_min_size;
-+        window->zxdg_set_max_size = zxdg_toplevel_v6_set_max_size;
-
-         window->zxdg_configure_ack = zxdg_surface_v6_ack_configure;
-         _ecore_wl2_window_type_set(window);
-@@ -556,7 +555,11 @@ _ecore_wl2_window_surface_create(Ecore_Wl2_Window *window)
-         window->surface_id =
-           wl_proxy_get_id((struct wl_proxy *)window->surface);
-         if (window->display->wl.efl_aux_hints)
--          
efl_aux_hints_get_supported_aux_hints(window->display->wl.efl_aux_hints, 
window->surface);
-+          {
-+             
efl_aux_hints_get_supported_aux_hints(window->display->wl.efl_aux_hints, 
window->surface);
-+             if (_ecore_wl2_display_sync_get())
-+               wl_display_roundtrip(window->display->wl.display);
-+          }
-      }
- }
-
-@@ -619,11 +622,11 @@ ecore_wl2_window_new(Ecore_Wl2_Display *display, 
Ecore_Wl2_Window *parent, int x
-    win->opaque.h = h;
-
-    win->pending.configure = EINA_TRUE;
--   _ecore_wl2_window_surface_create(win);
--
-    display->windows =
-      eina_inlist_append(display->windows, EINA_INLIST_GET(win));
-
-+   _ecore_wl2_window_surface_create(win);
-+
-    return win;
- }
-
-diff --git a/src/lib/edje/edje_callbacks.c b/src/lib/edje/edje_callbacks.c
-index ac6f52c9eb..06ed0f81a7 100644
---- a/src/lib/edje/edje_callbacks.c
-+++ b/src/lib/edje/edje_callbacks.c
-@@ -387,35 +387,51 @@ _edje_timer_cb(void *data, const Efl_Event *event 
EINA_UNUSED)
-    _edje_util_freeze(ed);
-    if ((!ed->paused) && (!ed->delete_me))
-      {
--        const void *tmp;
-+        Edje_Running_Program *tmp;
-
-         ed->walking_actions = EINA_TRUE;
-         EINA_LIST_FOREACH(ed->actions, l, tmp)
--          newl = eina_list_append(newl, tmp);
-+          {
-+             tmp->ref++;
-+             newl = eina_list_append(newl, tmp);
-+          }
-         while (newl)
-           {
-              Edje_Running_Program *runp;
-
-              runp = eina_list_data_get(newl);
-              newl = eina_list_remove(newl, eina_list_data_get(newl));
-+             runp->ref--;
-              if (!runp->delete_me)
-                _edje_program_run_iterate(runp, t);
-              if (_edje_block_break(ed))
-                {
--                  eina_list_free(newl);
-+                  EINA_LIST_FREE(newl, tmp)
-+                    {
-+                       tmp->ref--;
-+                       if ((tmp->delete_me) && (tmp->ref == 0))
-+                         {
-+                            _edje_program_run_cleanup(ed, tmp);
-+                            free(tmp);
-+                         }
-+                    }
-                   newl = NULL;
-                   goto break_prog;
-                }
-           }
-         EINA_LIST_FOREACH(ed->actions, l, tmp)
--          newl = eina_list_append(newl, tmp);
-+          {
-+             tmp->ref++;
-+             newl = eina_list_append(newl, tmp);
-+          }
-         while (newl)
-           {
-              Edje_Running_Program *runp;
-
-              runp = eina_list_data_get(newl);
-              newl = eina_list_remove(newl, eina_list_data_get(newl));
--             if (runp->delete_me)
-+             runp->ref--;
-+             if ((runp->delete_me) && (runp->ref == 0))
-                {
-                   _edje_program_run_cleanup(ed, runp);
-                   free(runp);
-diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
-index af7075208f..b29d77f4a9 100644
---- a/src/lib/edje/edje_private.h
-+++ b/src/lib/edje/edje_private.h
-@@ -2058,6 +2058,7 @@ struct _Edje_Running_Program
-    Edje           *edje;
-    Edje_Program   *program;
-    double          start_time;
-+   unsigned short  ref;
-    Eina_Bool       delete_me : 1;
- };
-
-diff --git a/src/lib/edje/edje_program.c b/src/lib/edje/edje_program.c
-index 28b9300ccf..c5c915e220 100644
---- a/src/lib/edje/edje_program.c
-+++ b/src/lib/edje/edje_program.c
-@@ -387,20 +387,32 @@ _edje_object_animation_set(Eo *obj, Edje *ed, Eina_Bool 
on)
-    if (!on)
-      {
-         Eina_List *newl = NULL;
--        const void *data;
-+        Edje_Running_Program *data;
-
-         EINA_LIST_FOREACH(ed->actions, l, data)
--          newl = eina_list_append(newl, data);
-+          {
-+             data->ref++;
-+             newl = eina_list_append(newl, data);
-+          }
-         while (newl)
-           {
-              Edje_Running_Program *runp;
-
-              runp = eina_list_data_get(newl);
-              newl = eina_list_remove(newl, eina_list_data_get(newl));
-+             runp->ref--;
-              _edje_program_run_iterate(runp, runp->start_time + 
TO_DOUBLE(runp->program->tween.time));
-              if (_edje_block_break(ed))
-                {
--                  eina_list_free(newl);
-+                 EINA_LIST_FREE(newl, data)
-+                    {
-+                       data->ref--;
-+                       if ((data->delete_me) && (data->ref == 0))
-+                         {
-+                            _edje_program_run_cleanup(ed, data);
-+                            free(data);
-+                         }
-+                    }
-                   goto break_prog;
-                }
-           }
-@@ -522,7 +534,14 @@ _edje_program_run_iterate(Edje_Running_Program *runp, 
double tim)
-         //    _edje_emit(ed, "program,stop", runp->program->name);
-         if (_edje_block_break(ed))
-           {
--             if (!ed->walking_actions) free(runp);
-+             if (!ed->walking_actions)
-+               {
-+                  if (runp->ref == 0)
-+                    {
-+                       _edje_program_run_cleanup(ed, runp);
-+                       free(runp);
-+                    }
-+               }
-              goto break_prog;
-           }
-         EINA_LIST_FOREACH(runp->program->after, l, pa)
-@@ -535,14 +554,22 @@ _edje_program_run_iterate(Edje_Running_Program *runp, 
double tim)
-                   if (pr) _edje_program_run(ed, pr, 0, "", "");
-                   if (_edje_block_break(ed))
-                     {
--                       if (!ed->walking_actions) free(runp);
-+                       if ((!ed->walking_actions) && (runp->ref == 0))
-+                         {
-+                            _edje_program_run_cleanup(ed, runp);
-+                            free(runp);
-+                         }
-                        goto break_prog;
-                     }
-                }
-           }
-         _edje_util_thaw(ed);
-         _edje_unref(ed);
--        if (!ed->walking_actions) free(runp);
-+        if ((!ed->walking_actions) && (runp->ref == 0))
-+          {
-+             _edje_program_run_cleanup(ed, runp);
-+             free(runp);
-+          }
-         _edje_unblock(ed);
-         return EINA_FALSE;
-      }
-@@ -601,7 +628,7 @@ _edje_program_end(Edje *ed, Edje_Running_Program *runp)
-    //   _edje_emit(ed, "program,stop", pname);
-    _edje_util_thaw(ed);
-    _edje_unref(ed);
--   if (free_runp) free(runp);
-+   if ((free_runp) && (runp->ref == 0)) free(runp);
- }
-
- #ifdef HAVE_EPHYSICS
-diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
-index 691ae69beb..03e1128836 100644
---- a/src/lib/efl_wl/efl_wl.c
-+++ b/src/lib/efl_wl/efl_wl.c
-@@ -99,6 +99,7 @@ typedef struct Comp_Buffer
-    int x, y, w, h;
-    struct wl_listener destroy_listener;
-    struct wl_shm_buffer *shm_buffer;
-+   struct wl_shm_pool *pool;
-    struct linux_dmabuf_buffer *dmabuf_buffer;
-    Eina_Bool dbg : 1;
- } Comp_Buffer;
-@@ -118,6 +119,9 @@ typedef struct Comp
-    Evas_Object *clip;
-    Evas_Object *events;
-
-+   Eina_Hash *exes;
-+   Ecore_Event_Handler *exe_handler;
-+
-    Eina_Inlist *surfaces;
-    unsigned int surfaces_count;
-    Eina_Hash *client_surfaces;
-@@ -427,6 +431,22 @@ array_clear(Eina_Array **arr)
-    *arr = NULL;
- }
-
-+static inline Eina_Bool
-+client_allowed_check(Comp *c, struct wl_client *client)
-+{
-+   pid_t p;
-+   int32_t pid;
-+   Eina_Bool err;
-+
-+   wl_client_get_credentials(client, &p, NULL, NULL);
-+   if (p == getpid()) return EINA_TRUE;
-+   pid = p;
-+   err = (!c->exes) || !eina_hash_find(c->exes, &pid);
-+   if (err)
-+     wl_client_post_no_memory(client);
-+   return !err;
-+}
-+
- static inline void
- comp_data_device_source_reader_clear(Comp_Data_Device_Source *ds)
- {
-@@ -1235,6 +1255,7 @@ comp_surface_buffer_detach(Comp_Buffer **pbuffer)
-    eina_list_free(buffer->renders);
-    wl_list_remove(&buffer->destroy_listener.link);
-    //if (buffer->dbg) fprintf(stderr, "BUFFER(%d) RELEASE\n", 
wl_resource_get_id(buffer->res));
-+   if (buffer->pool) wl_shm_pool_unref(buffer->pool);
-    wl_resource_queue_event(buffer->res, WL_BUFFER_RELEASE);
-    free(buffer);
-    *pbuffer = NULL;
-@@ -1282,6 +1303,7 @@ comp_surface_commit_image_state(Comp_Surface *cs, 
Comp_Buffer *buffer, Evas_Obje
-         //if (cs->subsurface)
-           //fprintf(stderr, "SET CB\n");
-         evas_object_image_pixels_get_callback_set(o, comp_surface_pixels_get, 
cs);
-+        buffer->pool = wl_shm_buffer_ref_pool(buffer->shm_buffer);
-      }
-    else
-      {
-@@ -1323,7 +1345,8 @@ comp_surface_commit_state(Comp_Surface *cs, 
Comp_Buffer_State *state)
-           {
-              //if (cs->subsurface)
-                //fprintf(stderr, "BUFFER(%d) COMMIT %d\n", 
wl_resource_get_id(buffer->res), wl_resource_get_id(cs->res));
--             if ((!cs->post_render_queue) && ((!cs->buffer[1]) || 
(!cs->buffer[1]->post_renders)))
-+             if ((!cs->c->rendering) && (!cs->post_render_queue) &&
-+               ((!cs->buffer[1]) || (!cs->buffer[1]->post_renders)))
-                comp_surface_buffer_detach(&cs->buffer[1]);
-           }
-         else
-@@ -2450,6 +2473,8 @@ comp_bind(struct wl_client *client, void *data, uint32_t 
version, uint32_t id)
- {
-    struct wl_resource *res;
-
-+   if (!client_allowed_check(data, client)) return;
-+
-    res = wl_resource_create(client, &wl_compositor_interface, version, id);
-    wl_resource_set_implementation(res, &comp_interface, data, NULL);
- }
-@@ -2595,6 +2620,7 @@ subcomp_bind(struct wl_client *client, void *data, 
uint32_t version, uint32_t id
- {
-    struct wl_resource *res;
-
-+   if (!client_allowed_check(data, client)) return;
-    res = wl_resource_create(client, &wl_subcompositor_interface, version, id);
-    wl_resource_set_implementation(res, &subcomp_interface, data, NULL);
- }
-@@ -2932,6 +2958,7 @@ data_device_manager_bind(struct wl_client *client, void 
*data, uint32_t version,
- {
-    struct wl_resource *res;
-
-+   if (!client_allowed_check(data, client)) return;
-    res = wl_resource_create(client, &wl_data_device_manager_interface, MIN(3, 
version), id);
-    wl_resource_set_implementation(res, &data_device_manager_interface, data, 
NULL);
- }
-@@ -2980,6 +3007,7 @@ output_bind(struct wl_client *client, void *data, 
uint32_t version, uint32_t id)
-    Comp_Surface *cs;
-    struct wl_resource *res;
-
-+   if (!client_allowed_check(data, client)) return;
-    res = wl_resource_create(client, &wl_output_interface, version, id);
-    c->output_resources = eina_list_append(c->output_resources, res);
-    wl_resource_set_implementation(res, NULL, data, output_unbind);
-@@ -3403,6 +3431,7 @@ shell_bind(struct wl_client *client, void *data, 
uint32_t version, uint32_t id)
-    struct wl_resource *res;
-    Shell_Data *sd;
-
-+   if (!client_allowed_check(data, client)) return;
-    sd = calloc(1, sizeof(Shell_Data));
-    sd->c = c;
-    c->shells = eina_inlist_append(c->shells, EINA_INLIST_GET(sd));
-@@ -3630,7 +3659,7 @@ seat_ptr_set_cursor(struct wl_client *client, struct 
wl_resource *resource, uint
-    if (s->ptr.enter_serial - serial > UINT32_MAX / 2) return;
-    if (surface_resource)
-      cs = wl_resource_get_user_data(surface_resource);
--   if (cs && cs->role)
-+   if (cs && cs->role && (!cs->cursor))
-      {
-         wl_resource_post_error(surface_resource,
-                                WL_POINTER_ERROR_ROLE, "surface already has 
role");
-@@ -3657,7 +3686,10 @@ seat_ptr_set_cursor(struct wl_client *client, struct 
wl_resource *resource, uint
-                  seat_ptr_inherit(s, dev);
-                ecore_evas_cursor_device_unset(ee, dev);
-                if (cs)
--                 ecore_evas_object_cursor_device_set(ee, dev, cs->obj, 
EVAS_LAYER_MAX, x, y);
-+                 {
-+                    cs->role = cs->res;
-+                    ecore_evas_object_cursor_device_set(ee, dev, cs->obj, 
EVAS_LAYER_MAX, x, y);
-+                 }
-             }
-      }
-    if (cs)
-@@ -3750,6 +3782,7 @@ seat_bind(struct wl_client *client, void *data, uint32_t 
version, uint32_t id)
-    struct wl_resource *res;
-    Comp_Seat *s = data;
-
-+   if (!client_allowed_check(s->c, client)) return;
-    res = wl_resource_create(client, &wl_seat_interface, version, id);
-    s->resources = eina_list_append(s->resources, res);
-    if (s->c->active_surface)
-@@ -3866,6 +3899,8 @@ comp_render_pre(Comp *c, Evas *e EINA_UNUSED, void 
*event_info EINA_UNUSED)
-      {
-         Comp_Buffer *buffer;
- //if (cs->subsurface) fprintf(stderr, "RENDER PRE\n");
-+
-+        comp_surface_buffer_detach(&cs->buffer[1]);
-         cs->buffer[1] = cs->buffer[0];
-         cs->buffer[0] = NULL;
-         cs->render_queue = 0;
-@@ -4742,9 +4777,10 @@ comp_mouse_in(void *data, Evas *e, Evas_Object *obj, 
void *event_info)
-    seat_ptr_inherit(s, ev->dev);
-    ecore_evas_cursor_device_unset(ecore_evas_ecore_evas_get(e), ev->dev);
-    if (s->ptr.efl.obj) evas_object_hide(s->ptr.efl.obj);
--   if (s->ptr.cursor.surface)
--     ecore_evas_object_cursor_device_set(ecore_evas_ecore_evas_get(e), 
ev->dev,
--       s->ptr.cursor.surface->obj, EVAS_LAYER_MAX, s->ptr.cursor.x, 
s->ptr.cursor.y);
-+   if (!s->ptr.cursor.surface) return;
-+   s->ptr.cursor.surface->role = s->ptr.cursor.surface->res;
-+   ecore_evas_object_cursor_device_set(ecore_evas_ecore_evas_get(e), ev->dev,
-+     s->ptr.cursor.surface->obj, EVAS_LAYER_MAX, s->ptr.cursor.x, 
s->ptr.cursor.y);
- }
-
- static void
-@@ -4801,7 +4837,11 @@ comp_mouse_out(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj, void *event_in
-           s->ptr.efl.obj, s->ptr.efl.layer, s->ptr.efl.x, s->ptr.efl.y);
-         seat_ptr_del(s, NULL, NULL, NULL);
-      }
--   if (s->ptr.cursor.surface) evas_object_hide(s->ptr.cursor.surface->obj);
-+   if (s->ptr.cursor.surface)
-+     {
-+        s->ptr.cursor.surface->role = NULL;
-+        evas_object_hide(s->ptr.cursor.surface->obj);
-+     }
-    if ((!s->drag.res) || (!s->drag.source) || s->drag.source->proxy) return;
-    if (s->drag.enter) comp_surface_send_data_device_leave(s->drag.enter, s);
-    if (s->drag.surface)
-@@ -4962,6 +5002,8 @@ comp_smart_del(Evas_Object *obj)
-    evas_event_callback_del_full(c->evas, EVAS_CALLBACK_RENDER_PRE, 
(Evas_Event_Cb)comp_render_pre, c);
-    evas_event_callback_del_full(c->evas, EVAS_CALLBACK_RENDER_POST, 
(Evas_Event_Cb)comp_render_post, c);
-    efl_event_callback_array_del(c->evas, comp_device_cbs(), c);
-+   ecore_event_handler_del(c->exe_handler);
-+   eina_hash_free(c->exes);
-    comps = eina_list_remove(comps, c);
-    free(c);
-    if (!comps)
-@@ -5093,6 +5135,18 @@ comp_smart_init(void)
-    }
- }
-
-+static Eina_Bool
-+exe_event_del(void *data, int t EINA_UNUSED, Ecore_Exe_Event_Del *ev)
-+{
-+   Comp *c = data;
-+   int32_t pid = ev->pid;
-+
-+   if (!eina_streq(ecore_exe_tag_get(ev->exe), "__efl_wl")) return 
ECORE_CALLBACK_RENEW;
-+
-+   eina_hash_del_by_key(c->exes, &pid);
-+   return ECORE_CALLBACK_RENEW;
-+}
-+
- # ifdef __GNUC__
- #  if __GNUC__ >= 4
- __attribute__ ((visibility("hidden")))
-@@ -5153,6 +5207,11 @@ efl_wl_run(Evas_Object *obj, const char *cmd)
-
-    if (!eina_streq(evas_object_type_get(obj), "comp")) abort();
-    c = evas_object_smart_data_get(obj);
-+   if (!c->exes)
-+     c->exes = eina_hash_int32_new(NULL);
-+   if (!c->exe_handler)
-+     c->exe_handler =
-+       ecore_event_handler_add(ECORE_EXE_EVENT_DEL, 
(Ecore_Event_Handler_Cb)exe_event_del, c);
-    disp = getenv("DISPLAY");
-    if (disp) disp = strdup(disp);
-    unsetenv("DISPLAY");
-@@ -5177,6 +5236,12 @@ efl_wl_run(Evas_Object *obj, const char *cmd)
-      }
-    free(env);
-    free(disp);
-+   if (exe)
-+     {
-+        int32_t pid = ecore_exe_pid_get(exe);
-+        ecore_exe_tag_set(exe, "__efl_wl");
-+        eina_hash_add(c->exes, &pid, exe);
-+     }
-    return exe;
- }
-
-diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
-index 63f3957dd5..f27e1a4f01 100644
---- a/src/lib/elementary/efl_ui_win.c
-+++ b/src/lib/elementary/efl_ui_win.c
-@@ -1460,14 +1460,17 @@ _elm_win_frame_obj_update(Efl_Ui_Win_Data *sd)
- {
-    int ox, oy, ow, oh;
-    int cx, cy, cw, ch;
-+   int w, h;
-
-    if (!sd->frame_obj) return;
-    _elm_win_opaque_dirty(sd);
-    _elm_win_frame_geometry_adjust(sd);
-    evas_object_geometry_get(sd->frame_obj, &ox, &oy, &ow, &oh);
-    edje_object_part_geometry_get(sd->frame_obj, "elm.spacer.content", &cx, 
&cy, &cw, &ch);
--   if (_elm_win_framespace_set(sd, cx, cy, ow - cw, oh - ch))
--     _elm_win_resize_objects_eval(sd->obj, EINA_TRUE);
-+   if (!_elm_win_framespace_set(sd, cx, cy, ow - cw, oh - ch)) return;
-+   _elm_win_frame_geometry_adjust(sd);
-+   evas_object_geometry_get(sd->obj, NULL, NULL, &w, &h);
-+   TRAP(sd, resize, w, h);
- }
-
- static void
-@@ -4420,7 +4423,7 @@ _elm_win_frame_style_update(Efl_Ui_Win_Data *sd, 
Eina_Bool force_emit, Eina_Bool
-    alpha = sd->application_alpha || sd->theme_alpha;
-    borderless = sd->csd.need_borderless || (!sd->csd.need) || sd->fullscreen;
-    maximized = sd->maximized;
--   shadow = sd->csd.need_shadow && (!sd->fullscreen) && (!sd->maximized);
-+   shadow = sd->csd.need_shadow && (!sd->fullscreen) && (!sd->maximized) && 
(!borderless);
-    if (alpha && borderless) shadow = 0;
- #ifdef HAVE_ELEMENTARY_WL2
-    if (sd->wl.win)
-diff --git 
a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
-index df0a6bafe1..d6b6350174 100644
---- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
-+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
-@@ -1193,31 +1193,11 @@ _ecore_evas_wl_common_free(Ecore_Evas *ee)
- }
-
- static void
--_ecore_evas_wl_common_move(Ecore_Evas *ee, int x, int y)
-+_ecore_evas_wl_common_move_resize(Ecore_Evas *ee, int x EINA_UNUSED, int y 
EINA_UNUSED, int w, int h)
- {
-    LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-    if (!ee) return;
--
--   ee->req.x = x;
--   ee->req.y = y;
--
--   if ((ee->x != x) || (ee->y != y))
--     {
--        ee->x = x;
--        ee->y = y;
--        if (ee->func.fn_move) ee->func.fn_move(ee);
--     }
--}
--
--static void
--_ecore_evas_wl_common_move_resize(Ecore_Evas *ee, int x, int y, int w, int h)
--{
--   LOGFN(__FILE__, __LINE__, __FUNCTION__);
--
--   if (!ee) return;
--   if ((ee->x != x) || (ee->y != y))
--     _ecore_evas_wl_common_move(ee, x, y);
-    if ((ee->w != w) || (ee->h != h))
-      _ecore_evas_wl_common_resize(ee, w, h);
- }
-@@ -1434,27 +1414,36 @@ _ecore_evas_wl_common_name_class_set(Ecore_Evas *ee, 
const char *n, const char *
- static void
- _ecore_evas_wl_common_size_min_set(Ecore_Evas *ee, int w, int h)
- {
-+   Ecore_Evas_Engine_Wl_Data *wdata;
-    LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-    if (!ee) return;
-+
-    if (w < 0) w = 0;
-    if (h < 0) h = 0;
-    if ((ee->prop.min.w == w) && (ee->prop.min.h == h)) return;
-    ee->prop.min.w = w;
-    ee->prop.min.h = h;
-+   wdata = ee->engine.data;
-+   if (wdata->win->zxdg_set_min_size && wdata->win->zxdg_toplevel)
-+     wdata->win->zxdg_set_min_size(wdata->win->zxdg_toplevel, w, h);
-+   _ecore_evas_wl_common_resize(ee, ee->w, ee->h);
- }
-
- static void
- _ecore_evas_wl_common_size_max_set(Ecore_Evas *ee, int w, int h)
- {
-+   Ecore_Evas_Engine_Wl_Data *wdata;
-    LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-    if (!ee) return;
--   if (w < 0) w = 0;
--   if (h < 0) h = 0;
-    if ((ee->prop.max.w == w) && (ee->prop.max.h == h)) return;
-    ee->prop.max.w = w;
-    ee->prop.max.h = h;
-+   wdata = ee->engine.data;
-+   if (wdata->win->zxdg_set_max_size && wdata->win->zxdg_toplevel)
-+     wdata->win->zxdg_set_max_size(wdata->win->zxdg_toplevel, w, h);
-+   _ecore_evas_wl_common_resize(ee, ee->w, ee->h);
- }
-
- static void
-@@ -1468,6 +1457,7 @@ _ecore_evas_wl_common_size_base_set(Ecore_Evas *ee, int 
w, int h)
-    if ((ee->prop.base.w == w) && (ee->prop.base.h == h)) return;
-    ee->prop.base.w = w;
-    ee->prop.base.h = h;
-+   _ecore_evas_wl_common_resize(ee, ee->w, ee->h);
- }
-
- static void
-@@ -1481,6 +1471,7 @@ _ecore_evas_wl_common_size_step_set(Ecore_Evas *ee, int 
w, int h)
-    if ((ee->prop.step.w == w) && (ee->prop.step.h == h)) return;
-    ee->prop.step.w = w;
-    ee->prop.step.h = h;
-+   _ecore_evas_wl_common_resize(ee, ee->w, ee->h);
- }
-
- static void
-@@ -1491,6 +1482,7 @@ _ecore_evas_wl_common_aspect_set(Ecore_Evas *ee, double 
aspect)
-    if (!ee) return;
-    if (EINA_FLT_EQ(ee->prop.aspect, aspect)) return;
-    ee->prop.aspect = aspect;
-+   _ecore_evas_wl_common_resize(ee, ee->w, ee->h);
- }
-
- static void
-@@ -2213,7 +2205,7 @@ static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
-    NULL, // unsticky_set
-    NULL, // pre_render_set
-    NULL, // post_render_set
--   _ecore_evas_wl_common_move,
-+   NULL,
-    NULL, // managed_move
-    _ecore_evas_wl_common_resize,
-    _ecore_evas_wl_common_move_resize,
-@@ -2343,8 +2335,6 @@ _ecore_evas_wl_common_new_internal(const char 
*disp_name, unsigned int parent, i
-    ee->driver = engine_name;
-    if (disp_name) ee->name = strdup(disp_name);
-
--   ee->x = x;
--   ee->y = y;
-    ee->w = w;
-    ee->h = h;
-    ee->req.x = ee->x;
-diff --git a/src/modules/evas/engines/wayland_egl/evas_wl_main.c 
b/src/modules/evas/engines/wayland_egl/evas_wl_main.c
-index 59c69c6dfb..90f3d403bf 100644
---- a/src/modules/evas/engines/wayland_egl/evas_wl_main.c
-+++ b/src/modules/evas/engines/wayland_egl/evas_wl_main.c
-@@ -111,7 +111,13 @@ eng_window_new(Evas_Engine_Info_Wayland *einfo, int w, 
int h, Render_Engine_Swap
-      }
-
-    if (context == EGL_NO_CONTEXT) context = gw->egl_context;
--
-+   if (eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE,
-+                 EGL_NO_SURFACE, gw->egl_context) == EGL_FALSE)
-+     {
-+        ERR("eglMakeCurrent() fail. code=%#x", eglGetError());
-+        eng_window_free(gw);
-+        return NULL;
-+     }
-    vendor = glGetString(GL_VENDOR);
-    renderer = glGetString(GL_RENDERER);
-    version = glGetString(GL_VERSION);
-@@ -144,17 +150,8 @@ eng_window_new(Evas_Engine_Info_Wayland *einfo, int w, 
int h, Render_Engine_Swap
-         return NULL;
-      }
-
--   if (w && h)
--     eng_window_resurf(gw);
--   else
-+   if (!gw->gl_context)
-      {
--        if (eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE,
--                      EGL_NO_SURFACE, gw->egl_context) == EGL_FALSE)
--          {
--             ERR("eglMakeCurrent() fail. code=%#x", eglGetError());
--             eng_window_free(gw);
--             return NULL;
--          }
-         eng_gl_symbols(gw->egl_disp);
-
-         if (!(gw->gl_context = glsym_evas_gl_common_context_new()))
-@@ -165,8 +162,9 @@ eng_window_new(Evas_Engine_Info_Wayland *einfo, int w, int 
h, Render_Engine_Swap
-         gw->gl_context->egldisp = gw->egl_disp;
-         gw->gl_context->eglctxt = gw->egl_context;
-         eng_window_use(gw);
--
-      }
-+   if (w && h)
-+     eng_window_resurf(gw);
-    return gw;
- }
-
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to