RFR: 8271398: GTK3 drag view image swaps red and blue color channels
Thiago Milczarek Sayao
tsayao at openjdk.java.net
Wed Aug 11 23:42:47 UTC 2021
On Fri, 6 Aug 2021 02:18:38 GMT, Thiago Milczarek Sayao <tsayao at openjdk.org> wrote:
> It seems raw images need to be converted BRGA -> RGBA.
>
> It was being converted on gtk2 code path, but gtk3 only uses `gtk_drag_set_icon_pixbuf`.
>
> I have simplified the gtk2 `DragView::View::expose` to paint with `gdk_cairo_set_source_pixbuf` (that is available since Gtk 2.8) because the old way was somehow converting again.
>
> Run the issue sample with `-Djdk.gtk.version=2` to test the gtk2 code path.
>
> To test:
>
> `./gradlew apps`
>
>
> java @build/run.args -cp apps/toys/DragDrop/dist/DragDrop.jar dragdrop.DragDropWithControls
> java @build/run.args -cp apps/toys/DragDrop/dist/DragDrop.jar dragdrop.DragDropColor
>
> java -Djdk.gtk.version=2 @build/run.args -cp apps/toys/DragDrop/dist/DragDrop.jar dragdrop.DragDropWithControls
> java -Djdk.gtk.version=2 @build/run.args -cp apps/toys/DragDrop/dist/DragDrop.jar dragdrop.DragDropColor
Test works on Linux, don't know on other platforms.
`gradlew -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test --tests test.robot.javafx.dnd.DndRawImageTest`
-------------
PR: https://git.openjdk.java.net/jfx/pull/599
More information about the openjfx-dev
mailing list