Commit Graph

73700 Commits

Author SHA1 Message Date
Emmanuele Bassi
cee282a282 vulkan: Add missing enumeration
Check for VK_ERROR_COMPRESSION_EXHAUSTED_EXT.
2022-12-14 12:48:32 -05:00
Matthias Clasen
19aa79d511 Don't emit ::notify from a getter
GdkX11Keymap ddetermines the direction of the
keymap on demand, and was emitting notify::direction
2022-12-14 11:28:19 -05:00
Matthias Clasen
55d8469fde mountoperation: Add a mnemonic to a button
This is a good practice, even if this is a rarely
used dialog.
2022-12-14 11:28:19 -05:00
Matthias Clasen
8d4a14e082 mountoperation: Don't use a treeview
Port the process list from GtkTreeView
to GtkListView, and fix a number of broken
things along the way.
2022-12-14 11:28:19 -05:00
Matthias Clasen
3ab28f8f8e 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.
2022-12-14 11:28:19 -05:00
Matthias Clasen
55dd442955 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.
2022-12-14 11:28:19 -05:00
Matthias Clasen
9f4baac5a2 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
2022-12-14 11:28:19 -05:00
Danial Behzadi
aabae92482 Update Persian translation 2022-12-14 12:33:15 +00:00
Matthias Clasen
c7185c65c9 Merge branch 'wip/corey/cherrypick-from-main' into 'gtk-4-8'
Cherrypick into 4.8

See merge request GNOME/gtk!5312
2022-12-09 21:26:30 +00:00
Olga Smirnova
d758ea2e5e Add Interlingue translation 2022-12-09 20:36:05 +00:00
Corey Berla
4a04cf610e atspicontext: Log more helpful warnings when the a11y bus doesn't exist 2022-12-09 08:09:28 -10:00
Corey Berla
9252b88c23 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.
2022-12-09 08:09:24 -10:00
Corey Berla
b2356dbe7b 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.
2022-12-09 08:09:05 -10:00
Asier Sarasua Garmendia
5186430d9d Update Basque translation 2022-12-03 09:45:52 +00:00
Benjamin Otte
272e354d57 Merge branch 'cherry-pick-a9c9678e' into 'gtk-4-8'
Merge branch 'workaround-glx-issue' into 'main'

See merge request GNOME/gtk!5287
2022-12-02 17:10:38 +00:00
Benjamin Otte
b17ccd13e6 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 a9c9678e1f)

f788e994 GLX: Add extra glXMakeContextCurrent () call to work around a DRI issue
2022-12-02 11:09:11 -05:00
Nart Tlisha
b061d413e4 Update Abkhazian translation 2022-12-02 10:13:21 +00:00
Matthias Clasen
3ec2526776 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
2022-11-25 14:23:22 +00:00
Simon McVittie
e50fbb6c86 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>
2022-11-24 10:25:43 +00:00
Carlos Garnacho
753c6f2435 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
2022-11-18 18:25:59 +00:00
Carlos Garnacho
cc5ba83eba 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)
2022-11-18 18:36:50 +01:00
Carlos Garnacho
3b940b12f6 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)
2022-11-18 18:36:32 +01:00
Matthias Clasen
205783d9b0 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
2022-11-17 03:49:51 +00:00
Carlos Garnacho
873c304a94 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
2022-11-12 04:14:47 +02:00
Colin Kinloch
e551a9d1c4 wayland: calculate union of geometry of all monitors for toplevel bounds
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
2022-11-12 03:38:13 +02:00
Adam Williamson
824ff01eee 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>
2022-11-12 03:37:52 +02:00
Carlos Garnacho
9b74027dea 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
2022-11-12 03:37:34 +02:00
Luca Bacci
5b98e171b2 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
2022-11-10 08:50:29 +00:00
Luca Bacci
f7d4a52ec3 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.
2022-11-10 09:29:24 +01:00
Balázs Úr
1e5b47c7ef Update Hungarian translation 2022-11-05 22:22:32 +00:00
Daniel Mustieles
953c2ec3ae Updated Spanish translation 2022-11-02 09:45:53 +01:00
Sabri Ünal
ff8aadba7b Update Turkish translation 2022-11-02 06:04:08 +00:00
Nathan Follens
381c056070 Update Dutch translation 2022-11-01 23:10:49 +00:00
Zurab Kargareteli
f70c3548e1 Update Georgian translation 2022-11-01 19:57:41 +00:00
Nart Tlisha
5863ddbfdd Update Abkhazian translation 2022-10-31 09:51:47 +00:00
Matthias Clasen
c1c1daba40 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
2022-10-26 22:08:53 +00:00
Mat
339b9eb1b9 Revert "treepopover: Do not propagate natural width of content"
This reverts commit 9c919ffa46.
2022-10-26 13:51:23 +03:00
Matthias Clasen
f569318d6f Merge branch 'cherry-pick-c00a23eb' into 'gtk-4-8'
wayland: Fix keycode->keyval mapping

See merge request GNOME/gtk!5167
2022-10-25 03:14:23 +00:00
Matthias Clasen
c5beeddff0 Post-release version bump 2022-10-24 14:04:36 -04:00
Matthias Clasen
81b8426360 4.8.2 2022-10-24 13:46:56 -04:00
Matthias Clasen
bb61b5fb5b 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 c00a23ebbc)

1894a896 wayland: Fix keycode->keyval mapping
2022-10-24 17:05:06 +00:00
Мирослав Николић
b760f57ae1 Update Serbian translation 2022-10-23 09:21:30 +00:00
Matthias Clasen
070926a4cc Merge branch 'wip/antoniof/backport-list-focus' into 'gtk-4-8'
Backport MR !5023 to 4.8

See merge request GNOME/gtk!5157
2022-10-21 17:34:35 +00:00
Matthias Clasen
7a183681b1 Merge branch 'fix-focus-4-8' into 'gtk-4-8'
[4.8] window: Fix focus updates

See merge request GNOME/gtk!5133
2022-10-21 17:33:13 +00:00
Matthias Clasen
14c7a001a6 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
2022-10-21 14:38:08 +03:00
Matthias Clasen
bcad03da6c 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.
2022-10-21 14:37:43 +03:00
António Fernandes
5d9576abb9 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 9cb8d21cb5)
2022-10-21 08:03:43 +00:00
António Fernandes
b86c91de1d 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 4fc4298920)
2022-10-21 08:03:14 +00:00
Matthias Clasen
a0d85f36ab 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.
2022-10-18 20:37:19 +03:00
Matthias Clasen
8455b9ac74 window: Fix focus updates
This partially undoes changes from 3dbf5038fa.

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
2022-10-18 20:37:05 +03:00