https://bugs.kde.org/show_bug.cgi?id=394348

Rok Mandeljc <rok.mande...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rok.mande...@gmail.com

--- Comment #62 from Rok Mandeljc <rok.mande...@gmail.com> ---
Created attachment 119390
  --> https://bugs.kde.org/attachment.cgi?id=119390&action=edit
Handle media change events for devices that are connected after initial
introspection

(In reply to Stefan BrĂ¼ns from comment #60)
> Its not a bug in K3B, but in CDEmu. I have just verified "Releasing" (aka
> unmounting) a *real* CD from a real drive, and it stays in the device
> notifier, giving the option to remount, copy with k3b or open in various
> programs (implicitly remounting it).
> 
> When I press eject (either in the device notifier, or from the dolphin
> context menu), it vanishes.

Hello,

this bug report was linked in a bug report opened against CDEmu.

However, as far as I can tell, this is an issue with Solid, because I can also
reproduce it with my USB optical drive (ASUS BW-12D1S-U) - if I connect it to
system after Plasma session has been started.

More specifically, the issue is that in udisks2 backend,
Manager::slotMediaChanged() is connected to udisks2' PropertiesChanged signal
only for UDIs that are present during the initial Manager::allDevices() call
(which probably happens at session startup). For devices that are connected
later (such as a CDEmu virtual device, or an external USB drive), this
connection is not established. Consequently, the medium change is not properly
detected and available Content is not updated, and so its stale content
triggers the K3b Device action due to content-based predicate still evaluating
as true.

I have attached a proof-of-concept patch that seems to fix the issue for me. It
is based on assumption that addition of "org.freedesktop.UDisks2.Block"
interface means that a new device has been added, and it that case checks if it
is an optical device (in the same way as is done in Manager::introspect()).

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to