aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-07-22 07:52:24 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-07-22 07:52:24 +0000
commit4c2d91b4e1f289b61d78c7e6bfdd116f3d215d37 (patch)
treeeaeba89dec955d9c40510200eba3246bc4759def /src
parent2c228fc0a56ea07a96b2cd1230e4cc3a5c143108 (diff)
src/addressbook.c: fix DnD for win32.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2633 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r--src/addressbook.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/addressbook.c b/src/addressbook.c
index 4e763d7b..718108e4 100644
--- a/src/addressbook.c
+++ b/src/addressbook.c
@@ -1772,6 +1772,17 @@ static gboolean addressbook_drag_motion(GtkWidget *widget,
g_return_val_if_fail(src_ds != NULL, FALSE);
src_abf = src_ds->rawDataSource;
g_return_val_if_fail(src_abf != NULL, FALSE);
+
+#ifdef G_OS_WIN32
+ {
+ GdkModifierType state = 0;
+
+ gdk_window_get_pointer(widget->window, NULL, NULL, &state);
+ if ((state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) == 0)
+ context->actions = GDK_ACTION_MOVE | GDK_ACTION_COPY;
+ }
+#endif
+
if (!src_ds->interface ||
(src_ds->interface->readOnly || !src_ds->interface->haveLibrary))
context->actions &= ~GDK_ACTION_MOVE;