DnD: signal handler for signal_data_received not called
- From: Matthias Kaeppler <nospam digitalraid com>
- To: gtkmm-list gnome org
- Subject: DnD: signal handler for signal_data_received not called
- Date: Sun, 29 May 2005 20:04:05 +0200
Hi,
what if I have a TreeView which is supposed to act both as a source and
destination for drag and drop events? This treeview is embedded in a
Gtk::ScrolledWindow (class DirBrowser).
I have connected three signal handlers, but only two are called. The
signal handler which is supposed to be called when the destination
receives the drop is never called.
m_target_entries.push_back( Gtk::TargetEntry("STRING") );
m_target_entries.push_back( Gtk::TargetEntry("text/plain") );
m_view.drag_source_set(
m_target_entries,
Gdk::ModifierType( Gdk::BUTTON1_MASK | Gdk::BUTTON2_MASK ),
Gdk::DragAction( Gdk::ACTION_COPY | Gdk::ACTION_MOVE | Gdk::ACTION_LINK )
);
m_view.drag_dest_set(
m_target_entries,
Gtk::DEST_DEFAULT_ALL,
Gdk::DragAction( Gdk::ACTION_COPY | Gdk::ACTION_MOVE | Gdk::ACTION_LINK )
);
m_view.signal_drag_data_get()
.connect( sigc::mem_fun( *this, &DirBrowser::on_drag_data_get ) );
m_view.signal_drag_data_received()
.connect( sigc::mem_fun( *this, &DirBrowser::on_drag_data_received ) );
m_view.signal_button_press_event()
.connect_notify( sigc::mem_fun( *this, &DirBrowser::on_button_clicked ) );
[...]
void DirBrowser::on_drag_begin( const Glib::RefPtr<Gdk::DragContext>&
context )
{
//Gtk::ScrolledWindow::on_drag_begin( context );
std::cout << "dragging" << std::endl;
}
void DirBrowser::on_drag_data_get
( const Glib::RefPtr<Gdk::DragContext>&, const Gtk::SelectionData&,
guint, guint )
{
std::cout << "getting data" << std::endl;
}
void DirBrowser::on_drag_data_received
( const Glib::RefPtr<Gdk::DragContext>& context, int, int, const
Gtk::SelectionData& data, guint, guint time )
{
std::cout << "data received" << std::endl;
context->drag_finish(false, false, time);
}
--
Matthias Kaeppler
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]