This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [PATCH] RE: Ghost cursors (was: RE: alt-tab: client window receives tab / pressing both...)


Stuart,

> Certainly under Win2000 the cursor always gets displayed (I've
> commented out
> every ShowCursor(TRUE) statement and the cursor still gets displayed
> whenever
> we leave the window.)  This is what I'd expect as ShowCursor shouldn't
> really
> apply globally.  I understand your concern about what it might do on older
> versions
> of windows though.

Yes, I seem to remember that older versions of Windows do not do the right
thing with respect to cursor hiding.

> hum - same here, expect it's if I pass *any* parameters to start XWin
> without using /B.  I commented out FreeConsole() in case that was
> closing something it shouldn't - but that didn't seem to make any
> difference.

The problem turned out to be something that must have existed for a long
time.  You are right that the calls to FreeConsole are no longer needed, as
we are passing flags to the linker in xc/programs/Xserver/Imakefile that
tell the linker to make us a Windows application without a console.  The
problem was that, for some unknown reason, the file handle to the log file
becomes invalid in the case where you run XWin.exe with 'start XWin' and any
number of arguments after that.  My solution for the time is pragmatic, but
I'd like to get to the bottom of this eventually.  For now I just reopen the
log file handle in OsVendorInit if it was opened in ddxProcessArgument:

void
OsVendorInit (void)
{
  ErrorF ("OsVendorInit - 1\n");

#ifdef DDXOSVERRORF
  OsVendorVErrorFProc = OsVendorVErrorF;

  /* Open log file if not yet open */
  if (g_pfLog == NULL)
    g_pfLog = fopen (WIN_LOG_FNAME, "w");
  else
    {
      /* Close log file */
      fclose (g_pfLog);

      g_pfLog = fopen (WIN_LOG_FNAME, "a+");
    }
#endif

...
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]