use dbus to tell e.TeamWork whenever a link is detected
This was requested by the crazy e18 release manager.
This commit is contained in:
parent
3ed65bbcdc
commit
f1c3bf52ca
12
configure.ac
12
configure.ac
|
@ -38,6 +38,15 @@ requirements="\
|
||||||
|
|
||||||
PKG_CHECK_MODULES([TERMINOLOGY], [${requirements}])
|
PKG_CHECK_MODULES([TERMINOLOGY], [${requirements}])
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES([ELDBUS],
|
||||||
|
[eldbus],
|
||||||
|
[
|
||||||
|
AC_DEFINE(HAVE_ELDBUS, 1, [DBUS support])
|
||||||
|
have_eldbus="yes"
|
||||||
|
],
|
||||||
|
[have_eldbus="no"]
|
||||||
|
)
|
||||||
|
|
||||||
AC_CHECK_FUNCS(mkstemps)
|
AC_CHECK_FUNCS(mkstemps)
|
||||||
|
|
||||||
EFL_WITH_BIN([edje], [edje-cc], [edje_cc])
|
EFL_WITH_BIN([edje], [edje-cc], [edje_cc])
|
||||||
|
@ -96,3 +105,6 @@ echo
|
||||||
echo "Installation...............: make install (as root if needed, with 'su' or 'sudo')"
|
echo "Installation...............: make install (as root if needed, with 'su' or 'sudo')"
|
||||||
echo " prefix...................: $prefix"
|
echo " prefix...................: $prefix"
|
||||||
echo
|
echo
|
||||||
|
echo "Features:"
|
||||||
|
echo " dbus................: $have_eldbus"
|
||||||
|
echo
|
||||||
|
|
|
@ -6,7 +6,7 @@ terminology_CPPFLAGS = -I. \
|
||||||
-DPACKAGE_BIN_DIR=\"$(bindir)\" -DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
-DPACKAGE_BIN_DIR=\"$(bindir)\" -DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
||||||
-DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" @TERMINOLOGY_CFLAGS@
|
-DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" @TERMINOLOGY_CFLAGS@
|
||||||
|
|
||||||
terminology_LDADD = @TERMINOLOGY_LIBS@
|
terminology_LDADD = @TERMINOLOGY_LIBS@ @ELDBUS_LIBS@
|
||||||
|
|
||||||
terminology_SOURCES = \
|
terminology_SOURCES = \
|
||||||
private.h \
|
private.h \
|
||||||
|
@ -41,6 +41,7 @@ lz4/lz4.c lz4/lz4.h \
|
||||||
utf8.c utf8.h \
|
utf8.c utf8.h \
|
||||||
win.c win.h \
|
win.c win.h \
|
||||||
utils.c utils.h \
|
utils.c utils.h \
|
||||||
|
dbus.c dbus.h \
|
||||||
extns.h
|
extns.h
|
||||||
|
|
||||||
tybg_SOURCES = \
|
tybg_SOURCES = \
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
#include "private.h"
|
||||||
|
#include <Elementary.h>
|
||||||
|
#include "dbus.h"
|
||||||
|
#ifdef HAVE_ELDBUS
|
||||||
|
#include <Eldbus.h>
|
||||||
|
|
||||||
|
static Eldbus_Connection *ty_dbus_conn = NULL;
|
||||||
|
static Eldbus_Object *ty_e_object = NULL;
|
||||||
|
|
||||||
|
void
|
||||||
|
ty_dbus_link_detect(const char *url)
|
||||||
|
{
|
||||||
|
Eldbus_Message *msg;
|
||||||
|
|
||||||
|
msg = eldbus_message_method_call_new("org.enlightenment.wm.service",
|
||||||
|
"/org/enlightenment/wm/RemoteObject",
|
||||||
|
"org.enlightenment.wm.Teamwork",
|
||||||
|
"LinkDetect");
|
||||||
|
|
||||||
|
eldbus_message_arguments_append(msg, "s", url);
|
||||||
|
eldbus_object_send(ty_e_object, msg, NULL, NULL, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ty_dbus_init(void)
|
||||||
|
{
|
||||||
|
Eldbus_Service_Interface *iface;
|
||||||
|
|
||||||
|
if (ty_dbus_conn) return;
|
||||||
|
|
||||||
|
eldbus_init();
|
||||||
|
|
||||||
|
ty_dbus_conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SESSION);
|
||||||
|
ty_e_object = eldbus_object_get(ty_dbus_conn,
|
||||||
|
"org.enlightenment.wm.service",
|
||||||
|
"/org/enlightenment/wm/RemoteObject");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ty_dbus_shutdown(void)
|
||||||
|
{
|
||||||
|
if (ty_dbus_conn) eldbus_connection_unref(ty_dbus_conn);
|
||||||
|
ty_dbus_conn = NULL;
|
||||||
|
ty_e_object = NULL;
|
||||||
|
eldbus_shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
void ty_dbus_link_detect(const char *url __UNUSED__) {}
|
||||||
|
void ty_dbus_init(void) {}
|
||||||
|
void ty_dbus_shutdown(void) {}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef _DBUS_H__
|
||||||
|
#define _DBUS_H__ 1
|
||||||
|
|
||||||
|
void ty_dbus_link_detect(const char *url);
|
||||||
|
void ty_dbus_init(void);
|
||||||
|
void ty_dbus_shutdown(void);
|
||||||
|
|
||||||
|
#endif
|
|
@ -13,6 +13,7 @@
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "ipc.h"
|
#include "ipc.h"
|
||||||
#include "sel.h"
|
#include "sel.h"
|
||||||
|
#include "dbus.h"
|
||||||
|
|
||||||
#if (ELM_VERSION_MAJOR == 1) && (ELM_VERSION_MINOR < 8)
|
#if (ELM_VERSION_MAJOR == 1) && (ELM_VERSION_MINOR < 8)
|
||||||
#define PANES_TOP "left"
|
#define PANES_TOP "left"
|
||||||
|
@ -2936,12 +2937,16 @@ remote:
|
||||||
if (nowm)
|
if (nowm)
|
||||||
ecore_evas_focus_set(ecore_evas_ecore_evas_get(
|
ecore_evas_focus_set(ecore_evas_ecore_evas_get(
|
||||||
evas_object_evas_get(wn->win)), 1);
|
evas_object_evas_get(wn->win)), 1);
|
||||||
|
|
||||||
|
ty_dbus_init();
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
end:
|
end:
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
||||||
free(cmd);
|
free(cmd);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
ty_dbus_shutdown();
|
||||||
ipc_shutdown();
|
ipc_shutdown();
|
||||||
|
|
||||||
while (wins)
|
while (wins)
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include <Elementary.h>
|
#include <Elementary.h>
|
||||||
#include "termio.h"
|
#include "termio.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "dbus.h"
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
coord_back(int *x, int *y, int w, int h __UNUSED__)
|
coord_back(int *x, int *y, int w, int h __UNUSED__)
|
||||||
|
@ -204,9 +205,10 @@ _termio_link_find(Evas_Object *obj, int cx, int cy,
|
||||||
if ((len > 1) && (!endmatch))
|
if ((len > 1) && (!endmatch))
|
||||||
{
|
{
|
||||||
Eina_Bool is_file = _is_file(s);
|
Eina_Bool is_file = _is_file(s);
|
||||||
|
Eina_Bool is_url = link_is_url(s);
|
||||||
if (is_file ||
|
if (is_file ||
|
||||||
link_is_email(s) ||
|
link_is_email(s) ||
|
||||||
link_is_url(s))
|
is_url)
|
||||||
{
|
{
|
||||||
if (x1r) *x1r = x1;
|
if (x1r) *x1r = x1;
|
||||||
if (y1r) *y1r = y1;
|
if (y1r) *y1r = y1;
|
||||||
|
@ -219,6 +221,10 @@ _termio_link_find(Evas_Object *obj, int cx, int cy,
|
||||||
free(s);
|
free(s);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
else if (is_url)
|
||||||
|
{
|
||||||
|
ty_dbus_link_detect(s);
|
||||||
|
}
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue