Eduard Braun
73728814b0
GDK W32: fix direction of horizontal smooth scrolling events
...
Commit 359df028be
changed the
code to send GDK_SCROLL_SMOOTH with deltas instead of
GDK_SCROLL_(UP|DOWN|LEFT|RIGHT).
Windows defines deltas inversed for vertical direction
(positive values mean the wheel was turned forward)
but not for horizontal direction
(positive values mean the wheel was turned towards the right).
This commit fixes behavior as both axes were inverted previously.
2018-09-18 13:52:36 +00:00
Руслан Ижбулатов
d4098099dd
GDK W32: send both smooth and discrete scrolling events
...
Commit d64467b334
changed the
code to send GDK_SCROLL_SMOOTH with deltas instead of
GDK_SCROLL_(UP|DOWN|LEFT|RIGHT). Change it again, to send
both the GDK_SCROLL_SMOOTH and the GDK_SCROLL_(UP|DOWN|LEFT|RIGHT)
event separately (with the discrete event marked as emulated),
as this is what other backends (such as wayland) do.
2018-09-18 13:52:35 +00:00
Mohammed Sadiq
1ce960c85b
gdkselectioninputstream-x11: Fix memory leak
2018-09-16 20:08:25 +05:30
Matthias Clasen
e2d691bdb1
gdk: Drop GDK_SURFACE_SUBSURFACE
...
None of the backends supports this type anymore.
2018-08-18 23:25:12 -04:00
Matthias Clasen
a73f961e65
wayland: drop subsurfaces
...
We don't use them in GTK+ anymore.
2018-08-18 23:25:05 -04:00
Matthias Clasen
081b45399f
gdk/wayland: Avoid idempotent wl_subsurface.set_position calls
...
These may not result on wl_surface.frame callbacks, yet we do trigger
a frame clock tick that would get stuck on the lack of such callback.
https://bugzilla.gnome.org/show_bug.cgi?id=784314
https://gitlab.gnome.org/GNOME/gtk/issues/844
Closes : #844
2018-08-19 01:26:20 +00:00
Matthias Clasen
0874a54708
gdk/wayland: Always map windows 'moved-to-rect' as popups
...
Only popups can make use of the move-to-rect semantics so it makes no
sense to try anything other surface type.
2018-08-19 01:26:20 +00:00
Matthias Clasen
cd40ec2200
gdk/wayland: Don't remap non-subsurface as subsurface
...
Let's just use the fact that a window was mapped as a subsurface to
remap it above another transient parent instead of relying on the more
complicated 'should-map-as-subsurface' helper function.
2018-08-19 01:26:20 +00:00
Руслан Ижбулатов
d64467b334
GDK W32: Support smooth scrolling
...
Set delta_x or delta_y for GdkScrollEvent.
HIWORD (wParam) in WM_MOUSE(H)WHEEL is the scroll delta.
A delta value of WHEEL_DELTA (which is 120) means scrolling
one full unit of something (for example, a line).
The delta should also be multiplied by the value that the
SystemParametersInfo (SPI_GETWHEELSCROLL(LINES|CHARS), 0, &value, 0)
call gives back, unless it gives back 0xffffffff, in which case
it indicates that scrolling is page- or screen-based, not line-based
(GDK doesn't support that at the moment).
Also, all deltas should be inverted, since MS sends negative deltas
when scrolling down (rotating the wheel back, in the direction of
the user).
With deltas set the mode should be set to GDK_SCROLL_SMOOTH.
Fixes issue 1263.
2018-08-18 17:02:39 +00:00
Guido Günther
72ec8963d7
gdk: Use application_id as xdg_shell's app_id if available
...
This (manually) reverts commit e1fd87728d
This makes sure xdg_shell's app_id matches the DBus name of the the
appliation when using GtkApplication. It also allows the compositor to
derive the desktop file ID from the app_id:
https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml?id=298d888ac718eae57ff2245d373d4327074506ea#n598
Closes #653
2018-08-02 11:03:41 +02:00
Matthias Clasen
ce7956cd50
Merge branch 'issue1214-tooltips-win32-gtk4' into 'master'
...
Gdk-Win32: Correct handling of transient state changes
See merge request GNOME/gtk!280
2018-07-31 11:37:28 +00:00
Luca Bacci
d29b378fa0
Gdk-Win32: Correct handling of transient state changes
...
See merge request !248
2018-07-31 11:11:26 +02:00
Benjamin Otte
7e919aaaa5
gdk: Fix Windows and OS X backend for keyevent.string removal
2018-07-30 20:15:16 +02:00
Benjamin Otte
375fbd4e47
gdk: Remove key_event->string and key_event->length
...
They're unused.
2018-07-30 19:32:38 +02:00
Benjamin Otte
813957a92f
gdk: Remove gdk_event_get_string()
...
You want to use an IM module to get strings out of keypresses, not some
crude hack that only works on X11 and Wayland anyway.
2018-07-30 19:32:38 +02:00
Timm Bäder
798ad9f62a
Merge branch 'g-clear-pointer-propagate' into 'master'
...
Remove GDestroyNotify casts in g_clear_pointer() uses
See merge request GNOME/gtk!269
2018-07-26 07:34:12 +00: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
Ernestas Kulik
6adaf7c33d
Remove GDestroyNotify casts in g_clear_pointer() uses
...
GLib master propagates argument types in g_clear_pointer(), which causes
the usual function pointer casts to GDestroyNotify to trip compiler
warnings. Additionally, this commit changes some cleanup functions where
appropriate (wl_data_source_destroy ->
gtk_primary_selection_source_destroy for struct
gtk_primary_selection_source).
2018-07-25 10:05:39 +03:00
Benjamin Otte
259be23ff2
broadway: Remove unused variable
2018-07-24 20:55:45 +02: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
Matthias Clasen
bef8a3a0e9
Merge branch 'content-provider-autoptr' into 'master'
...
gdk: Add auto cleanup func for GdkContentProvider
See merge request GNOME/gtk!251
2018-07-19 18:04:24 +00:00
Ernestas Kulik
96d0368290
gdk: contentdeserializer: Fix deserializer not returning
...
file_uri_deserializer does not return on success, only on failure. This
commit fixes clipboard reads never finishing for some types.
2018-07-19 15:55:58 +03:00
Ernestas Kulik
9a0ec5b1e0
gdk: contentdeserializer: Fix stream usage
...
file_uri_deserializer splices a memory stream, as opposed to
string_deserializer, which uses a converter and filter stream. This
commit fixes erroneous use of GMemoryOutputStream as
GFilterOutputStream.
2018-07-19 15:53:08 +03:00
Ernestas Kulik
7b5a0a829a
gdk: Add auto cleanup func for GdkContentProvider
2018-07-19 11:28:21 +03: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
bf5f27c6d5
Handle configure events in gdk
...
The previous attempt at removing configure events entirely
was causing some dialogs not to show up under Wayland.
Presumably due to ordering issues with emitting ::size-change
out of the backend.
Instead, keep configure events in the event queue, but handle
them on the gdk side. This keeps the ordering intact, while
still removing configure events from the api. The dialogs
show up now.
2018-07-15 20:23:45 -04:00
Matthias Clasen
7a1073c3ae
Revert "gdk: Drop configure events"
...
This reverts commit a8926c9d87
.
2018-07-15 20:23:45 -04:00
Matthias Clasen
e2fd33f78a
Revert "broadway: Stop using configure events"
...
This reverts commit 9c827cbff4
.
2018-07-15 20:23:45 -04:00
Matthias Clasen
3c8b3cbf41
win32: Stop accessing GdkDrag members
2018-07-15 16:58:22 -04:00
Matthias Clasen
410d4bca83
wayland: Set actions on drag
...
We should pass the actions to the newly created
drag in drag_begin.
2018-07-15 16:52:16 -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
98ccb67277
drop: stop accessing GdkDrag fields
2018-07-15 16:43:28 -04:00
Matthias Clasen
2d83bb1b91
x11: Stop using GdkDrag fields
2018-07-15 16:43:28 -04:00
Matthias Clasen
298b6ee81a
wayland: Stop accessing GdkDrag members
2018-07-15 16:43:28 -04:00
Matthias Clasen
5ce3520a2a
Add a GdkDrag::surface property
2018-07-15 16:43:28 -04:00
Matthias Clasen
9cc3e2c8ef
gdkdrag: remove an unused member
...
The drag surface is stored in the subclasses and obtained
by via the get_drag_surface vfunc.
2018-07-15 16:42:07 -04:00
Matthias Clasen
034f89b17f
wayland: Drop an unused api
...
Nothing was calling gdk_wayland_drag_set_source_surface.
2018-07-15 16:42:07 -04:00
Matthias Clasen
1ea09a327a
Add a private struct to GdkDrag
...
This will force subclasses to use proper api.
2018-07-15 16:42:00 -04:00
Matthias Clasen
bc2f484ae9
Revert "GdkDrop: drop the priv struct"
...
This reverts commit d927c3bee0
.
I was wrong. Better to hide the struct fields from subclasses.
2018-07-15 15:58:05 -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
288086b899
Fix up some doc mishaps
...
When GdkWindow was renamed to GdkSurface, 'window managers'
turned into 'surface managers'. Thats not cool.
2018-07-15 15:36:19 -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
1172810768
win32: Stop using expose and configure events
...
These no longer exist.
2018-07-15 14:07:40 -04:00
Matthias Clasen
9c827cbff4
broadway: Stop using configure events
...
These no longer exist.
2018-07-15 14:01:59 -04:00
Matthias Clasen
da3aaf39b9
gdk: Drop expose events
...
Replace expose events with a GdkSurface::expose signal.
This is part of the move to use events only for input.
2018-07-15 13:13:07 -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
Benjamin Otte
1a5e60be7c
paintable: Fix return_if_fail() statements
...
I always switch them up...
2018-07-13 14:56:04 +02:00
Matthias Clasen
00a61f92b6
docs: Small updates
...
Remove a few references to no-longer-existing APIs.
2018-07-13 10:13:00 +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
1dd15b5237
dnd: Some documentation updates
...
Don't mention dnd protocols, and do mention the new,
split objects.
2018-07-12 13:57:45 +02:00
Matthias Clasen
5cdbbc6e61
win32: Build fixes
2018-07-12 13:02:42 +02:00
Matthias Clasen
0e2ac0ebf2
wayland: Rename a source file
...
Rename gdkdnd-wayland.c to gdkdrag-wayland.c to go along
with gdkdrop-wayland.c.
2018-07-12 13:02:42 +02:00
Matthias Clasen
c73cb2c154
wayland: Drop an unused field
...
Nothing was using the foreign_dnd_surface anymore, so no
need to create it in the first place.
2018-07-12 13:02:42 +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
7a0a92f2b6
win32: Stop using gdk_drag_get_suggested_action
...
The suggested action is not set or used in the win32
information, so don't put it in logs either.
2018-07-12 13:02:42 +02:00
Matthias Clasen
d927c3bee0
GdkDrop: drop the priv struct
...
Its not needed.
2018-07-12 13:02:42 +02:00
Matthias Clasen
59c2efbcd6
Add a GdkDrag::actions property
...
To go along the GdkDrop::actions property.
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
40841ec3be
GdkDrag: Drop the priv struct
...
We don't need it.
2018-07-12 13:02:42 +02:00
Matthias Clasen
f69bb2fb2b
wayland: set a cursor when starting a drag
...
Otherwise, we wont have one.
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
63ab523146
wayland: Remove an unused field
...
GdkDragWayland.suggested_action was entirely unused, so drop it.
2018-07-12 13:02:42 +02:00
Matthias Clasen
12464731f1
Merge branch 'dnd-cleanups' into 'master'
...
Dnd cleanups
See merge request GNOME/gtk!226
2018-07-02 21:19:45 +00:00
Matthias Clasen
c8e082f296
win32: Adapt to dnd api changes
...
Follow the GdkDragContext -> GdkDrag change.
2018-07-02 22:52:59 +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
Matthias Clasen
9c3de51412
Merge branch 'wip/cursor-output-scale-changes' into 'master'
...
wayland: Update cursor surface scale when output scale changes
See merge request GNOME/gtk!224
2018-06-29 15:08:17 +00:00
Jonas Ådahl
dfd1372a9b
wayland: Update cursor surface scale when output scale changes
...
Also update the cursor surfaces of every seat when an output changes
scale. This could for example happen when a monitor scale is changed via
Settings.
2018-06-28 12:44:22 +02:00
Rico Tzschichholz
b80942ec88
gdk: Fix some g-i annotations warnings
2018-06-27 09:00:17 +02:00
Matthias Clasen
8755d884f3
Remove a lot of Since annotations
...
4.0 will represent a clean epoch. We don't want to have
lots of noise in the docs about 2.x or 3.x.
2018-06-25 19:55:04 -04: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
06bba15f62
win32: Fix typo
...
This should fix gtk-doc erroring out.
2018-06-19 21:45:44 +02:00
Benjamin Otte
4d4ec2dbfb
dnd: gdk_drag_action_is_unique() should return a boolean
2018-06-19 19:44:17 +02:00
myfreeweb
a1bcbdd02a
wayland: Use shm_open(SHM_ANON) on FreeBSD
...
This functionality is similar to Linux's memfd. It creates anonymous shared memory without touching the filesystem, which allows it to work in Capsicum capability mode (sandbox).
2018-06-19 11:45:49 -04: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
b3d424c2d7
dnd: Remove GdkDragContext.dest_surface
...
The variable is now unused
2018-06-18 23:49:53 +02:00
Руслан Ижбулатов
bf3ea24489
GDK W32: Remove gdk_win32_surface_foreign_new_for_display
...
That function is now unused.
2018-06-18 23:49:53 +02:00
Руслан Ижбулатов
997e8c1ae1
GDK W32: Adapt to dest_surface removal, misc changes
...
* There's no GdkDragContext->dest_surface anymore.
Add dest_window field to GdkWin32DragContext,
and use that instead.
* Remove unused function prototypes
* Add more comments
* Rename variables and fields from 'window' to 'surface'
where appropriate
* Fix header indentation a bit
* Try to ensure that uninitialized/unknown handle variables
and fields are set to INVALID_HANDLE_VALUE instead of NULL,
as there may be cases where NULL is a valid handle value.
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
6633d4130a
dnd: Make the base Drag/Drop types abstract
...
This way, they'll be ignored by the testsuite.
And we don't want to instantiate them anyway, the backends have
their own subclasses.
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
f982c9c8f8
dnd: Remove gdk_drag_status() and gdk_drag_finish()
...
Those functions are unused and have been replaced by their equivalents
gdk_drop_status() and gdk_drop_finish().
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