Commit Graph

36582 Commits

Author SHA1 Message Date
Matthias Clasen
af155838bd fontchooser: Fix radio groups for features
We need to use grouped checkbuttons now.
2020-08-30 17:59:23 -04:00
Timm Bäder
1375fb4464 Change button hierarchy
A radiobutton without indicator is really just a togglebutton with a
group.

A radiobutton with indicator is really just a checkbutton with a group.

Make checkbutton its own widget not inheriting from GtkButton.
GtkRadioButton could be removed but it stays for now.

Radiobutton && !draw-indicator => Togglebutton
Checkbutton && !draw-indicator => Togglebutton

Radiobutton && draw-indicator => CheckButton + group
2020-08-29 16:46:28 +02:00
Timm Bäder
0fd8a287fc spinbutton: Whitespace 2020-08-29 11:11:29 +02:00
Timm Bäder
1d6ac9b47b button: Use gtk_widget_class_add_shortcut directly
To show how that works
2020-08-29 11:11:29 +02:00
Timm Bäder
acbb59bfae button: Whitespace 2020-08-29 11:11:29 +02:00
Matthias Clasen
5b5d2665d3 idle sizer: Request a motion event after layout
When we are reallocating widgets, make sure that
we get a motion event in the next frame cycle,
so the hover state gets updated.
2020-08-27 16:01:45 -04:00
Matthias Clasen
e4215ec4c7 bookmarksmanager: Cancel async reads properly
This was causing the objects-finalize test to fail in ci.
2020-08-27 12:36:36 -04:00
Matthias Clasen
b6eb85ee72 main: Avoid a crash with crossing event handling
We are reusing the GtkCrossingData struct for multiple
calls here, so we need to make sure that the targets
stay alive from beginning to end.

Fixes: #3090
2020-08-26 07:27:38 -04:00
Matthias Clasen
44741e1b77 widget: Avoid a crash in crossing event handling
We need to make sure that the crossing data stays
alive until we are done handling it, so take references
on all the widgets in it.
2020-08-26 07:26:49 -04:00
Matthias Clasen
f48a1e4069 Merge branch 'matthiasc/for-master' into 'master'
fontchooser: Populate the list incrementally

See merge request GNOME/gtk!2483
2020-08-25 20:53:02 +00:00
Emmanuele Bassi
c21b9bec95 Merge branch 'ebassi/for-master' into 'master'
Ebassi/for master

See merge request GNOME/gtk!2480
2020-08-25 20:34:18 +00:00
Matthias Clasen
8e452b2b54 Merge branch 'inspector-double-border-fixes' into 'master'
inspector: Avoid double borders

See merge request GNOME/gtk!2477
2020-08-25 20:18:47 +00:00
Matthias Clasen
740559a54f fontchooser: Populate the list incrementally
By adding 20 fonts / frame to the font list, we can
get the font chooser dialog to show up much faster.

This change gets the font chooser up in 265ms here.
2020-08-25 15:51:04 -04:00
Matthias Clasen
612d2ea1f0 Revert unintentional calendar change
This was unintentionally included in c0efadc0f3.
2020-08-25 14:12:35 -04:00
Emmanuele Bassi
d58136e23d a11y: Simplify the ATContext::state-change signal
We cannot pass all the data we pass to the virtual function, because the
types are private, but the class and the signal are public API.

The signal is just a notification, so we can decouple the virtual
function (which stays the same, for internal types that implement the
ATContext API contract) from the signal.
2020-08-25 16:36:08 +01:00
Emmanuele Bassi
256c9c9873 Annotate GValue-variants methods of GtkAccessible
The variadic arguments methods cannot be used by language bindings,
which means we can let them use their names when calling the
GValue-based methods.
2020-08-25 16:36:08 +01:00
Emmanuele Bassi
fd568e63c2 Properly document GtkAccessible:accessible-role
Use a gtk-doc stanza, instead of the GParamSpec strings.
2020-08-25 16:36:08 +01:00
Emmanuele Bassi
797b3bd1b1 a11y: Do not notify of empty state changes
If the ATContext state hasn't changed—for instance, if the accessible
attributes have been set to their default value, or have been set to the
same value—do not emit an accessible state change. State changes can be
arbitrarily expensive, so we want to ensure that they are meaningful.
2020-08-25 16:36:08 +01:00
Emmanuele Bassi
32a1cd13c8 a11y: Notify callers when an attributes set changes
We can use that information inside the ATContext.
2020-08-25 16:36:08 +01:00
Emmanuele Bassi
1338dcddcb a11y: GtkATContext.update_state() was renamed to update() 2020-08-25 16:36:08 +01:00
Emmanuele Bassi
911a71c705 a11y: Allow bulk attribute update with the GValue API
Like we do for the varargs API.
2020-08-25 16:36:08 +01:00
Emmanuele Bassi
701a0dabd0 a11y: Different value types cannot be equal
Bail out early, instead of going deep into the GtkAccessibleValue type
equal() implementation, where we expect both accessible values to have
the same type.
2020-08-25 16:36:08 +01:00
nana-4
b79797ea97 inspector: Avoid double borders in the resource tab
Replace the frames with a separator.
2020-08-25 21:20:57 +09:00
nana-4
5bfc95321e inspector: Avoid double borders in the accessibility tab
Replace the frame with a separator.
2020-08-25 21:20:57 +09:00
nana-4
c0efadc0f3 Adwaita: Make frames rounded
As per GNOME mockups.

Since GtkFrame now sets GTK_OVERFLOW_HIDDEN, we can round the frame
without corner overlapping.

This also adds some margin to the child label of GtkFrame to ensure it
will not be clipped by the rounded corners of the frame.
2020-08-25 21:12:35 +09:00
nana-4
ef837f0415 Adwaita: Remove a shadow-type leftover
After commit edae2a8dc5, frames always
draw frames. So, remove the unused frame.flat styling.
2020-08-25 21:12:35 +09:00
Matthias Clasen
43ec96684a text: Properly handle focus moving to a descendent
To discriminate between is-focus and contains-focus,
we need to use notify::is-focus. This makes sure
we don't get annoying warnings when the blink_cb
gets triggered on an unfocused entry.

Fixes: #2979
2020-08-24 18:31:35 -04:00
Matthias Clasen
66e0f8505e emojichooser: Grab focus on map
This is the right thing to do, since we have a visible
entry and want text input to go there.
2020-08-24 18:31:08 -04:00
Matthias Clasen
fd7d61887c colorchooser: Fix the add_palette api
When adding a custom palette, we need to arrange
for the custom section to stay at the bottom.

Maybe there should be a way to turn off custom
colors, too.
2020-08-24 17:20:17 -04:00
Matthias Clasen
7ff326e700 Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master

Closes #3081

See merge request GNOME/gtk!2472
2020-08-24 16:43:39 +00:00
Matthias Clasen
d27f9abbca Merge branch 'unmapped-text' into 'master'
Unmapped text

See merge request GNOME/gtk!2466
2020-08-24 15:52:08 +00:00
Matthias Clasen
2ac51ad827 centerlayout: Some spacing-related fixes
Try to arrange for border-spacing to actually be
respected in the final layout.

Fixes: #3081
2020-08-24 11:34:30 -04:00
Matthias Clasen
2e72b663b0 Merge branch 'wip/carlosg/start-spinbutton-start' into 'master'
gtkspinbutton: Group up/down button gestures with self

Closes #3085

See merge request GNOME/gtk!2471
2020-08-24 13:31:06 +00:00
Carlos Garnacho
e61f516a7c gtkspinbutton: Group up/down button gestures with self
We are adding click gestures on the up/down buttons, but can't let
the GtkButton built-in ones prevent ours to run.

As the saying goes, if you can't beat them, join them. Group the
spinbutton and GtkButton gestures together, so it's irrelevant which
gets called first and ends up winning.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/3085
2020-08-24 14:55:47 +02:00
Matthias Clasen
6043ed8c89 docs: Some updates to GtkWidgetClass docs
Mention layout managers for vfuncs that are skipped
if you have one.
2020-08-23 20:40:15 -04:00
Matthias Clasen
ca0f136deb text: Don't compute invisible char needlessly
There is no real reason to do expensive text layout
operations unless we need the invisible char because
the text's visibilty is FALSE.
2020-08-23 17:41:13 -04:00
Matthias Clasen
c0191c7225 text: Defer most recomputation until we're mapped
It doesn't make sense to update scroll positions or
im cursor locations while we're unmapped, and doing
so causes us to do expensive text measuring.
2020-08-23 17:41:13 -04:00
Matthias Clasen
40d7092f4a widget: Queue a draw when we need to
The code in gtk_widget_real_css_changed assumes that
queue_resize > queue_allocate > queue_draw, but the
second one is not really true. These days, we happily
keep reusing the same render node even when the child
allocation is changed.

So, if a css change has flags that tell us we should
redraw, we need to queue a draw, otherwise we might
end up reusing an outdated render node.

This fixes spinners staying visible when they stop
spinning, despite the theme setting their opacity
to 0.
2020-08-23 17:07:37 -04:00
Matthias Clasen
dc963dcbcb Cosmetics
gtk_css_style_change_affects takes flags for a reason,
no need to call it multiple times.
2020-08-23 16:45:15 -04:00
Matthias Clasen
c4d350c260 build: Start using meson feature options
Use feature options for things that are optional features,
update the docs.

Visible changes here is that the 'print-backends' option
got renamed to 'print' to go better with 'media', and the
'tracker3' option got renamed to 'tracker'.

For options that have been changed into features, the
syntax now is -Dfeature=enabled or -Dfeature=disabled
or -Dfeature=auto.
2020-08-23 16:45:15 -04:00
Matthias Clasen
54e4bf8b75 Fix a leak in the font chooser widget
Contrary to what you may expect, pango_attr_font_desc_new()
is not transfer full, it makes a copy of the font description.
2020-08-23 16:45:15 -04:00
Jakub Steiner
a498aca3ab Adwaita: error labels insensitive & backdrop states
- address colored labels for the two states

See https://gitlab.gnome.org/GNOME/gtk/-/issues/3063#note_891618
2020-08-22 10:14:11 -04:00
Matthias Clasen
4eacfdba60 Merge branch 'remove-unnecessary-frames' into 'master'
Remove unnecessary frames from some widgets

See merge request GNOME/gtk!2462
2020-08-22 14:09:35 +00:00
nana-4
6a7a0f0b8a viewport: Remove unused frame
We've always removed this with Adwaita.
2020-08-22 09:30:28 +09:00
nana-4
1948f8a07f placessidebar: Remove unused frame
We've always removed this with Adwaita.
2020-08-22 09:23:52 +09:00
nana-4
8eb807d7f4 entrycompletion: Remove unnecessary frame
The popover already has a border as a frame. Don't create double
borders.
2020-08-22 09:18:31 +09:00
Matthias Clasen
125ed52ccb Merge branch 'new-sysprof' into 'master'
Port profiling to sysprof-collector api

See merge request GNOME/gtk!2457
2020-08-21 23:58:09 +00:00
Matthias Clasen
7a9501b1fb Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master

See merge request GNOME/gtk!2461
2020-08-21 22:36:45 +00:00
Matthias Clasen
f00e2e2146 inhibit: Pass valid arguments when Inhibiting
When we pass "" as reason, gnome-session responds
with a "Reason not specified" error. So, send
"Reason not specified" instead. Its true.
2020-08-21 17:40:36 -04:00
Matthias Clasen
ab5e62ddab Merge branch 'matthiasc/for-master' into 'master'
layoutmanager: Fix the child-widget property

Closes #3080

See merge request GNOME/gtk!2460
2020-08-21 20:45:53 +00:00