If you DnD anything, the DnD icon shows an odd background. During the weekend I found out that WebKitGtk is using gtk_drag_set_icon_widget(), but is not setting the passed GtkWindow widget as app-paintable, which forces background rendering that would be unintended here. After some chatting with KaL on #gtk+, it seems like a better approach though is using gtk_drag_set_icon_surface(): KaL garnacho_: we should probably use gtk_drag_set_icon_surface I don't know why we use a widget for that, TBH since the drag icon is rendered into a cairo surface in webcore Doing either would fix the odd background on DnD icons.
We can just remove DragIcon entirely, and use simply gtk_drag_set_icon_surface().
Created attachment 249726 [details] Patch
Comment on attachment 249726 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=249726&action=review > Source/WebCore/ChangeLog:10 > + Remove DragIcon class since it's no longer needed with GTK+3 and > + the GTK+2 code there is unused. > + It's great that GTK+ improved the API here. Do you mind explaining a bit more here why this is no longer necessary for GTK+3? What changes allow us to work properly with composited window managers without a window?
(In reply to comment #3) > Comment on attachment 249726 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=249726&action=review > > > Source/WebCore/ChangeLog:10 > > + Remove DragIcon class since it's no longer needed with GTK+3 and > > + the GTK+2 code there is unused. > > + > > It's great that GTK+ improved the API here. Do you mind explaining a bit > more here why this is no longer necessary for GTK+3? What changes allow us > to work properly with composited window managers without a window? GTK+ knows what to do with a cairo surface, I guess we migrated the gtk+2 code to gtk+3 without realizing that using the surface was enough.
Comment on attachment 249726 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=249726&action=review >>> Source/WebCore/ChangeLog:10 >>> + >> >> It's great that GTK+ improved the API here. Do you mind explaining a bit more here why this is no longer necessary for GTK+3? What changes allow us to work properly with composited window managers without a window? > > GTK+ knows what to do with a cairo surface, I guess we migrated the gtk+2 code to gtk+3 without realizing that using the surface was enough. Cool, do you mind just dropping something like that into the ChangeLog?
Committed r182175: <http://trac.webkit.org/changeset/182175>