Commit Graph

52881 Commits

Author SHA1 Message Date
Matthias Clasen
b2ad8d2aba Dist gdk/wayland/cursor/meson.build
This file was missing from the 3.24.35 tarball.
Oops.
2022-11-23 06:24:40 -05:00
Matthias Clasen
14cf55f98d 3.24.35 3.24.35 2022-11-22 13:43:03 -05:00
Matthias Clasen
9bda1e9e13 Merge branch 'ebassi/app-default-flags' into 'gtk-3-24'
Do not use new G_APPLICATION_DEFAULT_FLAGS enum value

See merge request GNOME/gtk!5245
2022-11-22 18:41:17 +00:00
Emmanuele Bassi
46a43461c1 Do not use new G_APPLICATION_DEFAULT_FLAGS enum value
The merge request !5235 switched tests and examples from
G_APPLICATION_FLAGS_NONE, which has been deprecated in GLib 2.74, to
G_APPLICATION_DEFAULT_FLAGS. Sadly, it was done unconditionally, which
means we'd have to bump the required version of GLib.

To avoid that, let's just use the numeric value of the enum member.
2022-11-22 18:09:29 +00:00
Мирослав Николић
8d9d4434dc Update Serbian translation 2022-11-20 18:43:24 +00:00
Мирослав Николић
f6c649b143 Update Serbian translation 2022-11-20 14:31:19 +00:00
Christian Kirbach
9b9e989ea9 Update German translation 2022-11-20 10:35:54 +00:00
Matthias Clasen
9cdeff6a18 Merge branch 'replace-deprecations' into 'gtk-3-24'
examples, tests: Replace deprecations

See merge request GNOME/gtk!5235
2022-11-19 23:25:45 +00:00
Anders Jonsson
9ac36cea3c Update Swedish translation 2022-11-19 20:10:37 +00:00
Akbarkhon Variskhanov
b7a1941ab5 examples, tests: Replace deprecations
‘G_APPLICATION_FLAGS_NONE’ is deprecated: Use
'G_APPLICATION_DEFAULT_FLAGS' instead.
2022-11-19 23:23:50 +05:00
Simon McVittie
433b72fa21 Merge branch 'wip/smcv/3-24-autotools' into 'gtk-3-24'
[3.24] build: Define USE_XDG_ACTIVATION conditional when Wayland is disabled

See merge request GNOME/gtk!5226
2022-11-18 19:44:48 +00:00
Simon McVittie
20f2c13b2b build: Define USE_XDG_ACTIVATION conditional when Wayland is disabled
This fixes Autotools builds that disable Wayland, such as non-Linux
operating systems and the minimal "udeb" (micro-.deb) package used in
Debian's installer.

Signed-off-by: Simon McVittie <smcv@debian.org>
2022-11-18 11:49:49 +00:00
Matthias Clasen
f8d26e2acc Merge branch 'libwayland-cursor-in-tree-gtk-3-24' into 'gtk-3-24'
Make wayland load cursors on demand

See merge request GNOME/gtk!5192
2022-11-18 03:55:52 +00:00
Emin Tufan Çetin
c930d8361b Update Turkish translation 2022-11-15 18:29:44 +00:00
Emin Tufan Çetin
bfddd4795b Update Turkish translation 2022-11-15 18:22:43 +00:00
Michael Catanzaro
2fcc114870 Merge branch 'gtk-3-gles' into 'gtk-3-24'
gdk_wayland_display_init_gl: use GLES API if required

See merge request GNOME/gtk!5062
2022-11-10 13:44:34 +00:00
Luca Bacci
66a199806c Make wayland load cursors on demand
Add and use a modified libwayland-cursor in-tree,
just as done in the main branch for GTK4
2022-11-04 15:16:06 +01:00
Luca Bacci
4432a03742 Revert "wayland/cursor: Sanity check cursor image size"
This reverts commit da4066774b.
2022-11-04 10:58:37 +01:00
Kjartan Maraas
d3c39fb438 Update Norwegian Bokmål translation 2022-11-04 07:49:02 +00:00
Kukuh Syafaat
56eaeff89d Update Indonesian translation 2022-11-03 03:47:01 +00:00
Nathan Follens
230718c326 Update Dutch translation 2022-11-01 23:08:40 +00:00
Aleksandr Melman
d0f49d9f9d Update Russian translation 2022-10-31 12:28:26 +00:00
Nart Tlisha
13cdfb7476 Update Abkhazian translation 2022-10-31 09:48:33 +00:00
Piotr Drąg
e6ce24125c Update Polish translation 2022-10-30 12:37:05 +01:00
Balázs Úr
ae42ed0a18 Update Hungarian translation 2022-10-30 00:00:03 +00:00
Hugo Carvalho
2d76cd4b2b Update Portuguese translation 2022-10-29 15:46:12 +00:00
Yuri Chornoivan
bd736aed8c Update Ukrainian translation 2022-10-29 05:46:25 +00:00
Martin
89ea9ba600 Update Slovenian translation 2022-10-28 06:33:43 +00:00
Matthias Clasen
b009366e21 Merge branch 'keypad-accels' into 'gtk-3-24'
Differentiate keypad keysyms in accelerators

See merge request GNOME/gtk!5176
2022-10-28 04:02:48 +00:00
Matthias Clasen
6cc0552ab8 Differentiate keypad keysyms in accelerators
When displaying accelerators, differentiate keypad
symbols with a 'KP' prefix. Fixing a 17 year old bug.

Backport of c58d9446f4.
2022-10-27 14:57:01 -04:00
Matthias Clasen
2703e420ae Merge branch 'wip/carlosg/xdg-activation-3-24' into 'gtk-3-24'
gdk/wayland: Support the xdg-activation wayland protocol (3.24)

See merge request GNOME/gtk!3489
2022-10-26 22:15:11 +00:00
Jonas Ådahl
0b4b9f6136 Merge branch 'tooltips-x11-scale-cursor-size' into 'gtk-3-24'
GtkTooltip: Scale the cursor size on X11

See merge request GNOME/gtk!5173
2022-10-26 15:41:23 +00:00
Luca Bacci
bbce00f3a3 GtkTooltip: Scale the cursor size on X11
GtkSettings/X11 takes the values as provided by
XSettings. Unlike other backends, the values of
XSettings are in physical size (that's because
X11 doesn't support mixed-DPI setups anyway).

Take that in account when retrieving the cursor
size in gtk_tooltip_position ().

Note that this discrepancy between the X11 and
other backends has been fixed in GTK4.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5223
2022-10-26 15:21:38 +02:00
Joan Bruguera
22c95cd1e9 gdk/wayland: Enable xdg-activation only if wayland-protocols >= 1.21
This way we can keep the same wayland-protocols requirement, so the latest GTK3
still builds on distributions shipping older versions of wayland-protocols,
such as Debian Bullseye.

Should fix CI builds as well.
2022-10-25 23:52:47 +02:00
Carlos Garnacho
3b25f9a662 gdk/wayland: Check the GdkSurface wl_surface before using it for activation
Double check the GdkSurface has a wl_surface before using it as the activation
token source, since we cannot use NULL surfaces here.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1862
Backport-of: 4b41d4f78c
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:54:05 +02:00
Carlos Garnacho
7fa87abf8a gdk/wayland: Dispatch GdkAppLaunchContext activation token in its own queue
Use a separate queue to dispatch the token object exclusively, just like we
do on the GdkSurface activation paths.

Backport-of: fb68600d88
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:53:57 +02:00
Carlos Garnacho
45f0b5d052 wayland: Use xdg-activation for non-startup initiated focus requests
Currently, we have all the plumbing in place so that GTK consumes the
startup notification ID when focusing a window through the xdg-activation
protocol.

This however misses the case that a window might be requested to be
focused with no startup ID (i.e. via interaction with the application,
not through GApplication or other application launching logic).

In this case, we let the application create a token that will be
consumed by itself. The serial used is that from the last
interaction, so the compositor will still be able to do focus prevention
logic if it applies.

Since we already do have a last serial at hand, prefer xdg-activation
all the way over the now stale gtk-shell focusing support. The timestamp
argument becomes unused, but that is a weak argument to prefer the
private protocol over the standard one. The gtk-shell protocol support
is so far left for interaction with older Mutter.

Backport-of: 4dcacff312
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:53:49 +02:00
Guido Günther
e80251e751 wayland: Keep startup_notification_id around long enough
When using xdg_activation we need to keep the id around until we send
the first activate to signal succesful startup.

Backport-of: 999509be61
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:53:36 +02:00
Guido Günther
54348c5270 wayland: xdg-activation: Don't assume there's a focus surface
Tools like gtk4-launch can't set surface on the activation token so
don't require it. If the compositor requires it we can't do anything
about it anyway. This avoids a critical:

   (gtk4-launch:23497): Gdk-CRITICAL **: 17:07:24.704: gdk_wayland_surface_get_wl_surface: assertion 'GDK_IS_WAYLAND_SURFACE (surface)' failed

Fixes: be4216e051 ("gdk/wayland: Support the xdg-activation wayland protocol")

Signed-off-by: Guido Günther <agx@sigxcpu.org>
Backport-of: 4d741bac98
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:53:26 +02:00
Carlos Garnacho
a79d6972e0 gdk/wayland: Support the xdg-activation wayland protocol
This protocol implements the IPC necessary to focus application
windows across launcher/launchee. Add support for it.
2022-10-25 15:50:02 +02:00
Matthias Clasen
84a3ea5ec4 Merge branch 'gtk-cursor-wayland-hotspot' into 'gtk-3-24'
[gtk3] [wayland] Fix hotspot positioning with scaled surface.

See merge request GNOME/gtk!5159
2022-10-21 17:29:31 +00:00
Emilio Cobos Álvarez
686864a118 [gtk3] [wayland] Fix hotspot positioning with scaled surface.
Fixes !5278 to behave the same way as X11.
2022-10-21 14:22:51 +02:00
Alexander Shopov
95cb7d04c7 Update Bulgarian translation 2022-10-07 09:08:40 +00:00
Carlos Garnacho
108343b037 Merge branch 'wl-ime-lockscreen-fixes' into 'gtk-3-24'
gtk3: Backport of !4962. !5050, !5012: gtkimcontextwayland: Refactor handling of client updates

See merge request GNOME/gtk!5091
2022-10-06 10:57:35 +00:00
Carlos Garnacho
92813e52cd gtkimcontextwayland: Shuffle full resets after IM changes
Doing reset() on the text widgets after commit and delete_surrounding
is still too eager for some IMs (e.g. those that expect being able
to commit text while keeping a preedit buffer shown).

However, reset() is more of a "synchronize state" action on Wayland,
and it is still desirable to do that after changes that do come from
the IM (e.g. requesting the new surrounding text and cursor/anchor
positions). Notably here, the text_input protocol may still come up
with a preedit string after this state synchronization happens.

Shuffle the code so that the text widgets do not reset() the IM
context after text is deleted or committed, but the Wayland IM does
apply its practical effects after these actions happen. This keeps
the Wayland IM fully up-to-date wrt text widget state, while not
altering the ::commit and ::delete-surrounding-text behavior for
other IM context implementations.
2022-10-06 17:40:38 +07:00
Carlos Garnacho
a88e848306 gtktextview: Also reset IM context after IM surrounding text deletion
When the IM commands the GtkText to delete text, the cursor position
would change, and so would the surrounding text. Reset the IM context
so that these updates are properly picked up by the IM.

Fixes backspace	key behavior in	the GNOME Shell OSK, since that	relies
on the surrounding text	being properly updated for the next iteration.
2022-10-06 17:29:50 +07:00
Carlos Garnacho
018083fab7 gtkentry: Also reset IM context after IM surrounding text deletion
When the IM commands the GtkText to delete text, the cursor position
would change, and so would the surrounding text. Reset the IM context
so that these updates are properly picked up by the IM.

Fixes backspace key behavior in the GNOME Shell OSK, since that relies
on the surrounding text being properly updated for the next iteration.
2022-10-06 17:29:50 +07:00
Carlos Garnacho
fa6aca2925 gtkentry: Avoid early IM reset on updates
Resetting the IM on IM updates is too eager and indeed the simple
IM context doesn't like that this happens in the middle of dead
key handling.

We however want to reset the IM after actual text buffer changes
(say, a committed string) moved the cursor position, altered the
surrounding text, etc. So that the IM implementation does know to
update its state.

Since there is going to be an actual IM reset anyways, it does
no longer make sense to try to preserve the old priv->need_im_reset
status during commit handling.
2022-10-06 17:29:50 +07:00
Carlos Garnacho
7b1f9a3b08 gtkentry: Avoid early IM reset on updates
Resetting the IM on IM updates is too eager and indeed the simple
IM context doesn't like that this happens in the middle of dead
key handling.

We however want to reset the IM after actual text buffer changes
(say, a committed string) moved the cursor position, altered the
surrounding text, etc. So that the IM implementation does know to
update its state.
2022-10-06 17:29:36 +07:00
Carlos Garnacho
b0c4196f98 gtkentry: Shuffle the places doing IM reset
During entry widget manipulation (inserting or deleting text via keyboard)
the IM context is reset somewhat early, before the actual change took place.
This makes IM lag behind in terms of surrounding text and cursor position.

Shuffle these IM reset calls so that they happen after the changes, and
ensure that the IM is actually reset, since that is currently toggled on
a pretty narrow set of circumstances.
2022-10-06 17:28:25 +07:00