Commit Graph

28766 Commits

Author SHA1 Message Date
6104130af2 Merge branch 'dialog-portal-cherry-pick' into 'gtk-3-24'
[gtk3] Cherry-pick gtkfilechoosernativeportal fixes from gtk4

See merge request GNOME/gtk!6612
2023-12-19 01:13:40 +00:00
e1d664da63 GtkMenu: Fix positioning when attached to offscreen windows
In order to do that, we have to make gdk_window_is_impl_offscreen ()
accessible from GTK via GdkPrivateVTable.
2023-12-13 12:34:41 +01:00
32d87ac907 [gtk3] Cherry-pick gtkfilechoosernativeportal fixes from gtk4
This was basically done copying the gtk4 version and keeping the changes
that weren't gtk4 specific.

Fixes #6224 (the chooser doesn't close but we don't crash or such)
2023-12-08 13:53:34 +01:00
f7e9fd076d macos: Implement delegate method to silence secure-restore message
Fix process injection vulnerability on macOS.

See https://sector7.computest.nl/post/2022-08-process-injection-breaking-all-macos-security-layers-with-a-single-vulnerability/.
2023-11-30 17:47:32 +01:00
307dde7f6c [gtk3] GtkFileChooserNative: Fix portal close.
This makes closing a portal file chooser work.

Fixes the GTK3 bits of #6225.
2023-11-25 03:32:47 +01:00
022c36a137 Fix _gtk_get_slowdown()
We need to pass void as the argument type.
2023-08-28 16:46:43 -04:00
3e6b832283 quartz: fix compilation problem introduced by !5648
Including plain "gdkquartz.h" ends with compilation error:

```
../gtk/gtkfilechoosernativequartz.c:43:10: fatal error: 'gdkquartz.h' file not found
#include "gdkquartz.h"
         ^~~~~~~~~~~~~
1 error generated.

```
2023-08-20 10:59:28 +02:00
6fd564d126 Merge branch 'michaelweghorn/gtk-3-24_a11y_fix_cell_position' into 'gtk-3-24'
a11y atspi: Fix reporting table cell pos at index (0,0)

See merge request GNOME/gtk!6173
2023-07-28 07:16:05 +00:00
0f717ca423 Merge branch 'fix-issue-5775' into 'gtk-3-24'
GtkApplicationImplDBus: Cancel DBus method calls on shutdown

See merge request GNOME/gtk!6180
2023-07-22 23:47:36 +00:00
7ca33ff994 GtkApplicationImplDBus: Cancel DBus method calls on shutdown
We do that for method calls where a non-NULL GAsyncReadyCallback
is passed.

Fixes #5775
2023-07-21 14:04:25 +02:00
272b6b4feb GtkMenu: Take offscreen windows in account for positioning 2023-07-13 16:31:58 +02:00
8951777518 a11y atspi: Fix reporting table cell pos at index (0,0)
Table (cell) row and column indices both start at 0, so
an index of 0 is valid.

Adapt the check accordingly and check for non-negative
indices instead of positive ones.

(`gtk_cell_accessible_parent_get_cell_position` sets -1
in the fallback case, so that's still handled as it used
to be.)

This fixes reporting the position of the table cell at
index (0,0) via AT-SPI.

Fixes: #5161
2023-07-07 15:55:36 +02:00
1e1e1a1b8b make gdkquartz-cocoa-access.h usable again
There is no need to include gdkquartz.h there,
which was making it impossible to include this header file
without also adding gdk/ as an include directory when compiling.
This patch moves the include to the only location where it is actually needed.
2023-07-03 15:19:39 -07:00
a6d40b610b Popover: Clarify/guard out rect of get_pointing_to
Clarify that we zero out the widget coords and only keep its dimensions.

If we have no widget to fall-back to, memset to 0 the output @rect since
we return FALSE whether or not we have widget, so protect users from not
knowing if there was a widget and possibly accessing uninitialised ints.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/893#note_1766079
2023-06-11 11:37:45 +01:00
ad07e9043f popover: Remove useless if case
rect is not nullable, so stop checking if it is NULL and instead add a
g_return_val_if_fail guard.
2023-06-11 11:26:33 +01:00
c9f0b0d29b ScrolledWindow: Frame on viewport is not optional,
and seems always to default to true, so don't mention it being optional.
2023-06-11 11:22:45 +01:00
1d95b8ab26 gtkmountoperation: avoid SEGV after bad password input
I observed the following nautilus crash below after trying to access an SMB
share and mistyping my password (it also happens if mounting the SMB share
fails for other reasons after entering a password). The crash happens when
the password entry window pops up the second time, in this code path, at
the 7th element of priv->user_widgets:

458	pw_dialog_anonymous_toggled (GtkWidget         *widget,
459	                             GtkMountOperation *operation)
460	{
...
472	  for (l = priv->user_widgets; l != NULL; l = l->next)
473	    {
474	      gtk_widget_set_sensitive (GTK_WIDGET (l->data), !priv->anonymous);
475	    }

The broken element had l->data = 0xaaaaaaaaaaaa, which means the pointer had
been freed.

The broken list entries were at the of the list because when
gtk_mount_operation_ask_password_do_gtk() constucts the pop-up the 2nd time,
it prepends new widgets:

gtk_mount_operation_ask_password_do_gtk()
   table_add_entry
       operation->priv->user_widgets = g_list_prepend (operation->priv->user_widgets, entry);

The problem is that in pw_dialog_got_response(), the widget is destroyed,
which also destroys all child widgets, but the priv->user_widgets list is
neither freed nor set to NULL.

Fix it.
2023-06-02 16:30:28 +02:00
1659cefde7 Fix a typo
1. According to the UTF-8 spec, ASCII character's charcode is from
   0 to 127 inclusively.

2. Any charcode which is greater than or equal to 128 will be
   a multi-byte character.
2023-05-31 22:13:53 +08:00
6dc75b46cc Make sure that the charcode is signless
1. The data with type of char is signed by default.

2. The byte value of UTF-8 is signless by default.

3. So, if a UTF-8 charcode is stored in a char array, we should cast the
type of its value from char to unsigned char.
2023-05-29 09:52:38 +08:00
7e17693cce Use correct stat struct for ftw()
check_dir_mtime() is called by ftw() and is given
the real stat struct, not its glib version (which may
or may not be the same as "struct stat").

This is irrelevant for MSVC (it has no ftw()) and
works correctly for MinGW-w64 (which declares stat
structures correctly). If mingw.org complains, add
a special ifdef for it later.
2023-05-22 07:52:01 +02:00
a76ae3eb85 Fix a crash
Fix an oversight from fc1643956b.
2023-04-29 06:40:50 -04:00
fc1643956b application: Clean up signal handlers
This is the right thing to do and might help for #5775.
2023-04-26 14:09:44 +02:00
8e48e6548b Merge branch 'doc-link-fixes' into 'gtk-3-24'
docs: Fix some links

See merge request GNOME/gtk!5718
2023-03-25 14:20:24 +00:00
19c2e87627 docs: Fix some links
The links to the overview sections were all broken.
Fix them.
2023-03-25 10:09:00 -04:00
c26a209283 inspector: add im-module
This adds a new row to the Global/Information section which displays the
GTK im-module that is likely to be in use unless changed by an application.
It responds to updates of GtkSettings:gtk-im-module unless the
GTK_IM_MODULE environment variable is set.

Fixes #4512

(cherry picked from commit 6be352f4468b4dbbb1d71f427948dda154b9a658)
2023-03-23 21:26:33 +01:00
22dd7189bb inspector: Show the pango backend
(cherry picked from commit 7eb5dfd2947c8e8de0957f4339af66b47811f2c7)
2023-03-23 18:59:40 +01:00
c1fa916e88 Check for attribute availability before accessing it
Starting from GLib 2.76, the standard attribute getters in the GFileInfo
object will warn if the attribute is unset, instead of silently bailing
out and returning a default value.
2023-03-13 11:54:01 +00:00
2c951f122d dark theme: create $caret_color and use it
Fixes Evince showing a dark caret when using
dark theme, which makes it almost invisible.

This is in css node "textview text" of Evince
annotation window (a GtkScrolledWindow).

We create a new $caret_color var based on
$text_color and use it accordingly.

Fixes evince#1842
2023-03-12 18:50:56 -04:00
5fee632386 selection: Use the right mime type
The correct mime type for portal file transfers
is application/vnd.portal.filetransfer.

Fixes: #5643
2023-03-06 23:07:53 -05:00
b56202937a liststore: Fix gtk_list_store_iter_is_valid()
The iter may be invalid, so we may not read from it.

testsuite/gtk/treemodel tests this and valgrind is shouting about it,
but it never crashed until I just ran it...

This bug is from 2004 and the test is from 2007. I guess invalid memory
accesses don't get caught by CI much.
2023-03-02 19:29:42 -05:00
6402137bbf impcontextsimple: Return from GTask
GLib complains about this now, so do it.
2023-03-02 19:18:34 -05:00
a3c604d5cc gtkwindow: Fix fallbacks through xdg_activation_v1
When activating a window, avoid the "old" gdk_notify_startup_complete*()
API that does not fallback into xdg_activation on wayland (as this is still
deferred here until show vs present happens on the surface). This was
mistakenly changed wrt the original commit backported from GTK4.

Fixes: a067938589 ("gtkwindow: Minor refactor")
2023-03-01 17:14:01 +01:00
9f81db139d selection: Support the file transfer portal
When the selection target is application/vnd.portal.files,
send files through the file transfer portal.
2023-02-25 08:41:07 -05:00
857f734d83 searchengine: Emit a simple warning when tracker init failed
Failure is allowed by nature of GInitable, and this avoids unnecessary
crashing of programs running with G_DEBUG=fatal-criticals.

(cherry picked from commit 6215b38e645f5047d52e625562efccc1e4f85867)
2023-02-09 23:21:04 +01:00
8497425535 searchengine: Add missing sanity check
(cherry picked from commit 41490f96240eb04d85cbe5e1f264ab09ec00b9e0)
2023-02-09 23:20:47 +01:00
5554113c74 Merge branch 'gtk-3-24' into 'gtk-3-24'
Fixes incorrect grabbing behaviour causing subsequent rejection of input

See merge request GNOME/gtk!5212
2023-01-28 17:46:05 +00:00
15f0ac6f93 Remove warning 2023-01-28 14:20:49 +01:00
384d9a75cd Revert "Revert "wayland: Add support for gtk_surface1_titlebar_gesture()""
This reverts commit 5aaa373b70
2023-01-28 09:41:34 +00:00
5aaa373b70 Revert "wayland: Add support for gtk_surface1_titlebar_gesture()"
This reverts commit 45ba6e9329.

This caused regressions in libhandy-using applications.

Fixes: #5389
2023-01-27 21:34:44 -05:00
b6795f8ff9 Merge branch 'wip/carlosg/startup-vs-focus-3-24' into 'gtk-3-24'
Consider startup vs focus requests for the Wayland platform [3.24]

See merge request GNOME/gtk!5443
2023-01-25 13:09:17 +00:00
79e11bed1a gtkapplication: Do not call gdk_display_notify_startup_complete()
This should do nothing worthwhile anymore, the X11/Wayland GtkApplication
implementations do already pass the startup ID from the platform_data
via windowing specific APIs, and the application handling the request
via show()/present() should trigger the activation request.

(cherry-picked from commit 3526d8b299becb7cd1e970ea5228a141eae20257)
2023-01-25 11:22:40 +01:00
2a47038635 gtkwindow: Shuffle gdk_window_set_startup_id() calls
While this used to be tangential to windows showing or requesting
focus, the xdg-activation Wayland protocol does merge both concepts
together.

But also, for a correct interaction with the compositor, the
toolkit should ideally merge the activation request resulting from
both into the same one, so that the gdk_window_focus() request
replies to the startup token that started the application and
correct focus-stealing prevention/etc happens, instead making up
one just in time for the focus request.

This kind of requires doing things in the right order, a show()
request on the GtkWindow should activate any pending activation
token on the toplevel, a present() request should additionally
create a new token if there was none pending. And
xdg_activation_v1_activate() should happen once on both.

Shuffle the gdk_window_set_startup_id() calls so that this
happens in the right order for Wayland, while making X11 happy
too.

(cherry-picked from commit e8adfa2a889cd45ee0ce0727d7eae0a61fdb7dce)
2023-01-25 11:22:40 +01:00
a067938589 gtkwindow: Minor refactor
Move the handling of the startup ID to a separate function, since
this will be called from several places.

(cherry-picked from commit 6f01f846dc66a6359a1524ace13377536821dbb0)
2023-01-25 11:22:40 +01:00
89c7d5fe4b Take UI scale into acount when loading "image-missing" fallback
Fallback icons loaded were loading at half size (for a 2x scale) and for
cases where it mattered, were being positioned off-center.
2023-01-21 12:47:40 -08:00
6a2fb84446 gtkcssanimatedstyle: Fix return of new_advance()
This was causing animation and transition to stop randomly and reset
their state to initial state.

This issue has existed since commit
7b68bdb831.

Closes #4426
2023-01-13 15:20:01 -05:00
c1aec7f100 filechoosernativewin32: Set default extension
Setting the default extension before a filter is selected allows
the IFileDialog to automatically change the extension when the
filter is changed. See:
https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setdefaultextension
2023-01-07 18:21:54 +00:00
2f6d0792f8 Merge branch 'gtk3_fix_chooser_dead_tilde_trigger_location' into 'gtk-3-24'
Fix open location entry when pressing '~'

See merge request GNOME/gtk!4971
2022-12-13 13:00:36 +00:00
3b9531d3d3 Merge branch 'ebassi/no-more-autotools-redux' into 'gtk-3-24'
Drop the Autotools build

See merge request GNOME/gtk!5299
2022-12-13 12:10:34 +00:00
8eb4e59613 Use @basename@ in enumeration type templates
The @filename@ directive will use the full path of the file being parsed
for enumeration types; we should use @basename@, instead, as it improves
the reproducibility of the build by using only the file name.

Backport of 4040f76529bbf6d3310a71df2d37c9d95af83892 from main.
2022-12-12 13:09:53 +00:00
900454e9d9 emojichooser: Actually disable the recent section
The loop sets empty = FALSE when there are emojis but for that
to work we need to initialize the value to TRUE initially.

Fixes: 7928532bc5c33b2c6a10bae138ebc6dca1843cb0
(cherry picked from commit 89c816a614db4083e80862b631f4b3e44aa17eae)
2022-12-08 13:12:54 +01:00