Various requests
Posted: Fri Jan 03, 2014 9:58 pm
When creating BananaBar, I have run into several issues, that got in the way of doing what I wanted.
1) Compositing to an ALPHA8 bitmap only works on RadeonHD. Hans has explained to me, that it was never intended to work for alpha bitmaps, so this is somewhat puzzling. Anyways, to be able to animate windows with transparency, it is absolutely cruzial, that it is somehow possible to quickly render to an ALPHA8 bitmap, because there is no other way to control the transparency (ie. clipregion). Another possibility would be to be able to control the transparency directly from the alpha channel of the window bitmap (if this is RGB32). But I guess that would be a somewhat big intervention into the api/concept. Conclusion: As Hans has suggested, it would be very wise to officially support compositing to ALPHA8 bitmaps, which at present means to implement this possibility in (at least) the old radeon drivers.
2) When doing drag&drop of workbench items, the entire event handling system seems to be put on hold (except for appwindow hover events?). This is unfortunate for the BananaBar case, because I really want to be able to animate the whole dock, as the potential drop is hovering over it (ie. create space at the hover spot and moving everything else in the window accordingly). This is not possible at all because
a) my input handler only receives the mouse events after the drop has been done or canceled (at which point it crashes, probably because there is overload in the event queue) and
b) when handling hover events (ie. DropZone events) and trying to update the transparency with SetWindowAttrs, BananaBar hangs the entire system.
I know this is all very fancy, but it could have an impact at other future apps as well. I am not sure how to solve it, though, because I don't know the internals of intuition in said case (or in any case, really).
3) When adding DropZones, there seems to be a problem with drop zone priorities. What I want is an individual dropzone for every individual icon PLUS a dropzone for the entire window (for adding icons to the dock). The final drop events seem to get the dropzone right, but the hover events don't (either it only gives events for the icons or only for the whole dock (when creating the main zone before or after the icon zones)). I have had to solve this by manually calculating the "inbetweens" (with a Region) and adding many, many dropzones to represent the main dock area. This is pretty dumb, though. I wonder how AmiDock does it?
4) This one may already have been solved: Sometimes BananaBar crashes, when going into the settings window. The settings window is opened from a popupmenu. zzd10h has told me, that there was a problem with popupmenu.library, which has been solved in the meantime, but never released. I would be very happy, if that fix could be released soon!
1) Compositing to an ALPHA8 bitmap only works on RadeonHD. Hans has explained to me, that it was never intended to work for alpha bitmaps, so this is somewhat puzzling. Anyways, to be able to animate windows with transparency, it is absolutely cruzial, that it is somehow possible to quickly render to an ALPHA8 bitmap, because there is no other way to control the transparency (ie. clipregion). Another possibility would be to be able to control the transparency directly from the alpha channel of the window bitmap (if this is RGB32). But I guess that would be a somewhat big intervention into the api/concept. Conclusion: As Hans has suggested, it would be very wise to officially support compositing to ALPHA8 bitmaps, which at present means to implement this possibility in (at least) the old radeon drivers.
2) When doing drag&drop of workbench items, the entire event handling system seems to be put on hold (except for appwindow hover events?). This is unfortunate for the BananaBar case, because I really want to be able to animate the whole dock, as the potential drop is hovering over it (ie. create space at the hover spot and moving everything else in the window accordingly). This is not possible at all because
a) my input handler only receives the mouse events after the drop has been done or canceled (at which point it crashes, probably because there is overload in the event queue) and
b) when handling hover events (ie. DropZone events) and trying to update the transparency with SetWindowAttrs, BananaBar hangs the entire system.
I know this is all very fancy, but it could have an impact at other future apps as well. I am not sure how to solve it, though, because I don't know the internals of intuition in said case (or in any case, really).
3) When adding DropZones, there seems to be a problem with drop zone priorities. What I want is an individual dropzone for every individual icon PLUS a dropzone for the entire window (for adding icons to the dock). The final drop events seem to get the dropzone right, but the hover events don't (either it only gives events for the icons or only for the whole dock (when creating the main zone before or after the icon zones)). I have had to solve this by manually calculating the "inbetweens" (with a Region) and adding many, many dropzones to represent the main dock area. This is pretty dumb, though. I wonder how AmiDock does it?
4) This one may already have been solved: Sometimes BananaBar crashes, when going into the settings window. The settings window is opened from a popupmenu. zzd10h has told me, that there was a problem with popupmenu.library, which has been solved in the meantime, but never released. I would be very happy, if that fix could be released soon!