forked from enlightenment/enlightenment
parent
91ba685705
commit
0640ab1360
2
TODO
2
TODO
|
@ -103,7 +103,7 @@ Some of the things (in very short form) that need to be done to E17...
|
||||||
* make fdo .desktop support work on debian & ubuntu
|
* make fdo .desktop support work on debian & ubuntu
|
||||||
* full fm2 support as an icon fm needs work - beyond fsel needs and for icons
|
* full fm2 support as an icon fm needs work - beyond fsel needs and for icons
|
||||||
on the desktop etc. etc.
|
on the desktop etc. etc.
|
||||||
* winlist and exebuf can let the mouse select items
|
* winlist can let the mouse select items
|
||||||
* up arrow in exebuf with empty buf goes into history mode and up/down let u
|
* up arrow in exebuf with empty buf goes into history mode and up/down let u
|
||||||
browse command history
|
browse command history
|
||||||
* switch to desktop of a new window if it opens on another desktop than the
|
* switch to desktop of a new window if it opens on another desktop than the
|
||||||
|
|
|
@ -786,6 +786,26 @@ group {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
part {
|
||||||
|
name: "e.event.exebuf.item";
|
||||||
|
type: RECT;
|
||||||
|
mouse_events: 1;
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
min: 14 14;
|
||||||
|
visible: 1;
|
||||||
|
color: 0 0 0 0;
|
||||||
|
rel1 {
|
||||||
|
relative: 1.0 0.0;
|
||||||
|
offset: 1 -1;
|
||||||
|
to_x: "e.swallow.icons";
|
||||||
|
}
|
||||||
|
rel2 {
|
||||||
|
relative: 1.0 1.0;
|
||||||
|
offset: -1 -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
programs {
|
programs {
|
||||||
program {
|
program {
|
||||||
|
|
|
@ -45,9 +45,14 @@ static void _e_exebuf_prev(void);
|
||||||
static void _e_exebuf_complete(void);
|
static void _e_exebuf_complete(void);
|
||||||
static void _e_exebuf_backspace(void);
|
static void _e_exebuf_backspace(void);
|
||||||
static void _e_exebuf_matches_update(void);
|
static void _e_exebuf_matches_update(void);
|
||||||
|
static void _e_exebuf_cb_eap_item_mouse_in(void *data, Evas *evas,
|
||||||
|
Evas_Object *obj, void *event_info);
|
||||||
|
static void _e_exebuf_cb_exe_item_mouse_in(void *data, Evas *evas,
|
||||||
|
Evas_Object *obj, void *event_info);
|
||||||
static int _e_exebuf_cb_key_down(void *data, int type, void *event);
|
static int _e_exebuf_cb_key_down(void *data, int type, void *event);
|
||||||
static int _e_exebuf_cb_mouse_down(void *data, int type, void *event);
|
static int _e_exebuf_cb_mouse_down(void *data, int type, void *event);
|
||||||
static int _e_exebuf_cb_mouse_up(void *data, int type, void *event);
|
static int _e_exebuf_cb_mouse_up(void *data, int type, void *event);
|
||||||
|
static int _e_exebuf_cb_mouse_move(void *data, int type, void *event);
|
||||||
static int _e_exebuf_cb_mouse_wheel(void *data, int type, void *event);
|
static int _e_exebuf_cb_mouse_wheel(void *data, int type, void *event);
|
||||||
static int _e_exebuf_exe_scroll_timer(void *data);
|
static int _e_exebuf_exe_scroll_timer(void *data);
|
||||||
static int _e_exebuf_eap_scroll_timer(void *data);
|
static int _e_exebuf_eap_scroll_timer(void *data);
|
||||||
|
@ -136,9 +141,10 @@ e_exebuf_show(E_Zone *zone)
|
||||||
if (e_winlist_active_get()) return 0;
|
if (e_winlist_active_get()) return 0;
|
||||||
if (exebuf) return 0;
|
if (exebuf) return 0;
|
||||||
|
|
||||||
input_window = ecore_x_window_input_new(zone->container->win, 0, 0, 1, 1);
|
input_window = ecore_x_window_input_new(zone->container->win, zone->x,
|
||||||
|
zone->y, zone->w, zone->h);
|
||||||
ecore_x_window_show(input_window);
|
ecore_x_window_show(input_window);
|
||||||
if (!e_grabinput_get(input_window, 0, input_window))
|
if (!e_grabinput_get(input_window, 1, input_window))
|
||||||
{
|
{
|
||||||
ecore_x_window_del(input_window);
|
ecore_x_window_del(input_window);
|
||||||
input_window = 0;
|
input_window = 0;
|
||||||
|
@ -161,10 +167,10 @@ e_exebuf_show(E_Zone *zone)
|
||||||
}
|
}
|
||||||
cmd_buf[0] = 0;
|
cmd_buf[0] = 0;
|
||||||
|
|
||||||
evas_event_feed_mouse_move(exebuf->evas, -1000000, -1000000, ecore_x_current_time_get(), NULL);
|
|
||||||
|
|
||||||
e_popup_layer_set(exebuf, 255);
|
e_popup_layer_set(exebuf, 255);
|
||||||
evas_event_freeze(exebuf->evas);
|
evas_event_freeze(exebuf->evas);
|
||||||
|
evas_event_feed_mouse_in(exebuf->evas, ecore_x_current_time_get(), NULL);
|
||||||
|
evas_event_feed_mouse_move(exebuf->evas, -1000000, -1000000, ecore_x_current_time_get(), NULL);
|
||||||
o = edje_object_add(exebuf->evas);
|
o = edje_object_add(exebuf->evas);
|
||||||
bg_object = o;
|
bg_object = o;
|
||||||
e_theme_edje_object_set(o, "base/theme/exebuf",
|
e_theme_edje_object_set(o, "base/theme/exebuf",
|
||||||
|
@ -221,6 +227,9 @@ e_exebuf_show(E_Zone *zone)
|
||||||
handlers = evas_list_append
|
handlers = evas_list_append
|
||||||
(handlers, ecore_event_handler_add
|
(handlers, ecore_event_handler_add
|
||||||
(ECORE_X_EVENT_MOUSE_BUTTON_UP, _e_exebuf_cb_mouse_up, NULL));
|
(ECORE_X_EVENT_MOUSE_BUTTON_UP, _e_exebuf_cb_mouse_up, NULL));
|
||||||
|
handlers = evas_list_append
|
||||||
|
(handlers, ecore_event_handler_add
|
||||||
|
(ECORE_X_EVENT_MOUSE_MOVE, _e_exebuf_cb_mouse_move, NULL));
|
||||||
handlers = evas_list_append
|
handlers = evas_list_append
|
||||||
(handlers, ecore_event_handler_add
|
(handlers, ecore_event_handler_add
|
||||||
(ECORE_X_EVENT_MOUSE_WHEEL, _e_exebuf_cb_mouse_wheel, NULL));
|
(ECORE_X_EVENT_MOUSE_WHEEL, _e_exebuf_cb_mouse_wheel, NULL));
|
||||||
|
@ -683,7 +692,11 @@ _e_exebuf_complete(void)
|
||||||
{
|
{
|
||||||
if (exe_sel->app)
|
if (exe_sel->app)
|
||||||
{
|
{
|
||||||
strncpy(cmd_buf, exe_sel->app->name, EXEBUFLEN - 1);
|
if (exe_sel->app->exe_params)
|
||||||
|
snprintf(cmd_buf, EXEBUFLEN - 1, "%s %s",
|
||||||
|
exe_sel->app->exe, exe_sel->app->exe_params);
|
||||||
|
else
|
||||||
|
strncpy(cmd_buf, exe_sel->app->exe, EXEBUFLEN - 1);
|
||||||
cmd_buf[EXEBUFLEN - 1] = 0;
|
cmd_buf[EXEBUFLEN - 1] = 0;
|
||||||
}
|
}
|
||||||
else if (exe_sel->file)
|
else if (exe_sel->file)
|
||||||
|
@ -929,6 +942,8 @@ _e_exebuf_matches_update(void)
|
||||||
else if (opt == 0x1) snprintf(buf, sizeof(buf), "%s", exe->app->comment);
|
else if (opt == 0x1) snprintf(buf, sizeof(buf), "%s", exe->app->comment);
|
||||||
else snprintf(buf, sizeof(buf), "%s", exe->app->name);
|
else snprintf(buf, sizeof(buf), "%s", exe->app->name);
|
||||||
edje_object_part_text_set(o, "e.text.title", buf);
|
edje_object_part_text_set(o, "e.text.title", buf);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN,
|
||||||
|
_e_exebuf_cb_eap_item_mouse_in, exe);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
if (edje_object_part_exists(exe->bg_object, "e.swallow.icons"))
|
if (edje_object_part_exists(exe->bg_object, "e.swallow.icons"))
|
||||||
{
|
{
|
||||||
|
@ -970,6 +985,8 @@ _e_exebuf_matches_update(void)
|
||||||
e_theme_edje_object_set(o, "base/theme/exebuf",
|
e_theme_edje_object_set(o, "base/theme/exebuf",
|
||||||
"e/widgets/exebuf/item");
|
"e/widgets/exebuf/item");
|
||||||
edje_object_part_text_set(o, "e.text.title", exe->file);
|
edje_object_part_text_set(o, "e.text.title", exe->file);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN,
|
||||||
|
_e_exebuf_cb_exe_item_mouse_in, exe);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
if (edje_object_part_exists(exe->bg_object, "e.swallow.icons"))
|
if (edje_object_part_exists(exe->bg_object, "e.swallow.icons"))
|
||||||
{
|
{
|
||||||
|
@ -1000,6 +1017,26 @@ _e_exebuf_matches_update(void)
|
||||||
evas_event_thaw(exebuf->evas);
|
evas_event_thaw(exebuf->evas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_exebuf_cb_eap_item_mouse_in(void *data, Evas *evas, Evas_Object *obj,
|
||||||
|
void *event_info)
|
||||||
|
{
|
||||||
|
if (exe_sel) _e_exebuf_exe_desel(exe_sel);
|
||||||
|
if (!(exe_sel = data)) return;
|
||||||
|
which_list = EAP_LIST;
|
||||||
|
_e_exebuf_exe_sel(exe_sel);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_exebuf_cb_exe_item_mouse_in(void *data, Evas *evas, Evas_Object *obj,
|
||||||
|
void *event_info)
|
||||||
|
{
|
||||||
|
if (exe_sel) _e_exebuf_exe_desel(exe_sel);
|
||||||
|
if (!(exe_sel = data)) return;
|
||||||
|
which_list = EXE_LIST;
|
||||||
|
_e_exebuf_exe_sel(exe_sel);
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_e_exebuf_cb_key_down(void *data, int type, void *event)
|
_e_exebuf_cb_key_down(void *data, int type, void *event)
|
||||||
{
|
{
|
||||||
|
@ -1057,6 +1094,10 @@ _e_exebuf_cb_mouse_down(void *data, int type, void *event)
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
if (ev->win != input_window) return 1;
|
if (ev->win != input_window) return 1;
|
||||||
|
if (ev->button == 1)
|
||||||
|
_e_exebuf_exec();
|
||||||
|
else if (ev->button == 2)
|
||||||
|
_e_exebuf_complete();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1070,6 +1111,20 @@ _e_exebuf_cb_mouse_up(void *data, int type, void *event)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_e_exebuf_cb_mouse_move(void *data, int type, void *event)
|
||||||
|
{
|
||||||
|
Ecore_X_Event_Mouse_Move *ev;
|
||||||
|
|
||||||
|
ev = event;
|
||||||
|
if (ev->win != input_window) return 1;
|
||||||
|
|
||||||
|
evas_event_feed_mouse_move(exebuf->evas, ev->x - exebuf->x +
|
||||||
|
exebuf->zone->x, ev->y - exebuf->y + exebuf->zone->y, ev->time, NULL);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_e_exebuf_cb_mouse_wheel(void *data, int type, void *event)
|
_e_exebuf_cb_mouse_wheel(void *data, int type, void *event)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue