Unforutnealy the focusing still seems buggy.
If I open PAN and Evolution and try to autoraise them alternately they
stopp focussing properly
:(
Andy
On Tue, 2003-01-07 at 22:16, [EMAIL PROTECTED]
wrote:
> Enlightenment CVS committal
>
> Author : rbdpngn
> Project : e17
> Module : apps/e
>
> Dir : e17/apps/e/src
>
>
> Modified Files:
> Tag: SPLIT
> Makefile.am actions.c border.c border.h desktops.c desktops.h
>
>
> Log Message:
> This will hopefully fix the focus bug that has been annoying everyone, as well
> as enabling Alt-Tab on desktops other than just the first 1.
>
> ===================================================================
> RCS file: /cvsroot/enlightenment/e17/apps/e/src/Makefile.am,v
> retrieving revision 1.50.2.5
> retrieving revision 1.50.2.6
> diff -u -3 -r1.50.2.5 -r1.50.2.6
> --- Makefile.am 1 Oct 2002 18:08:11 -0000 1.50.2.5
> +++ Makefile.am 7 Jan 2003 22:14:57 -0000 1.50.2.6
> @@ -7,7 +7,7 @@
>
> INCLUDES = \
> -I$(top_srcdir)/intl \
> - @evas_cflags@ @edb_cflags@ @ebits_cflags@ @ecore_cflags@ @efsd_cflags@
>@ebg_cflags@ $(DEBUGFLAGS)
> + @evas_cflags@ @edb_cflags@ @ebits_cflags@ @ecore_cflags@ @efsd_cflags@
>@ebg_cflags@ $(DEBUGFLAGS) -static
>
> bin_PROGRAMS = enlightenment
>
> ===================================================================
> RCS file: /cvsroot/enlightenment/e17/apps/e/src/actions.c,v
> retrieving revision 1.49.2.9
> retrieving revision 1.49.2.10
> diff -u -3 -r1.49.2.9 -r1.49.2.10
> --- actions.c 30 Oct 2002 22:24:28 -0000 1.49.2.9
> +++ actions.c 7 Jan 2003 22:15:05 -0000 1.49.2.10
> @@ -1850,9 +1850,13 @@
> e_act_raise_next_start(E_Object * object, E_Action * a, void *data, int x,
> int y, int rx, int ry)
> {
> + E_Border *current = NULL;
> +
> D_ENTER;
>
> - e_border_raise_next();
> + current = e_desktop_raise_next_border();
> + if (current)
> + e_border_send_pointer(current);
>
> D_RETURN;
> UN(object);
> ===================================================================
> RCS file: /cvsroot/enlightenment/e17/apps/e/src/border.c,v
> retrieving revision 1.72.2.17
> retrieving revision 1.72.2.18
> diff -u -3 -r1.72.2.17 -r1.72.2.18
> --- border.c 30 Oct 2002 22:24:28 -0000 1.72.2.17
> +++ border.c 7 Jan 2003 22:15:22 -0000 1.72.2.18
> @@ -365,8 +365,8 @@
> {
> E_Border *b;
>
> - if (!(e_border_current_focused()))
> - e_icccm_send_focus_to(e_desktop_window(), 1);
> + if (!(e_border_current_focused()))
> + e_icccm_send_focus_to(e_desktop_window(), 1);
>
> b = e_border_find_by_window(e->win);
> if (b)
> @@ -1368,6 +1368,7 @@
> ecore_window_reparent(b->win.client, 0, b->current.x + pl,
> b->current.y + pt);
> e_icccm_release(b->win.client);
> + e_desktop_raise_next_border();
>
> D_RETURN;
> }
> @@ -2684,7 +2685,7 @@
> {
> D_ENTER;
>
> - if (b->desk != e_desktops_get(0))
> + if (b->desk != e_desktops_get(e_desktops_get_current()))
> D_RETURN_(0);
>
> if (b->current.x + b->current.w <= 0)
> @@ -2712,47 +2713,6 @@
>
> ecore_pointer_warp_to(b->current.x + b->current.w / 2,
> b->current.y + b->current.h / 2);
> -
> - D_RETURN;
> -}
> -
> -void
> -e_border_raise_next(void)
> -{
> - Evas_List * next;
> - E_Border *start;
> - E_Border *current;
> -
> - D_ENTER;
> -
> - if (!borders)
> - D_RETURN;
> -
> - start = current = e_border_current_focused();
> -
> - /* Find the current border on the list of borders */
> - for (next = borders; next && next->data != current; next = next->next);
> -
> - /* Step to the next border, wrap around the queue if the end is reached */
> - if (next && next->next)
> - next = next->next;
> - else
> - next = borders;
> -
> - /* Now find the next viewable border on the same desktop */
> - current = (E_Border *) next->data;
> - while (next && (current != start) &&
> - (!e_border_viewable(current) || current->client.is_desktop))
> - {
> - next = next->next;
> - if (!next)
> - next = borders;
> -
> - current = (E_Border *) next->data;
> - }
> -
> - e_border_raise(current);
> - e_border_send_pointer(current);
>
> D_RETURN;
> }
> ===================================================================
> RCS file: /cvsroot/enlightenment/e17/apps/e/src/border.h,v
> retrieving revision 1.19.2.8
> retrieving revision 1.19.2.9
> diff -u -3 -r1.19.2.8 -r1.19.2.9
> --- border.h 30 Oct 2002 22:24:28 -0000 1.19.2.8
> +++ border.h 7 Jan 2003 22:15:46 -0000 1.19.2.9
> @@ -250,7 +250,6 @@
> void e_border_lower_below(E_Border * b, E_Border * below);
> E_Border *e_border_current_focused(void);
> void e_border_focus_grab_ended(void);
> -void e_border_raise_next(void);
> void e_border_send_pointer(E_Border * b);
> int e_border_viewable(E_Border * b);
> void e_border_print_pos(char *buf, E_Border * b);
> ===================================================================
> RCS file: /cvsroot/enlightenment/e17/apps/e/src/desktops.c,v
> retrieving revision 1.46.2.8
> retrieving revision 1.46.2.9
> diff -u -3 -r1.46.2.8 -r1.46.2.9
> --- desktops.c 5 Nov 2002 20:36:39 -0000 1.46.2.8
> +++ desktops.c 7 Jan 2003 22:15:52 -0000 1.46.2.9
> @@ -600,6 +600,48 @@
> D_RETURN;
> }
>
> +E_Border *
> +e_desktop_raise_next_border(void)
> +{
> + Evas_List * next;
> + E_Border *start;
> + E_Border *current;
> +
> + D_ENTER;
> +
> + if (!current_desk || !current_desk->windows)
> + D_RETURN_(NULL);
> +
> + start = current = e_border_current_focused();
> + if (!start)
> + start = current = current_desk->windows->data;
> +
> + /* Find the current border on the list of borders */
> + for (next = current_desk->windows; next && next->data != current; next =
>next->next);
> +
> + /* Step to the next border, wrap around the queue if the end is reached */
> + if (next && next->next)
> + next = next->next;
> + else
> + next = current_desk->windows;
> +
> + /* Now find the next viewable border on the same desktop */
> + current = (E_Border *) next->data;
> + while ((current != start) && (!e_border_viewable(current)))
> + {
> + next = next->next;
> + if (!next)
> + next = current_desk->windows;
> +
> + current = (E_Border *) next->data;
> + }
> +
> + e_border_raise(current);
> + e_icccm_send_focus_to(current->win.client, current->client.takes_focus);
> +
> + D_RETURN_(current);
> +}
> +
> void
> e_desktops_delete(E_Desktop * d)
> {
> ===================================================================
> RCS file: /cvsroot/enlightenment/e17/apps/e/src/desktops.h,v
> retrieving revision 1.9.2.5
> retrieving revision 1.9.2.6
> diff -u -3 -r1.9.2.5 -r1.9.2.6
> --- desktops.h 30 Oct 2002 22:24:28 -0000 1.9.2.5
> +++ desktops.h 7 Jan 2003 22:16:04 -0000 1.9.2.6
> @@ -103,6 +103,7 @@
> void e_desktop_bg_reload(E_Desktop * d);
> void e_desktop_ib_reload(E_Desktop * d);
> void e_desktop_update(E_Desktop *d);
> +E_Border *e_desktop_raise_next_border(void);
> Window e_desktop_window();
>
> #endif
>
>
>
>
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> enlightenment-cvs mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs
--
Andrew Elcock <[EMAIL PROTECTED]>
Rectang.com
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel