Hello. i have been using enlightenment e.DR17 for a while and found sloppy and
mouse focus model very confusing... but, CLICK model... is almost unusable in
it's current status.
So there where two main problems with my desktop.
The first was that the winlist (alt-tab) raised and focused windows while
cicling them,so they were never orderer in the stack in the way i use.
Suppouse, you have windows [A, B, C, D]
You switch from [A] -> [C] back and forth because you are on your editor at
[A] and reading the reference library at [C]. As winlist does not alter the
stack order, you always must to "jump over" [B].
This can be corrected removing focus while cicling windows in the winlist so
when you switch from [A] -> [C] the stack changes to [C, A, B, D]
Whe you come back to the previous app, stack comes to [A, C, B, D]
That means, that the most used apps, keep on top of the stack, while your
monitoring terminal with iptraf keeps on the bottom, no matter in which order
it started.
This is also the way that MS Windows works, and is useful for me, and many
people likes that way.
To achieve this i have just commented some lines at e_winlist.c, function
static void _e_winlist_activate(void)
Where it says....
if (ok)
{
if (e_config->winlist_warp_while_selecting)
{
ecore_x_pointer_xy_get(winlist->zone->container->win, &warp_x,
&warp_y);
warp_to_x = ww->border->x + (ww->border->w / 2);
warp_to_y = ww->border->y + (ww->border->h / 2);
warp_to = 1;
if (!warp_timer)
warp_timer = ecore_timer_add(0.01, _e_winlist_warp_timer,
NULL);
if (!animator)
animator = ecore_animator_add(_e_winlist_animator, NULL);
}
if (!ww->border->lock_user_stacking)
e_border_raise(ww->border);
if (!ww->border->lock_focus_out)
e_border_focus_set(ww->border, 1, 1);
}
We comment the last four lines:
if (ok)
{
if (e_config->winlist_warp_while_selecting)
{
ecore_x_pointer_xy_get(winlist->zone->container->win, &warp_x,
&warp_y);
warp_to_x = ww->border->x + (ww->border->w / 2);
warp_to_y = ww->border->y + (ww->border->h / 2);
warp_to = 1;
if (!warp_timer)
warp_timer = ecore_timer_add(0.01, _e_winlist_warp_timer,
NULL);
if (!animator)
animator = ecore_animator_add(_e_winlist_animator, NULL);
}
// if (!ww->border->lock_user_stacking)
// e_border_raise(ww->border);
// if (!ww->border->lock_focus_out)
// e_border_focus_set(ww->border, 1, 1);
}
Voila, winlist now works as wanted, ordering windows in the stack as you use
them.
There is a seccond annoyance.. with engage. When you switch apps with the
mousewheel, it raises them... but... why it does not give them focus??? if
you use CLICK focus model that can be really annoying, because you have a
raised window and the focus on any other window in the background.
To solve that i have added a single line in src/module/e_mod_main.c on the
function:
static void
_engage_icon_cb_mouse_wheel(void *data, Evas *e, Evas_Object *obj, void
*event_info)
where it says:
e_border_raise(ai->border);
e_desk_show(ai->border->desk);
_engage_bar_motion_handle(ic->eb, ev->canvas.x, ev->canvas.y);
it should say:
e_border_raise(ai->border);
e_desk_show(ai->border->desk);
e_border_focus_set(ai->border, 1, 1);
_engage_bar_motion_handle(ic->eb, ev->canvas.x, ev->canvas.y);
Well... wish someone can benefit from this!
Sorry for my bad english.
Ivan Hernandez (aka zaikxtox)
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel