Matthias Clasen
69fb3648b2
Tweak the file transfer portal _again_
...
This is a neverending story. I was seeing problems in tests where
the nested mainloop was picking up unrelated timeouts.
Break down and make this async. This changes the ordering in which
the (de)serializers are registered. If this is causing issues, we
can introduce priorities or something else.
2020-01-17 23:46:37 -05:00
Carlos Garnacho
357e215fb8
gdkdrag/x11: Issue XdndLeave on cancellation
...
According to XDND "The XdndLeave message cancels the session.",
issue one when cancelling a drag, so the dest side has an opportunity
to forget about the GdkDrop.
2020-01-16 15:03:24 +01:00
Carlos Garnacho
4716c9ae2f
gdkdrag/x11: Drop timestamp argument from gdk_drag_do_leave()
...
This is not necessary for the XdndLeave message, nor used.
2020-01-16 15:02:16 +01:00
Carlos Garnacho
5aad3d7d0e
gdk/x11: Ensure to hide DnD surface after failed operation
...
The drag source might be cached and held alive, only disposed after
future drag begin operations. Ensure the drag surface gets hidden
properly or might might stay transparent but mapped till then.
2020-01-16 13:34:08 +01:00
Carlos Garnacho
fe36c24b07
gdk/x11: Ensure to sync type list after sending XdndEnter
...
Otherwise we are not ensured the GdkDrop is up-to-date, might even
be a stale one from an older DnD operation.
2020-01-16 13:33:57 +01:00
Carlos Garnacho
682068f887
gdk/x11: Serialize gtype content formats before sending Xdnd enter
...
This ensures GType handlers get serialized to mimetypes at the time
the drag dest inspects the XdndTypeList property.
2020-01-16 13:31:40 +01:00
Matthias Clasen
82dc7b903c
Fix the filetransfer portal initialization
...
Reusing the cancellable only works if you don't throw
it away after first use.
2020-01-15 10:58:54 -05:00
Matthias Clasen
b020a3fcf9
Try harder to make ci not timeout
...
Make getting the file transfer portal proxy more
async, and avoid leaking a bus connection. This
causes GTestDBus to hang at the end of the test
run.
2020-01-14 18:32:05 -05:00
Matthias Clasen
806e159b8b
Handle lack of file transfer portal
...
Don't block for 25 seconds trying to get a bus
connection. Give up after 1 second.
2020-01-14 01:03:48 -05:00
Robert Ancell
83867f9cbf
Add missing (closure) GIR annotations
2020-01-13 14:26:50 +13:00
Robert Ancell
ea9f0df67b
Fix incorrect use of GIR closure annotations.
...
They were being applied to the callback function, not the data that is passed
to that function.
2020-01-13 14:11:15 +13:00
Robert Ancell
2b6162116d
Fix docstring errors with drag and drop code
2020-01-13 12:30:17 +13:00
Matthias Clasen
f5daecf353
Merge branch 'dnd-gestures-2' into 'master'
...
Add new dnd api
See merge request GNOME/gtk!1278
2020-01-11 06:09:58 +00:00
Alex Samorukov
f0cbd175cd
gdk_quartz_keymap_translate_keyboard_state fills consumed_modifiers
...
incorrectly (closes #2102 )
See merge request GNOME/gtk!1225
2020-01-10 22:18:24 +01:00
Matthias Clasen
8d3e1eb314
docs: Fix a typo
2020-01-09 00:31:13 -05:00
Matthias Clasen
187a701a99
content provider impl: Take mime types into account
2020-01-08 18:48:22 -05:00
Matthias Clasen
d116bbf0c8
docs: Expand the GDK dnd docs
2020-01-08 18:48:22 -05:00
Carlos Garnacho
f6f331efe3
gdk/x11: Forward suggested action (if any) to XdndStatus
...
Go ahead with the suggested action, so the drag source may update
cursor feedback properly, and eventually result in the correct
action.
2020-01-08 18:48:21 -05:00
Matthias Clasen
3080592234
gdk: Make gdk_event_set_coords support dnd events
...
GTK event propagation code relies on this working.
2020-01-08 18:48:21 -05:00
Matthias Clasen
a76b187a5b
drop: Add a convenience api
...
This is a question that drag-drop handlers frequently
need to answer, so make it easy.
2020-01-08 18:48:20 -05:00
Matthias Clasen
ea9f2abcc4
Add another callback-based provider
...
This one can be used in cases where data needs
to be served in multiple formats that may not
all be covered by content serializers.
2020-01-08 18:48:19 -05:00
Matthias Clasen
fdcfe0e80a
Add a generic callback content provider
...
This one is convenient to use in cases where a
drag is just serving an existing GType which
is covered by content serializers.
2020-01-08 18:48:19 -05:00
Matthias Clasen
8137dea8c1
Add (de)serializers for GdkRGBA
...
This is a format that we use in various
color picker widgets, so support it in GDK.
2020-01-08 18:48:19 -05:00
Alex Samorukov
df9d9c1f8a
impl_class->set_functions listed twice in the object
2020-01-08 14:15:45 +00:00
Alex Samorukov
d131c8d0e7
move [NSApplication sharedApplication] after _gdk_quartz_events_init() to avoid initialization issues
...
(cherry picked from commit 46c2451c5a3cd42aa5a94935bfc850a484288ff3)
2020-01-08 14:10:06 +00:00
Timm Bäder
2cbfb0e980
GdkGLContext: check for GL_KHR_debug for GL debug output
...
This is available in GLES.
2020-01-07 17:27:16 +01:00
Timm Bäder
095a378dbc
GdkRGBA: Use floats instead of doubles
2020-01-07 17:27:15 +01:00
Matthias Clasen
2ee9752822
wayland: Remove debug spew
2020-01-06 08:19:01 -05:00
Matthias Clasen
759d53cfa0
wayland: Don't artificially prefer ASK
...
We were always adding ASK to the list of possible
actions, and preferring it. This was causing the
ask cursor to show up when both the source and
the target support ASK, even though it is only
meant to happen if you hold the Alt modifier.
Instead, use one of the supported actions as
preferred action.
2020-01-04 12:51:32 -05:00
Matthias Clasen
814d20d61a
docs: Small clarifications to DND docs
...
Clear up the documentation around ASK handling
a bit.
2020-01-04 12:48:39 -05:00
Matthias Clasen
6cef520804
wayland: Minor cleanup
...
Stop storing selected_action, mainly since the name
is confusing. Instead, just pass the value directly
in the 2 places where it is used.
2020-01-04 12:48:39 -05:00
Matthias Clasen
8c77491150
wayland: Fix action handling more
...
When updating GdkDrop::actions from changes sent by
the compositor, we were inadvertently setting them to 0,
causing drops to appear impossible.
2020-01-04 09:38:31 -05:00
Matthias Clasen
709ebcedd4
wayland: Finish pending offer handling
...
When creating a new GdkDrop object on drag_enter, take pending
source_actions and action into account. The code to store the
pending actions was already there, they were just not passed
on to the drop object when we create it.
2020-01-04 09:38:01 -05:00
Matthias Clasen
47e6b88555
wayland: Clean up drags
...
We need to set the drag to NULL in gdk_wayland_drag_drop_done,
otherwise, all future drags will be considered local after the
first local one. Worse, they will also provide the wrong data.
2020-01-04 09:36:38 -05:00
Matthias Clasen
4b818495ca
wayland: Fix dnd type negotiation
...
We need to call gdk_content_formats_union_serialize_mime_types
like GdkClipboard does, in order to get mime types that we can
sent out.
2020-01-01 12:51:19 -05:00
Matthias Clasen
1841ec4f8e
contentprovider: cosmetic fix
2020-01-01 12:51:19 -05:00
Matthias Clasen
21708e4352
contentserializer: Fix an annotation
2020-01-01 12:51:19 -05:00
Matthias Clasen
15242d66e1
wayland: Pass root coordinates for dnd events
...
That is what the api currently requires, so provide it.
This fixes DND to work again, for the most part.
2019-12-30 12:00:53 -05:00
Matthias Clasen
94a0bc01f9
gdk: Populate dnd event coords
...
The GdkDrop emit... apis take root coordinates.
That should be changed to surface coordinates,
eventually. For now, make the functions fill
the x, y fields.
2019-12-30 11:58:11 -05:00
Matthias Clasen
677c4b140c
gdk: Fix coordinates in dnd events
...
Don't store coordinates as shorts. Use doubles,
as everywhere else. Also add x, y in addition
to x_root, y_root, and actually return those
in gdk_event_get_coords.
2019-12-30 11:56:49 -05:00
Matthias Clasen
0bb9fc65ad
Remove gdk_seat_grab
...
We are no longer using free-standing grabs
in GTK. The replacement is the autohide
functionality of popup surfaces.
2019-12-29 20:31:58 -05:00
Matthias Clasen
ad6fe9d6a0
surface: Only unpause events if we paused them
...
When a new popup surface is created, it may end up
getting a resume-events signal from its frame clock
without having seen a flush-events first.
Don't unpause events in that case, since it messes
up the displays pause counter.
This was causing criticals with tooltips.
2019-12-29 13:35:36 -05:00
Matthias Clasen
a73947e54f
Remove more mir remnants
...
The mir backend was removed a while ago, so
GDK_WINDOWING_MIR is never defined.
2019-12-28 21:52:34 -05:00
Matthias Clasen
0546fd7c8a
Merge branch 'fix.nonunix.builds' into 'master'
...
Fix non-portal (UNIX) builds
See merge request GNOME/gtk!1252
2019-12-16 17:38:56 +00:00
Chun-wei Fan
3d8d4921af
gdk: Build portal bits on *nix only
...
The newly-added portal items are supported on *nix only, so only build
them on *nix.
2019-12-17 00:52:18 +08:00
Matthias Clasen
721595edea
file transfer: Fix build on non-Linux
...
O_PATH and O_CLOEXEC are not universally available.
2019-12-16 11:38:04 -05:00
Matthias Clasen
bf2c29a36a
x11: Only update cursors if we have any
...
We were accessing an on-demand created hash table
without checking if it had been created first.
Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/2308
2019-12-13 14:46:00 -05:00
Matthias Clasen
a20c8af678
clipboard: file transfer portal support
...
Implement file-list <-> application/vnd.flatpak.file-list
serialization by talking to the file transfer portal.
See https://github.com/flatpak/xdg-desktop-portal/pull/222
2019-12-12 14:25:33 -05:00
Christoph Reiter
88da95d921
Merge branch 'honor-hotspot-gtk4' into 'master'
...
gdk/x11: Honor hotspot during drag cancel animation
See merge request GNOME/gtk!1236
2019-12-11 12:59:23 +00:00
Chun-wei Fan
44f9c67466
Merge branch 'vulkan-no-layered-windows' into 'master'
...
Win32: Do not enable layered windows when using Vulkan
See merge request GNOME/gtk!1217
2019-12-11 06:24:49 +00:00