discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=bedf56c457939c897e1eac1f3a2b27c945166178

commit bedf56c457939c897e1eac1f3a2b27c945166178
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Nov 20 15:26:49 2013 -0500

    add back/forward mouse button support for efm when a toolbar is present
    
    button numbers untested because I don't have a mouse, so if they're wrong 
someone should post the results of clicking those buttons from xev
    
    T67
---
 src/modules/fileman/e_fwin_nav.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/modules/fileman/e_fwin_nav.c b/src/modules/fileman/e_fwin_nav.c
index d382260..fffcd19 100644
--- a/src/modules/fileman/e_fwin_nav.c
+++ b/src/modules/fileman/e_fwin_nav.c
@@ -55,6 +55,8 @@ static void             _cb_button_click(void *data, 
Evas_Object *obj, const cha
 static void             _cb_scroll_resize(void *data, Evas *e __UNUSED__, 
Evas_Object *obj __UNUSED__, void *event_info);
 static void             _box_button_append(Instance *inst, const char *label, 
Edje_Signal_Cb func);
 static void             _box_button_free(Nav_Item *ni);
+static void _cb_fm_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *event_info);
+
 
 static Eina_List *instances = NULL;
 static const char *_nav_mod_dir = NULL;
@@ -289,6 +291,8 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, 
const char *style)
    inst->tbar = tbar;
    inst->o_fm = o_fm;
 
+   evas_object_event_callback_add(o_fm, EVAS_CALLBACK_MOUSE_DOWN, 
_cb_fm_mouse_down, inst);
+
    snprintf(buf, sizeof(buf), "%s/e-module-efm_nav.edj", _nav_mod_dir);
    inst->theme = eina_stringshare_add(buf);
 
@@ -392,6 +396,9 @@ _gc_shutdown(E_Gadcon_Client *gcc)
    instances = eina_list_remove(instances, inst);
 
    evas_object_event_callback_del_full(inst->o_fm,
+                                       EVAS_CALLBACK_MOUSE_DOWN,
+                                       _cb_fm_mouse_down, inst);
+   evas_object_event_callback_del_full(inst->o_fm,
                                        EVAS_CALLBACK_KEY_DOWN,
                                        _cb_key_down, inst);
 
@@ -588,6 +595,18 @@ _cb_favorites_click(void *data, Evas_Object *obj 
__UNUSED__, const char *emissio
 }
 
 static void
+_cb_fm_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
+{
+   Instance *inst = data;
+   Evas_Event_Mouse_Down *ev = event_info;
+
+   if (ev->button == 9)
+     _cb_forward_click(inst, NULL, NULL, NULL);
+   else if (ev->button == 8)
+     _cb_back_click(inst, NULL, NULL, NULL);
+}
+
+static void
 _cb_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info)
 {
    Instance *inst;

-- 


Reply via email to