diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-05-13 23:40:23 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-05-13 23:40:23 +0000 |
commit | 4952b2dddf7a436cf9ca5d9a338b0daa146c0ce8 (patch) | |
tree | c170fb1e435a18d12ca9a86adf233074863b4546 /nuttx/graphics | |
parent | 892014e097d9bd3f826ece81d47390bb8dd05c0c (diff) | |
download | px4-firmware-4952b2dddf7a436cf9ca5d9a338b0daa146c0ce8.tar.gz px4-firmware-4952b2dddf7a436cf9ca5d9a338b0daa146c0ce8.tar.bz2 px4-firmware-4952b2dddf7a436cf9ca5d9a338b0daa146c0ce8.zip |
Disabled NXTK autoraise; it does not work properly in multi-user mode due to queue mouse/touchscreen input
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4732 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'nuttx/graphics')
-rw-r--r-- | nuttx/graphics/nxbe/nxbe_lower.c | 2 | ||||
-rw-r--r-- | nuttx/graphics/nxbe/nxbe_raise.c | 2 | ||||
-rw-r--r-- | nuttx/graphics/nxmu/nx_openwindow.c | 9 | ||||
-rw-r--r-- | nuttx/graphics/nxtk/nxtk_events.c | 33 | ||||
-rw-r--r-- | nuttx/graphics/nxtk/nxtk_openwindow.c | 7 |
5 files changed, 33 insertions, 20 deletions
diff --git a/nuttx/graphics/nxbe/nxbe_lower.c b/nuttx/graphics/nxbe/nxbe_lower.c index 0cfcb8f7a..545342d5b 100644 --- a/nuttx/graphics/nxbe/nxbe_lower.c +++ b/nuttx/graphics/nxbe/nxbe_lower.c @@ -2,7 +2,7 @@ * graphics/nxbe/nxbe_lower.c * * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <spudmonkey@racsa.co.cr> + * Author: Gregory Nutt <gnutt@nuttx.org> * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/nuttx/graphics/nxbe/nxbe_raise.c b/nuttx/graphics/nxbe/nxbe_raise.c index 7dc2113fd..ef4c392c0 100644 --- a/nuttx/graphics/nxbe/nxbe_raise.c +++ b/nuttx/graphics/nxbe/nxbe_raise.c @@ -2,7 +2,7 @@ * graphics/nxbe/nxbe_raise.c * * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <spudmonkey@racsa.co.cr> + * Author: Gregory Nutt <gnutt@nuttx.org> * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/nuttx/graphics/nxmu/nx_openwindow.c b/nuttx/graphics/nxmu/nx_openwindow.c index 504d421a3..2975e365a 100644 --- a/nuttx/graphics/nxmu/nx_openwindow.c +++ b/nuttx/graphics/nxmu/nx_openwindow.c @@ -1,8 +1,8 @@ /**************************************************************************** * graphics/nxmu/nx_openwindow.c * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <spudmonkey@racsa.co.cr> + * Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -39,11 +39,12 @@ #include <nuttx/config.h> -#include <stdlib.h> #include <errno.h> #include <debug.h> #include <nuttx/nx/nx.h> +#include <nuttx/kmalloc.h> + #include "nxfe.h" /**************************************************************************** @@ -103,7 +104,7 @@ NXWINDOW nx_openwindow(NXHANDLE handle, FAR const struct nx_callback_s *cb, /* Pre-allocate the window structure */ - wnd = (FAR struct nxbe_window_s *)zalloc(sizeof(struct nxbe_window_s)); + wnd = (FAR struct nxbe_window_s *)kzalloc(sizeof(struct nxbe_window_s)); if (!wnd) { errno = ENOMEM; diff --git a/nuttx/graphics/nxtk/nxtk_events.c b/nuttx/graphics/nxtk/nxtk_events.c index 636fd96ef..33c50b7f9 100644 --- a/nuttx/graphics/nxtk/nxtk_events.c +++ b/nuttx/graphics/nxtk/nxtk_events.c @@ -220,6 +220,28 @@ static void nxtk_mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, struct nxgl_point_s abspos; struct nxgl_point_s relpos; + /* Raise the window to the top if any mouse button was pressed or if auto-raise + * is configured. Do this before reporting the mouse event (because processing + * of the mouse event could change the ordering again). + */ + + /* REVISIT: This does not work correctly. In a scenario where (1) there are + * multiple queued touchscreen events and (2) the result of the first input + * was to switch windows, then this autoraise implementation will cause the + * window to revert to the previous window. Not good behavior. + */ + +#ifndef CONFIG_NX_MULTIUSER /* Queuing only happens in multi-user mode */ +#ifdef CONFIG_NXTK_AUTORAISE + if (fwnd->wnd.above != NULL) +#else + if (buttons != 0 && fwnd->wnd.above != NULL) +#endif + { + nx_raise((NXWINDOW)&fwnd->wnd); + } +#endif + /* When we get here, the mouse position that we receive has already been * offset by the window origin. Here we need to detect mouse events in * the various regions of the windows: The toolbar, the client window, @@ -248,17 +270,6 @@ static void nxtk_mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, nxgl_vectsubtract(&relpos, &abspos, &fwnd->tbrect.pt1); fwnd->tbcb->mousein((NXTKWINDOW)fwnd, &relpos, buttons, fwnd->tbarg); } - - /* Raise the window to the top if any mouse button was pressed or if auto-raise - * is configured. - */ - -#ifndef CONFIG_NXTK_AUTORAISE - if (buttons != 0) -#endif - { - nx_raise((NXWINDOW)&fwnd->wnd); - } } #endif diff --git a/nuttx/graphics/nxtk/nxtk_openwindow.c b/nuttx/graphics/nxtk/nxtk_openwindow.c index 4080b0e7a..0c77a6877 100644 --- a/nuttx/graphics/nxtk/nxtk_openwindow.c +++ b/nuttx/graphics/nxtk/nxtk_openwindow.c @@ -1,8 +1,8 @@ /**************************************************************************** * graphics/nxtk/nxtk_openwindow.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <spudmonkey@racsa.co.cr> + * Copyright (C) 2008-2009, 2012 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -44,6 +44,7 @@ #include <debug.h> #include <nuttx/nx/nx.h> +#include <nuttx/kmalloc.h> #include "nxfe.h" #include "nxtk_internal.h" @@ -130,7 +131,7 @@ NXTKWINDOW nxtk_openwindow(NXHANDLE handle, /* Pre-allocate the window structure */ - fwnd = (FAR struct nxtk_framedwindow_s *)zalloc(sizeof(struct nxtk_framedwindow_s)); + fwnd = (FAR struct nxtk_framedwindow_s *)kzalloc(sizeof(struct nxtk_framedwindow_s)); if (!fwnd) { errno = ENOMEM; |