On Sun, 2007-03-04 at 23:06 +0100, Gerd Kohlberger wrote: > Mike Dransfield schrieb: > > David Reveman wrote: > >> On Fri, 2007-03-02 at 13:35 +0000, Mike Dransfield wrote: > >> > >>> This seems roughly what I would need. I applied your patches and added > >>> IN_MODIFY since I need that too. > >>> > >> > >> Yes, we need a MODIFY bit. > >> > > > > I am attaching a patch for that > > > > I have also changed the notification functions as you said. > > I now create a custom structure to pass through which contains > > all the information that I need. > > > > There are 2 major problems though: > > > > 1. If I add a delete and a notify function then the closure gets > > mixed up. Everything works if I just add 1 but more than 1 and > > they seem to interact with each other. I am creating the watches > > with different functions, I just pass the same closure (line 1031). > > > > 2. The modify notification works, but only the first time. With > > the current version I can modify a file once and I get the notification > > and the option reloads, but if I modify the file a second time then > > I get no notification. > > > > The IN_MODIFY bit isn't really useful for text files. > > If you watch the event sequence which get emited by inotify you'll see > something like: > > 1) MOVE compiz.conf -> compiz.conf~ > 2) MOVE compiz.conf~ -> compiz.conf > 3) DELETE compiz.conf~ > > So if you watch compiz.conf directly and you open it in a text editor it gets > moved. > After that inotify seems to loose track of that file and the kernel will send > an IN_IGNORED event, > which automatically removes the watch. This is why modify only works the > first time. > > I think the best solution would be to watch only the ~/.compiz/options dir > and put all files in > this directory. You could changed the filenames to something like > <plugin>-<screen>.conf to represent > the different screens. > > Also the inotify plugin should probably handle those kernel events (like > IN_UNMOUNT), because if watches get automatically > removed by the kernel, it will confuse compiz internal list of watches. But i > haven't really tested this, so might not be necessary.
Yes, inotify plugin should deal with that. I left that out for later and any patches that would improve the current code would be greatly appreciated. - David _______________________________________________ compiz mailing list compiz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/compiz