gtk4.git
3 years agoMerge branch 'cherry-pick-e8f70be2' into 'gtk-4-8'
Matthias Clasen [Thu, 15 Dec 2022 16:27:57 +0000 (16:27 +0000)]
Merge branch 'cherry-pick-e8f70be2' into 'gtk-4-8'

Merge branch 'wip/otte/for-5422' into 'main'

See merge request GNOME/gtk!5331

3 years agoMerge branch 'x11-fixes-backports-4-8' into 'gtk-4-8'
Matthias Clasen [Thu, 15 Dec 2022 00:25:25 +0000 (00:25 +0000)]
Merge branch 'x11-fixes-backports-4-8' into 'gtk-4-8'

Assorted x11 fix backports

See merge request GNOME/gtk!5333

3 years agoMerge branch 'update-ci-image-4-8' into 'gtk-4-8'
Matthias Clasen [Thu, 15 Dec 2022 00:24:54 +0000 (00:24 +0000)]
Merge branch 'update-ci-image-4-8' into 'gtk-4-8'

text: Prevent unexpected notify::direction emissions

See merge request GNOME/gtk!5334

3 years agoGetting desperate
Matthias Clasen [Wed, 14 Dec 2022 20:09:04 +0000 (15:09 -0500)]
Getting desperate

3 years agoci: Another fixup
Matthias Clasen [Wed, 14 Dec 2022 19:02:53 +0000 (14:02 -0500)]
ci: Another fixup

3 years agoci: Add /home/user/.local/bin to PATH
Matthias Clasen [Wed, 14 Dec 2022 18:12:55 +0000 (13:12 -0500)]
ci: Add /home/user/.local/bin to PATH

3 years agoInstall meson 0.64 in ci jobs
Matthias Clasen [Wed, 14 Dec 2022 17:42:58 +0000 (12:42 -0500)]
Install meson 0.64 in ci jobs

3 years agoci: Try to defeat the caching
Matthias Clasen [Wed, 14 Dec 2022 16:36:53 +0000 (11:36 -0500)]
ci: Try to defeat the caching

Drop subprojects/glib from the caching, since it
fails to update.

3 years agovulkan: Add missing enumeration
Emmanuele Bassi [Sat, 26 Nov 2022 14:56:10 +0000 (14:56 +0000)]
vulkan: Add missing enumeration

Check for VK_ERROR_COMPRESSION_EXHAUSTED_EXT.

3 years agoDon't emit ::notify from a getter
Matthias Clasen [Sun, 27 Nov 2022 02:53:33 +0000 (21:53 -0500)]
Don't emit ::notify from a getter

GdkX11Keymap ddetermines the direction of the
keymap on demand, and was emitting notify::direction

3 years agomountoperation: Add a mnemonic to a button
Matthias Clasen [Thu, 6 Oct 2022 00:14:09 +0000 (20:14 -0400)]
mountoperation: Add a mnemonic to a button

This is a good practice, even if this is a rarely
used dialog.

3 years agomountoperation: Don't use a treeview
Matthias Clasen [Wed, 5 Oct 2022 01:24:16 +0000 (21:24 -0400)]
mountoperation: Don't use a treeview

Port the process list from GtkTreeView
to GtkListView, and fix a number of broken
things along the way.

3 years agotestmountoperation: Test process dialog
Matthias Clasen [Wed, 5 Oct 2022 01:25:26 +0000 (21:25 -0400)]
testmountoperation: Test process dialog

Without this, it is hard to trigger the
dialog. Event with this, we have to force
GtkMountOperation to use its own dialog.

3 years agomountoperation: Survive on Wayland
Matthias Clasen [Wed, 5 Oct 2022 00:15:43 +0000 (20:15 -0400)]
mountoperation: Survive on Wayland

The code was assuming it is dealing with an
X11 display, and trigger assertions. Fix that
to make it work at least as well as it does
on Windows.

3 years agotext: Prevent unexpected notify::direction emissions
Matthias Clasen [Fri, 25 Nov 2022 12:59:35 +0000 (07:59 -0500)]
text: Prevent unexpected notify::direction emissions

Calling gdk_device_get_direction can trigger a
notify::direction emissions, since the X11 backend
determines the direction on demand. Prevent that by
forcing the direction to be determined ahead of time.

Fixes: #5311
3 years agogdk/x11: Clear all data in GdkSurfaceX11 finalization
Carlos Garnacho [Wed, 7 Dec 2022 12:16:36 +0000 (13:16 +0100)]
gdk/x11: Clear all data in GdkSurfaceX11 finalization

Currently, the GdkSurfaceX11 implementation relies that the upper
layers hid the surface before destruction, and that no
GdkSurfaceClass.compute_resize happened between them. If these
circumstances happened, there would be a compute_size timeout left
dangling after the surface got destroyed, poking at incorrect data
later on. Something that looks like this was reported in the
recent mutter-x11-frames "SSD frames server":

    mutter-x11-frames:423016): GLib-GObject-WARNING **: 19:41:16.869: invalid unclassed pointer in cast to 'GtkWindow'

    Thread 1 "mutter-x11-fram" received signal SIGTRAP, Trace/breakpoint trap.
    g_logv (log_domain=0x7ffff7f7c4f8 "GLib-GObject", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=<optimized out>) at ../../../glib/gmessages.c:1433
    1433 ../../../glib/gmessages.c: No such file or directory.
    (gdb) bt
    #0  g_logv (log_domain=0x7ffff7f7c4f8 "GLib-GObject", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=<optimized out>) at ../../../glib/gmessages.c:1433
    #1  0x00007ffff73470ff in g_log (log_domain=log_domain@entry=0x7ffff7f7c4f8 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0x7ffff7f84da8 "invalid unclassed pointer in cast to '%s'")
        at ../../../glib/gmessages.c:1471
    #2  0x00007ffff7f72892 in g_type_check_instance_cast (type_instance=type_instance@entry=0x5555558e04b0, iface_type=<optimized out>) at ../../../gobject/gtype.c:4144
    #3  0x00007ffff791e77d in toplevel_compute_size (toplevel=<optimized out>, size=0x7fffffffe170, widget=0x5555558e04b0) at ../../../gtk/gtkwindow.c:4227
    #4  0x00007ffff7f4f3b0 in g_closure_invoke (closure=0x555555898cc0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffdeb0, invocation_hint=invocation_hint@entry=0x7fffffffde30)
        at ../../../gobject/gclosure.c:832
    #5  0x00007ffff7f62076 in signal_emit_unlocked_R
        (node=node@entry=0x55555588feb0, detail=detail@entry=0, instance=instance@entry=0x55555560e990, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffdeb0)
        at ../../../gobject/gsignal.c:3796
    #6  0x00007ffff7f68bf5 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffe050) at ../../../gobject/gsignal.c:3549
    #7  0x00007ffff7f68dbf in <emit signal ??? on instance 0x55555560e990 [GdkX11Toplevel]> (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../../../gobject/gsignal.c:3606
    #8  0x00007ffff7a8de96 in gdk_toplevel_notify_compute_size (toplevel=<optimized out>, size=size@entry=0x7fffffffe170) at ../../../gdk/gdktoplevel.c:112
    #9  0x00007ffff7a4b15a in compute_toplevel_size (surface=surface@entry=0x55555560e990 [GdkX11Toplevel], update_geometry=update_geometry@entry=1, width=width@entry=0x7fffffffe220, height=height@entry=0x7fffffffe224)
        at ../../../gdk/x11/gdksurface-x11.c:281
    #10 0x00007ffff7a4c3b2 in compute_size_idle (user_data=0x55555560e990) at ../../../gdk/x11/gdksurface-x11.c:356
    #11 0x00007ffff733f67f in g_main_dispatch (context=0x55555563f6e0) at ../../../glib/gmain.c:3444
    #12 g_main_context_dispatch (context=context@entry=0x55555563f6e0) at ../../../glib/gmain.c:4162
    #13 0x00007ffff733fa38 in g_main_context_iterate (context=0x55555563f6e0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4238
    #14 0x00007ffff733fcef in g_main_loop_run (loop=loop@entry=0x5555560874a0) at ../../../glib/gmain.c:4438
    #15 0x0000555555557de0 in main (argc=<optimized out>, argv=<optimized out>) at ../src/frames/main.c:68

It perhaps makes sense to warn in these situations, but either way
it sounds like gdk_surface_x11_finalize() could enforce the correct
behavior by ensuring there is no dangling timeouts/data. This commit
does that.

3 years agoDon't emit ::notify from a getter
Matthias Clasen [Sun, 27 Nov 2022 02:53:33 +0000 (21:53 -0500)]
Don't emit ::notify from a getter

GdkX11Keymap ddetermines the direction of the
keymap on demand, and was emitting notify::direction

3 years agoUpdate Persian translation
Danial Behzadi [Wed, 14 Dec 2022 12:33:15 +0000 (12:33 +0000)]
Update Persian translation

3 years agomountoperation: Add a mnemonic to a button
Matthias Clasen [Thu, 6 Oct 2022 00:14:09 +0000 (20:14 -0400)]
mountoperation: Add a mnemonic to a button

This is a good practice, even if this is a rarely
used dialog.

3 years agomountoperation: Don't use a treeview
Matthias Clasen [Wed, 5 Oct 2022 01:24:16 +0000 (21:24 -0400)]
mountoperation: Don't use a treeview

Port the process list from GtkTreeView
to GtkListView, and fix a number of broken
things along the way.

3 years agotestmountoperation: Test process dialog
Matthias Clasen [Wed, 5 Oct 2022 01:25:26 +0000 (21:25 -0400)]
testmountoperation: Test process dialog

Without this, it is hard to trigger the
dialog. Event with this, we have to force
GtkMountOperation to use its own dialog.

3 years agomountoperation: Survive on Wayland
Matthias Clasen [Wed, 5 Oct 2022 00:15:43 +0000 (20:15 -0400)]
mountoperation: Survive on Wayland

The code was assuming it is dealing with an
X11 display, and trigger assertions. Fix that
to make it work at least as well as it does
on Windows.

3 years agoMerge branch 'wip/otte/for-5422' into 'main'
Corey Berla [Wed, 14 Dec 2022 01:56:04 +0000 (01:56 +0000)]
Merge branch 'wip/otte/for-5422' into 'main'

contentserializer: Serialize to file:// if possible

Closes #5422

See merge request GNOME/gtk!5330

(cherry picked from commit e8f70be2c1c0532666941db9049cdb7307633e13)

ea056d26 contentserializer: Serialize to file:// if possible

3 years agotext: Prevent unexpected notify::direction emissions
Matthias Clasen [Fri, 25 Nov 2022 12:59:35 +0000 (07:59 -0500)]
text: Prevent unexpected notify::direction emissions

Calling gdk_device_get_direction can trigger a
notify::direction emissions, since the X11 backend
determines the direction on demand. Prevent that by
forcing the direction to be determined ahead of time.

Fixes: #5311
3 years agoMerge branch 'wip/corey/cherrypick-from-main' into 'gtk-4-8'
Matthias Clasen [Fri, 9 Dec 2022 21:26:30 +0000 (21:26 +0000)]
Merge branch 'wip/corey/cherrypick-from-main' into 'gtk-4-8'

Cherrypick into 4.8

See merge request GNOME/gtk!5312

3 years agoAdd Interlingue translation
Olga Smirnova [Fri, 9 Dec 2022 20:36:05 +0000 (20:36 +0000)]
Add Interlingue translation

3 years agoatspicontext: Log more helpful warnings when the a11y bus doesn't exist
Corey Berla [Tue, 29 Nov 2022 00:34:12 +0000 (16:34 -0800)]
atspicontext: Log more helpful warnings when the a11y bus doesn't exist

3 years agoatspicontext: Cache empty atspi bus address
Corey Berla [Tue, 29 Nov 2022 00:32:52 +0000 (16:32 -0800)]
atspicontext: Cache empty atspi bus address

We are caching the bus address as data on the display object when it
exists, but fail to set the data when the bus address doesn't exist.
That causing excessive calls to GetAddress when the accesssbility
bus doesn't exist. Make sure to cache a non-existent accessibility
bus by setting the "" string.

3 years agoatspicontext: Log failure to connect to a11y
Corey Berla [Sun, 27 Nov 2022 22:12:36 +0000 (14:12 -0800)]
atspicontext: Log failure to connect to a11y

GTK depends on the a11y infrastructure to be in place unless GTK_A11Y is
set to none.  It appears that despite that, users attempt to
get around the a11y requirement without setting GTK_A11Y.
This can cause, amongst other issues, performance problems
with gtk applications.  Log failure to connect to the a11y
bus.

3 years agoUpdate Basque translation
Asier Sarasua Garmendia [Sat, 3 Dec 2022 09:45:52 +0000 (09:45 +0000)]
Update Basque translation

3 years agoMerge branch 'cherry-pick-a9c9678e' into 'gtk-4-8'
Benjamin Otte [Fri, 2 Dec 2022 17:10:38 +0000 (17:10 +0000)]
Merge branch 'cherry-pick-a9c9678e' into 'gtk-4-8'

Merge branch 'workaround-glx-issue' into 'main'

See merge request GNOME/gtk!5287

3 years agoMerge branch 'workaround-glx-issue' into 'main'
Benjamin Otte [Fri, 2 Dec 2022 15:32:22 +0000 (15:32 +0000)]
Merge branch 'workaround-glx-issue' into 'main'

GLX: Add extra glXMakeContextCurrent () call to work around a DRI issue

Closes #4499, #5387, and #5170

See merge request GNOME/gtk!5285

(cherry picked from commit a9c9678e1f617755368f16424a03ae1f2d2ced4e)

f788e994 GLX: Add extra glXMakeContextCurrent () call to work around a DRI issue

3 years agoUpdate Abkhazian translation
Nart Tlisha [Fri, 2 Dec 2022 10:13:21 +0000 (10:13 +0000)]
Update Abkhazian translation

3 years agoMerge branch 'wip/smcv/ci-4-8' into 'gtk-4-8'
Matthias Clasen [Fri, 25 Nov 2022 14:23:22 +0000 (14:23 +0000)]
Merge branch 'wip/smcv/ci-4-8' into 'gtk-4-8'

[4.8.x] subprojects: Pin GLib to version 2.74.x

See merge request GNOME/gtk!5252

3 years agosubprojects: Pin GLib to version 2.74.x
Simon McVittie [Thu, 24 Nov 2022 10:25:43 +0000 (10:25 +0000)]
subprojects: Pin GLib to version 2.74.x

GLib 2.74.x and GTK 4.8.x both correspond to the GNOME 43 cycle. Keeping
GLib on the 2.74.x branch avoids a CI regression when GLib git main
depends on a newer Meson version than the one GTK's CI installs, which
has happened in 2.75.x as a result of GNOME/glib!3077.

Signed-off-by: Simon McVittie <smcv@debian.org>
3 years agoMerge branch 'wip/carlosg/osk-activation-4-8' into 'gtk-4-8'
Carlos Garnacho [Fri, 18 Nov 2022 18:25:59 +0000 (18:25 +0000)]
Merge branch 'wip/carlosg/osk-activation-4-8' into 'gtk-4-8'

gtktext: Claim gesture more selectively [4.8]

See merge request GNOME/gtk!5233

3 years agogdksurface: Do not consider GDK_TOUCH_END/CANCEL as popup-dismiss worthy
Carlos Garnacho [Fri, 18 Nov 2022 14:02:22 +0000 (15:02 +0100)]
gdksurface: Do not consider GDK_TOUCH_END/CANCEL as popup-dismiss worthy

GDK_TOUCH_END deserves the same treatment than GDK_BUTTON_RELEASE, since it's
subject to the same circumstances (popping up a menu on long press would be
immediately dismissed on release if we handled them there). Ideally, we would
want to match releases that we obtained a press for while grabbed, but as
the popup is also dismissed on GDK_BUTTON_PRESS/GDK_TOUCH_BEGIN, there's no
use for this tracking.

And GDK_TOUCH_CANCEL sounds weird as a reason to dismiss popups, just like
crossing events would.

Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2512

(cherry-picked from commit 2ff4c77c5500110e2b387a8764ab19a92045ff4e)

3 years agogtktext: Claim gesture more selectively
Carlos Garnacho [Fri, 18 Nov 2022 12:57:02 +0000 (13:57 +0100)]
gtktext: Claim gesture more selectively

Even though button 1 (or touch down) presses do most often have
an effect in one way or another (starting drag, moving focus,
starting selection, ...), there is one situation that they do
immediately nothing: When clicking on the entry does not move
the text caret around. Dragging might start a selection, but
the entry did not do anything just yet, and an immediate
button/touch release should remain at "did nothing".

And that is precisely the hint that the Wayland IM context's click
gesture takes, clicks that do not scroll nor move the caret around,
having the GtkText not claim the gesture in that situation makes
the IM gesture able to do its thing without in-fighting.

This is typically not a problem when the GtkText is embedded in
another GtkEditable implementation (e.g. GtkEntry), since the
IM gesture is inactive and capturing from the parent widget, so
gets a pass that it otherwise doesn't get when both gestures are
in the same widget. This makes it work regardless of GtkText not
being a child of a composite widget, like NautilusQueryEditor
and AdwRowEntry.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5351
(cherry-picked from commit 09b982f0264e42bda3e8471bb25abec5ee742ecc)

3 years agoMerge branch 'cherry-pick-4.8' into 'gtk-4-8'
Matthias Clasen [Thu, 17 Nov 2022 03:49:51 +0000 (03:49 +0000)]
Merge branch 'cherry-pick-4.8' into 'gtk-4-8'

Cherry-pick changes from main for gtk-4-8

See merge request GNOME/gtk!5213

3 years agogdk/wayland: Use serial of the latest implicit grab available
Carlos Garnacho [Wed, 19 Oct 2022 10:46:09 +0000 (12:46 +0200)]
gdk/wayland: Use serial of the latest implicit grab available

When getting the serial for primary/clipboard selections we used a
function that largely relied on a GdkEvent being passed. We have
another available function that looks up the most recent serial
given the ongoing touch/tablet input as well.

This is the second best, compared to actually knowing the
input/device from the event that was received by the UI an triggered
the clipboard operation, and is already in use in other places
(e.g. window dragging). It is valid for these situations too.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5250
3 years agowayland: calculate union of geometry of all monitors for toplevel bounds
Colin Kinloch [Mon, 7 Nov 2022 11:08:18 +0000 (11:08 +0000)]
wayland: calculate union of geometry of all monitors for toplevel bounds

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
3 years agofocus: fall back to old behaviour if we didn't focus anything
Adam Williamson [Wed, 2 Nov 2022 00:26:29 +0000 (17:26 -0700)]
focus: fall back to old behaviour if we didn't focus anything

8455b9ac74 seems to have introduced a problem where we can wind
up focusing no widget at all if the `while (parent)` loop doesn't
find a widget it can successfully move the focus to. This 'fixes'
that by falling back to doing the previous thing if we make it
all the way through that loop without moving the focus. Thanks to
@coreyberla for a hint to improve the implementation.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
3 years agogdk/wayland: Fix button mask calculation on button events
Carlos Garnacho [Wed, 2 Nov 2022 16:11:10 +0000 (17:11 +0100)]
gdk/wayland: Fix button mask calculation on button events

There's 2 things broken here:
- The mask was calculated on top of the GDK button (i.e. skipping
  4-7 buttons), so GDK_BUTTON4_MASK and GDK_BUTTON5_MASK were not
  assigned. This is now calculated on the (continuous) BTN_ evcodes
  so it is guaranteed that the next 2 physical buttons (i.e.
  back/forward) get these two places in the mask assigned.
- Furthermore, these buttons would be pushed to places in the
  modifier mask that they didn't belong to. It is now checked hard
  that only the first 5 buttons enable a modifier flag.

Overall, this ensures that no event masks with bonkers values are
forwarded, and that no stale implicit grabs are left after additional
buttons are pressed.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5301
3 years agoMerge branch 'do-not-block-input-wm-mouse-activate-gtk-4-8' into 'gtk-4-8'
Luca Bacci [Thu, 10 Nov 2022 08:50:29 +0000 (08:50 +0000)]
Merge branch 'do-not-block-input-wm-mouse-activate-gtk-4-8' into 'gtk-4-8'

GdkWin32: do not block input in advance from WM_MOUSEACTIVATE

See merge request GNOME/gtk!5207

3 years agoGdkWin32: Do not use MA_NOACTIVATEANDEAT
Luca Bacci [Thu, 10 Nov 2022 08:22:02 +0000 (09:22 +0100)]
GdkWin32: Do not use MA_NOACTIVATEANDEAT

GTK knows when a surface is modally blocked and automatically drops
button press and release events, so do not block input in advance
from WM_MOUSEACTIVATE.

3 years agoUpdate Hungarian translation
Balázs Úr [Sat, 5 Nov 2022 22:22:32 +0000 (22:22 +0000)]
Update Hungarian translation

3 years agoUpdated Spanish translation
Daniel Mustieles [Wed, 2 Nov 2022 08:45:53 +0000 (09:45 +0100)]
Updated Spanish translation

3 years agoUpdate Turkish translation
Sabri Ünal [Wed, 2 Nov 2022 06:04:08 +0000 (06:04 +0000)]
Update Turkish translation

3 years agoUpdate Dutch translation
Nathan Follens [Tue, 1 Nov 2022 23:10:49 +0000 (23:10 +0000)]
Update Dutch translation

3 years agoUpdate Georgian translation
Zurab Kargareteli [Tue, 1 Nov 2022 19:57:41 +0000 (19:57 +0000)]
Update Georgian translation

3 years agoUpdate Abkhazian translation
Nart Tlisha [Mon, 31 Oct 2022 09:51:47 +0000 (09:51 +0000)]
Update Abkhazian translation

3 years agoMerge branch 'revert-9c919ffa462dd4511da0bfd19d36d2e15c51651b' into 'gtk-4-8'
Matthias Clasen [Wed, 26 Oct 2022 22:08:53 +0000 (22:08 +0000)]
Merge branch 'revert-9c919ffa462dd4511da0bfd19d36d2e15c51651b' into 'gtk-4-8'

[4.8] Revert "treepopover: Do not propagate natural width of content"

See merge request GNOME/gtk!5071

3 years agoRevert "treepopover: Do not propagate natural width of content"
Mat [Wed, 26 Oct 2022 10:51:23 +0000 (13:51 +0300)]
Revert "treepopover: Do not propagate natural width of content"

This reverts commit 9c919ffa462dd4511da0bfd19d36d2e15c51651b.

3 years agoMerge branch 'cherry-pick-c00a23eb' into 'gtk-4-8'
Matthias Clasen [Tue, 25 Oct 2022 03:14:23 +0000 (03:14 +0000)]
Merge branch 'cherry-pick-c00a23eb' into 'gtk-4-8'

wayland: Fix keycode->keyval mapping

See merge request GNOME/gtk!5167

3 years agoPost-release version bump
Matthias Clasen [Mon, 24 Oct 2022 18:04:36 +0000 (14:04 -0400)]
Post-release version bump

3 years ago4.8.2
Matthias Clasen [Mon, 24 Oct 2022 17:46:56 +0000 (13:46 -0400)]
4.8.2

3 years agoMerge branch 'fix-wayland-keycode-mapping' into 'main'
Matthias Clasen [Thu, 20 Oct 2022 19:15:38 +0000 (19:15 +0000)]
Merge branch 'fix-wayland-keycode-mapping' into 'main'

wayland: Fix keycode->keyval mapping

Closes #5277

See merge request GNOME/gtk!5147

(cherry picked from commit c00a23ebbc3695e36cb9e658760b02d2aa6fa7cf)

1894a896 wayland: Fix keycode->keyval mapping

3 years agoUpdate Serbian translation
Мирослав Николић [Sun, 23 Oct 2022 09:21:30 +0000 (09:21 +0000)]
Update Serbian translation

3 years agoMerge branch 'wip/antoniof/backport-list-focus' into 'gtk-4-8'
Matthias Clasen [Fri, 21 Oct 2022 17:34:35 +0000 (17:34 +0000)]
Merge branch 'wip/antoniof/backport-list-focus' into 'gtk-4-8'

Backport MR !5023 to 4.8

See merge request GNOME/gtk!5157

3 years agoMerge branch 'fix-focus-4-8' into 'gtk-4-8'
Matthias Clasen [Fri, 21 Oct 2022 17:33:13 +0000 (17:33 +0000)]
Merge branch 'fix-focus-4-8' into 'gtk-4-8'

[4.8] window: Fix focus updates

See merge request GNOME/gtk!5133

3 years agoeditablelabel: Defer changes on focus-out
Matthias Clasen [Tue, 18 Oct 2022 18:23:22 +0000 (14:23 -0400)]
editablelabel: Defer changes on focus-out

We can get spurious focus-out/-in pairs when
the editable label is in a popover that gets
a Wayland keyboard enter event as a result of
clicking the editable label.

A timeout isn't a great solution, but nothing
better is available right now.

Fixes: #4864
3 years agowindow: Keep a reference to move_focus_widget
Matthias Clasen [Tue, 18 Oct 2022 18:21:51 +0000 (14:21 -0400)]
window: Keep a reference to move_focus_widget

If we don't take a reference, it can happen that
the pointer is no longer valid by the time we
dereference it in after_paint.

3 years agocolumnview: Forward all focus to child
António Fernandes [Sat, 10 Sep 2022 22:43:57 +0000 (22:43 +0000)]
columnview: Forward all focus to child

For the same reasoning as the preceding commit.

Also don't make GtkColumnView focusable. Its internal list view
is already focusable, which is enough to take care of the empty
view case.

(cherry picked from commit 9cb8d21cb59d2aeedcc877c4121e9032b23a573d)

3 years agolistbase: Grab focus on items instead of container
António Fernandes [Thu, 15 Sep 2022 00:52:22 +0000 (01:52 +0100)]
listbase: Grab focus on items instead of container

The container view itself being focusable makes keyboard navigation
slower by adding a useless focus step.

It also means if an item gets removed, the focus jumps back to the view,
instead of jumping to the next item, as seen in nautilus bug report:
https://gitlab.gnome.org/GNOME/nautilus/-/issues/2489

Instead of making the GtkListBase container itself focusable, override
the .grab_focus() vfunc. This way, calling gtk_widget_grab_focus() on
the view container keeps working sucessfully, but focuses the focus
item directly instead.

This is particularly useful to have because applicaiton authors do
not have direct acess to this class's children, so they can't call
gtk_widget_grab_focus() on them directly.

(cherry picked from commit 4fc429892086e8bc1c9be94d5184e7eeff518f9c)

3 years agowindow: Don't focus invisible widgets
Matthias Clasen [Mon, 17 Oct 2022 19:10:51 +0000 (15:10 -0400)]
window: Don't focus invisible widgets

Only clear a queued move_focus if the widget
we are focusing is actually visible.

This was happening in some cases when popovers
are dismissed by clicking outside, and it was
causing us to miss proper focus updates that
were already queued.

3 years agowindow: Fix focus updates
Matthias Clasen [Mon, 17 Oct 2022 16:29:44 +0000 (12:29 -0400)]
window: Fix focus updates

This partially undoes changes from 3dbf5038fab8eb0.

That commit did two things:
1) Move the focus update to after-paint time
2) Change from grabbing focus to the visible parent
   to  calling move_focus (TAB)

The second part did have the unintended consequence
of moving focus laterally.

Fixes: #4903
3 years agoUpdate Indonesian translation
Kukuh Syafaat [Tue, 18 Oct 2022 02:47:51 +0000 (02:47 +0000)]
Update Indonesian translation

3 years agoMerge branch 'backport-mr-4986-to-gtk-4-8' into 'gtk-4-8'
Luca Bacci [Mon, 17 Oct 2022 20:40:44 +0000 (20:40 +0000)]
Merge branch 'backport-mr-4986-to-gtk-4-8' into 'gtk-4-8'

Use native Windows API for converting keystrokes to characters

See merge request GNOME/gtk!5130

3 years agoUse native Windows API for converting keystrokes to characters
Philip Zander [Wed, 24 Aug 2022 11:21:10 +0000 (13:21 +0200)]
Use native Windows API for converting keystrokes to characters

3 years agoUpdate Russian translation
Aleksandr Melman [Sun, 9 Oct 2022 13:24:27 +0000 (13:24 +0000)]
Update Russian translation

3 years agoUpdate Georgian translation
Zurab Kargareteli [Thu, 6 Oct 2022 21:21:24 +0000 (21:21 +0000)]
Update Georgian translation

3 years agoUpdate German translation
Jürgen Benvenuti [Thu, 6 Oct 2022 20:48:31 +0000 (20:48 +0000)]
Update German translation

3 years agoMerge branch 'wip/headless-infinite-bounds-4-8' into 'gtk-4-8'
Matthias Clasen [Thu, 6 Oct 2022 10:42:51 +0000 (10:42 +0000)]
Merge branch 'wip/headless-infinite-bounds-4-8' into 'gtk-4-8'

[4.8] Fix shrinking windows on suspend/resume

See merge request GNOME/gtk!5090

3 years agotoplevel-size: Report zero bounds as infinite
Jonas Ådahl [Fri, 30 Sep 2022 07:26:55 +0000 (09:26 +0200)]
toplevel-size: Report zero bounds as infinite

Empty/zero bounds are sent by the Wayland compositor if there are no
valid bounds to report, e.g. if there are no connected monitors. Report
this to GTK, which uses this to clamp calculated sizes, as INT_MAX, so
that clamping isn't done until there are actual valid bounds to clamp
to.

This fixes clients sometimes shrinking to their minimum size during
hotplugs or after having suspended the session.

(cherry picked from commit b3a3a6ceb19cdc00da0d201531cff93a059a86d3)

3 years agosurface/wayland: Handle no current monitor when calculating bounds
Jonas Ådahl [Fri, 30 Sep 2022 07:30:30 +0000 (09:30 +0200)]
surface/wayland: Handle no current monitor when calculating bounds

We shouldn't assume there is always a monitor to derive bounds from.
If there is no monitor, pass empty bounds, as this matches what
xdg_toplevel.configure_bounds do in this case.

(cherry picked from commit 148c1336745a043a9660da6c4734ed905c628130)

3 years agoUpdate Bulgarian translation
Alexander Shopov [Tue, 4 Oct 2022 18:07:20 +0000 (18:07 +0000)]
Update Bulgarian translation

3 years agoUpdate Catalan translation
Jordi Mas [Mon, 3 Oct 2022 18:07:15 +0000 (20:07 +0200)]
Update Catalan translation

3 years agoUpdate Friulian translation
Fabio Tomat [Mon, 3 Oct 2022 08:35:52 +0000 (08:35 +0000)]
Update Friulian translation

3 years agoUpdate Croatian translation
Goran Vidović [Sun, 2 Oct 2022 14:03:13 +0000 (14:03 +0000)]
Update Croatian translation

3 years agoUpdate Turkish translation
Emin Tufan Çetin [Sat, 1 Oct 2022 14:56:16 +0000 (14:56 +0000)]
Update Turkish translation

3 years agoPost-release version bump
Matthias Clasen [Wed, 28 Sep 2022 17:17:46 +0000 (13:17 -0400)]
Post-release version bump

This is an experiment to see if I can keep up with
doing post-release version bumps, so git snapshots
will always have a different version from released
tarballs.

3 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Wed, 28 Sep 2022 17:02:09 +0000 (17:02 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

Add more names to sources

See merge request GNOME/gtk!5064

3 years agoAdd more names to sources
Matthias Clasen [Wed, 28 Sep 2022 16:36:22 +0000 (12:36 -0400)]
Add more names to sources

This helps with identifying things in sysprof logs,
and while debugging.

3 years agoMerge branch 'post-install' into 'main'
Matthias Clasen [Wed, 28 Sep 2022 16:21:49 +0000 (16:21 +0000)]
Merge branch 'post-install' into 'main'

meson: Remove post-install script

See merge request GNOME/gtk!5063

3 years agomeson: Remove post-install script
Xavier Claessens [Wed, 28 Sep 2022 15:24:51 +0000 (11:24 -0400)]
meson: Remove post-install script

GTK depends on Meson >= 0.60 so it was never used.

3 years agoMerge branch 'wip/carlosg/shuffle-reset-take2' into 'main'
Matthias Clasen [Wed, 28 Sep 2022 01:39:49 +0000 (01:39 +0000)]
Merge branch 'wip/carlosg/shuffle-reset-take2' into 'main'

gtkimcontextwayland: Shuffle full resets after IM changes

Closes #5200

See merge request GNOME/gtk!5050

3 years agoMerge branch 'wroy-main-patch-32519' into 'main'
Matthias Clasen [Wed, 28 Sep 2022 01:39:15 +0000 (01:39 +0000)]
Merge branch 'wroy-main-patch-32519' into 'main'

Fix #5211: Preprocessor conformance with MSVC

Closes #5211

See merge request GNOME/gtk!5058

3 years agoMerge branch 'broadway-device-query-state-fix' into 'main'
Matthias Clasen [Wed, 28 Sep 2022 01:38:45 +0000 (01:38 +0000)]
Merge branch 'broadway-device-query-state-fix' into 'main'

GTK4 gdk/broadway: correct gdk_broadway_device_query_state() to return pointer coordinates relative to the upper left corner of surface

See merge request GNOME/gtk!5053

3 years agoMerge branch 'fix-scale-crashes' into 'main'
Matthias Clasen [Wed, 28 Sep 2022 01:22:49 +0000 (01:22 +0000)]
Merge branch 'fix-scale-crashes' into 'main'

scale: Fix a typo

See merge request GNOME/gtk!5061

3 years agoscale: Fix a typo
Matthias Clasen [Wed, 28 Sep 2022 01:03:56 +0000 (21:03 -0400)]
scale: Fix a typo

We want to update the label size request when
the adjustment changes, not when anything else
changes.

This may be the reason for crash reports like
https://retrace.fedoraproject.org/faf/problems/bthash/?bth=1e5cc1318358d5db298e5d6c2ec47361922cce74

3 years agoUpdated Lithuanian translation
Aurimas Černius [Tue, 27 Sep 2022 19:40:49 +0000 (22:40 +0300)]
Updated Lithuanian translation

3 years agoUpdate Portuguese translation
Hugo Carvalho [Tue, 27 Sep 2022 19:39:53 +0000 (19:39 +0000)]
Update Portuguese translation

3 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Tue, 27 Sep 2022 13:10:05 +0000 (13:10 +0000)]
Update Brazilian Portuguese translation

3 years agoApply 1 suggestion(s) to 1 file(s)
Matthias Clasen [Tue, 27 Sep 2022 11:31:55 +0000 (11:31 +0000)]
Apply 1 suggestion(s) to 1 file(s)

3 years agoUpdate Slovenian translation
Martin [Tue, 27 Sep 2022 08:03:24 +0000 (08:03 +0000)]
Update Slovenian translation

3 years agoUpdate Galician translation
Fran Dieguez [Tue, 27 Sep 2022 06:22:18 +0000 (06:22 +0000)]
Update Galician translation

3 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Tue, 27 Sep 2022 02:07:21 +0000 (02:07 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

drop target: Warn about broken signal handler returns

See merge request GNOME/gtk!5060

3 years agodrop target: Warn about broken signal handler returns
Benjamin Otte [Tue, 27 Sep 2022 01:44:41 +0000 (03:44 +0200)]
drop target: Warn about broken signal handler returns

Signal handlers ust return their preferred action and that one must be
unique.

Shout at them if they don't do that, before gdk_drop_status() does
tesame thing.

Related: gnome-build-meta#554
Related: gnome-builder#1799

3 years agoMerge branch 'left-right-typo' into 'main'
Emmanuele Bassi [Mon, 26 Sep 2022 22:23:29 +0000 (22:23 +0000)]
Merge branch 'left-right-typo' into 'main'

Fix GtkSettings docs typo

See merge request GNOME/gtk!5059

3 years agoFix GtkSettings docs typo
Mitchell Hentges [Mon, 26 Sep 2022 22:00:30 +0000 (00:00 +0200)]
Fix GtkSettings docs typo

"left of right" should be "left or right".
There's a small (subjective?) English nit in there as well: I believe
that buttons are placed (for example) "on the right" rather than "at the
right".