diff --git a/src/bin/e_fileman_smart.c b/src/bin/e_fileman_smart.c index 844d6121b..da29d3ebf 100644 --- a/src/bin/e_fileman_smart.c +++ b/src/bin/e_fileman_smart.c @@ -2432,10 +2432,7 @@ _e_fm_win_key_down_cb(void *data, int type, void *event) // make this call generic if (!sd->win) return 1; - // this doesnt work: - //if (ev->win != sd->win->evas_win) return 1; - if(ev->win != ecore_evas_software_x11_subwindow_get(sd->win->ecore_evas)) - return 1; + if (ev->win != sd->win->evas_sub_win) return 1; if (!strcmp(ev->keysymbol, "Up")) _e_fm_icon_select_up(sd); diff --git a/src/bin/e_win.c b/src/bin/e_win.c index a7bb1972b..7b7f51b1c 100644 --- a/src/bin/e_win.c +++ b/src/bin/e_win.c @@ -46,7 +46,7 @@ e_win_new(E_Container *con) win->engine = e_canvas_engine_decide(e_config->evas_engine_win); win->ecore_evas = e_canvas_new(e_config->evas_engine_win, con->manager->root, 0, 0, 1, 1, 1, 0, - &(win->evas_win), NULL); + &(win->evas_win), &(win->evas_sub_win)); e_canvas_add(win->ecore_evas); ecore_evas_data_set(win->ecore_evas, "E_Win", win); ecore_evas_callback_move_set(win->ecore_evas, _e_win_cb_move); diff --git a/src/bin/e_win.h b/src/bin/e_win.h index c28361b0c..4895747a6 100644 --- a/src/bin/e_win.h +++ b/src/bin/e_win.h @@ -22,6 +22,7 @@ struct _E_Win Ecore_Evas *ecore_evas; Evas *evas; Ecore_X_Window evas_win; + Ecore_X_Window evas_sub_win; unsigned char placed : 1; int min_w, min_h, max_w, max_h, base_w, base_h; int step_x, step_y;