summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* GDK/Win32: Re-enable libANGLE GLES to workwin32-egl-angleChun-wei Fan2023-03-102-0/+24
| | | | | | | For libANGLE on Windows, it only supports GLES but not enough desktop GL, even with the EGL_KHR_create_context extension, so check whether we are using a libANGLE EGL implementation and enforce that we only allow the GLES API set just before we realize the context, if that is the case.
* Update Friulian translationFabio Tomat2023-03-101-881/+927
|
* Merge branch 'more-size-allocation-fixes' into 'main'Matthias Clasen2023-03-081-50/+68
|\ | | | | | | | | widget: Skip popovers in allocation See merge request GNOME/gtk!5615
| * widget: Skip popovers in allocationMatthias Clasen2023-03-081-1/+2
| | | | | | | | | | | | | | Native widgets get allocated via their surface, so can skip them here. This avoids criticals when re-mapping a popover for the second time, as can be seen e.g. in the 'Selections' demo in gtk4-demo.
| * widget: Stop propagating alloc_needed beyond popoversMatthias Clasen2023-03-081-1/+4
| | | | | | | | | | This should not be necessary, since popovers get their new size from present_popup via the compositor.
| * widget: Remove goto usage in widget_allocate()Benjamin Otte2023-03-081-36/+37
| |
| * widget: Split out gtk_widget_ensure_allocate_on_children()Benjamin Otte2023-03-081-12/+25
| | | | | | | | | | allocate() should not be calling into ensure_allocate(), they do a similar job. In the end, the code does the same work, but it should be easier to follow now.
| * widget: Simplify size allocationMatthias Clasen2023-03-081-4/+4
| | | | | | | | | | | | Don't call ensure_allocate if we've just done size_allocate. This makes criticals from reshowing popovers go away.
* | Merge branch 'wip/chergert/fix-const-preserving-text-iter-order' into 'main'Matthias Clasen2023-03-081-1/+1
|\ \ | | | | | | | | | | | | textlinedisplaycache: fix const-preserving gtk_text_iter_order() See merge request GNOME/gtk!5620
| * | textlinedisplaycache: fix const-preserving gtk_text_iter_order()Christian Hergert2023-03-081-1/+1
| | |
* | | Merge branch 'file_chooser_stuff' into 'main'Matthias Clasen2023-03-081-14/+21
|\ \ \ | |/ / |/| | | | | | | | filechooser: two small changes See merge request GNOME/gtk!5619
| * | filechooser: Do not look up parents of directoriesBarnabás Pőcze2023-03-081-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the `GtkRecentInfo` represents a directory, simply use it, and do not try to find its parent in `_gtk_file_chooser_extract_recent_folders()`. For example, there is an entry in my recently-used database from the Amberol music player about the folder I have opened with it, but the folder is not listed on the "Recent" tab of the file chooser widget, only its parent. After this change, the directory itself is shown.
| * | filechooser: Use gtk_recent_info_is_local() for filteringBarnabás Pőcze2023-03-081-5/+3
|/ / | | | | | | | | There is already a function for determining if URI has the "file" scheme, so use that.
* | Merge branch 'ebassi/issue-5650' into 'main'Matthias Clasen2023-03-081-0/+7
|\ \ | | | | | | | | | | | | | | | | | | Filter recently used files in the file chooser Closes #5650 See merge request GNOME/gtk!5618
| * | Filter recently used files in the file chooserEmmanuele Bassi2023-03-081-0/+7
| | | | | | | | | | | | | | | | | | | | | Since it's a file selection widget, we should only list recently used files that point to a file. Fixes: #5650
* | | Merge branch 'fix-msvc-older-glib' into 'main'Matthias Clasen2023-03-083-0/+25
|\ \ \ | |_|/ |/| | | | | | | | modules/media: Fix Visual Studio builds with older GLib (<= 2.74.x) See merge request GNOME/gtk!5605
| * | modules/media: Fix Visual Studio builds with older GLibChun-wei Fan2023-03-073-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current definitions of the g_io_module_*() symbols do not build on Visual Studio when building against GLib earlier than 2.75.0 due to the way how these symbols are decorated in the GLib headers, as Visual Studio does not allow symbols that were previously marked with 'extern' (or so) to be marked with anything that is symantically different later. As a result, if we are using Visual Studio and glib-2.74.x or earlier, override _GLIB_EXTERN as appropriate in the modules/media sources before including the GIO headers. This sadly, means that we need a configure-time check as it would have been too late if we checked the GLib version using G_VERSION_CHECK macro, as the GIO headers would have been included already. There are similar items in the print backends, but we will not attempt to update these files as they are not meant to be built for Windows.
* | | Merge branch 'wip/carlosg/reuse-search-engine' into 'main'Matthias Clasen2023-03-081-6/+16
|\ \ \ | | | | | | | | | | | | | | | | gtkfilechooser: Keep GtkSearchEngine around for longer See merge request GNOME/gtk!5617
| * | | gtkfilechooser: Keep GtkSearchEngine around for longerCarlos Garnacho2023-03-081-6/+16
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the GtkSearchEngine is torn down every time the search is stopped, which also means between typed characters. This prevents any of the optimizations that the GtkSearchEngine can do in the long run. Let the GtkSearchEngine stay around for longer, and only be disposed after search is cancelled, the filechooser moves onto a different mode than search, or is otherwise unmapped/disposed. While at it, remove an unused struct field.
* | | Merge branch 'wip/carlosg/recursive-file-search' into 'main'Matthias Clasen2023-03-081-48/+100
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | searchengine: Improve performance for recursive search Closes #4133 See merge request GNOME/gtk!5611
| * | | searchengine: Do not fight filechooser search mode sortingCarlos Garnacho2023-03-081-1/+1
| | | | | | | | | | | | | | | | | | | | Provide the hits in an order that is more easily consumed by the filechooser, and less jarring when populating.
| * | | searchengine: Bail out on the first characterCarlos Garnacho2023-03-081-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Again on massive filesystems, the very first character is likely to bring a likewise massive amount of search results that we need to maybe query info for, then create icons and widgets for. While it's impressive we can do that, it's also expensive and likely pointless, for the first character. Typing a second character is however very likely to considerably reduce the amount of items to categorize and show. So start actually searching from there. Testing on a filesystem with 1434099 files indexed, trying 5 semi-random 1 character searches (n, h, t, i, o) returns on average 168K items (min. 78771, max. 331471), trying 5 semi-random 2 character searches (no, he, th, in, on) returns on average 34K items (min. 11133, max. 94961), which is a more approachable set. Doing this is enough that typing on a filechooser search entry feels completely fluid.
| * | | searchengine: Ensure some GFileInfo fieldsCarlos Garnacho2023-03-081-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The search provider should make it sure there are some specific GFileInfo fields set. Fix the mimetype extraction from the query, and use that to fill in the missing gaps the best we can.
| * | | searchengine: Drop non-recursive searchCarlos Garnacho2023-03-081-23/+4
| | | | | | | | | | | | | | | | Recursive search seems to be the hardcoded default, go with it.
| * | | searchengine: Populate filesystem model in an idleCarlos Garnacho2023-03-081-20/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | searchengine: Improve performance for recursive searchCarlos Garnacho2023-03-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge branch 'check_null_gfile_location' into 'main'Matthias Clasen2023-03-081-2/+7
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | filechooser: Fix memory leaks See merge request GNOME/gtk!5610
| * | | | filechooser: Fix memory leaksBarnabás Pőcze2023-03-081-2/+7
| | | | | | | | | | | | | | | | | | | | The returned strings from `file_chooser_get_location()` were never freed.
* | | | | Merge branch 'matthiasc/for-main' into 'main'Matthias Clasen2023-03-081-1/+6
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | build: Handle introspection a bit better See merge request GNOME/gtk!5614
| * | | | build: Handle introspection a bit betterMatthias Clasen2023-03-071-1/+6
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Error out if introspection is requested, but g-ir-scanner isn't found. And if introspection isn't explicitly disabled but is required for building the docs, build it.
* | | | Merge branch 'matthiasc/for-main' into 'main'Matthias Clasen2023-03-081-0/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | filechooser: Handle pathless files See merge request GNOME/gtk!5613
| * | | | filechooser: Handle pathless filesMatthias Clasen2023-03-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | g_file_get_path() can return NULL. Make our getter for file locations handle that case. Related: !5610
* | | | | Merge branch 'expose_checkable_state' into 'main'Matthias Clasen2023-03-081-0/+1
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | a11y: When an accessible has GTK_STATE_CHECKED, set its ATSPI_STATE_CHECKABLE as well See merge request GNOME/gtk!5602
| * | | | a11y: When an accessible has GTK_STATE_CHECKED, set its ↵Lukáš Tyrychtr2023-03-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ATSPI_STATE_CHECKABLE as well This allows, for example, checkable list itemss.
* | | | | Merge branch 'matthiasc/for-main' into 'main'Matthias Clasen2023-03-082-2/+11
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | wayland: Don't crash during DND with Cairo renderer See merge request GNOME/gtk!5612
| * | | | | wayland: Don't crash during DND with Cairo rendererBenjamin Otte2023-03-071-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attaching buffers with offsets is forbidden now and nobody checked the Cairo renderer.
| * | | | | text: Don't crash when somebody drops NULLBenjamin Otte2023-03-071-0/+3
|/ / / / /
* | | | | Merge branch 'wroy-main-patch-03255' into 'main'Emmanuele Bassi2023-03-0718-18/+18
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | MSBuild: Fix gnome.compile_resources current source directory See merge request GNOME/gtk!5609
| * | | | Apply suggestion to use '/' over join_pathsEmmanuele Bassi2023-03-071-1/+1
| | | | |
| * | | | Fix compile_resources present source directoryWilliam Roy2023-03-0718-18/+18
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In certain scenarios, address the issue where gnome.compile_resources fails to transmit the present source directory. This is most notably visible with MSBuild.
* | | | Merge branch 'unbreak-combobox' into 'main'Matthias Clasen2023-03-071-12/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | combobox: Avoid extra queue_resize() Closes #5644 See merge request GNOME/gtk!5608
| * | | | combobox: Avoid extra queue_resize()Ivan Molodetskikh2023-03-071-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | width-request already ensures it's above the minimum width, so avoid an extra queue_resize() when setting size request to (-1, -1). This is the same way as GtkDropDown works. This also unbreaks GtkComboBox after the recent allocation fix in 75a417e33708dab2bdb2f784a8952e085a12bf03. Incidentally, this also makes GtkComboBox actually resize its popup as intended (that was broken before). I don't think this is ultimately the final fix, sometimes I still get allocation warnings. But the proper fix will probably involve changing some more allocation machinery around popovers. This is good enough for now.
* | | | | Updated Danish translationAsk Hjorth Larsen2023-03-071-1063/+1153
| |_|_|/ |/| | |
* | | | Merge branch 'window-signals' into 'main'Matthias Clasen2023-03-071-0/+1
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | window: Disconnect the ::compute-size handler See merge request GNOME/gtk!5606
| * | | window: Disconnect the ::compute-size handlerMatthias Clasen2023-03-071-0/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | All the other signal handlers are connected in realize and disconnected in unrealize, but the ::compute-size handler was forgotten. This was notices in !5597.
* | | Merge branch 'expose_landmark_role' into 'main'Matthias Clasen2023-03-061-1/+1
|\ \ \ | | | | | | | | | | | | | | | | a11y: Expose GTK_ACCESSIBLE_ROLE_LANDMARK to AtSPI2 See merge request GNOME/gtk!5601
| * | | a11y: Expose GTK_ACCESSIBLE_ROLE_LANDMARK to AtSPI2Lukáš Tyrychtr2023-03-061-1/+1
| | |/ | |/|
* | | Update Czech translationMarek Černocký2023-03-061-1060/+1100
| | |
* | | Merge branch 'wip/exalm/template' into 'main'Emmanuele Bassi2023-03-061-1/+2
|\ \ \ | |/ / |/| | | | | | | | widget: Use the correct template in dispose_template() See merge request GNOME/gtk!5600
| * | widget: Use the correct template in dispose_template()Alexander Mikhaylenko2023-03-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | In derivable classes, the widget's class can be different from the one dispose_template() was called for, which can lead to failing the template != NULL check at best, undefined behavior at worst. Since we already pass the correct GType into the function, just use that instead.