RESOLVED FIXED 143217
[GTK] DnD icon/widget has odd background
https://bugs.webkit.org/show_bug.cgi?id=143217
Summary [GTK] DnD icon/widget has odd background
Carlos Garnacho
Reported 2015-03-30 05:26:24 PDT
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.
Attachments
Patch (11.30 KB, patch)
2015-03-30 06:24 PDT, Carlos Garcia Campos
mrobinson: review+
Carlos Garcia Campos
Comment 1 2015-03-30 05:58:47 PDT
We can just remove DragIcon entirely, and use simply gtk_drag_set_icon_surface().
Carlos Garcia Campos
Comment 2 2015-03-30 06:24:18 PDT
Martin Robinson
Comment 3 2015-03-30 08:07:25 PDT
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?
Carlos Garcia Campos
Comment 4 2015-03-30 08:26:30 PDT
(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.
Martin Robinson
Comment 5 2015-03-30 08:30:48 PDT
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?
Carlos Garcia Campos
Comment 6 2015-03-31 00:50:49 PDT
Note You need to log in before you can comment on or make changes to this bug.