Skip to content
Snippets Groups Projects
  1. Aug 27, 2018
    • Keith Packard's avatar
      composite: 0.5. Window scaling and events · 769e6f43
      Keith Packard authored
      
      Output scaling:
      
       * Changes to mivaltree to reset window clip to owner window size
         instead of server window size when compositing
      
       * Allocate owner window size pixmap for composite pixmap
      
       * Paint scaled image for automatic compositing
      
       * Report owner window size in events to the window owner.
      
       * Scale exposure damage in compSetRedirectBorderClip from
         current size to owner size to make sure the correct parts of
         the window are repainted.
      
      Input scaling:
      
       * Change miSpriteTrace to scale cursor coordinates when transiting an
         owner-sized window. Do all computations in double to handle
         multiple such transitions without losing bits
      
       * Add ScaleRootCoordinate in events.c. This function takes a window
         and a root x/y and walks up the tree scaling each time there is an
         owner size set.
      
       * Use ScaleRootCoordinate in FixUpEventFromWindow.
      
       * Wrap event delivery in DeliverEvent in new
         SaveEventRootCoord/RestoreEventRootCoord functions so that
         different windows receiving the same event will all receive the
         correct coordinates.
      
      Composite events:
      
       * Deliver CompositePixmapNotify events from compSetPixmapVisitWindow
         so that applications will be notified each time the pixmap changes.
      
       * Deliver CompositeOwnerWindowSizeNotify events when owner window
         size is set.
      
      Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
      769e6f43
  2. Aug 08, 2018
  3. May 08, 2018
  4. Apr 24, 2018
  5. Apr 10, 2018
  6. Apr 05, 2018
    • Adam Jackson's avatar
      dix: Hush an almost certainly bogus warning · 6f0903dd
      Adam Jackson authored
      
      ../dix/getevents.c: In function ‘transformAbsolute’:
      ../dix/getevents.c:1195:28: warning: ‘oy’ may be used uninitialized in this function [-Wmaybe-uninitialized]
           struct pixman_f_vector p = {.v = {*x, *y, 1} };
                                  ^
      ../dix/getevents.c:1234:22: note: ‘oy’ was declared here
           double x, y, ox, oy;
                            ^~
      
      This one is truly special. Even though both ox and oy are set and read
      along the same paths, only oy is marked for this warning! Initializing
      just oy = 0.0 fixes it entirely, but let's not make a weird thing
      weirder.
      
      Signed-off-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Acked-by: default avatarKeith Packard <keithp@keithp.com>
      6f0903dd
  7. Mar 27, 2018
  8. Feb 27, 2018
  9. Dec 06, 2017
  10. Nov 06, 2017
  11. Oct 30, 2017
  12. Oct 10, 2017
  13. Aug 15, 2017
    • Michel Dänzer's avatar
      Make PixmapDirtyUpdateRec::src a DrawablePtr · 8e3b26ce
      Michel Dänzer authored and Michel Dänzer's avatar Michel Dänzer committed
      
      This allows making the master screen's pixmap_dirty_list entries
      explicitly reflect that we're now tracking the root window instead of
      the screen pixmap, in order to allow Present page flipping on master
      outputs while there are active slave outputs.
      
      Define HAS_DIRTYTRACKING_DRAWABLE_SRC for drivers to check, but leave
      HAS_DIRTYTRACKING_ROTATION defined as well to make things slightly
      easier for drivers.
      
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      8e3b26ce
  14. Jul 31, 2017
  15. Jun 20, 2017
  16. Jun 19, 2017
    • Michal Srb's avatar
      dix: Disallow GenericEvent in SendEvent request. · 215f8949
      Michal Srb authored and Peter Hutterer's avatar Peter Hutterer committed
      
      The SendEvent request holds xEvent which is exactly 32 bytes long, no more,
      no less. Both ProcSendEvent and SProcSendEvent verify that the received data
      exactly match the request size. However nothing stops the client from passing
      in event with xEvent::type = GenericEvent and any value of
      xGenericEvent::length.
      
      In the case of ProcSendEvent, the event will be eventually passed to
      WriteEventsToClient which will see that it is Generic event and copy the
      arbitrary length from the receive buffer (and possibly past it) and send it to
      the other client. This allows clients to copy unitialized heap memory out of X
      server or to crash it.
      
      In case of SProcSendEvent, it will attempt to swap the incoming event by
      calling a swapping function from the EventSwapVector array. The swapped event
      is written to target buffer, which in this case is local xEvent variable. The
      xEvent variable is 32 bytes long, but the swapping functions for GenericEvents
      expect that the target buffer has size matching the size of the source
      GenericEvent. This allows clients to cause stack buffer overflows.
      
      Signed-off-by: default avatarMichal Srb <msrb@suse.com>
      Reviewed-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      215f8949
  17. Jun 07, 2017
  18. May 12, 2017
  19. Apr 26, 2017
  20. Mar 27, 2017
  21. Mar 21, 2017
  22. Mar 01, 2017
  23. Feb 23, 2017
  24. Feb 16, 2017
  25. Feb 08, 2017
  26. Jan 11, 2017
  27. Jan 02, 2017
    • Mihail Konev's avatar
      os,dix: Depend custom libs on libs, not objects · 5b74e260
      Mihail Konev authored and Adam Jackson's avatar Adam Jackson committed
      
      The custom os/os.O library reuses *.o files of os/libos.la.
      
      The current rule assumes automake puts all the objects into per-target
      am__*_la_OBJECTS variable.  At least with AC_REPLACE_FUNCS, this no
      longer holds (as wanted objects are put into LTLIBOBJS instead).
      
      Depend on automake's result, the *.la library instead, to express demand
      of any its dependencies being built.
      
      Should be fixing randomly occuring "undefined reference to `strlcpy'"
      errors when linking Xvfb and other DDX-es that could use os.O.
      
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Signed-off-by: default avatarMihail Konev <k.mvc@ya.ru>
      5b74e260
  28. Dec 12, 2016
  29. Nov 29, 2016
  30. Nov 15, 2016
  31. Oct 28, 2016
  32. Oct 06, 2016
    • Peter Harris's avatar
      Fix id in error when resource does not exist · 97a8353e
      Peter Harris authored and Adam Jackson's avatar Adam Jackson committed
      
      Always set client->errorValue before returning an error.
      
      Test program:
      
      int main(int argc, char *argv[]) {
          int screen = 0;
          xcb_connection_t *c = xcb_connect(NULL, &screen);
          if (!c) {
              printf("Cannot connect\n");
              return 1;
          }
      
          xcb_void_cookie_t tok = xcb_free_gc_checked(c, BAD_VALUE);
          xcb_g_context_error_t *err = (xcb_g_context_error_t *)xcb_request_check(c, tok);
          if (!err) {
              printf("Unexpected request success\n");
              return 1;
          }
          if (err->bad_value != BAD_VALUE) {
              printf("Error: Got 0x%X, expected 0x%X\n", err->bad_value, BAD_VALUE);
              return 1;
          }
          printf("Success! Got expected bad value of 0x%X\n", BAD_VALUE);
          return 0;
      }
      
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Signed-off-by: default avatarPeter Harris <pharris@opentext.com>
      97a8353e
  33. Oct 05, 2016
  34. Sep 28, 2016
  35. Sep 22, 2016
Loading