| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| | |
Fixes #4722
|
|/ |
|
|\
| |
| |
| |
| | |
gdkclipboard-win32.c: Fix call to gdk_clipboard_claim_remote() (backport MR !4604 to gtk-4-6)
See merge request GNOME/gtk!4608
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The call to gdk_win32_clipboard_request_contentformats() can return NULL even
without an error condition being hit (such as when the system clipboard is
empty), so check whether the returned GdkContentFormat pointer is not NULL
before calling gdk_clipboard_claim_remote(), which expects it to be not NULL,
otherwise we face a warning from that funtion and the subsequent
g_object_unref().
This at least partially fixes issue #4796.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
macos: Fix problem that window cannot be minimized by user operation
Closes #4811
See merge request GNOME/gtk!4613
(cherry picked from commit d75147db0acd7723732790155fd3a63688193c63)
d3cf7088 macos: Skip running `showAndMakeKey` when a window is minimized by user action
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
macos: prohibit fullscreen transition if in transtion
This prevents performing additional fullscreen transitions while
a transition is already in progress.
Closes #4808
See merge request GNOME/gtk!4612
(cherry picked from commit 15b7a4572b3a06aefed75bb7989c711763af65f7)
69a0a5cf macos: Prohibit changing the full-screen state of a window during a full-screen transition
229e4b58 macos: Corrected code style
|
| | |
|
|/ |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
overlaylayout: Set position style class on child
See merge request GNOME/gtk!4598
|
|/
|
|
|
|
|
|
|
|
|
|
| |
As documented:
> Overlay children whose alignments cause them to be positioned
> at an edge get the style classes “.left”, “.right”, “.top”,
> and/or “.bottom” according to their position.
Likely accidental regression in b7ee2cbc289b4ab8a950cd77bdcd69a6f13932a7
Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/2099
(cherry picked from commit 351ffef70481c109f151b6fef84060c4e4847b43)
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
meson: use proper handling of wayland-protocols dependency
See merge request GNOME/gtk!4580
|
| |
| |
| |
| |
| | |
To avoid random failures if one of the projects starts
depending on new things or has incompatible changes.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Ensure that resolution of the subproject occurs via the dependency
interface, not the "poke at subprojects manually" interface, and make
that actually work via --wrap-mode=forcefallback.
There's no need to mark it as not-required and then manually invoke
subproject(), since fallback should work correctly and it is always
needed.
However, if fallback was performed (or forced) it would error out since
get_variable() was instructed to only use pkg-config while the relevant
variable was exported by the subproject as an internal fallback
dependency.
|
|/
|
|
|
| |
A bug in GtkFileFilter's GtkBuildable implementation caused the
<suffixes> tag not to be recognized.
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
Backport fixes to 4.6
See merge request GNOME/gtk!4577
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Following the text-input protocol changes at
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/115,
use the serial number to have the client push changes to the
zwp_text_input_v3 object only after compositor/client states match.
This specifically is more lenient to compositors pushing multiple
.done events ahead of the client replying to them.
Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/3641
|
| |
| |
| |
| |
| |
| |
| |
| | |
We were missing the surface offset (e.g. shadows) at the time of expressing
the text caret location in surface coordinates. Add this offset so the
coordinates are as expected by the compositor.
Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4668
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
This lets xdg-activation work as otherwise gdk_wayland_surface_focus is
never invoked.
|
| |
| |
| |
| |
| | |
This lets xdg-activation work as otherwise gdk_wayland_surface_focus is
never invoked.
|
| |
| |
| |
| |
| | |
This lets xdg-activation work as otherwise gdk_wayland_surface_focus is
never invoked.
|
| |
| |
| |
| |
| | |
When using xdg_activation we need to keep the id around until we send
the first activate to signal succesful startup.
|
| |
| |
| |
| |
| | |
When using xdg_activation this is responsible for submitting
the activation token / startup id to the compositor.
|
|\ \
| |/
|/|
| |
| | |
backport macOS fixes to gtk-4-6
See merge request GNOME/gtk!4578
|
| |
| |
| |
| |
| | |
This probably only matters if you do window list integration for the global
menu on macOS.
|
| | |
|
| |
| |
| |
| | |
Or we risk making it really difficult to use native file choosers.
|
| |
| |
| |
| |
| | |
This comment isn't really accurate anymore it seems, so we can start
setting the proper stacking order for popups now.
|
| |
| |
| |
| |
| |
| |
| | |
We had code to do it and it never actually got used correctly. This ensures
that the popup services are attached to the parents so that they get proper
stacking orders when displayed. Additionally, it fixes popups from being
shown as their own windows in Exposé.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we are clicking through the shadow of a window, we need to take special
care to not raise the old window on mouseUp. This is normally done by the
display server for us, so we need to use the proper API that is public to
handle this (rather than CGSSetWindowTags()). Doing so requires us to
dispatch the event to the NSView and then cancel the activcation from
the mouseDown: event there.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we closed a key window in response to events, we need to denote another
window as the new key window. This is easiest to do from an idle so that
we don't clobber notification pairs of "did resign"/"did become" key
window.
We have a sorted set of surfaces by display server stacking, so we can
take the first one we come across that is already mapped and re-show it
to become key/main.
|
| |
| |
| |
| |
| |
| |
| | |
If we have server-side decorations we might need to request a layout in
response to the resize notification. We don't need to do this in other
cases because we already handle that in the process of doing the resize
(and that code is that way because of delayed delivery of NSNotification).
|
| |
| |
| |
| |
| |
| | |
If we are using NSWindow titled windows, we don't end up waking up the
frame clock when the window is resized on the display server. This ensures
that we do that after getting a notification of resize.
|
| |
| |
| |
| |
| | |
If we are showing the window, we might also want to make it the main
window for the application when shown.
|
| |
| |
| |
| | |
This only handled the popover case before and not the transient-for case.
|
| |
| |
| |
| |
| | |
These would get passed along to the NSApplication which we don't really
need to have happen. Denote it as such.
|
| |
| |
| |
| |
| | |
Rather than process these a single event at a time, queue all of the
outstanding events from the NSEvent queue.
|
| |
| |
| |
| |
| | |
If we are in a manual resize/drag then we don't want to generate crossing
events as they can just confuse things.
|
| |
| |
| |
| |
| |
| |
| |
| | |
There are cases we might want to consume a NSEvent without creating a
GdkEvent or passing it along to the NSApplication for processing. This
creates a new value we can use and check against to propagate that without
having to do out parameters at the slightly odd invalid pointer value for
a GdkEvent (similar to how MMAP_FAILED is done).
|
| |
| |
| |
| |
| |
| |
| | |
This can get in the way of how we track changes while events are actively
processing. Instead, we may want to delay this until the next main loop
idle and then check to see if we have a main window as the NSNotification
may have come in right after this.
|