| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
GtkBindingSignal does not exist anymore, so link to
GtkSignalAction for an explanation of keybinding signals.
|
|
|
|
| |
GtkListBox and GtkFlowBox were missing this.
|
|
|
|
| |
... instead of just ordering the CSS nodes.
|
|
|
|
|
| |
Use the GRID and GRID_CELL roles for GtkFlowBox
and GtkFlowBoxChild.
|
|
|
|
|
|
|
|
|
| |
Set the SELECTED state to reflect whether the selected
is selected, unselected, or unselectable. This is
enough to make selection changes appear in Accerciser.
While we are at it, also set the multi-selectable
property for the flowbox itself.
|
|
|
|
|
|
| |
Replace most remaining uses of GTK+ in the docs and
user-visible strings by GTK. Also remove some leftover
"Was added in 3.x" sentences from the docs.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
It feels slightly wrong to have GtkOrientable operate on widgets, but at
least what happens when an orientable widget changes orientation should
be part of GtkWidget.
This will allow to add more state changes without accessing widget state
from the outside of gtkwidget.c.
|
|
|
|
|
|
| |
In gtk_flow_box_remove(), call g_sequence_remove() before the child is unparented.
See MR !2029
|
|
|
|
|
|
|
|
|
|
| |
The api contract for size_allocate() vfuncs is
that they must allocate all the children that are
going to be snapshotted in snapshot(). The flowbox
size_allocate() was just bailing out when the children
request a size of 0x0, leading to an assertion in
snapshot() vfunc later. Just allocate all children
a size of 0x0 in this case.
|
|
|
|
|
|
| |
When the children request a height of zero, the
flowbox measure() function was happily dividing
by that zero, leading to badness.
|
|
|
|
|
|
| |
This broke when the :focusable property was introduced.
The symptom was that keynav in the Emoji chooser did
not work anymore.
|
| |
|
|
|
|
| |
This is the replacement for gtk_container_remove.
|
|
|
|
|
| |
Replace all remaining uses of gtk_widget_destroy
by gtk_container_remove or g_object_unref.
|
|
|
|
|
| |
In many cases, the default widget vfuncs work just fine,
combined with setting focusable.
|
|
|
|
|
|
|
| |
We want to remove GtkBin and GtkContainer as they don't
provide much useful functionality anymore.
See #2681
|
|
|
|
|
|
|
|
| |
This was only living in gtkcontainer.c for historic
reasons. Move it closer to where it belongs, and
rename it from 'idle' to 'layout', since it is
really about the layout phase of the frame clock,
nowadays.
|
| |
|
|
|
|
|
|
|
|
| |
Without this, it seems impossible to make cross-section
keynav in the Emoji chooser work. I've tried, but got
lost between the focus, grab_focus, move_cursor and
keynav-failed vfuncs and signals, and their competing
implementations GtkFlowBox and GtkEmojiChooser.
|
|
|
|
|
| |
With the new meaning of can-focus, this doesn't make
sense anymore.
|
|
|
|
|
|
|
| |
This commit handles complicated cases where we selections.
We handle this by adding extend and modify parameters to
the ::move-cursor signals, and adjust the bindings
accordingly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewing the existing settings, the only backend with
some differences in the modifier intent settings is OS X,
and we would rather have that implemented by interpreting
the existing modifiers in the appropriate way.
X11 Wayland Win32 OS X
primary ctrl ctrl ctrl mod2
mnemonic alt alt alt alt
context menu - - - ctrl
extend sel shift shift shift shift
modify sel ctrl ctrl ctrl mod2
no text alt|ctrl alt|ctrl alt|ctrl mod2|ctrl
shift group varies - - alt
GTK now uses the following modifiers:
primary ctrl
mnemonic alt
extend sel shift
modify sel ctrl
no text alt|ctrl
The context menu and shift group intents were not used
in GTK at all.
Update tests to no longer expect <Primary> to roundtrip
through the accelerator parsing and formatting code.
|
|
|
|
|
| |
Stop using most keymap apis in GTK. Only a few calls
related to virtual modifiers are left.
|
|
|
|
| |
Signed-off-by: Philip Withnall <withnall@endlessm.com>
|
| |
|
|
|
|
|
| |
This reverts commit 3ac4c76b18cc89a841ce09f0943539f16988fd21, reversing
changes made to 6ec96d2e989d029a303b8b20ec72b86f974c0e87.
|
| |
|
|
|
|
|
| |
Events are refcounted structs, and we generally don't
pass these as const.
|
|
|
|
|
|
|
| |
... and replace all the calls to it with
gtk_style_context_peek_property().
All the calls are hacks that need to go away btw.
|
|
|
|
|
|
|
|
|
|
| |
The reason for this is simply that I want to get hash functions that
have their values close together, so they can fit in a smaller range
(the goal here is 12 bits). By using GQuark, we get consecutive numbers
starting with 1 (and applications have <1000 quarks usually), whereas
interned strings can be all over the place.
As a side effect we also save 64 bytes per declaration.
|
| |
|
|
|
|
|
| |
They were being applied to the callback function, not the data that is passed
to that function.
|
|
|
|
|
|
|
|
|
| |
We don't need to cover every case with a va_marshaller, but there are a
number of them that are useful because they will often only be connected
to by a single signal handler.
Generally speaking, if I opened into a file to add a va_marshaller, I just
set all of them.
|
|
|
|
|
|
|
|
|
|
| |
Similar to previous removals of g_cclosure_marshal_VOID__VOID we can remove
other marshallers for which are a simple G_TYPE_NONE with single parameter.
In those cases, GLib will setup both a c_marshaller and va_marshaller for
us. Before this commit, we would not get a va_marshaller because the
c_marshaller is set.
Related to GNOME/Initiatives#10
|
|
|
|
|
|
|
| |
If we set c_marshaller manually, then g_signal_newv() will not setup a
va_marshaller for us. However, if we provide c_marshaller as NULL, it will
setup both the c_marshaller (to g_cclosure_marshal_VOID__VOID) and
va_marshaller (to g_cclosure_marshal_VOID__VOIDv) for us.
|
|
|
|
|
| |
The name just made it hard for people to find the
right gesture to use.
|
|
|
|
| |
We keep GtkFlowBoxChild subclassable, though.
|
|
|
|
|
| |
These serve no purpose anymore - widgets don't
have surfaces, unless they're a GtkNative.
|
|
|
|
|
| |
Rename the can-pick property to can-target,
and redo the pick flags with more descriptive names.
|
|
|
|
|
|
|
| |
This will be used to let the inspector and other users
pick insensitive widgets again. For now, update all
callers to pass no flags, preserving the current
behavior.
|
|
|
|
| |
I overlooked one level of indirection here. Oops.
|