Commit Graph

53297 Commits

Author SHA1 Message Date
Carlos Garnacho
f550bd6391 searchengine: Populate filesystem model in an idle
When starting a search over a very populated filesystem, it
is possible that typing the first chars will return a too
high number of results. Even though iterating through the
cursor is in itself very fast, extracting the GIO information
from those many files at once is not going to be as fast.

In order to increase interactivity (i.e. not make things
possibly sluggish) iterate the cursor in an idle function
and add search results to the filechooser model little by little.

If the user keeps typing (as it is likely will happen), there
will be better chances to cancel and proceed to the next
query timely. If not, the results will be there soon enough.
2024-03-18 02:02:01 +01:00
Carlos Garnacho
870ecf2b81 searchengine: Improve performance for recursive search
As fancy as property paths are, recursive resolution of files
to a location increases the big O complexity enough that it's
not a great option on large homedirs with many indexed files.

Ensure the files are from the right location through a URI
prefix match, which does hits an index. This may dramatically
improve performance on large indexed trees.

Testing this query in an isolated testcase with a total
1434099 indexed files shows that it can run more than 1500 times
per second in this computer (an average of 15200 queries in
several 10 second runs), which presumably is a tad faster than
anyone can type.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4133
2024-03-18 02:01:01 +01:00
Matthias Clasen
b85b972cf1 Merge branch 'size-allocation-critical' into 'gtk-3-24'
box gadget: Drop a critical

See merge request GNOME/gtk!7034
2024-03-15 02:19:38 +00:00
Matthias Clasen
e29cd37ae6 Merge branch 'standard-cursor-names-3-24' into 'gtk-3-24'
wayland: Keep cursor types limping along

See merge request GNOME/gtk!7033
2024-03-15 02:19:28 +00:00
Matthias Clasen
190f111d8e box gadget: Drop a critical
Nobody is going to track these allocation failures down in gtk3
at this point, so drop the alarming message. The failures are
pretty harmless.
2024-03-14 21:50:00 -04:00
Matthias Clasen
f1690a9a37 wayland: Keep cursor types limping along
Cursor themes have recently started to reduce their coverage of
'legacy' cursor names, and reduced to the standard names. Support
this for the few cursor types that are still used in GTK.
2024-03-14 21:45:19 -04:00
Marek Kasik
90950b2d3d printing: Avoid accessing freed printers
Print backend can be disposed together with all its printers
as a reaction to user stopping enumeration of printers.
Adding a weak pointer help us to detect that the backend
was disposed and hence the backend and its printers should not
be used anymore.

Fixes #6265
2024-03-13 11:42:19 +01:00
Matthias Clasen
c4dd8d0125 Merge branch 'ebassi/issue-6527' into 'gtk-3-24'
Sink the floating ref on the file filter

See merge request GNOME/gtk!7011
2024-03-11 12:23:16 +00:00
Emmanuele Bassi
8a26450bba Sink the floating ref on the file filter
The GtkFileChooserEntry widget creates a file filter instance, but never
sinks its floating reference. Newer versions of GLib correctly warn if
an instance with a floating reference gets finalized.

Fixes: #6527
2024-03-11 10:41:40 +00:00
Danial Behzadi
6bac387a4e Update fa.po 2024-03-01 18:46:51 +00:00
Matthias Clasen
fa1fd6b5c7 Merge branch 'quartz-selection' into 'gtk-3-24'
Finish fixing pasteboard constants macOS 10.14 and later.

See merge request GNOME/gtk!6954
2024-03-01 16:32:50 +00:00
Matthias Clasen
bb99970746 Merge branch 'fix-possible-segfault' into 'gtk-3-24'
dnd: Prevent a possible segfault

See merge request GNOME/gtk!6957
2024-02-28 18:52:53 +00:00
Matthias Clasen
889057a386 dnd: Prevent a possible segfault
It is at least theoretically possible that gtk_entry_get_pixel_ranges
will return no ranges, and we should handle that without an
out-of-bounds access or segfault.
2024-02-28 13:20:59 -05:00
John Ralls
7e9676d658 Fix Cocoa pasteboard constants for gtk.
Corresponds to gdkselection-quartz changes in f30ed5ddc.
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/6480
2024-02-27 12:31:16 -08:00
Matthias Clasen
687ec22393 Merge branch 'gtk3-edge-tiling-resize-fix' into 'gtk-3-24'
[gtk3/wayland] Infer resizable edges for tiled windows if possible.

See merge request GNOME/gtk!6742
2024-02-27 17:39:15 +00:00
Emilio Cobos Álvarez
9020a6f71e [gtk3/wayland] Infer resizable edges for tiled windows if possible.
This fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1871627

All GTK3/4 apps on non-GNOME desktops aren't resizable if they are
tiled.

This patch makes the non-tiled edges resizable if we have per-edge
tiling, but not per-edge resizing information.

We might want to make all edges resizable, but that might not be fine
for tiling compositors.
2024-02-27 15:18:41 +01:00
Emmanuele Bassi
8440752196 Merge branch 'fix_6449' into 'gtk-3-24'
a11y: Don't emit redundant checked notifications

See merge request GNOME/gtk!6923
2024-02-20 17:21:32 +00:00
Emmanuele Bassi
35608223b6 Apply review suggestions. 2024-02-20 16:38:08 +00:00
Lukáš Tyrychtr
bfad80e08e a11y: Don't emit redundant checked notifications
The ModelButton update logic was unconditionally emitting them even if nothing
changed.

Fixes #6449.
2024-02-20 14:32:53 +01:00
Matthias Clasen
47c1ffaddf Merge branch 'ebassi/doc-since-fix' into 'gtk-3-24'
docs: Fix the Since tag for gtk_render_background()

See merge request GNOME/gtk!6906
2024-02-14 20:22:14 +00:00
Emmanuele Bassi
69c74dfded docs: Fix the Since tag for gtk_render_background()
The version should not end with a trailing dot.
2024-02-14 15:36:53 +00:00
Matthias Clasen
23185eca89 Merge branch 'gtk3_crash_tablet_pad_remove' into 'gtk-3-24'
gdk/wayland: Clear current_tablet on pad leave

See merge request GNOME/gtk!6884
2024-02-12 01:25:09 +00:00
Colin Kinloch
47601f5413 gdk/wayland: Clear current_tablet on pad leave
Fixes crash when handling tablet pad removal event after the
current_tablet has already been freed.
2024-02-11 15:03:04 +00:00
Matthias Clasen
15aa75a159 Merge branch 'replace-outdated-cursor-types' into 'gtk-3-24'
Replace some instances of outdated cursor types

See merge request GNOME/gtk!6835
2024-02-01 01:52:49 +00:00
Matthias Clasen
4ee9fd953b Merge branch 'gtk3-monitor-scale' into 'gtk-3-24'
[gtk3/wayland] Fix GdkMonitor sizes on Mutter without fractional scaling.

See merge request GNOME/gtk!6723
2024-02-01 01:51:59 +00:00
Mat
75df35298c Replace some instances of outdated cursor types
Use the CSS cursor names instead.
2024-02-01 01:23:15 +02:00
Matthias Clasen
51b04c5007 wayland: Small fixup to monitor size handling
The first time this function is called, has_xdg_output() returns
true, but haven't yet received all the xdg-output events, so wait
for that to be done. Otherwise, the logical size is 0, and nothing
useful comes from that.
2024-01-31 14:12:40 +01:00
Emilio Cobos Álvarez
09373bf7ee [gtk3/wayland] Fix GdkMonitor sizes on Mutter without fractional scaling.
This is the gtk3 version of !6722.

This fixes a problem that is apparent in
https://bugzilla.mozilla.org/show_bug.cgi?id=1869724, but that also
reproduces on any GTK application as described in
https://bugzilla.mozilla.org/show_bug.cgi?id=1869724#c16.

xdg_output sizes might be physical if the compositor doesn't scale them,
it seems. So to report the correct logical geometry in GDK pixels, we
need to detect this case. We do this by checking whether the wl_output
size matches the xdg_output size.
2024-01-31 14:12:40 +01:00
Matthias Clasen
40fe09855b Post-release version bump 2024-01-23 20:38:23 -05:00
Matthias Clasen
77ebdd8509 3.24.41 3.24.41 2024-01-23 20:14:34 -05:00
Matthias Clasen
2b054f3edc Merge branch 'lcrippa-gtk-3-24-patch-37647' into 'gtk-3-24'
fix gtk-shell protocol handling

See merge request GNOME/gtk!6803
2024-01-24 01:08:43 +00:00
lorenzo crippa
5de743572e fix gtk-shell protocol handling 2024-01-24 01:08:43 +00:00
Matthias Clasen
5cffea2ddf Merge branch 'wip/davidk/gtk3-casts' into 'gtk-3-24'
Fix some casts

See merge request GNOME/gtk!6782
2024-01-20 16:35:28 +00:00
Matthias Clasen
f9a844ab85 Merge branch 'fix/6345' into 'gtk-3-24'
Fix for #6345 and #6345

See merge request GNOME/gtk!6786
2024-01-20 14:24:29 +00:00
Michael Wyraz
ba58b3a23d Fix for #6342 2024-01-19 23:01:22 +01:00
Michael Wyraz
6880ac90a0 don't free monitor->name twice (fixes #6345) 2024-01-19 19:15:52 +01:00
David King
05a12b1c5f testsuite: Fix casts in reftests 2024-01-19 12:58:44 +00:00
David King
76bc2a5713 tests: Add GdkEvent casts in testinput 2024-01-19 11:28:02 +00:00
Matthias Clasen
230ced2670 Post-release version bump 2024-01-17 21:53:43 -05:00
Matthias Clasen
f926323d04 3.24.40 3.24.40 2024-01-17 21:38:13 -05:00
Emmanuele Bassi
a487deb189 Merge branch 'fix/monitor-name' into 'gtk-3-24'
Use xorg 'monitor' the right way.

See merge request GNOME/gtk!6680
2024-01-16 16:36:05 +00:00
Michael Wyraz
adce74bc28 Free monitor name on finalize 2024-01-15 08:25:58 +01:00
Yaron Shahrabani
813787c541 Update Hebrew translation 2024-01-14 06:57:42 +00:00
Ekaterine Papava
099ace2a1e Update Georgian translation 2024-01-07 06:30:39 +00:00
Matthias Clasen
53d6a34e54 Merge branch 'fix-display-selection-init' into 'gtk-3-24'
gdkdisplay-wayland: Init selection before roundtrips

See merge request GNOME/gtk!6714
2024-01-07 01:17:04 +00:00
Gaël Bonithon
a58ae95c87 gdkdisplay-wayland: Init selection before roundtrips
Some of the listeners connected during the initial roundtrip assume a
non-NULL selection, when they finally invoke functions such as
gdk_wayland_selection_ensure_offer(),
gdk_wayland_selection_ensure_primary_offer() or
gdk_wayland_selection_set_offer(). The GdkWaylandSelection should
therefore be initialized before the second series of roundtrips, as the
compositor may have already sent a selection by then.
2024-01-06 23:30:34 +01:00
Yaron Shahrabani
782615ec68 Update Hebrew translation 2024-01-02 21:55:09 +00:00
Anders Jonsson
a64d3df749 Update Swedish translation 2023-12-29 23:29:54 +00:00
Yaron Shahrabani
bf84ee045a Update Hebrew translation 2023-12-28 12:17:42 +00:00
John Ralls
345bfb494a Use consistent coordinates in get_toplevel_from_ns_event.
[NSView frame] returns a rectangle in the superview's coordinates, and the
superview of an NSWindow's content view (which is the only NSView that
GdkQuartz instantiates) is an undocumented NSThemeFrame. While it happens
to have the same origin as the content view and the same size as the
window's frame this isn't documented and so could change without notice.
Convert the window frame coordinates to the view's coordinate system to
ensure consistency.

Use the view's bounds instead of its frame: The bounds rectangle is in the
view's coordinate system. Use the parent NSWindow's frame instead of the
private NSThemeFrame's. This ensures that all coordinate comparisons have
the same reference.

Finally, the macOS coordinate systems origin is at the bottom left, so the
title bar is between the content view's height and the window's height,
not in negative y in the view's coordinates. Adjust the y comparisons
accordingly.

Fixes #6297
2023-12-25 11:10:12 -08:00