1. 24 Nov, 2020 1 commit
    • Jon Turney's avatar
      hw/xwin: Fix building with -fno-common · bb7aab6a
      Jon Turney authored
      Provide an actual definition of noDriExtension where used, rather than a
      tentative definition in a header, to fix compilation with -fno-common
      (the default with gcc 10).
      bb7aab6a
  2. 05 Jul, 2020 1 commit
  3. 15 Apr, 2020 3 commits
    • Jon Turney's avatar
      hw/xwin: Drop call to setlocale() · 2fe13a1f
      Jon Turney authored
      Since we now only work with UTF-8 (or ISO8859-1) text in the clipboard,
      we don't need to setlocale().
      2fe13a1f
    • Jon Turney's avatar
      hw/xwin: Remove XSetAuthorization() for helper clients · 4055fed1
      Jon Turney authored
      All helper client code now uses xcb, so calling XSetAuthorization() is
      no longer needed.
      
      This is the last reference to libX11 from helper clients, so linking
      with x11-xcb and libX11 is no longer required.
      
      Also drop (unneeded?) linking with libXau.
      
      Also drop installing these prerequistes on AppvVeyor.
      
      Also move prototypes for functions in winauth.c from win.h into a new
      header, winauth.h, and include that where needed.
      4055fed1
    • Jon Turney's avatar
      hw/xwin: Remove nounicodeclipboard option · f4936de7
      Jon Turney authored
      Always use CF_UNICODETEXT clipboard format.  Windows will automatically
      down-convert to CF_TEXT for clients which request that.
      
      This is subtly different in one way: if CF_TEXT is requested, we now
      post CF_UNICODETEXT and it is converted to CF_TEXT *in the locale of the
      requesting process*.  Previously, we would convert to CF_TEXT *in our
      locale* and post that.
      
      It looks like the code in the !X_HAVE_UTF8_STRING case didn't actually
      work correctly, but fortunately that has never been true...
      f4936de7
  4. 18 Sep, 2019 1 commit
    • Jon Turney's avatar
      hw/xwin: Add -icon option to set the screen window icon in windowed mode · bcf2dd0c
      Jon Turney authored
      Add an -icon option to set the screen window icon in windowed mode
      
      Allow cygwin paths in an icon-specification
      
      Update man pages and system.XWinrc appropriately
      
      Also, log an error if the icon specified for TRAYICON cannot be loaded
      
      Also, fix a bug in appending a '\' to IconDirectory only if it doesn't
      already end with one, which was fortunately benign.
      
      Note: LoadImageComma would be simpler if we just stated that XWinrc
      paths are Cygwin paths on Cygwin, Windows paths on MinGW, but that could
      break existing .XWinrc files
      
      Note: Given that we can specify paths in an icon-specifier, I'm not sure
      what IconDirectory wins us.
      
      v2:
      Fix formatting problems in man page additions
      
      v3:
      Fix some more s/_/@/g in man pages
      bcf2dd0c
  5. 28 Jun, 2019 1 commit
    • Jon Turney's avatar
      hw/xwin: Make QueryMonitor() slightly less insane · b078e034
      Jon Turney authored
      Make QueryMonitor() slightly less insane, making it return TRUE if the
      specified monitor exists, rather than always returning TRUE (which we
      are uselessly checking, and then also checking if the specified monitor
      exists)
      
      (Note that EnumDisplayMonitors() doesn't seem to have meaningful way to
      return errors, see 5940580f)
      
      Also: Spamming the long UseMsg() after "Invalid monitor number" isn't very
      helpful.
      
      Also: If we are exiting in ddxProcessArgument() due to an error in
      options, use a non-zero exit status.
      b078e034
  6. 17 Jun, 2019 2 commits
    • Jon Turney's avatar
      hw/xwin: Add an option to use alpha channel in multiwindow mode · 2afee831
      Jon Turney authored
      Add an option to turn on the use of the X window's alpha channel in
      multiwindow mode, i.e. this uses the X window's alpha channel for
      compositing into the native desktop.
      
      This works on W7/Vista (using DwmEnableBlurBehindWindow()), and Windows
      10 (using the undocumented SetWindowCompositionAttribute()), but not on
      Windows 8/8.1
      
      -compositewm must be enabled for this to be useful, as we only have a
      pixmap with an alpha channel for the X window in that case.  The
      framebuffer/root window doesn't have one (unless perhaps you are using
      the rootless extension, maybe...).
      
      v2:
      Update meson.build
      
      Future work:
      
      A window property to control use of alpha?
      Option to turn off blur on W7/Vista
      Implement _NET_WM_WINDOW_OPACITY
      2afee831
    • Jon Turney's avatar
      hw/xwin: A simpleminded attempt at composition · ebcea16e
      Jon Turney authored
      Rather than drawing the window contents from the shadow framebuffer, use
      Composite extension redirection to cause the server to maintain a bitmap
      image of each top-level X window, and draw the window contents from
      that, so that window contents which are occluded in the framebuffer show
      correctly in the task bar and task switcher previews.
      
      v2:
      Fix incorrect use of memset() found by gcc5
      
      hw/xwin/winshadgdi.c: In function ‘winBltExposedWindowRegionShadowGDI’:
      hw/xwin/winshadgdi.c:861:9: warning: ‘memset’ used with constant zero length parameter; this could be due to transposed parameters [-Wmemset-transposed-args]
      
      v3:
      Turn on -compositewm by default
      
      v4:
      Ignore -swcursor if -compositewm
      
      -swcursor is not compatible with -compositewm (because the window
      contents are drawn from an off-screen pixmap, not from the screen
      pixmap, where the software cursor will be drawn).
      
      v5:
      Update meson.build also
      Add -compositewm option to help output
      Update CI to install prerequisites
      ebcea16e
  7. 01 May, 2019 1 commit
    • Jon Turney's avatar
      hw/xwin: Remove mwextwm mode · a2302de6
      Jon Turney authored
      This has always been described as 'experimental'
      
      We don't think this has any users: This mode has been disabled in Cygwin
      packages since March 2016. We've never provided the xwinwm WM for x86_64
      Cygwin. No one has even asked where the option has gone.
      
      This leaves XQuartz as the only user of the rootless extension.
      
      Remove --enable-windowswm configure option
      Remove multiwindowextwm stuff from Makefiles
      Remove -mwextwm option
      Remove -mwextwm from man-page and help
      Un-ifdef XWIN_MULTIWINDOWEXTWM
      
      v2:
      Remove rootless include paths
      Remove windowswmproto from meson.build
      a2302de6
  8. 25 Feb, 2019 1 commit
  9. 28 Sep, 2018 1 commit
  10. 19 Feb, 2018 1 commit
  11. 14 Feb, 2018 1 commit
  12. 30 Oct, 2017 1 commit
  13. 22 Aug, 2017 2 commits
  14. 15 Sep, 2016 1 commit
    • Jon Turney's avatar
      Add Windows-DRI extension · f5f4d32a
      Jon Turney authored
      
      
      If windowsdriproto headers are available, build a Windows-DRI extension,
      which supports requests to enable local clients to directly render GL to a
      Windows drawable:
      
      - a query to check if WGL is being used on a screen
      - a query to map a fbconfigID to a native pixelformatindex
      - a query to map a drawable to a native handle
      
      Windows-DRI can only be useful if we are using WGL, so make an note if WGL
      is active on a screen.
      
      Make validGlxDrawable() public
      
      Adjust glxWinSetPixelFormat() so it doesn't require a context, just a
      screen and config.
      
      That enables factoring out the deferred drawable creation code as
      glxWinDeferredCreateDrawable()
      
      Enhance glxWinDeferredCreateDrawable(), so that pixmaps are placed into a
      file mapping, so they exist in memory which can be shared with the direct
      rendering process.
      
      Currently, this file mapping is accessed by a name generated from the XID.
      This will not be unique across multiple server instances. It would perhaps
      be better, although more complicated, to use an anonymous file mapping, and
      then duplicate the handle for the direct rendering process.
      
      Use glxWinDeferredCreateDrawable() to ensure the native handle exists for
      the Windows-DRI query to map a drawable to native handle.
      
      v2:
      Various printf format warning fixes
      
      v3:
      Fix format warnings on x86
      Move some uninteresting windows-dri output to debug log level
      
      v4:
      check for windowsdriproto when  --enable-windowsdri
      use windowsdriproto_CFLAGS
      Signed-off-by: Jon Turney's avatarJon Turney <jon.turney@dronecode.org.uk>
      Reviewed-by: default avatarColin Harrison <colin.harrison@virgin.net>
      f5f4d32a
  15. 23 Jun, 2016 2 commits
  16. 09 Mar, 2016 2 commits
  17. 23 Mar, 2015 2 commits
  18. 16 Mar, 2015 1 commit
  19. 12 Nov, 2014 1 commit
  20. 09 Nov, 2014 1 commit
  21. 09 Oct, 2014 3 commits
  22. 13 Sep, 2014 1 commit
  23. 25 Mar, 2014 1 commit
  24. 22 Mar, 2014 2 commits
  25. 03 Mar, 2014 1 commit
  26. 30 Aug, 2013 1 commit
  27. 23 Jul, 2013 1 commit
    • Jon Turney's avatar
      hw/xwin: Improve WM_ENDSESSION handling using separate messaging window thread · 682ccac9
      Jon Turney authored
      
      
      Currently, WM_ENDSESSION just calls GiveUp() to set the DE_TERMINATE flag. But
      for the X server to exit cleanly, we also need the X server dispatch loop to be
      unblocked so it can notice that DE_TERMINATE has been set and exit, removing
      it's lock file and any unix domain socket.
      
      It appears that the system will terminate the process when the last UI thread in
      that process returns from processing WM_ENDSESSION for the last top-level
      window.
      
      Since WM_ENDSESSION appears to sent by the system via SendMessage()
      (synchronously) and the wndproc is called to process it in the message thread
      for that window (the X server thread), we can't easily terminate the X server
      dispatch loop from inside the WM_ENDSESSION message processing.
      
      So, create a messaging window, a hidden, top-level window, with a separate
      thread to catch this message, and process it by calling GiveUp() and then
      blocking on a mutex until the X server dispatch loop exits.
      
      Also, notice when this is a shutdown cancel WM_ENDSESSION message and take no
      action.
      Signed-off-by: Jon Turney's avatarJon TURNEY <jon.turney@dronecode.org.uk>
      Reviewed-by: default avatarColin Harrison <colin.harrison@virgin.net>
      682ccac9
  28. 06 Dec, 2012 1 commit
  29. 27 Nov, 2012 2 commits