forked from enlightenment/enlightenment
parent
077055867c
commit
57d6e197c3
2
TODO
2
TODO
|
@ -33,8 +33,6 @@ ISSUES:
|
||||||
* pager edje gfx...
|
* pager edje gfx...
|
||||||
* pager needs desktop bg thumbnail wrapper/handler and cache system
|
* pager needs desktop bg thumbnail wrapper/handler and cache system
|
||||||
* pager needs to support miniature versions of bg object
|
* pager needs to support miniature versions of bg object
|
||||||
* in firefox if you scan over the menu bar selecting menus sometimes focus will flicker in/out of ffox
|
|
||||||
* on shade window loses focus (bad... but ok) but on unshade it doesnt get it back
|
|
||||||
* consoldiate client lists - we have client lists for containers, zones, desks AND e_borders.c consolidate into 1 list that has all borders with their stacking and what desk they belong to (and thus zone and container)
|
* consoldiate client lists - we have client lists for containers, zones, desks AND e_borders.c consolidate into 1 list that has all borders with their stacking and what desk they belong to (and thus zone and container)
|
||||||
* virtual desktops need an overhaul. hacked in waay too quickly.
|
* virtual desktops need an overhaul. hacked in waay too quickly.
|
||||||
* virtual desktops need fixing to work with zones properly
|
* virtual desktops need fixing to work with zones properly
|
||||||
|
|
|
@ -635,6 +635,7 @@ e_border_focus_set(E_Border *bd, int focus, int set)
|
||||||
E_OBJECT_CHECK(bd);
|
E_OBJECT_CHECK(bd);
|
||||||
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
|
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
|
||||||
if (!bd->client.icccm.accepts_focus) return;
|
if (!bd->client.icccm.accepts_focus) return;
|
||||||
|
// printf("flag focus to %i\n", focus);
|
||||||
if ((focus) && (!bd->focused))
|
if ((focus) && (!bd->focused))
|
||||||
edje_object_signal_emit(bd->bg_object, "active", "");
|
edje_object_signal_emit(bd->bg_object, "active", "");
|
||||||
else if ((!focus) && (bd->focused))
|
else if ((!focus) && (bd->focused))
|
||||||
|
@ -642,6 +643,7 @@ e_border_focus_set(E_Border *bd, int focus, int set)
|
||||||
bd->focused = focus;
|
bd->focused = focus;
|
||||||
if (set)
|
if (set)
|
||||||
{
|
{
|
||||||
|
// printf("send focus to %i\n", focus);
|
||||||
if (bd->focused)
|
if (bd->focused)
|
||||||
{
|
{
|
||||||
if ((focused != bd) && (focused))
|
if ((focused != bd) && (focused))
|
||||||
|
@ -671,7 +673,7 @@ e_border_focus_set(E_Border *bd, int focus, int set)
|
||||||
*
|
*
|
||||||
* now the focus is on Y where it should be on X
|
* now the focus is on Y where it should be on X
|
||||||
*/
|
*/
|
||||||
// ecore_x_icccm_take_focus_send(bd->client.win, ECORE_X_CURRENT_TIME);
|
ecore_x_icccm_take_focus_send(bd->client.win, ECORE_X_CURRENT_TIME);
|
||||||
e_hints_active_window_set(bd->container->manager, bd->client.win);
|
e_hints_active_window_set(bd->container->manager, bd->client.win);
|
||||||
ecore_x_window_focus(bd->client.win);
|
ecore_x_window_focus(bd->client.win);
|
||||||
}
|
}
|
||||||
|
@ -1524,7 +1526,8 @@ _e_border_cb_window_focus_in(void *data, int ev_type, void *ev)
|
||||||
t = time(NULL);
|
t = time(NULL);
|
||||||
ct = ctime(&t);
|
ct = ctime(&t);
|
||||||
ct[strlen(ct) - 1] = 0;
|
ct[strlen(ct) - 1] = 0;
|
||||||
printf("FF ->IN 0x%x %s md=%s dt=%s\n",
|
printf("FF ->IN %i 0x%x %s md=%s dt=%s\n",
|
||||||
|
e->time,
|
||||||
e->win,
|
e->win,
|
||||||
ct,
|
ct,
|
||||||
modes[e->mode],
|
modes[e->mode],
|
||||||
|
@ -1568,7 +1571,8 @@ _e_border_cb_window_focus_out(void *data, int ev_type, void *ev)
|
||||||
t = time(NULL);
|
t = time(NULL);
|
||||||
ct = ctime(&t);
|
ct = ctime(&t);
|
||||||
ct[strlen(ct) - 1] = 0;
|
ct[strlen(ct) - 1] = 0;
|
||||||
printf("FF <-OUT 0x%x %s md=%s dt=%s\n",
|
printf("FF <-OUT %i 0x%x %s md=%s dt=%s\n",
|
||||||
|
e->time,
|
||||||
e->win,
|
e->win,
|
||||||
ct,
|
ct,
|
||||||
modes[e->mode],
|
modes[e->mode],
|
||||||
|
@ -1578,6 +1582,7 @@ _e_border_cb_window_focus_out(void *data, int ev_type, void *ev)
|
||||||
if (e->mode == ECORE_X_EVENT_MODE_NORMAL)
|
if (e->mode == ECORE_X_EVENT_MODE_NORMAL)
|
||||||
{
|
{
|
||||||
if (e->detail == ECORE_X_EVENT_DETAIL_INFERIOR) return 1;
|
if (e->detail == ECORE_X_EVENT_DETAIL_INFERIOR) return 1;
|
||||||
|
else if (e->detail == ECORE_X_EVENT_DETAIL_NON_LINEAR) return 1;
|
||||||
}
|
}
|
||||||
else if (e->mode == ECORE_X_EVENT_MODE_GRAB)
|
else if (e->mode == ECORE_X_EVENT_MODE_GRAB)
|
||||||
{
|
{
|
||||||
|
@ -1587,16 +1592,11 @@ _e_border_cb_window_focus_out(void *data, int ev_type, void *ev)
|
||||||
}
|
}
|
||||||
else if (e->mode == ECORE_X_EVENT_MODE_UNGRAB)
|
else if (e->mode == ECORE_X_EVENT_MODE_UNGRAB)
|
||||||
{
|
{
|
||||||
/* 1. enter moz window
|
/* for firefox/thunderbird (xul) menu walking */
|
||||||
* 2. activate menu
|
|
||||||
* 3. leave moz window
|
|
||||||
* 4. click
|
|
||||||
if (e->detail == ECORE_X_EVENT_DETAIL_INFERIOR) return 1;
|
if (e->detail == ECORE_X_EVENT_DETAIL_INFERIOR) return 1;
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
else if (e->mode == ECORE_X_EVENT_MODE_WHILE_GRABBED)
|
else if (e->mode == ECORE_X_EVENT_MODE_WHILE_GRABBED)
|
||||||
{
|
{
|
||||||
/* FIXME: If window is grabbed, shouldn't we always return 1? */
|
|
||||||
if (e->detail == ECORE_X_EVENT_DETAIL_ANCESTOR) return 1;
|
if (e->detail == ECORE_X_EVENT_DETAIL_ANCESTOR) return 1;
|
||||||
else if (e->detail == ECORE_X_EVENT_DETAIL_INFERIOR) return 1;
|
else if (e->detail == ECORE_X_EVENT_DETAIL_INFERIOR) return 1;
|
||||||
}
|
}
|
||||||
|
@ -1871,8 +1871,18 @@ _e_border_cb_mouse_in(void *data, int type, void *event)
|
||||||
details[ev->detail]);
|
details[ev->detail]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// if (ev->mode == ECORE_X_EVENT_MODE_GRAB) return 1;
|
/*
|
||||||
// if (ev->mode == ECORE_X_EVENT_MODE_UNGRAB) return 1;
|
if ((ev->mode == ECORE_X_EVENT_MODE_GRAB) &&
|
||||||
|
(ev->detail == ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL) &&
|
||||||
|
(ev->win == bd->event_win) &&
|
||||||
|
(ev->event_win == bd->win))
|
||||||
|
return 1;
|
||||||
|
else if ((ev->mode == ECORE_X_EVENT_MODE_UNGRAB) &&
|
||||||
|
(ev->detail == ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL) &&
|
||||||
|
(ev->win == bd->event_win) &&
|
||||||
|
(ev->event_win == bd->win))
|
||||||
|
return 1;
|
||||||
|
*/
|
||||||
if (ev->event_win == bd->win)
|
if (ev->event_win == bd->win)
|
||||||
{
|
{
|
||||||
/* FIXME: this would normally put focus on the client on pointer */
|
/* FIXME: this would normally put focus on the client on pointer */
|
||||||
|
@ -2683,40 +2693,50 @@ _e_border_eval(E_Border *bd)
|
||||||
if ((bd->changes.shading))
|
if ((bd->changes.shading))
|
||||||
{
|
{
|
||||||
/* show at start of unshade (but don't hide until end of shade) */
|
/* show at start of unshade (but don't hide until end of shade) */
|
||||||
if (bd->shaded) ecore_x_window_show(bd->client.shell_win);
|
if (bd->shaded)
|
||||||
|
// ecore_x_window_show(bd->client.shell_win);
|
||||||
|
ecore_x_window_raise(bd->client.shell_win);
|
||||||
bd->changes.shading = 0;
|
bd->changes.shading = 0;
|
||||||
}
|
}
|
||||||
if ((bd->changes.shaded) && (bd->changes.pos) && (bd->changes.size))
|
if ((bd->changes.shaded) && (bd->changes.pos) && (bd->changes.size))
|
||||||
{
|
{
|
||||||
if (bd->shaded)
|
if (bd->shaded)
|
||||||
ecore_x_window_hide(bd->client.shell_win);
|
// ecore_x_window_hide(bd->client.shell_win);
|
||||||
|
ecore_x_window_lower(bd->client.shell_win);
|
||||||
else
|
else
|
||||||
ecore_x_window_show(bd->client.shell_win);
|
// ecore_x_window_show(bd->client.shell_win);
|
||||||
|
ecore_x_window_raise(bd->client.shell_win);
|
||||||
bd->changes.shaded = 0;
|
bd->changes.shaded = 0;
|
||||||
}
|
}
|
||||||
else if ((bd->changes.shaded) && (bd->changes.pos))
|
else if ((bd->changes.shaded) && (bd->changes.pos))
|
||||||
{
|
{
|
||||||
if (bd->shaded)
|
if (bd->shaded)
|
||||||
ecore_x_window_hide(bd->client.shell_win);
|
// ecore_x_window_hide(bd->client.shell_win);
|
||||||
|
ecore_x_window_lower(bd->client.shell_win);
|
||||||
else
|
else
|
||||||
ecore_x_window_show(bd->client.shell_win);
|
// ecore_x_window_show(bd->client.shell_win);
|
||||||
|
ecore_x_window_raise(bd->client.shell_win);
|
||||||
bd->changes.size = 1;
|
bd->changes.size = 1;
|
||||||
bd->changes.shaded = 0;
|
bd->changes.shaded = 0;
|
||||||
}
|
}
|
||||||
else if ((bd->changes.shaded) && (bd->changes.size))
|
else if ((bd->changes.shaded) && (bd->changes.size))
|
||||||
{
|
{
|
||||||
if (bd->shaded)
|
if (bd->shaded)
|
||||||
ecore_x_window_hide(bd->client.shell_win);
|
// ecore_x_window_hide(bd->client.shell_win);
|
||||||
|
ecore_x_window_lower(bd->client.shell_win);
|
||||||
else
|
else
|
||||||
ecore_x_window_show(bd->client.shell_win);
|
// ecore_x_window_show(bd->client.shell_win);
|
||||||
|
ecore_x_window_raise(bd->client.shell_win);
|
||||||
bd->changes.shaded = 0;
|
bd->changes.shaded = 0;
|
||||||
}
|
}
|
||||||
else if (bd->changes.shaded)
|
else if (bd->changes.shaded)
|
||||||
{
|
{
|
||||||
if (bd->shaded)
|
if (bd->shaded)
|
||||||
ecore_x_window_hide(bd->client.shell_win);
|
// ecore_x_window_hide(bd->client.shell_win);
|
||||||
|
ecore_x_window_lower(bd->client.shell_win);
|
||||||
else
|
else
|
||||||
ecore_x_window_show(bd->client.shell_win);
|
// ecore_x_window_show(bd->client.shell_win);
|
||||||
|
ecore_x_window_raise(bd->client.shell_win);
|
||||||
bd->changes.size = 1;
|
bd->changes.size = 1;
|
||||||
bd->changes.shaded = 0;
|
bd->changes.shaded = 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue