From c20ee998c224cf81b7e6f9c267aa02a709996411 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Wed, 31 Aug 2011 00:08:52 +0000 Subject: [PATCH] e17/evry: allow theming evry gadget. show gadget on mouse up, double clikc hides it (for now) SVN revision: 63015 --- data/themes/default.edc | 1 + src/modules/everything/evry_gadget.c | 27 +++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/data/themes/default.edc b/data/themes/default.edc index 266564c22..1a3b7de9d 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -10412,6 +10412,7 @@ collections { group { name: "e/modules/start/main"; + alias: "e/modules/everything/gadget"; max: 128 128; images { image: "logo_white_128.png" COMP; diff --git a/src/modules/everything/evry_gadget.c b/src/modules/everything/evry_gadget.c index 0f73f9c95..b87d2215e 100644 --- a/src/modules/everything/evry_gadget.c +++ b/src/modules/everything/evry_gadget.c @@ -13,8 +13,12 @@ struct _Instance Gadget_Config *cfg; E_Config_Dialog *cfd; E_Menu *menu; + + int mouse_down; + }; +static void _button_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _button_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); /* gadcon requirements */ @@ -56,7 +60,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) /* if ((p = evry_plugin_find(id->name))) * o = evry_util_icon_get(EVRY_ITEM(p), gc->evas) */ - e_theme_edje_object_set(o, "base/theme/modules/start", "e/modules/start/main"); + e_theme_edje_object_set(o, "base/theme/modules/everything", "e/modules/everything/gadget"); edje_object_signal_emit(o, "e,state,unfocused", "e"); gcc = e_gadcon_client_new(gc, name, id, style, o); @@ -65,6 +69,9 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) inst->gcc = gcc; inst->o_button = o; + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, + _button_cb_mouse_up, inst); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _button_cb_mouse_down, inst); return gcc; @@ -195,6 +202,21 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_ Evas_Event_Mouse_Down *ev; inst = data; + inst->mouse_down = 1; +} + +static void +_button_cb_mouse_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) +{ + Instance *inst; + Evas_Event_Mouse_Down *ev; + + inst = data; + if (!inst->mouse_down) + return; + + inst->mouse_down = 0; + ev = event_info; if (ev->button == 1) { @@ -280,8 +302,9 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_ e_win_show(win->ewin); bd = win->ewin->border; e_border_focus_set(bd, 1, 1); - bd->client.netwm.state.skip_taskbar = 1; + /* bd->client.netwm.state.skip_taskbar = 1; */ bd->client.netwm.state.skip_pager = 1; + bd->sticky = 1; inst->win = win; e_gadcon_locked_set(inst->gcc->gadcon, 1);