SVN revision: 26246
This commit is contained in:
Viktor Kojouharov 2006-09-30 18:59:14 +00:00
parent 50bb66fe29
commit 61bf8aa69b
4 changed files with 2555 additions and 792 deletions

1
TODO
View File

@ -101,7 +101,6 @@ Some of the things (in very short form) that need to be done to E17...
* make fdo .desktop support work on debian & ubuntu
* full fm2 support as an icon fm needs work - beyond fsel needs and for icons
on the desktop etc. etc.
* winlist can let the mouse select items
* up arrow in exebuf with empty buf goes into history mode and up/down let u
browse command history
* switch to desktop of a new window if it opens on another desktop than the

View File

@ -768,6 +768,27 @@ group {
}
}
}
part {
name: "e.event.winlist.item";
type: RECT;
mouse_events: 1;
description {
state: "default" 0.0;
min: 14 14;
visible: 1;
color: 0 0 0 0;
rel1 {
relative: 0.0 0.0;
offset: 0 0;
to: "title_outline";
}
rel2 {
relative: 1.0 1.0;
offset: -1 -1;
to: "title_outline";
}
}
}
}
programs {
program {

3281
po/bg.po

File diff suppressed because it is too large Load Diff

View File

@ -29,9 +29,12 @@ static int _e_winlist_cb_key_up(void *data, int type, void *event);
static int _e_winlist_cb_mouse_down(void *data, int type, void *event);
static int _e_winlist_cb_mouse_up(void *data, int type, void *event);
static int _e_winlist_cb_mouse_wheel(void *data, int type, void *event);
static int _e_winlist_cb_mouse_move(void *data, int type, void *event);
static int _e_winlist_scroll_timer(void *data);
static int _e_winlist_warp_timer(void *data);
static int _e_winlist_animator(void *data);
static void _e_winlist_cb_item_mouse_in(void *data, Evas *evas,
Evas_Object *obj, void *event_info);
/* local subsystem globals */
static E_Popup *winlist = NULL;
@ -108,6 +111,7 @@ e_winlist_show(E_Zone *zone)
winlist = e_popup_new(zone, x, y, w, h);
if (!winlist) return 0;
evas_event_feed_mouse_in(winlist->evas, ecore_x_current_time_get(), NULL);
evas_event_feed_mouse_move(winlist->evas, -1000000, -1000000, ecore_x_current_time_get(), NULL);
e_popup_layer_set(winlist, 255);
@ -178,6 +182,9 @@ e_winlist_show(E_Zone *zone)
handlers = evas_list_append
(handlers, ecore_event_handler_add
(ECORE_X_EVENT_MOUSE_WHEEL, _e_winlist_cb_mouse_wheel, NULL));
handlers = evas_list_append
(handlers, ecore_event_handler_add
(ECORE_X_EVENT_MOUSE_MOVE, _e_winlist_cb_mouse_move, NULL));
e_popup_show(winlist);
return 1;
@ -430,6 +437,9 @@ _e_winlist_border_add(E_Border *bd, E_Zone *zone, E_Desk *desk)
e_theme_edje_object_set(o, "base/theme/winlist",
"e/widgets/winlist/item");
edje_object_part_text_set(o, "e.text.label", e_border_name_get(ww->border));
if (!e_config->winlist_warp_while_selecting)
evas_object_event_callback_add(ww->bg_object, EVAS_CALLBACK_MOUSE_IN,
_e_winlist_cb_item_mouse_in, ww);
evas_object_show(o);
if (edje_object_part_exists(ww->bg_object, "e.swallow.icon"))
{
@ -834,6 +844,20 @@ _e_winlist_cb_mouse_wheel(void *data, int type, void *event)
return 1;
}
static int
_e_winlist_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(winlist->evas, ev->x - winlist->x +
winlist->zone->x, ev->y - winlist->y + winlist->zone->y, ev->time, NULL);
return 1;
}
static int
_e_winlist_scroll_timer(void *data)
{
@ -905,3 +929,23 @@ _e_winlist_animator(void *data)
animator = NULL;
return 0;
}
static void
_e_winlist_cb_item_mouse_in(void *data, Evas *evas, Evas_Object *obj,
void *event_info)
{
E_Winlist_Win *ww;
Evas_List *l;
if (!(ww = data)) return;
if (!wins) return;
for (l = wins; l; l = l->next)
{
if (l->data == ww) break;
}
_e_winlist_deactivate();
win_selected = l;
_e_winlist_show_active();
_e_winlist_activate();
}