| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
It is a programmer error to call this with a child widget that has not
been placed within the GtkTextView.
Fixes #3386
|
|
|
|
|
| |
GtkBindingSignal does not exist anymore, so link to
GtkSignalAction for an explanation of keybinding signals.
|
|
|
|
|
|
|
|
|
| |
Check the text handle role, instead of looking for the other handle
visibility. The other handle may be invisible during selection mode
(e.g. pointing to offscreen contents). This fixes both this code
switching to cursor mode out of the blue, and possible crashes later
on as this handle might be hidden in the process, while its own event
controller is handling events on the parent surface.
|
|
|
|
|
|
|
|
|
| |
The gtk_text_view_set_handle_position() function called some lines above
takes care of handle visibility already, also accounting for other
conditions (e.g. whether the handle points to contents onscreen).
Forcibly showing handles here misbehaves if the handle should stay hidden,
and somewhat expensively as it involves creating and throwing a native
surface every time.
|
|
|
|
|
|
|
|
|
| |
With the scrolledwindow drag gesture not claiming the sequence immediately,
we end up placing the cursor (and undoing the previous selection) each time
we scroll.
There is already handling too short drags in ::drag-end, so let this code
handle touchscreens as well.
|
|
|
|
|
|
| |
If the gesture becomes captured (e.g. from a parent scrolledwindow), we
leave some things in the air. Clean these up properly. This is recurrent
with touch scroll.
|
|
|
|
| |
redraw_rect does not exist.
|
| |
|
|
|
|
|
| |
We still want the drag gesture (and text selection) to work. Avoid claiming
the gesture early, like it's done in the pointer case.
|
|
|
|
|
| |
We were claiming the clicks too eagerly, preventing
clickable links, e.g. in GtkAboutDialog, from working.
|
|
|
|
|
|
|
| |
When we start a dnd of the selection in the drag-update handler,
set the gesture state to denied. Otherwise, we get more drag-update
signals, and things get really confused, leading to no dnd and
sadness.
|
|
|
|
|
|
|
|
| |
Make sure to grab focus back when the Emoji chooser
disappears. This prevents focus going nowhere when
the Emoji chooser is canceled.
Fixes: #3112
|
|
|
|
|
|
|
| |
If the selection extends beyond the visible range,
place the Emoji chooser over the center of the window.
Fixes: #3109
|
| |
|
|
|
|
|
|
| |
We document the supported style classes by name,
not by macro name, and these macros don't really
add any value. Drop them for GTK 4.
|
|\
| |
| |
| |
| |
| |
| | |
Scroll to cursor after canceling a selection
Closes #2960
See merge request GNOME/gtk!2321
|
| | |
|
| |
| |
| |
| | |
Fixes #3021
|
| |
| |
| |
| |
| | |
In many cases, these were references to no longer
existing api, so some rewording was necessary.
|
| |
| |
| |
| |
| |
| |
| | |
This is the expected behavior, and matches what
GtkText does.
Fixes: #2996
|
| |
| |
| |
| |
| |
| |
| | |
Don't claim the event unconditionally for the click gesture,
since we may want to start a drag selection.
Fixes: #2999
|
| |
| |
| |
| | |
Fixes #2974
|
|/
|
|
| |
Query the seat for that.
|
|
|
|
|
|
|
| |
Use the text-box accessible role for GtkTextView
and set properties as appropriate.
Update the documentation and add a test.
|
|
|
|
|
|
|
|
|
|
| |
Make GdkEvents hold a single GdkDevice. This device is closer to
the logical device conceptually, although it must be sufficient for
device checks (i.e. GdkInputSource), which makes it similar to the
physical devices.
Make the logical devices have a more accurate GdkInputSource where
needed, and conflate the event devices altogether.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To build a better world sometimes means having to tear the old one down.
-- Alexander Pierce, "Captain America: The Winter Soldier"
ATK served us well for nearly 20 years, but the world has changed, and
GTK has changed with it. Now ATK is mostly a hindrance towards improving
the accessibility stack:
- it maps to a very specific implementation, AT-SPI, which is Linux and
Unix specific
- it requires implementing the same functionality in three different
layers of the stack: AT-SPI, ATK, and GTK
- only GTK uses it; every other Linux and Unix toolkit and application
talks to AT-SPI directly, including assistive technologies
Sadly, we cannot incrementally port GTK to a new accessibility stack;
since ATK insulates us entirely from the underlying implementation, we
cannot replace it piecemeal. Instead, we're going to remove everything
and then incrementally build on a clean slate:
- add an "accessible" interface, implemented by GTK objects directly,
which describe the accessible role and state changes for every UI
element
- add an "assistive technology context" to proxy a native accessibility
API, and assign it to every widget
- implement the AT context depending on the platform
For more information, see: https://gitlab.gnome.org/GNOME/gtk/-/issues/2833
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Port all internal users of the action muxer
from the GActionGroup interface to the new
action muxer apis.
|
| |
|
|
|
|
|
| |
The function tries to go through every child, so it's convenient
to remove all internal ones first.
|
|
|
|
| |
No need to ship empty headers.
|
|
|
|
| |
Document missing symbols, and other cleanups.
|
|
|
|
|
|
| |
This was causing the warning "GtkEmojiChooser is not a child of
GtkTextView" when destroying a GtkTextView if the emoji chooser was
shown.
|
| |
|
|
|
|
|
|
| |
Change gtk_widget_translate_coordinates and
gtk_native_get_surface_transform to operate
on doubles. Update all callers.
|
|
|
|
|
| |
Take the surface transform into account for
positioning the context menu.
|
|
|
|
|
|
|
|
|
|
|
| |
If you run weston with the headless backend, you get a Wayland
display with no seat, which is just fine by the protocol.
gdk_display_get_default_seat() returns NULL in this case. Various
widgets assume that we always have a seat with a keyboard and a
pointer, since that is what X guarantees. Make things survive
without that, so we can run the testsuite under a headless
Wayland compositor.
|
|
|
|
| |
These are all on GtkBox or enumerating children.
|
|
|
|
| |
GtkContainer is going away.
|
|
|
|
|
| |
There were some leftover gtk_container_add calls here
on popovers on buttons, but these are no longer containers.
|
|
|
|
|
| |
Drop the GtkContainer vfuncs. As a replacement for
gtk_container_remove, make gtk_text_view_remove public.
|
|\
| |
| |
| |
| | |
docs: Fix several missing references in the documentation
See merge request GNOME/gtk!1874
|
| |
| |
| |
| | |
This fixes several typos and missing references
|
|/
|
|
|
| |
Replace all remaining uses of gtk_widget_destroy
by gtk_container_remove or g_object_unref.
|
|\
| |
| |
| |
| |
| |
| | |
Matthiasc/for master
Closes #2729 and #2730
See merge request GNOME/gtk!1870
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the presence of attached children, the css tree and the
widget tree are not in sync, so we need to explicitly set
the parent of the css node before inserting the widget, or
else we end up with critical warnings and a non-working
menu.
This can be seen in testtextview.
|
| |
| |
| |
| |
| | |
In many cases, the default widget vfuncs work just fine,
combined with setting focusable.
|