Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
Keith Packard wrote: > On Tue, 2008-09-30 at 17:28 +0100, Barry Scott wrote: > > >> For example mozilla (mozembed). The -nocursor patch avoids the need to >> modify >> any app code at all to remove the unwanted cursors. >> > > Have you tried the XFixes HideCursor request yet? That disables the > cursor on a specific screen. > > I wrote a small program that does: XFixesHideCursor( dpy, DefaultRootWindow( dpy ) ); and that does not do what my -nocursor patch does. I still see the cursor over an applications window. Are you expecting that I have to hunt down every windows on the screen and call hide on it? Also When I call: XFixesShowCursor( dpy, DefaultRootWindow( dpy ) ); I get: xfixes example XFixesQueryExtension => 1 event_base: 113 error_base: 180 XFixesQueryVersion => 1 major_version: 4 minor_version: 0 XFixesShowCursor X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 153 (XFIXES) Minor opcode of failed request: 30 () Serial number of failed request: 9 Current serial number in output stream: 11 Barry ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
On Tue, 2008-09-30 at 17:28 +0100, Barry Scott wrote: > For example mozilla (mozembed). The -nocursor patch avoids the need to > modify > any app code at all to remove the unwanted cursors. Have you tried the XFixes HideCursor request yet? That disables the cursor on a specific screen. -- [EMAIL PROTECTED] signature.asc Description: This is a digitally signed message part ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
On Tue, Sep 30, 2008 at 05:28:52PM +0100, Barry Scott wrote: > Daniel Stone wrote: >> On Mon, Sep 29, 2008 at 11:08:04PM +0200, Olivier Guerrier wrote: >> >> >> * People running consumer/embedded systems who can't trust their >> apps not to try to change the cursors want to silently drop all >> cursor rendering. -> patch required if deemed useful >> >> > We build digital signage players that play movies, html pages, images > and text. > These players have no mouse or keyboard and the cursor is a visual wart. >> Can you not just ship a null cursor theme or something if your apps >> insist on setting a cursor? >> > In our product we embed apps that it is far to painful to modify to turn > off the cursor. > For example mozilla (mozembed). The -nocursor patch avoids the need to > modify > any app code at all to remove the unwanted cursors. > > We are willing to work up a patch if you are willing to accept it. Sure, -reallydontrenderanycursorsever sounds fine to me. Sorry about the last patch; just completely fell off my TODO list. Cheers, Daniel signature.asc Description: Digital signature ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
Daniel Stone wrote: > On Mon, Sep 29, 2008 at 11:08:04PM +0200, Olivier Guerrier wrote: > > > * People running consumer/embedded systems who can't trust their > apps not to try to change the cursors want to silently drop all > cursor rendering. -> patch required if deemed useful > > We build digital signage players that play movies, html pages, images and text. These players have no mouse or keyboard and the cursor is a visual wart. > Can you not just ship a null cursor theme or something if your apps > insist on setting a cursor? > In our product we embed apps that it is far to painful to modify to turn off the cursor. For example mozilla (mozembed). The -nocursor patch avoids the need to modify any app code at all to remove the unwanted cursors. We are willing to work up a patch if you are willing to accept it. Barry ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
> Hmm, that seems a little odd. Seems like there are three camps here: >* People writing display drivers (let's call them 'the minority') > want a stipple and cursor. -> -retro >* People starting regular desktop environments want the default > behaviour. (Though I have slight doubts. I'd fall back on the > default cursor being a NULL cursor unless forced otherwise, and > IIRC the behaviour here is to suppress cursor realisation, which > means you come back to an ugly root cursor, but that's fixable.) >* People running consumer/embedded systems who can't trust their > apps not to try to change the cursors want to silently drop all > cursor rendering. -> patch required if deemed useful * People who sometimes have to boot X in 'safe mode' (just X and xterm) because kde/gnome won't start up. ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
Olivier Guerrier wrote: > Daniel Stone wrote: >> Can you not just ship a null cursor theme or something if your apps >> insist on setting a cursor? > > We considered that, but it is unreliable (how about hard coded cursor > for exemple), need in-depth testing/validating, and as a consequence eat > lot of time. On the other side, you have a 20 lines patch that is easy > to apply/validate. I can live with this small patch out of tree, but > there is a real need here. FWIW, I tend to agree with the requirement - I'm also using X on an N800 internet tablet (touchscreen) and the Debian port would probably benefit from having a global cursor killswitch I'm not really bothered about it - just adding another use-case :) David -- "Don't worry, you'll be fine; I saw it work in a cartoon once..." ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
On Tue, Sep 30, 2008 at 01:56:12AM +0300, Daniel Stone wrote: > Can you not just ship a null cursor theme or something if your apps > insist on setting a cursor? hmm, starting just Xserver and xterm makes it unusable, no cursor and the xterm cannot be focused. -- Lukáš Hejtmánek ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
Daniel Stone wrote: > Can you not just ship a null cursor theme or something if your apps > insist on setting a cursor? We considered that, but it is unreliable (how about hard coded cursor for exemple), need in-depth testing/validating, and as a consequence eat lot of time. On the other side, you have a 20 lines patch that is easy to apply/validate. I can live with this small patch out of tree, but there is a real need here. Olivier. ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
On Mon, Sep 29, 2008 at 11:08:04PM +0200, Olivier Guerrier wrote: > Ray Strode wrote: > > As already mentioned on this thread, -nocursor type behavior is the > > default now. > > > > There is no need for any out of tree patch. X starts up without a cursor. > > The point (at least Barry's and mine) is not having X starting with or > without a cursor. It is about _permanently_ disabling X cursor drawing, > at root and application level, and even if/when application request a > cursor change. Hmm, that seems a little odd. Seems like there are three camps here: * People writing display drivers (let's call them 'the minority') want a stipple and cursor. -> -retro * People starting regular desktop environments want the default behaviour. (Though I have slight doubts. I'd fall back on the default cursor being a NULL cursor unless forced otherwise, and IIRC the behaviour here is to suppress cursor realisation, which means you come back to an ugly root cursor, but that's fixable.) * People running consumer/embedded systems who can't trust their apps not to try to change the cursors want to silently drop all cursor rendering. -> patch required if deemed useful Can you not just ship a null cursor theme or something if your apps insist on setting a cursor? Cheers, Daniel signature.asc Description: Digital signature ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
Ray Strode wrote: > As already mentioned on this thread, -nocursor type behavior is the > default now. > > There is no need for any out of tree patch. X starts up without a cursor. The point (at least Barry's and mine) is not having X starting with or without a cursor. It is about _permanently_ disabling X cursor drawing, at root and application level, and even if/when application request a cursor change. Olivier. ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
Hi, On Sun, Sep 28, 2008 at 2:46 PM, Olivier Guerrier <[EMAIL PROTECTED]> wrote: > Barry Scott wrote: >> We would love to have a -nocursor that got ride of the cursor from the >> screen added to Xorg. >> >> We have a patch to do this that we use. > > Maybe a little off-topic here, but I back this proposal of totally > disabling cursor at X level. As already mentioned on this thread, -nocursor type behavior is the default now. There is no need for any out of tree patch. X starts up without a cursor. --Ray ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
Barry Scott wrote: > We would love to have a -nocursor that got ride of the cursor from the > screen added to Xorg. > > We have a patch to do this that we use. Maybe a little off-topic here, but I back this proposal of totally disabling cursor at X level. We also use Barry's patch: http://lists.freedesktop.org/archives/xorg/2007-May/024825.html We build a kiosk like interface upon distribution precompiled packages, and we don't want to disable cursor in all applications we use (or will use) This patch also allow us to have a debug mode with the very _same_ xorg binary. Don't know fo sure if this patch do it the right way, but it is simple, and do what we need. I hope it could go upstream sooner or later. Olivier. ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
Hi, On Thu, Sep 25, 2008 at 1:20 PM, David Greaves <[EMAIL PROTECTED]> wrote: > Barry Scott wrote: >> Am I right in thinking this only disables the cursor over the root >> window and not over the whole screen? > Yes. > Individual apps have the ability to remove their own cursor - and can't the > cursor can be managed once X has started? > > This patch covers the tiny time period when the cross is the only thing > visible > on the screen. Pure vanity :) Note the X server doesn't show the cross when starting up anymore. See, http://cgit.freedesktop.org/xorg/xserver/commit/?id=e02f864fdf19a5ab1682336be343c57fdb69ef43 --Ray ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
David Greaves wrote: > (resend - didn't realise xorg was subscribe only) > > Hi Keith > > After irc discussions I sent this patch in via daniel last december but I > guess > it got dropped. > > You seem to be an active committer to xorg/xserver so could you commit this > for > me or let me know what needs changing. > > It is against xorg/xserver git from about an hour ago. > > Am I right in thinking this only disables the cursor over the root window and not over the whole screen? I'd suggest that you name the option --norootcursor not -nocursor if that is the case. We would love to have a -nocursor that got ride of the cursor from the screen added to Xorg. We have a patch to do this that we use. Barry > Thanks. > > David > > === > > Make -nocursor a runtime option to and remove the compile time > NULL_ROOT_CURSOR > > This is for use on a picture frame but I guess would be useful on touch > screens > and in other situations too. > > Signed-off-by: David Greaves <[EMAIL PROTECTED]> > > --- > configure.ac|7 -- > dix/cursor.c| 55 ++ > dix/globals.c |1 + > doc/Xserver.man.pre |4 +++ > include/dix-config.h.in |3 -- > include/opaque.h|1 + > os/utils.c |5 > 7 files changed, 37 insertions(+), 39 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 60cdc14..88a2c01 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -492,9 +492,6 @@ AC_ARG_ENABLE(install-libxf86config, > AC_ARG_ENABLE(builtin-fonts, AS_HELP_STRING([--enable-builtin-fonts], [Use > only built-in fonts (default: yes)]), > [BUILTIN_FONTS=$enableval], > [BUILTIN_FONTS=yes]) > -AC_ARG_ENABLE(null-root-cursor, AS_HELP_STRING([--enable-null-root-cursor], > [Use an empty root cursor (default: use core cursor)]), > - [NULL_ROOT_CURSOR=$enableval], > - [NULL_ROOT_CURSOR=no]) > > dnl GLX build options > AC_ARG_WITH(mesa-source, AS_HELP_STRING([--with-mesa-source=MESA_SOURCE], > [Path to Mesa source tree]), > @@ -981,10 +978,6 @@ AC_CHECK_FUNC(strncasecmp, [], > AC_DEFINE([NEED_STRNCASECMP], 1, > AC_CHECK_FUNC(strcasestr, [], AC_DEFINE([NEED_STRCASESTR], 1, > [Do not have 'strcasestr'.])) > > -if test "x$NULL_ROOT_CURSOR" = xyes; then > -AC_DEFINE(NULL_ROOT_CURSOR, 1, [Use an empty root cursor]) > -fi > - > PKG_CHECK_MODULES([XDMCP], [xdmcp], [have_libxdmcp="yes"], > [have_libxdmcp="no"]) > if test "x$have_libxdmcp" = xyes; then > AC_CHECK_LIB(Xdmcp, XdmcpWrap, [have_xdmcpwrap="yes"], > [have_xdmcpwrap="no"], > [$XDMCP_LIBS]) > diff --git a/dix/cursor.c b/dix/cursor.c > index 81540fd..38224cf 100644 > --- a/dix/cursor.c > +++ b/dix/cursor.c > @@ -519,39 +519,36 @@ CursorPtr > CreateRootCursor(char *unused1, unsigned int unused2) > { > CursorPtrcurs; > -#ifdef NULL_ROOT_CURSOR > CursorMetricRec cm; > -#else > FontPtr cursorfont; > int err; > XID fontID; > -#endif > - > -#ifdef NULL_ROOT_CURSOR > -cm.width = 0; > -cm.height = 0; > -cm.xhot = 0; > -cm.yhot = 0; > - > -AllocARGBCursor(NULL, NULL, NULL, &cm, 0, 0, 0, 0, 0, 0, > - &curs, serverClient, (XID)0); > - > -if (curs == NullCursor) > -return NullCursor; > -#else > -fontID = FakeClientID(0); > -err = OpenFont(serverClient, fontID, FontLoadAll | FontOpenSync, > - (unsigned)strlen(defaultCursorFont), defaultCursorFont); > -if (err != Success) > - return NullCursor; > - > -cursorfont = (FontPtr)LookupIDByType(fontID, RT_FONT); > -if (!cursorfont) > - return NullCursor; > -if (AllocGlyphCursor(fontID, 0, fontID, 1, 0, 0, 0, ~0, ~0, ~0, > - &curs, serverClient, (XID)0) != Success) > - return NullCursor; > -#endif > + > + if (nullRootCursor) { > + cm.width = 0; > + cm.height = 0; > + cm.xhot = 0; > + cm.yhot = 0; > + > + AllocARGBCursor(NULL, NULL, NULL, &cm, 0, 0, 0, 0, 0, 0, > + &curs, serverClient, (XID)0); > + > + if (curs == NullCursor) > + return NullCursor; > + } else { > + fontID = FakeClientID(0); > + err = OpenFont(serverClient, fontID, FontLoadAll | FontOpenSync, > +(unsigned)strlen(defaultCursorFont), > defaultCursorFont); > + if (err != Success) > + return NullCursor; > + > + cursorfont = (FontPtr)LookupIDByType(fontID, RT_FONT); > + if (!cursorfont) > + return NullCursor; > + if (AllocGlyphCursor(fontID, 0, fontID, 1, 0, 0, 0, ~0, ~0, ~0, > +
Re: [PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
Barry Scott wrote: > Am I right in thinking this only disables the cursor over the root > window and not over the whole screen? Yes. Individual apps have the ability to remove their own cursor - and can't the cursor can be managed once X has started? This patch covers the tiny time period when the cross is the only thing visible on the screen. Pure vanity :) > I'd suggest that you name the option --norootcursor not -nocursor if > that is the case. That's reasonable, update to follow. David -- "Don't worry, you'll be fine; I saw it work in a cartoon once..." ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
[PATCH] Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR
(resend - didn't realise xorg was subscribe only) Hi Keith After irc discussions I sent this patch in via daniel last december but I guess it got dropped. You seem to be an active committer to xorg/xserver so could you commit this for me or let me know what needs changing. It is against xorg/xserver git from about an hour ago. Thanks. David === Make -nocursor a runtime option to and remove the compile time NULL_ROOT_CURSOR This is for use on a picture frame but I guess would be useful on touch screens and in other situations too. Signed-off-by: David Greaves <[EMAIL PROTECTED]> --- configure.ac|7 -- dix/cursor.c| 55 ++ dix/globals.c |1 + doc/Xserver.man.pre |4 +++ include/dix-config.h.in |3 -- include/opaque.h|1 + os/utils.c |5 7 files changed, 37 insertions(+), 39 deletions(-) diff --git a/configure.ac b/configure.ac index 60cdc14..88a2c01 100644 --- a/configure.ac +++ b/configure.ac @@ -492,9 +492,6 @@ AC_ARG_ENABLE(install-libxf86config, AC_ARG_ENABLE(builtin-fonts, AS_HELP_STRING([--enable-builtin-fonts], [Use only built-in fonts (default: yes)]), [BUILTIN_FONTS=$enableval], [BUILTIN_FONTS=yes]) -AC_ARG_ENABLE(null-root-cursor, AS_HELP_STRING([--enable-null-root-cursor], [Use an empty root cursor (default: use core cursor)]), - [NULL_ROOT_CURSOR=$enableval], - [NULL_ROOT_CURSOR=no]) dnl GLX build options AC_ARG_WITH(mesa-source, AS_HELP_STRING([--with-mesa-source=MESA_SOURCE], [Path to Mesa source tree]), @@ -981,10 +978,6 @@ AC_CHECK_FUNC(strncasecmp, [], AC_DEFINE([NEED_STRNCASECMP], 1, AC_CHECK_FUNC(strcasestr, [], AC_DEFINE([NEED_STRCASESTR], 1, [Do not have 'strcasestr'.])) -if test "x$NULL_ROOT_CURSOR" = xyes; then -AC_DEFINE(NULL_ROOT_CURSOR, 1, [Use an empty root cursor]) -fi - PKG_CHECK_MODULES([XDMCP], [xdmcp], [have_libxdmcp="yes"], [have_libxdmcp="no"]) if test "x$have_libxdmcp" = xyes; then AC_CHECK_LIB(Xdmcp, XdmcpWrap, [have_xdmcpwrap="yes"], [have_xdmcpwrap="no"], [$XDMCP_LIBS]) diff --git a/dix/cursor.c b/dix/cursor.c index 81540fd..38224cf 100644 --- a/dix/cursor.c +++ b/dix/cursor.c @@ -519,39 +519,36 @@ CursorPtr CreateRootCursor(char *unused1, unsigned int unused2) { CursorPtr curs; -#ifdef NULL_ROOT_CURSOR CursorMetricRec cm; -#else FontPtrcursorfont; interr; XIDfontID; -#endif - -#ifdef NULL_ROOT_CURSOR -cm.width = 0; -cm.height = 0; -cm.xhot = 0; -cm.yhot = 0; - -AllocARGBCursor(NULL, NULL, NULL, &cm, 0, 0, 0, 0, 0, 0, - &curs, serverClient, (XID)0); - -if (curs == NullCursor) -return NullCursor; -#else -fontID = FakeClientID(0); -err = OpenFont(serverClient, fontID, FontLoadAll | FontOpenSync, - (unsigned)strlen(defaultCursorFont), defaultCursorFont); -if (err != Success) - return NullCursor; - -cursorfont = (FontPtr)LookupIDByType(fontID, RT_FONT); -if (!cursorfont) - return NullCursor; -if (AllocGlyphCursor(fontID, 0, fontID, 1, 0, 0, 0, ~0, ~0, ~0, -&curs, serverClient, (XID)0) != Success) - return NullCursor; -#endif + + if (nullRootCursor) { + cm.width = 0; + cm.height = 0; + cm.xhot = 0; + cm.yhot = 0; + + AllocARGBCursor(NULL, NULL, NULL, &cm, 0, 0, 0, 0, 0, 0, + &curs, serverClient, (XID)0); + + if (curs == NullCursor) + return NullCursor; + } else { + fontID = FakeClientID(0); + err = OpenFont(serverClient, fontID, FontLoadAll | FontOpenSync, + (unsigned)strlen(defaultCursorFont), defaultCursorFont); + if (err != Success) + return NullCursor; + + cursorfont = (FontPtr)LookupIDByType(fontID, RT_FONT); + if (!cursorfont) + return NullCursor; + if (AllocGlyphCursor(fontID, 0, fontID, 1, 0, 0, 0, ~0, ~0, ~0, +&curs, serverClient, (XID)0) != Success) + return NullCursor; + } if (!AddResource(FakeClientID(0), RT_CURSOR, (pointer)curs)) return NullCursor; diff --git a/dix/globals.c b/dix/globals.c index 60fd9a9..c93a83d 100644 --- a/dix/globals.c +++ b/dix/globals.c @@ -141,6 +141,7 @@ FontPtr defaultFont; /* not declared in dix.h to avoid including font.h in CursorPtr rootCursor; Bool party_like_its_1989 = FALSE; Bool whiteRoot = FALSE; +Bool nullRootCursor=FALSE; _X_EXPORT