dx-packages team mailing list archive
-
dx-packages team
-
Mailing list archive
-
Message #13380
[Bug 1018215] Re: Unity launcher appearing interrupts GTK drag and drop operation (that's nowhere near the launcher)
I just posted a comment on 1060580 about marking it as a duplicate of
this bug. I also had this to add:
On Ubuntu 13.10, it's worth noting that disabling the Unity plugin in
CCSM eliminates bug 1060580 and this one. Interestingly, re-enabling
the Unity plugin then trying drag and drop again, the panel fade
animation doesn't occur, and neither do these two bugs. I'm pretty
confident that narrows these bugs down to the panel fade animation.
--
You received this bug notification because you are a member of DX
Packages, which is subscribed to unity in Ubuntu.
Matching subscriptions: dx-packages
https://bugs.launchpad.net/bugs/1018215
Title:
Unity launcher appearing interrupts GTK drag and drop operation
(that's nowhere near the launcher)
Status in Unity:
Triaged
Status in “unity” package in Ubuntu:
Confirmed
Bug description:
I am a developer for an app that uses Gtk's "drag-motion" and "drag-
leave" signals. It is important that "drag-leave" not be fired until
the mouse actually leaves the widget. However, when running unit,
"drag-leave" will be fired ~1 second after a drag begins.
Here is a test project (in Vala) that reproduces the issue. Select a
file on your desktop, and drag it to the window that this test project
creates. You must drag it to the window within ~1 second to reproduce
the bug. You should see "in on_drag_leave" appear in stderr, despite
the mouse remaining within the Window.
void main(string[] args) {
Gtk.init(ref args);
new MainWindow();
Gtk.main();
}
public class MainWindow : Gtk.Window {
private const string URI_LIST_MIME_TYPE = "text/uri-list";
public MainWindow() {
destroy.connect(Gtk.main_quit);
set_size_request(450, 50);
title = "Main Window";
Gtk.Widget destination = new Gtk.Label("Drag a file here");
const Gtk.TargetEntry[] target_entries = { { URI_LIST_MIME_TYPE, 0, 0 } };
Gtk.drag_dest_set(destination, Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT,
target_entries, Gdk.DragAction.COPY);
destination.drag_data_received.connect(on_drag_data_received);
destination.drag_drop.connect(on_drag_drop);
destination.drag_leave.connect(on_drag_leave);
add(destination);
show_all();
}
private void on_drag_data_received(Gtk.Widget sender, Gdk.DragContext context, int x, int y,
Gtk.SelectionData selection_data, uint info, uint time_) {
bool dnd_success = false;
if (selection_data.get_length() >= 0) {
string string_data = (string)selection_data.get_data();
stderr.printf("Received %s: '%s'\n", URI_LIST_MIME_TYPE, string_data);
dnd_success = true;
}
Gtk.drag_finish(context, dnd_success, false, time_);
}
private bool on_drag_drop(Gtk.Widget sender, Gdk.DragContext context, int x, int y, uint time_) {
if (context.list_targets() == null)
return false;
uint length = context.list_targets().length();
Gdk.Atom? target_type = null;
for (uint i = 0; i < length; i++) {
Gdk.Atom target = context.list_targets().nth_data(i);
if (target.name() == URI_LIST_MIME_TYPE)
target_type = target;
}
if (target_type == null)
return false;
Gtk.drag_get_data(sender, context, target_type, time_);
return true;
}
private void on_drag_leave() {
stderr.printf("in on_drag_leave\n");
}
}
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: unity 5.12-0ubuntu1.1
ProcVersionSignature: Ubuntu 3.2.0-25.40-generic 3.2.18
Uname: Linux 3.2.0-25-generic x86_64
ApportVersion: 2.0.1-0ubuntu8
Architecture: amd64
CompizPlugins: [core,composite,opengl,compiztoolbox,decor,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,unitymtgrabhandles,workarounds,scale,expo,ezoom,unityshell]
Date: Tue Jun 26 18:06:07 2012
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425)
SourcePackage: unity
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/unity/+bug/1018215/+subscriptions