Skip to content
  1. Sep 28, 2015
    • Carlos Garnacho's avatar
      wayland: Implement DnD actions as per wl_data_device v3 changes · 319d0bb6
      Carlos Garnacho authored
      We now additionally send:
        - wl_data_offer.source_actions
        - wl_data_source.action
        - wl_data_offer.action
        - wl_data_source.drop_performed
        - wl_data_source.drag_finished
      
      The protocol changes allow for compositors to implement different policies
      when chosing the action, mutter uses this to reimplement the same behavior
      that GTK+ traditionally had:
      
        - Alt/Control/Shift modifiers change the chosen action to
          ask/copy/move respectively
        - Drags with middle button start out as "ask" by default
      
      As mutter now also grabs the keyboard and unsets the window focus for these
      purposes, the window focus is restored after the drag operation has
      finished.
      319d0bb6
    • Carlos Garnacho's avatar
      wayland: Add MetaWaylandKeyboardGrab and keyboard grab API · ce78db31
      Carlos Garnacho authored
      This will be useful during DnD, where mutter is expected to consume
      keyboard events for either allowing changes in the selected DnD action,
      or misc a11y features like keyboard-driven DnD.
      
      Currently, the vtable contains 2 functions, key() will be used on every
      key event we get from Clutter, modifiers() will notify of changes in the
      keyboard modifiers (mouse buttons will never be set in the modifier mask)
      ce78db31
    • Carlos Garnacho's avatar
      wayland: Add "update" vfunc to MetaWaylandDragDestFuncs · 15513adc
      Carlos Garnacho authored
      This will be useful when an update is due but no motion event is to be
      sent/received (eg. modifier changes during DnD).
      15513adc
    • Carlos Garnacho's avatar
      wayland: Avoid resending new data offers on intra-client focus changes · 832c710c
      Carlos Garnacho authored
      Each keyboard focus change ends up calling the MetaWaylandDataDevice
      counterpart, we don't need though to notify the current selection
      again. In order to fix this, keep track of the current client, and
      only emit the relevant signals when the focus switches to another
      client.
      
      The situations where wl_data_device.selection were emitted during
      focus changes between surfaces of the same client was inocuous most
      of the times, although it's prone to inducing confusing behavior
      on context menu clipboard actions, as the closing menu triggers a
      focus change, which triggers a whole new wl_data_offer being created
      and given on wl_data_device.selection, at a time where there's already
      ongoing requests on the previous data offer.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=754357
      832c710c
    • Carlos Garnacho's avatar
      xwayland: Protect against crash on x11->wayland transfer cancellation · 682c1372
      Carlos Garnacho authored
      If the transfer is cancelled, the X11SelectionData will be cleared from
      the MetaSelectionBridge, although x11_data_write_cb() was invariably
      expecting it to be non-NULL.
      
      If the write was cancelled, all the actions done in x11_data_write_cb()
      are moot, so just return early. If there's other errors happening
      (eg. "connection closed" if the target client happens to crash), we
      should still attempt at clearing the data anyway.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=754357
      682c1372
    • Carlos Garnacho's avatar
      wayland: Check the drag focus before processing XDND dest-side messages · 6f64d6b0
      Carlos Garnacho authored
      If the drag dest surface suddenly disappears, we may find ourselves
      processing an XdndPosition message that was sent before the X11 drag
      source had an opportunity to find out.
      
      In that case mutter does know, so double check before processing the
      messages.
      6f64d6b0
    • Carlos Garnacho's avatar
      wayland: Improve transformation of the UTF8_STRING atom to mimetype · ebeca983
      Carlos Garnacho authored
      We try to translate the atom with its corresponding mimetype both back
      and forth, which actually breaks if the X11 client chose to announce the
      mimetype atom. To do the translation properly, keep track on whether the
      source announced the UTF8_STRING atom, and reply back with this only if
      that happened.
      ebeca983
    • Carlos Garnacho's avatar
      wayland: Fix weak ref tracking on data sources · cf886758
      Carlos Garnacho authored
      We may get a NULL one here, and we're wrongly attempting to remove
      the old weak ref from the new data source object.
      cf886758
    • Carlos Garnacho's avatar
      wayland: Avoid use of struct data after destruction · 405f1ce3
      Carlos Garnacho authored
      data_device_end_drag_grab() will destroy the MetaWaylandDragGrab struct,
      so we definitely must not use it after destruction.
      405f1ce3
  2. Sep 27, 2015
  3. Sep 25, 2015
  4. Sep 24, 2015
  5. Sep 21, 2015
  6. Sep 20, 2015
  7. Sep 17, 2015
  8. Sep 16, 2015
  9. Sep 13, 2015
  10. Sep 09, 2015
  11. Sep 07, 2015