1. 06 Apr, 2019 1 commit
    • Jeremy White's avatar
      Correct a long standing led state bug in XSpice. · 922ec516
      Jeremy White authored
      The CtrlProc for our keyboard driver incorrectly mapped
      the device private to a SpiceKbd* intead of to a InputInfoPtr.
      
      That resulted in led state being written into the driver name
      for our driver structure, instead of into the led state.
      
      That, in turn, led to a cool bug where if you pressed caps lock,
      the two second sync timer in the spice server would cause it to
      attempt to correct the state by pressing caps lock to get the
      states to match.  Since the states will never match, the caps
      lock effectively cycles on and off every two seconds.
      Signed-off-by: Jeremy White's avatarJeremy White <jwhite@codeweavers.com>
      Acked-by: 's avatarVictor Toso <victortoso@redhat.com>
      922ec516
  2. 16 Nov, 2018 1 commit
    • Victor Toso's avatar
      qxl: Initialize prev field while dup surface list · cf2254c1
      Victor Toso authored
      Otherwise we will can hit a segfault qxl_surface_kill()
      
       │717     void
       │718     qxl_surface_kill (qxl_surface_t *surface)
       │719     {
       │720         struct evacuated_surface_t *ev = surface->evacuated;
       │721
       │722         if (ev)
       │723         {
       │724             /* server side surface is already destroyed (via reset), don't
       │725              * resend a destroy. Just mark surface as not to be recreated */
       │726             ev->pixmap = NULL;│
       │727             if (ev->image)│
       │728                 pixman_image_unref (ev->image);
       │729             if (ev->next)
       │730                 ev->next->prev = ev->prev;
       │731             if (ev->prev)
      >│732                ev->prev->next = ev->next;
       │733             free(ev);
       │734             surface->evacuated = NULL;
       │735             return;
       │736         }
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1641793Signed-off-by: 's avatarVictor Toso <victortoso@redhat.com>
      cf2254c1
  3. 13 Nov, 2018 2 commits
    • Jonathon Jongsma's avatar
      Make output names match modesetting driver · 64cb597c
      Jonathon Jongsma authored
      The xrandr output name used by the QXL driver is based on the drm
      connector type, but the names do not match the kernel names (see
      /drivers/gpu/drm/drm_connector.c) or the modesetting driver names (see
      hw/xfree86/drivers/modesetting/drmmode_display.c). Making these more
      consistent will require less driver-specific special-case code if a user
      wants to match an xrandr output to a drm connector.
      
      Note that this patch should not actually change any behavior, since the
      QXL driver only uses the 'Virtual' connector type, so this is done only
      for consistency.
      Signed-off-by: 's avatarJonathon Jongsma <jjongsma@redhat.com>
      Acked-by: Frediano Ziglio's avatarFrediano Ziglio <fziglio@redhat.com>
      64cb597c
    • Jonathon Jongsma's avatar
      Make output name numbering 1-based · 505a8bb0
      Jonathon Jongsma authored
      The QXL driver names its outputs starting at 0 (e.g. Virtual-0,
      Virtual-1, etc). This code was presumably copy/pasted from a different
      driver, and is not necessary for the QXL driver. Other drivers simply
      use the kernel connector_type_id which starts at 1. For example, the
      modesetting driver changed from 0-based names to 1-based names for the
      same reason in xserver commit 139e36dd.
      
      This will help to make it easier to identify which xrandr outputs belong
      to which drm connector without requiring as many driver-specific
      special-cases.
      
      This change might effect custom xorg configurations that references a
      specific output name. But the same change was made in modesetting driver
      despite that possibility.
      Signed-off-by: 's avatarJonathon Jongsma <jjongsma@redhat.com>
      Acked-by: Frediano Ziglio's avatarFrediano Ziglio <fziglio@redhat.com>
      505a8bb0
  4. 19 Jun, 2017 1 commit
  5. 13 Jun, 2017 1 commit
  6. 07 Apr, 2017 2 commits
  7. 06 Apr, 2017 2 commits
  8. 19 Dec, 2016 4 commits
  9. 12 Dec, 2016 3 commits
  10. 02 Nov, 2016 1 commit
  11. 04 Oct, 2016 1 commit
  12. 30 Aug, 2016 1 commit
    • Owen Taylor's avatar
      Check for either xfont.pc or xfont2.pc · e13d28ee
      Owen Taylor authored
      More recent versions of Xfont have a different API (with namespacing
      for libXfont functions.) Check for xfont2.pc and if found, use that, and
      use the new API. The rational for preferring libXfont2 is that as a recent
      change the xserver module looks for and requires libXfont2, and it's better
      not to have both versions of the library in process.
      e13d28ee
  13. 07 Jul, 2016 1 commit
  14. 06 Apr, 2016 1 commit
    • Christophe Fergeau's avatar
      xspice: Don't create Xorg time in timer_add · edd1a409
      Christophe Fergeau authored
      SpiceCoreInterface::timer_add() is used by spice-server for integration
      with external mainloops. timer_add() is only meant to create a disabled
      timer, this timer will then be started with a call to timer_start().
      
      The current implementation in Xspice creates a timer which will trigger
      in a very long time, assuming this will never happen. This 'forever' is
      1,000,000 seconds, which amounts to 11 days. After that time, some
      timers which are meant to be disabled (eg migration related timers in
      spice-server) fire, then causing a crash with some failed assertions.
      
      Instead of creating the X timer right away in timer_add(), we can wait
      until timer_start() is called before starting it, which avoids this
      issue.
      edd1a409
  15. 24 Mar, 2016 5 commits
  16. 11 Jan, 2016 1 commit
  17. 11 Dec, 2015 2 commits
  18. 02 Nov, 2015 1 commit
  19. 26 Oct, 2015 3 commits
    • Jeremy White's avatar
      Correct the XSpice AgentMouse configuration options. · f9652ebb
      Jeremy White authored
      Since the introduction of vdagent support in commit
      294daff7, the
      SpiceAgentMouse setting has not really operated correctly.
      
      That is, if SpiceVdagentEnabled was true, the value
      of SpiceAgentMouse was overridden.
      
      This patch corrects that.
      
      It also shifts the default; that matches qemu, and effectively
      preserves the current default behavior.
      f9652ebb
    • Jeremy White's avatar
      Only watch the uinput channel when an agent is connected. · 6fa56701
      Jeremy White authored
      Otherwise, you constantly spin loop, getting a return code of 0,
      and pegging CPU usage at 100%.
      6fa56701
    • Jeremy White's avatar
      Add and remove the vdagent interface as the vdagent · 6e588d2a
      Jeremy White authored
      actually connects and disconnects.
      
      This means that we do not attempt to use agent mouse
      mode if there is no connected agent.
      
      It fixes a bug which would occur if an agent disconnected
      after session startup which would result in having no
      useful mouse.
      6e588d2a
  20. 19 Oct, 2015 1 commit
  21. 09 Sep, 2015 1 commit
  22. 07 Sep, 2015 2 commits
  23. 18 Aug, 2015 1 commit
    • Uri Lublin's avatar
      uxa: fix compiler warnings (initialize width, height, [xy]Dst_copy) · 2f4a2fe2
      Uri Lublin authored
      Some compiler warnings for example:
      uxa-glyphs.c:1045: warning: ‘width’ may be used uninitialized in this function
      uxa-glyphs.c:1045: warning: ‘height’ may be used uninitialized in this function
      uxa-render.c:1090: warning: ‘xDst_copy’ may be used uninitialized in this function
      uxa-render.c:1090: warning: ‘yDst_copy’ may be used uninitialized in this function
      
      I think these can never actually happen as the code protects use of
      those uninitialized variables, but I'd not "argue" with the compiler.
      2f4a2fe2
  24. 10 Aug, 2015 1 commit