Add back full E19/E20 compatibility

Not yet E17 compatible, need to find out why E sigaborts on popup open
This commit is contained in:
Kai Huuhko 2015-04-07 23:27:08 +03:00
parent b1c125a796
commit 4855de622f
7 changed files with 39 additions and 16 deletions

View File

@ -7,8 +7,8 @@ EXTRA_FILES =
# nothing should be changed below this point
GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
prefix = $(shell pkg-config --variable=libdir enlightenment)
gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
.PHONY: all install clean

View File

@ -7,8 +7,8 @@ EXTRA_FILES =
# nothing should be changed below this point
GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
prefix = $(shell pkg-config --variable=libdir enlightenment)
gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
.PHONY: all install clean

View File

@ -7,8 +7,8 @@ EXTRA_FILES =
# nothing should be changed below this point
GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
prefix = $(shell pkg-config --variable=libdir enlightenment)
gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
.PHONY: all install clean

View File

@ -7,8 +7,8 @@ EXTRA_FILES =
# nothing should be changed below this point
GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
prefix = $(shell pkg-config --variable=libdir enlightenment)
gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
.PHONY: all install clean

View File

@ -47,13 +47,23 @@ AC_MSG_CHECKING([Which edje_cc to use])
AC_MSG_RESULT(${EDJE_CC})
# Check enlightenment version
PKG_CHECK_MODULES(E, [enlightenment >= 0.19],
[AC_DEFINE([HAVE_E19], [1], [Have at least E19])],
[PKG_CHECK_MODULES(E, [enlightenment >= 0.17])]
PKG_CHECK_MODULES(
E, [enlightenment >= 0.19.99],
[AC_DEFINE([HAVE_E20], [1], [Have at least E20])],
[PKG_CHECK_MODULES(
E, [enlightenment >= 0.18.99],
[AC_DEFINE([HAVE_E19], [1], [Have at least E19])],
[PKG_CHECK_MODULES(
E, [enlightenment >= 0.17]
)
]
)
]
)
# Explicit link to Eo
PKG_CHECK_MODULES(EO, [eo])
PKG_CHECK_MODULES(ELEMENTARY, [elementary])
# Check for python3 and required modules
# PKG_CHECK_MODULES(PYTHON3, [python3 >= 3.2])

View File

@ -1,6 +1,6 @@
MAINTAINERCLEANFILES = Makefile.in
edgarpy_base = e.py
edgarpydir = $(libdir)/enlightenment/gadgets
edgarpydir = $(shell pkg-config --variable=pkgdatadir enlightenment)/gadgets
edgarpy_DATA = $(edgarpy_base)
EXTRA_DIST = $(edgarpy_base)

View File

@ -17,6 +17,7 @@
#include <Python.h>
#include <Elementary.h>
#include <e.h>
#include "e_mod_main.h"
#include "e_mod_edgar.h"
@ -100,7 +101,7 @@ edgar_init()
int ret;
// prepare the local scope
snprintf(buf, sizeof(buf), "%s/enlightenment/gadgets", e_prefix_lib_get());
snprintf(buf, sizeof(buf), "%s/data/gadgets", e_prefix_data_get());
edgar_gadgets_system_dir = eina_stringshare_add(buf);
edgar_gadgets = eina_hash_string_superfast_new(edgar_gadgets_hash_free_func);
@ -294,7 +295,11 @@ edgar_gadget_unload(Edgar_Py_Gadget *gadget)
// kill all the active popups edje obj
EINA_LIST_FOREACH_SAFE(gadget->pops_obj, l, l2, popup_content)
#if defined HAVE_E20 || defined HAVE_E19
E_FREE_FUNC(popup_content, evas_object_del);
#else
E_FN_DEL(evas_object_del, popup_content);
#endif
// Free the gadcon client class
e_gadcon_provider_unregister(gadget->cclass);
@ -394,7 +399,7 @@ edgar_popup_new(Edgar_Py_Gadget *gadget, E_Gadcon_Client *gcc)
Py_DECREF(ret);
// put the popup content in a gadcon popup and show it
#ifdef HAVE_E19
#if defined HAVE_E20 || defined HAVE_E19
popup = e_gadcon_popup_new(gcc, 0);
#else
popup = e_gadcon_popup_new(gcc);
@ -448,7 +453,7 @@ edgar_menu_info_cb(void *data, E_Menu *m, E_Menu_Item *mi)
}
// dialog
#ifdef HAVE_E19
#if defined HAVE_E20 || defined HAVE_E19
Evas_Object *con = NULL;
#else
E_Container *con;
@ -459,7 +464,7 @@ edgar_menu_info_cb(void *data, E_Menu *m, E_Menu_Item *mi)
e_dialog_title_set(dia, "Gadget info");
e_dialog_button_add(dia, "Close", NULL, NULL, NULL);
#ifdef HAVE_E19
#if defined HAVE_E20 || defined HAVE_E19
Evas *evas = evas_object_evas_get(dia->win);
#else
Evas *evas = dia->win->evas;
@ -502,7 +507,11 @@ edgar_mouse_down3_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
E_Menu *m;
int x, y;
#ifdef HAVE_E20
zone = e_zone_current_get();
#else
zone = e_util_zone_current_get(e_manager_current_get());
#endif
m = e_menu_new();
E_Menu_Item *mi;
@ -533,7 +542,11 @@ edgar_mouse_down1_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
if ((popup = evas_object_data_get(obj, "popup")))
{
#if defined HAVE_E20 || defined HAVE_E19
E_FREE_FUNC(popup, e_object_del);
#else
E_FN_DEL(e_object_del, popup);
#endif
evas_object_data_del(obj, "popup");
}
else if ((popup = edgar_popup_new(gadget, gcc)))