gtk4.git
3 years agogdk/events: Set discrete scroll deltas in its constructor
José Expósito [Mon, 20 Sep 2021 17:59:45 +0000 (19:59 +0200)]
gdk/events: Set discrete scroll deltas in its constructor

Instead of calculating the discrete scroll deltas in
GtkEventControllerScroll, move that code to the event constructor and
access the precalculated values using gdk_scroll_event_get_deltas.

Refactor, no functional changes.

3 years agogdk/events: Add constructor for high-resolution scroll events
José Expósito [Mon, 20 Sep 2021 17:59:35 +0000 (19:59 +0200)]
gdk/events: Add constructor for high-resolution scroll events

Starting with Linux Kernel v5.0 two new axes are available for
mice that support high-resolution wheel scrolling: REL_WHEEL_HI_RES and
REL_HWHEEL_HI_RES.

Both axes send data in fractions of 120 where each multiple of 120
amounts to one logical scroll event. Fractions of 120 indicate a wheel
movement less than one detent.

The 120 magic number is a copy of the Windows API, so this new
constructor can be used both in Linux >= 5.0 and Windows >= Vista.

3 years agobuild: Update Wayland to >= 1.21.0
José Expósito [Mon, 18 Jul 2022 17:04:10 +0000 (19:04 +0200)]
build: Update Wayland to >= 1.21.0

3 years agoUpdate Catalan translation
Jordi Mas [Wed, 10 Aug 2022 12:27:44 +0000 (14:27 +0200)]
Update Catalan translation

3 years agoMerge branch 'rounded-clip-node-new-transfer-full' into 'main'
Emmanuele Bassi [Wed, 10 Aug 2022 09:23:02 +0000 (09:23 +0000)]
Merge branch 'rounded-clip-node-new-transfer-full' into 'main'

Mark gsk_rounded_clip_node_new() return value as (transfer full)

See merge request GNOME/gtk!4941

3 years agoMark gsk_rounded_clip_node_new() return value as (transfer full)
Sebastian Dröge [Wed, 10 Aug 2022 08:07:51 +0000 (11:07 +0300)]
Mark gsk_rounded_clip_node_new() return value as (transfer full)

Like all the other constructors for nodes already do. Without this,
newly created rounded clip nodes are leaked in bindings.

3 years agoMerge branch 'gbsneto/paned-focus-infloop' into 'main'
Carlos Garnacho [Tue, 9 Aug 2022 18:26:48 +0000 (18:26 +0000)]
Merge branch 'gbsneto/paned-focus-infloop' into 'main'

paned: Protect against NULL variable

Closes #5094

See merge request GNOME/gtk!4938

3 years agoMerge branch 'wip/carlosg/fix-crossing-on-unmap' into 'main'
Matthias Clasen [Tue, 9 Aug 2022 18:15:41 +0000 (18:15 +0000)]
Merge branch 'wip/carlosg/fix-crossing-on-unmap' into 'main'

gtkwindow: Use pointer-oriented function to deal with crossing events

Closes #5094

See merge request GNOME/gtk!4937

3 years agogtkwindow: Use pointer-oriented function to deal with crossing events
Carlos Garnacho [Tue, 9 Aug 2022 16:49:35 +0000 (18:49 +0200)]
gtkwindow: Use pointer-oriented function to deal with crossing events

Commit adba0b97 fixed missed pointer crossings by using a helper function that
was already present and looked like did everything that was needed. However
this function was oriented to keyboard focus and it also did update the related
widget state. Doing these changes on pointer-based crossing was misuse, and
could cause weird interactions with keyboard focus management.

Fix this by using gtkmain.c gtk_synthesize_crossing_event() that is in fact
oriented to pointers.

Fixes: adba0b97 (gtkwindow: Synthesize pointer crossing events on state changes)
Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5094
3 years agopaned: Warn if child is not actually a child
Georges Basile Stavracas Neto [Tue, 9 Aug 2022 17:20:25 +0000 (14:20 -0300)]
paned: Warn if child is not actually a child

This will at least allow us to debug this in the future.

3 years agogtkmain: Pass coordinates when synthesizing pointer events
Carlos Garnacho [Tue, 9 Aug 2022 16:47:14 +0000 (18:47 +0200)]
gtkmain: Pass coordinates when synthesizing pointer events

Instead of passing an event and figuring out coordinates from it, pass
directly the toplevel coordinates so that we can use this outside event
handling.

All callers have been updated to pass the coordinates, in practical effects
they were already based on the GtkNative.

3 years agopaned: Protect against NULL variable
Georges Basile Stavracas Neto [Tue, 9 Aug 2022 16:11:01 +0000 (13:11 -0300)]
paned: Protect against NULL variable

The inner loop in gtk_paned_set_focus_child() tries to find the
topmost GtkPaned, however, if the `w` variable ends up becoming
NULL after bubbling up the entire GtkWidget hierarchy, this loop
never breaks.

Check for NULL in this loop.

Closes https://gitlab.gnome.org/GNOME/gtk/-/issues/5094

3 years agoUpdate Indonesian translation
Kukuh Syafaat [Tue, 9 Aug 2022 02:12:09 +0000 (02:12 +0000)]
Update Indonesian translation

3 years agoUpdate Occitan translation
Quentin PAGÈS [Mon, 8 Aug 2022 20:49:35 +0000 (20:49 +0000)]
Update Occitan translation

3 years agoMerge branch 'wip/exalm/multiplier' into 'main'
Carlos Garnacho [Mon, 8 Aug 2022 12:00:15 +0000 (12:00 +0000)]
Merge branch 'wip/exalm/multiplier' into 'main'

scrolledwindow: Lower the scroll multiplier

See merge request GNOME/gtk!4933

3 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 8 Aug 2022 10:42:06 +0000 (12:42 +0200)]
Updated Spanish translation

3 years agoscrolledwindow: Lower the scroll multiplier
Alexander Mikhaylenko [Sun, 7 Aug 2022 20:03:51 +0000 (00:03 +0400)]
scrolledwindow: Lower the scroll multiplier

c68247f63ba1db8849eb1679e53a64f7f2633973 introduced a scroll multiplier,
intended to be significantly lower than the GTK 4.6 behavior but higher
than 1. However, it was _higher_ than 4.6, since 4.6 also had a permanent
1/10 multiplier in GDK, so the cited multiplier values were really 6.4 and
9.7.

3 years agoMerge branch 'build-fix-glib-2.66' into 'main'
Matthias Clasen [Sun, 7 Aug 2022 19:09:04 +0000 (19:09 +0000)]
Merge branch 'build-fix-glib-2.66' into 'main'

build: fix for use with glib 2.66.0 (2nd try)

See merge request GNOME/gtk!4932

3 years agoMerge branch 'wip/carlosg/scroll-overshoot' into 'main'
Matthias Clasen [Sun, 7 Aug 2022 19:01:25 +0000 (19:01 +0000)]
Merge branch 'wip/carlosg/scroll-overshoot' into 'main'

gtk/scrolledwindow: Check for overshoot setting up kinetic scroll helpers

Closes #4784

See merge request GNOME/gtk!4909

3 years agoApply 1 suggestion(s) to 1 file(s)
Emmanuele Bassi [Sun, 7 Aug 2022 18:54:19 +0000 (18:54 +0000)]
Apply 1 suggestion(s) to 1 file(s)

3 years agogtk/scrolledwindow: Check for overshoot setting up kinetic scroll helpers
Carlos Garnacho [Fri, 29 Jul 2022 18:34:55 +0000 (20:34 +0200)]
gtk/scrolledwindow: Check for overshoot setting up kinetic scroll helpers

We may have situations where velocity is 0/0, but are overshooting. Places where
this happens are mouse wheels, and continuous scroll that ended up still before
finish. In this situation we also want to run the animation for overshoot, so
check for the corresponding axes to also set up the kinetic scroll helper.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4784
3 years agoMerge branch 'wip/carlosg/fixes' into 'main'
Matthias Clasen [Sun, 7 Aug 2022 18:06:28 +0000 (18:06 +0000)]
Merge branch 'wip/carlosg/fixes' into 'main'

Some fixes

Closes #2877 and #5003

See merge request GNOME/gtk!4929

3 years agoMerge branch 'clipboard-seg2' into 'main'
Emmanuele Bassi [Sun, 7 Aug 2022 16:21:40 +0000 (16:21 +0000)]
Merge branch 'clipboard-seg2' into 'main'

x11: Don't assume valid type

See merge request GNOME/gtk!4912

3 years agogtkscrolledwindow: Add fixed multiplier to scroll events in surface units
Carlos Garnacho [Fri, 5 Aug 2022 15:13:28 +0000 (17:13 +0200)]
gtkscrolledwindow: Add fixed multiplier to scroll events in surface units

The expected configurability is not going to arrive yet from compositors, and
it is precipitate for GTK to gain any configurability. We do know a factor of 1
feels way too slow, and we do know a factor of page_size * pow (2 / 3) feels way
way too fast.

With the previous multiplier, gtk4-demo at its default size had a vertical textview
factor of 64.332901, and maximized on a 1920x1080 screen a factor of 97.585365.
Pick a magic multiplier that is both significantly below these values and above 1,
and stick to it.

Future work will add the configurability of smooth scroll events where it belongs.
At that point this commit may be reverted so we don't pile up on magic numbers again.

Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/4793

3 years agoUpdate Basque translation
Asier Sarasua Garmendia [Sun, 7 Aug 2022 09:49:00 +0000 (09:49 +0000)]
Update Basque translation

3 years agoUpdate Portuguese translation
Hugo Carvalho [Sat, 6 Aug 2022 23:01:57 +0000 (23:01 +0000)]
Update Portuguese translation

3 years agoUpdate Persian translation
Danial Behzadi [Sat, 6 Aug 2022 22:43:23 +0000 (22:43 +0000)]
Update Persian translation

3 years agobuild: fix for use with glib 2.66.0
Hannes Müller [Fri, 5 Aug 2022 11:35:06 +0000 (13:35 +0200)]
build: fix for use with glib 2.66.0

Add missing #define g_memdup2() for gdksurface-broadway.c in case of enabled
broadway-backend as used otherwise.

Copy static would_drop() replacement for g_log_writer_default_would_drop()
from gtk-builder-tool.c to gtk-reftest.c

3 years agoUpdate Russian translation
Aleksandr Melman [Sat, 6 Aug 2022 14:44:53 +0000 (14:44 +0000)]
Update Russian translation

3 years agogtkwindow: Synthesize pointer crossing events on state changes
Carlos Garnacho [Fri, 5 Aug 2022 14:39:56 +0000 (16:39 +0200)]
gtkwindow: Synthesize pointer crossing events on state changes

When widgets go mapped/unmapped, we repick but don't generate crossing
events. Since there could be stateful controllers that use those in
the previously picked widget (e.g. GtkEventControllerMotion), skipping
those breaks their state.

Ensure to send the relevant crossing events on every situation that
changes the pointer focus, so these controllers get a fair opportunity
to undo their state.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2877
3 years agogdk/wayland: Drop surface checks on wl_pointer.leave handling
Carlos Garnacho [Fri, 5 Aug 2022 16:33:50 +0000 (18:33 +0200)]
gdk/wayland: Drop surface checks on wl_pointer.leave handling

Even though the argument is non-nullable, GTK sometimes incurs in that
by itself by destroying the surface while the event is in flight. This
is the case of popping down a GtkDropdown. When this happens we simply
ignore the crossing event, but we should let it through instead, the
compositor did not send it in vain and we possibly still have pointer
state to undo.

Drop the surface checks, so that the event is propagated along GTK.

3 years agogtkeventcontroller: Fix internal enum documentation
Carlos Garnacho [Fri, 5 Aug 2022 14:38:56 +0000 (16:38 +0200)]
gtkeventcontroller: Fix internal enum documentation

Copy and paste typo.

3 years agogtkgesturerotate: Filter touchpad holds events
Carlos Garnacho [Fri, 5 Aug 2022 08:53:22 +0000 (10:53 +0200)]
gtkgesturerotate: Filter touchpad holds events

Since the pinch touchpad gestures already have begin/update/end phases,
this gesture has no actual use for these events.

3 years agogtkgesturerotate: Filter touchpad holds events
Carlos Garnacho [Fri, 5 Aug 2022 08:50:45 +0000 (10:50 +0200)]
gtkgesturerotate: Filter touchpad holds events

Since the pinch touchpad gestures already have begin/update/end phases,
this gesture has no actual use for these events.

3 years agogdkevent: Give touchpad hold events a sequence
Carlos Garnacho [Fri, 5 Aug 2022 09:35:28 +0000 (11:35 +0200)]
gdkevent: Give touchpad hold events a sequence

Following what was done for pinch/swipe events, give hold gestures their
own distinct sequence as well. Without this it was NULL, which was already
distinct to other touchpad gestures.

3 years agogtkgesture: Do not coalesce hold events with other touchpad gestures
Carlos Garnacho [Fri, 5 Aug 2022 09:24:58 +0000 (11:24 +0200)]
gtkgesture: Do not coalesce hold events with other touchpad gestures

This delaying of the cancel event was made to avoid intermediate cancellation
for >=2fg hold gestures followed by pinch/swipe gestures, and it worked as
long as everything was considered to have the same sequence.

Since each pinch/swipe pointer gesture now gets its own sequence, this no
longer applies, nor works. This results in zoom/rotate/swipe gestures being
stuck since the sequence for the touchpad events changes mid-gesture.

Sticking to this pattern of giving touchpad gestures their own sequence,
these hold events cannot be assumed to coalesce with other touchpad gestures,
it is better to let it propagate altogether so that both the hold gesture
and the incoming gesture trigger coherent begin and end/cancel phases.

In the worst case, this results in "::begin, ::cancel, ::begin , ..." before
triggering a touchpad gesture, but the extra begin/cancel ought to be a safe
no-op in widgets.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5003
3 years agoMerge branch 'ebassi/textbuffer-private-api' into 'main'
Matthias Clasen [Fri, 5 Aug 2022 12:01:27 +0000 (12:01 +0000)]
Merge branch 'ebassi/textbuffer-private-api' into 'main'

Move private function out of the AT-SPI a11y backend

See merge request GNOME/gtk!4924

3 years agoRe-enable the TextBuffer wrap-mode serialization test
Emmanuele Bassi [Thu, 4 Aug 2022 22:39:54 +0000 (23:39 +0100)]
Re-enable the TextBuffer wrap-mode serialization test

The private serialization function is now available on all platforms.

3 years agoMove private function out of the AT-SPI a11y backend
Emmanuele Bassi [Thu, 4 Aug 2022 22:34:41 +0000 (23:34 +0100)]
Move private function out of the AT-SPI a11y backend

The textbuffer test is calling into a function defined by the AT-SPI
accessibility backend. As of commit 4ddf1b70 we only build and run the
test on Linux, but the function in question isn't really
accessibility-related: it's just a serialization function.

3 years agoUpdate Ukrainian translation
Yuri Chornoivan [Thu, 4 Aug 2022 14:33:50 +0000 (14:33 +0000)]
Update Ukrainian translation

3 years agoMerge branch 'cleanup-ffmpeg' into 'main'
Matthias Clasen [Thu, 4 Aug 2022 10:49:45 +0000 (10:49 +0000)]
Merge branch 'cleanup-ffmpeg' into 'main'

ffmpeg: add audio playback through avdevice

See merge request GNOME/gtk!4852

3 years agoffmpeg: add audio playback through avdevice
Stephan Vedder [Thu, 4 Aug 2022 10:49:44 +0000 (10:49 +0000)]
ffmpeg: add audio playback through avdevice

3 years agoMerge branch 'mount_operation' into 'main'
Matthias Clasen [Wed, 3 Aug 2022 11:56:25 +0000 (11:56 +0000)]
Merge branch 'mount_operation' into 'main'

mountoperation: Fix authentication dialog

Closes #5059 and #5058

See merge request GNOME/gtk!4899

3 years agoMerge branch 'win32-nahimic-nv-notes' into 'main'
Matthias Clasen [Tue, 2 Aug 2022 11:10:25 +0000 (11:10 +0000)]
Merge branch 'win32-nahimic-nv-notes' into 'main'

running.md: Mention about issue with Nahimic on Windows

Closes #4113

See merge request GNOME/gtk!4915

3 years agorunning.md: Mention about issue with Nahimic on Windows
Chun-wei Fan [Mon, 1 Aug 2022 04:10:15 +0000 (12:10 +0800)]
running.md: Mention about issue with Nahimic on Windows

Let people know that they will need to use GTK with the Nahimic service
disabled or OpenGL disabled or put their GTK application into the Nahimic
backlist, or try to use GLES, since there is a known issue in the Windows
nVidia graphics drivers and Nahimic that causes GL operations to fail,
causing crashes in operations such as window resizes.

This will close issue #4113--sadly, there is nothing we can do within
GTK to fix the issue.

3 years agoMerge branch 'label-tabs' into 'main'
Matthias Clasen [Tue, 2 Aug 2022 00:18:44 +0000 (00:18 +0000)]
Merge branch 'label-tabs' into 'main'

Label tabs

See merge request GNOME/gtk!4914

3 years agoMerge branch 'otte-main-patch-86462' into 'main'
Benjamin Otte [Mon, 1 Aug 2022 20:47:12 +0000 (20:47 +0000)]
Merge branch 'otte-main-patch-86462' into 'main'

Fix g_object_new(GTK_TYPE_SNAPSHOT)

See merge request GNOME/gtk!4919

3 years agosnapshot: Don't critical on dispose
Benjamin Otte [Mon, 1 Aug 2022 20:28:46 +0000 (20:28 +0000)]
snapshot: Don't critical on dispose

When there's remaining state that draws nothing, it returns no
rendernode. So do a NULL-check before unreffing it.

3 years agoFix g_object_new(GTK_TYPE_SNAPSHOT)
Benjamin Otte [Mon, 1 Aug 2022 20:08:58 +0000 (20:08 +0000)]
Fix g_object_new(GTK_TYPE_SNAPSHOT)

GJS apparent likes g_object_new() over actual constructors, so make that work.

3 years agoAdd GtkLabel:tabs
Matthias Clasen [Sun, 31 Jul 2022 15:40:20 +0000 (11:40 -0400)]
Add GtkLabel:tabs

This adds more powerful formatting capabilities to GtkLabel
without costing us much, since Pango already supports tabs.

3 years agoMerge branch 'wip/chergert/builder-expose-object-fix' into 'main'
Christian Hergert [Mon, 1 Aug 2022 05:09:53 +0000 (05:09 +0000)]
Merge branch 'wip/chergert/builder-expose-object-fix' into 'main'

builder: gracefully handle re-exposing builder object

See merge request GNOME/gtk!4913

3 years agogtkbuilder: update gtk_builder_expose_object() docs
Christian Hergert [Mon, 1 Aug 2022 04:21:13 +0000 (21:21 -0700)]
gtkbuilder: update gtk_builder_expose_object() docs

3 years agogtkbuilder: update gtk_builder_extend_with_templat() docs
Christian Hergert [Mon, 1 Aug 2022 04:20:55 +0000 (21:20 -0700)]
gtkbuilder: update gtk_builder_extend_with_templat() docs

3 years agogtkbuilder: check for existing object before extending template
Christian Hergert [Mon, 1 Aug 2022 04:15:08 +0000 (21:15 -0700)]
gtkbuilder: check for existing object before extending template

If gtk_builder_expose_object() is called twice with the same name, it will
result in a g_critical(). This improves that situation by checking for the
object before exposing additional times.

This turns out to be handy in situations where templates are expanded
multiple times, such as application-side implementations of UI merging.

3 years agox11: Don't assume valid type
Dr. David Alan Gilbert [Sat, 30 Jul 2022 15:39:18 +0000 (16:39 +0100)]
x11: Don't assume valid type

If we get an invalid TARGETS reply, we might not have a valid 'type',
which ends up as NULL and segs in the g_str_equal.

(This is probably fallout from my fix 506566b6a4c3a9, which I still
can't reproduce reliably, so the last one just moved the seg a bit
further along, and we still don't know who is sending a bad TARGETS).

This corresponds to:
https://bugzilla.redhat.com/show_bug.cgi?id=2062143

3 years agoMerge branch 'fix-gdk-win32-dnd' into 'main'
Luca Bacci [Fri, 29 Jul 2022 12:42:57 +0000 (12:42 +0000)]
Merge branch 'fix-gdk-win32-dnd' into 'main'

Fix DnD on Windows

Closes #4498

See merge request GNOME/gtk!4900

3 years agoUpdate German translation
Christian Kirbach [Thu, 28 Jul 2022 21:13:07 +0000 (21:13 +0000)]
Update German translation

3 years agoUpdate Abkhazian translation
Nart Tlisha [Thu, 28 Jul 2022 19:19:12 +0000 (19:19 +0000)]
Update Abkhazian translation

3 years agoMerge branch 'alatiera/node-flatpak' into 'main'
Matthias Clasen [Thu, 28 Jul 2022 18:08:47 +0000 (18:08 +0000)]
Merge branch 'alatiera/node-flatpak' into 'main'

flatpak: add a NodeEditor demo

See merge request GNOME/gtk!4898

3 years agoMerge branch 'ebassi/file-list-fixes' into 'main'
Matthias Clasen [Thu, 28 Jul 2022 18:07:34 +0000 (18:07 +0000)]
Merge branch 'ebassi/file-list-fixes' into 'main'

Add constructors for GdkFileList

See merge request GNOME/gtk!4907

3 years agoAdd constructors for GdkFileList
Emmanuele Bassi [Thu, 28 Jul 2022 09:13:17 +0000 (10:13 +0100)]
Add constructors for GdkFileList

C API users can keep dealing with the implicit equivalence of
GdkFileList and GSList, but language bindings have no idea that one type
is another, and none of them exposes GSList as a type anyway, so they
will need a way to construct a GdkFileList.

Instead of making GdkFileList mutable, and re-implement GSList, we only
provide a constructors pair that lets you create a GdkFileList from a
linked list or from an array.

3 years agoMerge branch 'barthalion/gnome-runtime-images-quay' into 'main'
Emmanuele Bassi [Wed, 27 Jul 2022 11:39:55 +0000 (11:39 +0000)]
Merge branch 'barthalion/gnome-runtime-images-quay' into 'main'

Update (or drop) the Docker image used by Flatpak job

See merge request GNOME/gtk!4906

3 years agoUpdate (or drop) the Docker image used by Flatpak job
Bartłomiej Piotrowski [Wed, 27 Jul 2022 10:47:50 +0000 (12:47 +0200)]
Update (or drop) the Docker image used by Flatpak job

The gnome-runtime-images have been recently migrated to Quay. This is already reflected in the template.

Please note this MR has been created semi-automatically. If it doesn't make sense, feel free to close it.

3 years agoUpdated Spanish translation
Daniel Mustieles [Wed, 27 Jul 2022 09:36:48 +0000 (11:36 +0200)]
Updated Spanish translation

3 years agoMerge branch 'wip/chergert/disable-sysprof-agent' into 'main'
Christian Hergert [Tue, 26 Jul 2022 23:44:37 +0000 (23:44 +0000)]
Merge branch 'wip/chergert/disable-sysprof-agent' into 'main'

build: configure subproject sysprof with -Dagent=false

See merge request GNOME/gtk!4896

3 years agobuild: configure subproject sysprof with -Dagent=false
Christian Hergert [Fri, 22 Jul 2022 18:30:21 +0000 (11:30 -0700)]
build: configure subproject sysprof with -Dagent=false

Sysprof has a new -Dagent=true build option which allows installing a
/usr/bin/sysprof-agent program (simimlar to sysprof-cli). It provides a
P2P D-Bus API to the process which can control subprocesses. It's used by
IDE tooling to have more control across container boundaries.

However, we do not need it for GTK CI.

3 years agoMerge branch 'markand-main-patch-04776' into 'main'
Emmanuele Bassi [Tue, 26 Jul 2022 15:09:28 +0000 (15:09 +0000)]
Merge branch 'markand-main-patch-04776' into 'main'

gtk: Missing end of code block

See merge request GNOME/gtk!4902

3 years agogtk: Missing end of code block
David Demelier [Tue, 26 Jul 2022 14:52:30 +0000 (14:52 +0000)]
gtk: Missing end of code block

3 years agoAdd Abkhazian translation
Nart Tlisha [Tue, 26 Jul 2022 11:17:20 +0000 (11:17 +0000)]
Add Abkhazian translation

3 years agoMerge branch 'gridview' into 'main'
Benjamin Otte [Tue, 26 Jul 2022 01:08:08 +0000 (01:08 +0000)]
Merge branch 'gridview' into 'main'

Gridview fix rubberbanding issues

Closes #3462 and #3445

See merge request GNOME/gtk!4688

3 years agolistview: Fix selection for last item in get_items_in_rect
Corey Berla [Tue, 26 Jul 2022 00:01:28 +0000 (17:01 -0700)]
listview: Fix selection for last item in get_items_in_rect

Make the last item dependent on y + height

3 years agolistview: Allow starting rubberband in empty space below last row
Corey Berla [Tue, 26 Jul 2022 00:00:46 +0000 (17:00 -0700)]
listview: Allow starting rubberband in empty space below last row

Rubberband does not work when initiated past the last row
(warning is printed "Could not start rubberbanding: No item).

Clamp y at the max height of the widgets in the listview

3 years agolistview: Return an empty bitset when selecting only empty space
Corey Berla [Mon, 25 Jul 2022 23:59:35 +0000 (16:59 -0700)]
listview: Return an empty bitset when selecting only empty space

Return an empty bitset if the user selects exclusively below the last
row.

3 years agogridview: Fix typo in docstring for gtk_grid_view_get_cell_at_y()
Corey Berla [Thu, 5 May 2022 04:48:11 +0000 (21:48 -0700)]
gridview: Fix typo in docstring for gtk_grid_view_get_cell_at_y()

3 years agolistbase: Clear selection if rubberband selected an empty set
Corey Berla [Thu, 5 May 2022 04:41:30 +0000 (21:41 -0700)]
listbase: Clear selection if rubberband selected an empty set

If rubberband returns an empty bitset the selection should be cleared
unless the shift or ctrl key is held

3 years agogridview: Return an empty bitset when selecting only empty space
Corey Berla [Mon, 25 Jul 2022 22:55:13 +0000 (15:55 -0700)]
gridview: Return an empty bitset when selecting only empty space

Return an empty bitset if the user selects exclusively below the last
row.  No need to calculate selection.

3 years agogridview: Fix get_items_in_rect() selection
Corey Berla [Tue, 26 Jul 2022 00:16:56 +0000 (17:16 -0700)]
gridview: Fix get_items_in_rect() selection

last_row should be dependent on y + height, not y

3 years agogridview: Allow starting rubberband in empty space below last row
Corey Berla [Mon, 25 Jul 2022 22:35:20 +0000 (15:35 -0700)]
gridview: Allow starting rubberband in empty space below last row

Rubberband does not work when initiated past the last row
(warning is printed "Could not start rubberbanding: No item).

Clamp y at the max height of the widgets in the gridview

Fixes: #3462
3 years agogridview: Limit rectangle to gridview columns
Corey Berla [Thu, 5 May 2022 04:33:26 +0000 (21:33 -0700)]
gridview: Limit rectangle to gridview columns

The function gtk_grid_view_get_items_in_rect() erroneously calculates
columns less than 0 and greater than n_columns when the user attempts
to rubberband all the way to the left or right respectively.  This
causes the rubberband to persistent and creates unexpected behavior.
Limit the rows to a minimum of 0 and maximum of n_columns - 1.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/3445
3 years agogridview: Move gtk_grid_view_computer_total_height() up for reuse
Corey Berla [Tue, 26 Jul 2022 00:19:30 +0000 (17:19 -0700)]
gridview: Move gtk_grid_view_computer_total_height() up for reuse

3 years agoMerge branch 'widget-docs-fix' into 'main'
Emmanuele Bassi [Mon, 25 Jul 2022 21:31:18 +0000 (21:31 +0000)]
Merge branch 'widget-docs-fix' into 'main'

gtkwidget: Fix a small typo in a docs comment

See merge request GNOME/gtk!4901

3 years agogtkwidget: Fix a small typo in a docs comment
Philip Withnall [Mon, 25 Jul 2022 21:15:58 +0000 (23:15 +0200)]
gtkwidget: Fix a small typo in a docs comment

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
3 years agoUpdate Georgian translation
Zurab Kargareteli [Mon, 25 Jul 2022 16:03:57 +0000 (16:03 +0000)]
Update Georgian translation

3 years agoFix DnD on Windows
darkcutler [Mon, 25 Jul 2022 15:16:23 +0000 (15:16 +0000)]
Fix DnD on Windows

DnD under Windows needed 3 fixes to work with Gtk.DropTarget.

1. The droptarget_w32format_contentformat_map list never gets
filled so the gdk_win32_drop_read_async throws
"No compatible transfer format found".
This is an easy fix and done the same way in the win32 clipboard code.

2. After a drop no gdk_drop_emit_leave_event gets emitted.
This causes a second drop to trigger a bunch of assertion
'self->drop == drop' failed because the first drop is still active.
This is also an easy fix and done the same way by the macos backend.

3. Handling gdk_drop_status/gdk_drop_get_actions interaction.
In gtk_drop_target_do_drop the code
```gdk_drop_finish (self->drop, gdk_drop_get_actions (self->drop));```
calls the finish operation with the actions of the drop which triggers
```g_return_if_fail (gdk_drag_action_is_unique (action));```
in gdk_drop_finish. The code assumes that GdkDrop::actions gets
narrowed down by calling gdk_drop_status. This is hard to assure
because at the same time gdk_drop_get_actions is used by
gtk_drop_target_accept to figure out if a drag is accepted.
GdkDrop::actions serves a double purpose here as the supported source
actions and the currently agreed on action. Both the x11 and the
wayland backend get this wrong somewhat too. Under wayland/x11 when
a drag coming from a source that supports both MOVE and COPY is
first hovering a drop target that only supports COPY it is afterwards
no longer accepted by other drop targets only accepting MOVE.
Under x11 this is permanent for this drag but with wayland the drag
recovers when hovering other widgets. The win32 backend now sets the
supported source actions before any enter/move/drop and narrows them
down in gdk_win32_drop_status.

The patch only touches the win32 backend and fixes all three issues,
for me restoring DnD under windows.

Closes #4498

3 years agomountoperation: Free user_widgets list upon dialog destruction
Corey Berla [Mon, 25 Jul 2022 03:55:22 +0000 (20:55 -0700)]
mountoperation: Free user_widgets list upon dialog destruction

There's a list user_widgets that contains all of the entries and
selections during authentication.  This is only freed  upon
finalizing the GtkMountOperation.  It's possible (and true for the
GVFS SMB implementation) that a MountOperation can have the
gtk_mount_operation_ask_password_do_gtk () function called multiple
times (i.e. bad password).  The user_widgets list grows with now
invalid pointers to old widgets (causing unexpected behavior and
seg faults).

Free the user_widgets list upon dialog destruction, we don't need it
anymore.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5059
Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5058
3 years agoflatpak-build.sh: change the buildtype to debugoptimized
Jordan Petridis [Mon, 25 Jul 2022 12:42:14 +0000 (15:42 +0300)]
flatpak-build.sh: change the buildtype to debugoptimized

So that the flatpaks will include debuginfo and make debugging
easier.

3 years agoflatpak: add a NodeEditor demo
Jordan Petridis [Mon, 25 Jul 2022 12:38:55 +0000 (15:38 +0300)]
flatpak: add a NodeEditor demo

3 years agoMerge branch 'content-fit-since' into 'main'
Emmanuele Bassi [Mon, 25 Jul 2022 11:45:43 +0000 (11:45 +0000)]
Merge branch 'content-fit-since' into 'main'

picture: Fix Since and Deprecated annotations for content-fit

See merge request GNOME/gtk!4897

3 years agopicture: Fix Since and Deprecated annotations
Maximiliano Sandoval R [Mon, 25 Jul 2022 10:52:43 +0000 (12:52 +0200)]
picture: Fix Since and Deprecated annotations

gi-docgen will parse four or more whitespaces of indentation as code blocks,
two whitespaces were used.

This was missing in https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4873.

3 years agomountoperation: Select "Anonymous" check button by default
Corey Berla [Mon, 25 Jul 2022 03:53:41 +0000 (20:53 -0700)]
mountoperation: Select "Anonymous" check button by default

It is already explicitly assumed that anonymous authentication will
be used when available, but it is not clear to the user since neither
of the check buttons are selected.  Select the Anonymous check button
by default.

3 years agoUpdate Catalan translation
Jordi Mas [Thu, 21 Jul 2022 02:25:20 +0000 (04:25 +0200)]
Update Catalan translation

3 years agoMerge branch 'fix-controller-key-event-propagation-file-chooser-widget' into 'main'
Carlos Garnacho [Tue, 19 Jul 2022 22:15:04 +0000 (22:15 +0000)]
Merge branch 'fix-controller-key-event-propagation-file-chooser-widget' into 'main'

GtkFileChooserWidget: Propagate captured key events when the location entry is focused

Closes #4880

See merge request GNOME/gtk!4674

3 years agoMerge branch 'drag-action' into 'main'
Matthias Clasen [Mon, 18 Jul 2022 14:35:11 +0000 (14:35 +0000)]
Merge branch 'drag-action' into 'main'

tree/iconview: Use a unique drag action in drag_enter/motion callbacks

Closes #3187

See merge request GNOME/gtk!4882

3 years agoMerge branch 'treeview-drag-ancestor' into 'main'
Matthias Clasen [Mon, 18 Jul 2022 14:33:26 +0000 (14:33 +0000)]
Merge branch 'treeview-drag-ancestor' into 'main'

treeview: Check for column header area in row click/drag gestures

Closes #4453

See merge request GNOME/gtk!4885

3 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Mon, 18 Jul 2022 14:24:49 +0000 (14:24 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

css: Fix handling of transform values

See merge request GNOME/gtk!4890

3 years agoMerge branch 'wip/carlosg/use-press-serial' into 'main'
Matthias Clasen [Mon, 18 Jul 2022 14:18:22 +0000 (14:18 +0000)]
Merge branch 'wip/carlosg/use-press-serial' into 'main'

gdk/wayland: Use last implicit grab serial for DnD start requests

Closes #5048

See merge request GNOME/gtk!4889

3 years agogdk/wayland: Stop storing the last serial in GdkWaylandDisplay
Carlos Garnacho [Mon, 18 Jul 2022 10:50:39 +0000 (12:50 +0200)]
gdk/wayland: Stop storing the last serial in GdkWaylandDisplay

This is not used anymore, so we can drop the serial being stored
here.

3 years agoMerge branch 'drop-target-unique' into 'main'
Matthias Clasen [Mon, 18 Jul 2022 12:38:52 +0000 (12:38 +0000)]
Merge branch 'drop-target-unique' into 'main'

droptarget: Provide a unique action for gdk_drop_finish

Closes #5051

See merge request GNOME/gtk!4888

3 years agoMerge branch 'tree-popover-scroll' into 'main'
Matthias Clasen [Mon, 18 Jul 2022 12:28:34 +0000 (12:28 +0000)]
Merge branch 'tree-popover-scroll' into 'main'

treepopover: Add support for scrolling

Closes #3674 and #4877

See merge request GNOME/gtk!4887

3 years agocss: Improve test coverage
Matthias Clasen [Sun, 17 Jul 2022 13:11:23 +0000 (09:11 -0400)]
css: Improve test coverage

Among other things, this includes a test for the fix
in the previous commit.