Christoph Reiter
b061821f24
g-i: Add some nullable annotations
...
Based on grepping arg docs for NULL.
See https://gitlab.gnome.org/GNOME/pygobject/issues/261
2018-11-18 13:36:50 +01:00
Mohammed Sadiq
1ce960c85b
gdkselectioninputstream-x11: Fix memory leak
2018-09-16 20:08:25 +05:30
Benjamin Otte
375fbd4e47
gdk: Remove key_event->string and key_event->length
...
They're unused.
2018-07-30 19:32:38 +02:00
Matthias Clasen
ad6255a841
Merge branch 'xfixes-timestamp' into 'master'
...
x11: Ignore old XFixesSelectionNotify events
Closes #14
See merge request GNOME/gtk!259
2018-07-25 11:21:01 +00:00
Nirbheek Chauhan
5df4d27752
meson: libgdk-broadway.a depends on broadwayjs.h
...
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1218
Also fix another dependency error I found.
2018-07-23 20:15:44 +05:30
Jason Crain
77c3ef48cf
x11: Ignore old XFixesSelectionNotify events
...
GtkEntryCompletion can rapidly release and claim ownership of the
primary selection. This generates multiple XFixesSelectionNotify events,
first stating that no one owns the selection, then another stating that
we own the selection. The notification that no one owns the selection
causes GtkEntryCompletion to deselect the text, breaking inline
autocompletion.
This fixes it by ignoring any XFixesSelectionNotify with a timestamp
earlier than our clipboard timestamp.
Fixes #14
2018-07-21 15:22:04 -05:00
Timm Bäder
446b2e25d3
Avoid a g_object_get path
...
We can use gdk_device_get_n_axes instead and will get the same result.
2018-07-17 17:33:46 +02:00
Matthias Clasen
7a1073c3ae
Revert "gdk: Drop configure events"
...
This reverts commit a8926c9d87
.
2018-07-15 20:23:45 -04:00
Matthias Clasen
168523264c
x11: Set actions on drag
...
We should pass the actions to the newly created
drag object in drag_begin.
2018-07-15 16:50:06 -04:00
Matthias Clasen
435f143e2e
x11: Rename a file
...
Keep in line with the parent class.
2018-07-15 16:47:17 -04:00
Matthias Clasen
2d83bb1b91
x11: Stop using GdkDrag fields
2018-07-15 16:43:28 -04:00
Matthias Clasen
228f813c43
dnd: Drop gdk_drag_drop
...
This is an inconsistently used private api, and just adds
a vfunc indirection for no other benefit.
2018-07-15 15:58:05 -04:00
Matthias Clasen
d148f26658
Drop gdk_surface_withdraw
...
'withdrawn' is an X11-centric concept, and the function
can just as well be replaced by gdk_surface_hide.
2018-07-15 15:29:58 -04:00
Matthias Clasen
7ca6440f4d
gdk: Drop map events
...
We are really inconsistent about generating these,
and they are not actually used in GTK+. Instead,
add a boolean GdkSurface::mapped property.
2018-07-15 15:10:56 -04:00
Matthias Clasen
a8926c9d87
gdk: Drop configure events
...
Replace configure events with a GdkSurface::size-changed signal.
This is part of the move to use events only for input.
2018-07-15 11:51:09 -04:00
Benjamin Otte
6afb6bb9d2
x11: Set BackPixmap = None unconditionally
...
Makes it more obvious what we actually want.
Related: #1134
2018-07-14 05:27:54 +02:00
Matthias Clasen
f432c937cc
dnd: Drop gdk_drag_abort
...
This function is never called, so drop it, its vfunc,
and all the backend implementations.
2018-07-12 13:57:45 +02:00
Matthias Clasen
a756caa106
dnd: Drop suggested_action
...
The only user of this field was the x11 backend, and it
turns out that it does not need to store the value at all.
2018-07-12 13:02:42 +02:00
Matthias Clasen
da22ba3b86
drag: Split a setter
...
In preparation for moving the suggested action
to the x11 backend, split the setter off.
2018-07-12 13:02:42 +02:00
Matthias Clasen
94af080fb6
Rename a property
...
Change GdkDrag::action to GdkDrag::selected-action, which is
more clearly different from actions, and follows the existing
name of the struct field and getter.
2018-07-12 13:02:42 +02:00
Matthias Clasen
db0b9f61ae
dnd: Add a GdkDrag::action property
...
This lets us drop the ::action-changed signal for the
property change notification. But, can just as well move
the signal class handers which just update the cursor
to the ::action setter. No need to do this in the backends.
2018-07-12 13:02:42 +02:00
Matthias Clasen
64f5afe608
dnd: Rename headers
...
Rename gdkdnd.h to gdkdrag.h, to go along with gdkdrop.h
This commit includes the necessary updates to the X11, Wayland
and Broadway backends. Other backends have to be updated separately.
2018-07-02 15:00:50 +02:00
Matthias Clasen
7733f646d6
gdk: Rename GdkDragContext to GdkDrag
...
This is to go along with the newly introduced GdkDrop.
This commit includes the necessary updates to the X11, Wayland
and Broadway backends. Other backends have to be updated separately.
2018-07-02 14:59:26 +02:00
Benjamin Otte
d13843ee2a
gdk: Remove GDK_SURFACE_FOREIGN
...
We don't create surfaces of that type anymore.
2018-06-26 00:47:40 +02:00
Matthias Clasen
5c46c81067
x11: Fix dnd action handling
...
We were mistakenly assigning an Atom to a flags value.
2018-06-20 18:10:50 -04:00
Matthias Clasen
cd99f82e0c
Merge branch 'master' into 'issue1084'
...
# Conflicts:
# gdk/gdk.c
2018-06-20 14:21:24 +00:00
Benjamin Otte
cbbb7604b6
x11: Set background as transparent as possible
...
Instead of making the background black, make it transparent black for
RGBA visuals and set a None background otherwise.
2018-06-18 23:49:53 +02:00
Benjamin Otte
a2839d157f
dnd: Remove unused time arguments
2018-06-18 23:49:53 +02:00
Benjamin Otte
aa1f0cfd4f
dnd: Remove GdkDragContext.is_source
...
All drag contexts are sources these days, the other ones are GdkDrop
now.
2018-06-18 23:49:53 +02:00
Benjamin Otte
45a6146ca6
x11: Remove gdk_x11_surface_foreign_new_for_display()
...
People who want to use foreign windows should use X directly.
2018-06-18 23:49:53 +02:00
Benjamin Otte
bc63001deb
x11: Store the XID instead of a GdkSurface
...
This might be foreign Windows and we don't want to create surfaces for
those.
Also, stop using GdkDragContext.dest_surface, that variable is meant to
go away.
2018-06-18 23:49:53 +02:00
Benjamin Otte
47b47f5835
x11: Simplify test
...
Now that we have gdk_drag_context_get_display(), use it.
2018-06-18 23:49:52 +02:00
Benjamin Otte
1b2dccd143
x11: xdnd_send_event() always returns TRUE
...
Make it return nothing instead and delete the code that handled the
FALSE case.
2018-06-18 23:49:52 +02:00
Benjamin Otte
7e09aa3caa
x11: Don't multiply X values by the scale factor
...
This is fallout from a too eager change in
bdb442be21
.
2018-06-18 23:49:52 +02:00
Benjamin Otte
a960641ace
dnd: GdkDragContext is no longer a GdkDrop subclass
...
This includes a bunch of header cleanup
2018-06-18 23:49:52 +02:00
Benjamin Otte
a1cee7fa65
surface: Kill event masks
...
In particular, this patch removes:
gdk_surface_get_events()
gdk_surface_set_events()
gdk_surface_get_device_events()
gdk_surface_set_device_events()
Event masks so far still exist for grabs.
2018-06-18 23:49:52 +02:00
Benjamin Otte
d0ebdf00f8
x11: Store the source surface as an XID
...
Don't create a foreign GDK surface, just store the XID.
With this, we can avoid GDK APIs that we want to get rid of and just
use the X counterpart.
2018-06-18 23:49:52 +02:00
Benjamin Otte
dd30a288f2
x11: Split drag and drop contexts
...
While doing so, turn the drop context into a GdkDrop subclass and no
longer pretend to be a GdkDragContext.
2018-06-18 23:49:52 +02:00
Benjamin Otte
005781021e
x11: Handle events on drag side differently
...
Instead of using the filters that the drop side uses, handle events in
the event filter installed by the DragContext.
2018-06-18 23:49:52 +02:00
Benjamin Otte
14f0a25531
x11: Change the way local Drop => Drag is shortcut
...
This is one step further towards untangling drag and drop parts of X11
DND.
2018-06-18 23:49:52 +02:00
Benjamin Otte
8db379d85b
x11: Remove unused argument
...
The propagate argument is always FALSE, so just use FALSE everywhere.
2018-06-18 23:49:52 +02:00
Benjamin Otte
6b65aaab21
x11: switch a bunch of variable types
...
GdkDragContext => GdkDrop
This is all in preparation of separation of the drag and drop.
Also, don't check for GDK_DRAG_PROTO_XDND anymore - it's the only
possible value for the protocol on the target side.
2018-06-18 23:49:52 +02:00
Benjamin Otte
e1206763a8
dnd: Remove gdk_drag_context_get_dest_surface()
...
... and gdk_drag_context_get_source_surface().
In the backends, use direct access to the variables instead.
2018-06-18 23:49:52 +02:00
Benjamin Otte
5e159e2ca0
x11: Replace the hardcoded DND filter
...
Use the new method of connecting to the xevent signal instead.
Also, don't consume the xevent, there might be other code listening for
it. And we don't use PropertyNotify in the generic code path anymore, so
it'll just be ignored there.
2018-06-18 23:49:52 +02:00
Benjamin Otte
018a17fb8e
x11: Pass the drag source when creating a drop context
2018-06-18 23:49:52 +02:00
Benjamin Otte
895f381fd5
x11: Find dest drops differently
...
Instead of looking at the list of contexts, just look at the current
drop context. There is only one, after all.
Then remove the is_source argument from gdk_drag_context_find().
2018-06-18 23:49:52 +02:00
Benjamin Otte
81171cc0a2
x11: Refactor DND filter
...
The filters now return TRUE/FALSE and no longer a GdkFilterReturn. They
also don't conform to the GdkFilterFunc typedef anymore but instead take
the arguments that they need.
2018-06-18 23:49:52 +02:00
Benjamin Otte
aa4e4dd0c7
x11: Use new DND event emitters
2018-06-18 23:49:52 +02:00
Benjamin Otte
05bf87cf14
drop: Add GdkDrop:surface property
...
This replaces gdk_drag_context_get_dest_surface().
2018-06-18 23:49:52 +02:00
Benjamin Otte
b1f384eec2
x11: Don't sneakily allocate memory in initializers
2018-06-18 23:49:52 +02:00