Skip to content

Emit DataOfferInterface::dragAndDropActionsChanged() only if dnd actions change

Vlad Zahorodnii requested to merge work/zzag/firefox-positive-feedback-loop into master

With some apps, firefox specifically, it's possible to enter a dnd positive feedback loop, e.g.

  • kwin sends wl_data_offer::action event
  • the app reacts to it and calls wl_data_offer::set_actions() with the same actions
  • kwin re-sends the wl_data_offer::action event because DataOfferInterface::dragAndDropActionsChanged() has been emitted
  • the app calls wl_data_offer::set_actions() again, and so on...

This should make D&D in Firefox more responsive.

Merge request reports