gtk4.git
5 years agocsscolorvalue: Don't copy rgbas when applying function
Timm Bäder [Sat, 11 Jan 2020 10:54:39 +0000 (11:54 +0100)]
csscolorvalue: Don't copy rgbas when applying function

We get const pointers to the colors, so just use those and unref the
values later.

5 years agogl renderer: Look at shadow color in the outset shadow cache
Timm Bäder [Sat, 11 Jan 2020 10:26:27 +0000 (11:26 +0100)]
gl renderer: Look at shadow color in the outset shadow cache

It would probably be better to not do this and always render the outline
in plain white, then later recolor it but do this for no, just for
correctness.

5 years agocssimageradial: Use array + length instead of GArray
Timm Bäder [Sat, 11 Jan 2020 09:00:25 +0000 (10:00 +0100)]
cssimageradial: Use array + length instead of GArray

This makes sense since we're not going to change the (amount of) colors
after parsing.

5 years agocssimagelinear: Use count+array for the color stops, not GArray
Timm Bäder [Sat, 11 Jan 2020 08:05:07 +0000 (09:05 +0100)]
cssimagelinear: Use count+array for the color stops, not GArray

This makse sense but will also make later changes to GtkCssImageLinear
simpler.

5 years agocssimagefallback: Don't compute new image if only a color is set
Timm Bäder [Sat, 11 Jan 2020 07:25:52 +0000 (08:25 +0100)]
cssimagefallback: Don't compute new image if only a color is set

Themes might use e.g. image(red), which is a constant value and will
never change. In that case, the fallback image has ->color set, but not
->images. If that's the case and the computed color is the same as
the one we already have, just return the already existing image.

5 years agoRemove GtkCssRgbaValue
Timm Bäder [Fri, 10 Jan 2020 12:02:33 +0000 (13:02 +0100)]
Remove GtkCssRgbaValue

The differenciation between a literal color value and an RGBA value
caused problems in various situations. Just treat the two the same but
don't allow access to the rgba value of a non-literal color value.

This gets rid of around 1.6k rgba values in the widget-factory.

5 years agodump css value stats
Matthias Clasen [Fri, 10 Jan 2020 04:48:30 +0000 (23:48 -0500)]
dump css value stats

5 years agocsssshadwovalue: Remove unused function prototype
Timm Bäder [Thu, 9 Jan 2020 11:52:20 +0000 (12:52 +0100)]
csssshadwovalue: Remove unused function prototype

5 years agocssnumbervalue: Add early-outs to transition code
Timm Bäder [Wed, 8 Jan 2020 08:42:23 +0000 (09:42 +0100)]
cssnumbervalue: Add early-outs to transition code

we don't need to do the calculation at all if the progress is 0 or 1
anyway.

We also sometimes transition from 0 to 0 etc., so we can short-circuit
that as well by doing the fast pointer-equality check and relying on the
singletons.

5 years agocsscornervalue: Accept other values if x == y
Timm Bäder [Wed, 8 Jan 2020 08:11:02 +0000 (09:11 +0100)]
csscornervalue: Accept other values if x == y

Most corners are square, so x == y. In that case, just accept either of
them. This makes the corner value unnecessary.

In fact none of the corner values in the widget-factory are needed, so
this spares us around 500 corner value allocations.

css value stats before:

GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssCornerValue: 556
GtkCssArrayValue: 143
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2765
GtkCssColorValue: 1452
GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 882
GtkCssShadowsValue: 584
SUM: 8428

and after:

GtkCssColorValue: 1452
GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 882
GtkCssShadowsValue: 584
GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssArrayValue: 143
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2765
SUM: 7872

8428 to 7872 is a 556 reduction (6.5%)

asdf

5 years agocssarrayvalue: Don't allocate memory when parsing array values
Timm Bäder [Wed, 8 Jan 2020 07:58:07 +0000 (08:58 +0100)]
cssarrayvalue: Don't allocate memory when parsing array values

We probably won't find CSS with more than 128 values in array.

5 years agocssarrayvalue: Allow calling array API on non-arrays
Timm Bäder [Wed, 8 Jan 2020 07:37:04 +0000 (08:37 +0100)]
cssarrayvalue: Allow calling array API on non-arrays

Just allow calling _get_nth() and _get_n_values() on every kind of css
value. This way we can allow all values in places where only array
values would be allowed before.

This spares us around 1000 array values in the widget factory.

css value stats before:

GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 882
GtkCssShadowsValue: 584
GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssCornerValue: 556
GtkCssArrayValue: 1130
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2765
GtkCssColorValue: 1452
SUM: 9415

and after:

GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssCornerValue: 556
GtkCssArrayValue: 143
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2765
GtkCssColorValue: 1452
GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 882
GtkCssShadowsValue: 584
SUM: 8428

9415 to 8428 is a 987 reduction (10.4%)

5 years agocssvalue: Add type names for all classes
Timm Bäder [Thu, 9 Jan 2020 10:57:00 +0000 (11:57 +0100)]
cssvalue: Add type names for all classes

This is important to have for debugging and e.g. to print statistics for
the individual css value types

5 years agocsscolorvalue: Compute alpha/shade/mix of color literals directly
Timm Bäder [Thu, 9 Jan 2020 10:54:58 +0000 (11:54 +0100)]
csscolorvalue: Compute alpha/shade/mix of color literals directly

The values of these are never gonna change so we can as well create
literal color values from the resulting colors instead.

5 years agocsscolorvalue: Don't resolve literal color values
Timm Bäder [Thu, 9 Jan 2020 09:22:53 +0000 (10:22 +0100)]
csscolorvalue: Don't resolve literal color values

5 years agoMerge branch 'adwaita-performance' into 'master'
Matthias Clasen [Sat, 18 Jan 2020 06:43:11 +0000 (06:43 +0000)]
Merge branch 'adwaita-performance' into 'master'

Adwaita: Remove wildcards

Closes #2380

See merge request GNOME/gtk!1330

5 years agoAdwaita: Remove wildcards
Matthias Clasen [Sat, 18 Jan 2020 06:27:31 +0000 (01:27 -0500)]
Adwaita: Remove wildcards

Selectors like *:disabled or *:link have bad performance
implications, since they cause all styles to be recomputed
when the state of the window changes. Replace these by a
list of the elements that are actually affected.

Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/2380
5 years agoMerge branch 'matthiasc/css-change-tracking-4' into 'master'
Matthias Clasen [Sat, 18 Jan 2020 05:41:26 +0000 (05:41 +0000)]
Merge branch 'matthiasc/css-change-tracking-4' into 'master'

Improve change computation

See merge request GNOME/gtk!1327

5 years agoRemove the widget-factory test again
Matthias Clasen [Sat, 18 Jan 2020 05:27:52 +0000 (00:27 -0500)]
Remove the widget-factory test again

This was failing in ci, in hard to track down ways.

5 years agochange tests: Update test output
Matthias Clasen [Fri, 17 Jan 2020 22:57:37 +0000 (17:57 -0500)]
change tests: Update test output

Some of these test cases involve :not, and thus are affected
by our now correct handling of it for change computation.

All of them are affected by the window now being visible.

5 years agoRemove no longer needed code
Matthias Clasen [Fri, 17 Jan 2020 16:12:13 +0000 (11:12 -0500)]
Remove no longer needed code

We no longer use superset or any matchers to find changes.

5 years agoGo back to the tree for computing change
Matthias Clasen [Fri, 17 Jan 2020 16:11:55 +0000 (11:11 -0500)]
Go back to the tree for computing change

5 years agoRedo the way we compute change
Matthias Clasen [Fri, 17 Jan 2020 16:10:14 +0000 (11:10 -0500)]
Redo the way we compute change

Instead of expecting a superset matcher, call
gtk_css_selector_match_for_change while walking the tree with the
original matcher. This fixes the handling of :not while determining
changes.

5 years agoBring back the reserved bit
Matthias Clasen [Fri, 17 Jan 2020 16:01:55 +0000 (11:01 -0500)]
Bring back the reserved bit

5 years agoRevert "Remove no longer used code"
Matthias Clasen [Fri, 17 Jan 2020 15:54:37 +0000 (10:54 -0500)]
Revert "Remove no longer used code"

This reverts commit 105acfe90866543904467b13fecdbed108cf43b2.

5 years agoAdd testcases for css change flags
Matthias Clasen [Fri, 17 Jan 2020 01:04:00 +0000 (20:04 -0500)]
Add testcases for css change flags

Add various tests for the change flag computation that
we do in the css selector tree.

test1: Just test the basic machinery of this test
test2: Trigger every change flag at least once
test3: Test that multiple states combine as expected
test4: Test negations (known to produce wrong results)
test5: Test a complex selector (not producing the expected
       output atm)
widget-factory.ui:
       The real thing: widget-factory+Adwaita. Note that
       this expedts to be run with GSETTINGS_BACKEND=memory

Note that test4 checks the wrong results that we currently
produce for selectors involving :not. It will have to be
updated when we fix the handling of :not. The widget-factory.ui
testcase will certainly also be affected.

5 years agoAdd a test for css change flags
Matthias Clasen [Fri, 17 Jan 2020 01:02:55 +0000 (20:02 -0500)]
Add a test for css change flags

5 years agoAdd a way to dump css node change values
Matthias Clasen [Tue, 14 Jan 2020 00:18:31 +0000 (19:18 -0500)]
Add a way to dump css node change values

Add a GTK_STYLE_CONTEXT_PRINT_SHOW_CHANGE flag that
tells gtk_style_context_to_string to include the
change values of nodes in the output. This will
help debugging css change tracking.

5 years agostyle tests: Update expected output
Matthias Clasen [Sat, 18 Jan 2020 01:58:05 +0000 (20:58 -0500)]
style tests: Update expected output

The printing of css nodes has changed, and the window
is visible now.

5 years agostyle tests: Show the window
Matthias Clasen [Wed, 15 Jan 2020 07:00:09 +0000 (02:00 -0500)]
style tests: Show the window

Not doing so somewhat defeats the point that we want
to verify the regular styles, not some weird initial
conditions.

5 years agostyle tests: Clean up --generate support
Matthias Clasen [Sat, 18 Jan 2020 01:57:51 +0000 (20:57 -0500)]
style tests: Clean up --generate support

Reshuffle things so we don't call gtk_test_init() when --generate
is passed, to avoid polluting the output with test spew.

5 years agonode tests: Update expected output
Matthias Clasen [Fri, 17 Jan 2020 22:07:46 +0000 (17:07 -0500)]
node tests: Update expected output

The printing of css nodes has changed and the
window is visible now.

5 years agonode tests: Show the window
Matthias Clasen [Sat, 18 Jan 2020 01:35:00 +0000 (20:35 -0500)]
node tests: Show the window

This avoids using default styles.

5 years agonode tests: Clean up --generate support
Matthias Clasen [Fri, 17 Jan 2020 22:02:43 +0000 (17:02 -0500)]
node tests: Clean up --generate support

Reshuffle things so we don't call gtk_test_init() when --generate
is passed, to avoid polluting the output with test spew.

5 years agoAdd an Empty theme for tests
Matthias Clasen [Fri, 17 Jan 2020 22:42:06 +0000 (17:42 -0500)]
Add an Empty theme for tests

5 years agocssnode: Fix a corner case in style computation
Matthias Clasen [Sat, 18 Jan 2020 03:00:21 +0000 (22:00 -0500)]
cssnode: Fix a corner case in style computation

When we recomputed the change flags, and the style
did not change, we still need to replace the style
object, since it holds the new change flags.

5 years agocssnodedeclaration: Make print output deterministic
Matthias Clasen [Fri, 17 Jan 2020 21:54:38 +0000 (16:54 -0500)]
cssnodedeclaration: Make print output deterministic

This was depending on the memory order of quarks, which
is not a good fit for tests that depend on this output.

5 years agoQuiet compiler warnings in release builds
Matthias Clasen [Fri, 17 Jan 2020 00:43:05 +0000 (19:43 -0500)]
Quiet compiler warnings in release builds

5 years agoTweak the file transfer portal _again_
Matthias Clasen [Sat, 18 Jan 2020 03:31:51 +0000 (22:31 -0500)]
Tweak the file transfer portal _again_

This is a neverending story. I was seeing problems in tests where
the nested mainloop was picking up unrelated timeouts.

Break down and make this async. This changes the ordering in which
the (de)serializers are registered. If this is causing issues, we
can introduce priorities or something else.

5 years agoMerge branch 'gtk-fix-gesture-get-center' into 'master'
Matthias Clasen [Fri, 17 Jan 2020 21:59:33 +0000 (21:59 +0000)]
Merge branch 'gtk-fix-gesture-get-center' into 'master'

gtkgesture: Fix gtk_gesture_get_bounding_box_center() for touchpads

Closes #2316

See merge request GNOME/gtk!1257

5 years agodemo: Use pinch translation in the gestures demo
Yariv Barkan [Sat, 14 Dec 2019 09:27:44 +0000 (11:27 +0200)]
demo: Use pinch translation in the gestures demo

Add the pinch translation offset to the pinch gesture demo. That allows
moving the square around in addition to the already-supported rotate and
zoom.

5 years agogtkgesture: Fix get-center for touchpad gestures
Yariv Barkan [Tue, 17 Dec 2019 11:28:17 +0000 (13:28 +0200)]
gtkgesture: Fix get-center for touchpad gestures

Touchpad gestures have only a single event sequence. The current
'center' of the gesture is the starting point + accumulated deltas.
Update gtk_gesture_get_bounding_box_center() accordingly.

5 years agoFix a few bugs in the css change flag definition
Matthias Clasen [Fri, 17 Jan 2020 02:13:09 +0000 (21:13 -0500)]
Fix a few bugs in the css change flag definition

These were found by the new change flag tests.

5 years agoMerge branch 'fix-imwayland-cursor' into 'master'
Timm Bäder [Fri, 17 Jan 2020 09:24:48 +0000 (09:24 +0000)]
Merge branch 'fix-imwayland-cursor' into 'master'

imwayland: Fix get_preedit_string cursor position (GTK4)

Closes #2383

See merge request GNOME/gtk!1328

5 years agoimwayland: Fix get_preedit_string cursor position
xdavidwu [Fri, 17 Jan 2020 08:01:01 +0000 (16:01 +0800)]
imwayland: Fix get_preedit_string cursor position

GtkIMContext get_preedit_string should return cursor position counted
in characters, but cursor_begin here is counted in bytes. This add the
missing conversion.

5 years agoMerge branch 'matthiasc/css-change-tracking-3' into 'master'
Matthias Clasen [Fri, 17 Jan 2020 00:38:04 +0000 (00:38 +0000)]
Merge branch 'matthiasc/css-change-tracking-3' into 'master'

Preliminary css matcher work

See merge request GNOME/gtk!1326

5 years agocssmatcher: Change get_state to has_state
Matthias Clasen [Fri, 17 Jan 2020 00:23:45 +0000 (19:23 -0500)]
cssmatcher: Change get_state to has_state

This matches all the other vfuncs, and it gets us
out of keeping several big state flag enumerations
in sync.

Update all callers.

5 years agoAllow printing css matchers
Matthias Clasen [Wed, 15 Jan 2020 07:03:08 +0000 (02:03 -0500)]
Allow printing css matchers

This can help in debugging css matching.

5 years agocss: Add a matcher type enum
Matthias Clasen [Wed, 15 Jan 2020 03:29:56 +0000 (22:29 -0500)]
css: Add a matcher type enum

For now, this just replaces the is_any boolean
by a type field in the class. It will be used in
future commits.

5 years agocss: Simplify the superset matcher
Matthias Clasen [Thu, 16 Jan 2020 22:50:32 +0000 (17:50 -0500)]
css: Simplify the superset matcher

We use the superset matcher in exactly one place,
so there is no need for the generality of allowing
to ignore different aspects. Just hardcode the one
case we need: ignoring everything except for name,
id and class.

5 years agoCosmetic change
Matthias Clasen [Thu, 16 Jan 2020 22:47:41 +0000 (17:47 -0500)]
Cosmetic change

Update comments for name changes that happened long ago.

5 years agocss: Fix the ANY matcher state list
Matthias Clasen [Wed, 15 Jan 2020 22:34:03 +0000 (17:34 -0500)]
css: Fix the ANY matcher state list

The ANY and matcher was not, in fact, matching any state,
since the list of states was not up-to-date.

The same fix applies to the superset matcher as well.

5 years agoMerge branch 'matthiasc/css-change-tracking-2' into 'master'
Matthias Clasen [Thu, 16 Jan 2020 23:00:17 +0000 (23:00 +0000)]
Merge branch 'matthiasc/css-change-tracking-2' into 'master'

Better css change tracking

See merge request GNOME/gtk!1325

5 years agoRemove an unused define
Matthias Clasen [Thu, 16 Jan 2020 22:39:03 +0000 (17:39 -0500)]
Remove an unused define

We no longer use the GTK_CSS_CHANGE_RESERVED_BIT define.

5 years agoRemove no longer used code
Matthias Clasen [Wed, 15 Jan 2020 22:12:51 +0000 (17:12 -0500)]
Remove no longer used code

We no longer consult the selector tree to find changes,
so this code is no longer needed.

5 years agocss: Don't got to the selector tree for change
Matthias Clasen [Wed, 15 Jan 2020 13:03:09 +0000 (08:03 -0500)]
css: Don't got to the selector tree for change

The tree is optimized for mimizing the decisions, and is built ahead-of-time.
That prevents us from taking advantage of the information in the matcher when
collecting changes.

So, instead do what we used to do for verification: Use the selector tree
for finding the superset matches, then just walk the rulesets to collect
the changes.

Since we are now recomputing the change masks much less frequently, this
slightly less optimized way of computing them is not a problem, and will
let us compute better results in the future, by improving the superset
matcher to be more precise.

5 years agocssprovider: Keep selectors around
Matthias Clasen [Thu, 16 Jan 2020 18:20:47 +0000 (13:20 -0500)]
cssprovider: Keep selectors around

Don't remove selectors from the rulsets after
creating the selector tree. We want to use them
in future commits.

5 years agoMerge branch 'matthiasc/css-change-tracking' into 'master'
Benjamin Otte [Thu, 16 Jan 2020 22:13:57 +0000 (22:13 +0000)]
Merge branch 'matthiasc/css-change-tracking' into 'master'

Better css change handling

See merge request GNOME/gtk!1324

5 years agocss: Avoid computing change too often
Matthias Clasen [Wed, 15 Jan 2020 07:35:21 +0000 (02:35 -0500)]
css: Avoid computing change too often

Most of the time when styles need to be recreated, the name and classes
of the css node haven't changed. In this case, the change value will not
change either, since we are computing change under the assumption that
name and classes are unchanged.

So don't recompute the change. This avoids the second match we do to
find the superset, cutting down the number of times we consult the
selector tree.

5 years agoRevisit gtk_css_style_get_static_style one more time
Matthias Clasen [Thu, 16 Jan 2020 21:59:21 +0000 (16:59 -0500)]
Revisit gtk_css_style_get_static_style one more time

Move the implementation to where it belongs.

5 years agoChange the signature of gtk_css_style_get_static_style
Matthias Clasen [Thu, 16 Jan 2020 18:56:07 +0000 (13:56 -0500)]
Change the signature of gtk_css_style_get_static_style

It is clearer if this function returns a GtkCssStaticStyle.

5 years agoQuiet a compiler warning
Matthias Clasen [Thu, 16 Jan 2020 17:17:49 +0000 (12:17 -0500)]
Quiet a compiler warning

This was causing warnings in a release build.

5 years agoMerge branch 'static-style-getter' into 'master'
Matthias Clasen [Thu, 16 Jan 2020 17:10:31 +0000 (17:10 +0000)]
Merge branch 'static-style-getter' into 'master'

css: Add gtk_css_style_get_static_style

See merge request GNOME/gtk!1323

5 years agocss: Add gtk_css_style_get_static_style
Matthias Clasen [Mon, 13 Jan 2020 03:44:58 +0000 (22:44 -0500)]
css: Add gtk_css_style_get_static_style

This lets us avoid poking directly at the GtkCssAnimatedStyle
struct in gtkcssnode.c.

5 years agoMerge branch 'matthiasc/css-split-states' into 'master'
Matthias Clasen [Thu, 16 Jan 2020 16:58:23 +0000 (16:58 +0000)]
Merge branch 'matthiasc/css-split-states' into 'master'

Split off some states in css change tracking

See merge request GNOME/gtk!1322

5 years agocss: Track selected state separately
Matthias Clasen [Thu, 16 Jan 2020 01:27:12 +0000 (20:27 -0500)]
css: Track selected state separately

Like the previous change, this reduces the number of
css nodes reacting to parent-state changes. The remaining
parent-state cases here are due to :link.

Before (numbers from widget-factory with Adwaita):
2247 nodes
class 612
name 2246
id 2
first-child 148
last-child 156
state 2245
hover 562
disabled 859
backdrop 1080
sibling-name 63
sibling-disabled 51
parent-class 586
parent-name 788
parent-id 2
parent-first-child 78
parent-last-child 78
parent-state 236
parent-hover 5
parent-disabled 91
parent-backdrop 4

After:
2247 nodes
class 612
name 2246
id 2
first-child 148
last-child 156
state 2245
hover 562
disabled 859
backdrop 1080
selected 579
sibling-name 63
sibling-disabled 51
parent-class 586
parent-name 788
parent-id 2
parent-first-child 78
parent-last-child 78
parent-state 115
parent-hover 5
parent-disabled 91
parent-backdrop 4
parent-selected 144

5 years agocss: Track backdrop state separately
Matthias Clasen [Thu, 16 Jan 2020 01:05:44 +0000 (20:05 -0500)]
css: Track backdrop state separately

Like the previous change, this reduces the number of
css nodes reacting to parent-state changes.

Before (numbers from widget-factory with Adwaita):
2247 nodes
class 612
name 2246
id 2
first-child 148
last-child 156
state 2247
hover 562
disabled 859
sibling-name 63
sibling-disabled 51
parent-class 586
parent-name 788
parent-id 2
parent-first-child 78
parent-last-child 78
parent-state 236
parent-hover 5
parent-disabled 91

After:
2247 nodes
class 612
name 2246
id 2
first-child 148
last-child 156
state 2245
hover 562
disabled 859
backdrop 1080
sibling-name 63
sibling-disabled 51
parent-class 586
parent-name 788
parent-id 2
parent-first-child 78
parent-last-child 78
parent-state 236
parent-hover 5
parent-disabled 91
parent-backdrop 4

5 years agocss: Track disabled state separately
Matthias Clasen [Thu, 16 Jan 2020 00:19:38 +0000 (19:19 -0500)]
css: Track disabled state separately

Significantly reduces the number of nodes that react to
parent-state changes.

Before (numbers from widget-factory with Adwaita):
2247 nodes
class 612
name 2246
id 2
first-child 148
last-child 156
state 2247
hover 2247
sibling-name 63
sibling-state 51
parent-class 586
parent-name 788
parent-id 2
parent-first-child 78
parent-last-child 78
parent-state 2226
parent-hover 5

After:
2247 nodes
class 612
name 2246
id 2
first-child 148
last-child 156
state 2247
hover 562
disabled 859
sibling-name 63
sibling-disabled 51
parent-class 586
parent-name 788
parent-id 2
parent-first-child 78
parent-last-child 78
parent-state 236
parent-hover 5
parent-disabled 91

5 years agocss: Track hover state changes separately
Matthias Clasen [Wed, 15 Jan 2020 20:10:06 +0000 (15:10 -0500)]
css: Track hover state changes separately

The idea is that this reduce the amount of frequently
changing state that css nodes are sensitive to.

This is going to reduce the amount of style recomputation.

5 years agoMerge branch 'wip/carlosg/x11-dnd' into 'master'
Matthias Clasen [Thu, 16 Jan 2020 14:29:48 +0000 (14:29 +0000)]
Merge branch 'wip/carlosg/x11-dnd' into 'master'

X11 dnd fixes.

See merge request GNOME/gtk!1321

5 years agogdkdrag/x11: Issue XdndLeave on cancellation
Carlos Garnacho [Thu, 16 Jan 2020 14:03:24 +0000 (15:03 +0100)]
gdkdrag/x11: Issue XdndLeave on cancellation

According to XDND "The XdndLeave message cancels the session.",
issue one when cancelling a drag, so the dest side has an opportunity
to forget about the GdkDrop.

5 years agogdkdrag/x11: Drop timestamp argument from gdk_drag_do_leave()
Carlos Garnacho [Thu, 16 Jan 2020 14:02:16 +0000 (15:02 +0100)]
gdkdrag/x11: Drop timestamp argument from gdk_drag_do_leave()

This is not necessary for the XdndLeave message, nor used.

5 years agogdk/x11: Ensure to hide DnD surface after failed operation
Carlos Garnacho [Mon, 13 Jan 2020 23:03:29 +0000 (00:03 +0100)]
gdk/x11: Ensure to hide DnD surface after failed operation

The drag source might be cached and held alive, only disposed after
future drag begin operations. Ensure the drag surface gets hidden
properly or might might stay transparent but mapped till then.

5 years agogdk/x11: Ensure to sync type list after sending XdndEnter
Carlos Garnacho [Mon, 13 Jan 2020 23:02:12 +0000 (00:02 +0100)]
gdk/x11: Ensure to sync type list after sending XdndEnter

Otherwise we are not ensured the GdkDrop is up-to-date, might even
be a stale one from an older DnD operation.

5 years agogdk/x11: Serialize gtype content formats before sending Xdnd enter
Carlos Garnacho [Mon, 13 Jan 2020 19:07:27 +0000 (20:07 +0100)]
gdk/x11: Serialize gtype content formats before sending Xdnd enter

This ensures GType handlers get serialized to mimetypes at the time
the drag dest inspects the XdndTypeList property.

5 years agoSpeed up gtk_widget_pick
Matthias Clasen [Mon, 13 Jan 2020 00:36:53 +0000 (19:36 -0500)]
Speed up gtk_widget_pick

Add early exits, and avoid as much work as
possible.

5 years agoFix the filetransfer portal initialization
Matthias Clasen [Wed, 15 Jan 2020 15:58:54 +0000 (10:58 -0500)]
Fix the filetransfer portal initialization

Reusing the cancellable only works if you don't throw
it away after first use.

5 years agoTry harder to make ci not timeout
Matthias Clasen [Tue, 14 Jan 2020 22:38:20 +0000 (17:38 -0500)]
Try harder to make ci not timeout

Make getting the file transfer portal proxy more
async, and avoid leaking a bus connection. This
causes GTestDBus to hang at the end of the test
run.

5 years agocss: Drop unsused bitmasks
Matthias Clasen [Tue, 14 Jan 2020 21:44:31 +0000 (16:44 -0500)]
css: Drop unsused bitmasks

GtkCssProvider was maintaining bitmasks for the
set properties in each ruleset. The masks are never
used, so drop them.

5 years agocss: Remove an unused function
Matthias Clasen [Tue, 14 Jan 2020 21:42:31 +0000 (16:42 -0500)]
css: Remove an unused function

_gtk_css_style_property_get_mask_affecting was superseded
by GtkCssStyleChange back in 2015.

5 years agotestsuite: Improve --generate support
Matthias Clasen [Tue, 14 Jan 2020 00:32:40 +0000 (19:32 -0500)]
testsuite: Improve --generate support

We don't want annoying spew from GTest when
using --generate, since it interferes with just
piping the output to a text file.

5 years agoquiet a compiler warning in release builds
Matthias Clasen [Mon, 13 Jan 2020 17:42:29 +0000 (12:42 -0500)]
quiet a compiler warning in release builds

5 years agoUse bundle id instead of package name for the macOS preview as filename is now changed
Alex Samorukov [Tue, 14 Jan 2020 22:15:05 +0000 (22:15 +0000)]
Use bundle id instead of package name for the macOS preview as filename is now changed

5 years agofontchooser: Fix up the previous commit
Matthias Clasen [Tue, 14 Jan 2020 20:42:01 +0000 (15:42 -0500)]
fontchooser: Fix up the previous commit

5 years agofontchooser: Fix objects-finalize test
Matthias Clasen [Tue, 14 Jan 2020 20:25:27 +0000 (15:25 -0500)]
fontchooser: Fix objects-finalize test

The treeview is evil and keeps reference cycles in the
form of various tree row references. That gets cleaned up
if you explicitly gtk_widget_destroy the treeview. But since
07f2024bfca22331121, the scrolled window no longer destroys
its child, exposing this issue as a reference leak in
the objects-finalize test.

The font chooser widget is affected here because it calls
gtk_tree_view_scroll_to_path from init(), which creates one
of those reference cycles. Work around this in the font
chooser by unsetting the tree view model in dispose, which
clears up this cycle.

5 years agoFix encoding symbolic pixbufs
Matthias Clasen [Tue, 14 Jan 2020 19:12:33 +0000 (14:12 -0500)]
Fix encoding symbolic pixbufs

This was broken in 1a931da0465966b62b56e145b82e691ece67af91.

5 years agoUpdate Indonesian translation
Sucipto [Tue, 14 Jan 2020 15:11:27 +0000 (15:11 +0000)]
Update Indonesian translation

5 years agotestsuite: Skip GtkDragIcon
Matthias Clasen [Tue, 14 Jan 2020 14:20:18 +0000 (09:20 -0500)]
testsuite: Skip GtkDragIcon

GtkDragIcon needs a special surface, so skip it
in the notify tests.

5 years agoUpdated Spanish translation
Daniel Mustieles [Tue, 14 Jan 2020 11:39:44 +0000 (12:39 +0100)]
Updated Spanish translation

5 years agoUpdate Indonesian translation
Kukuh Syafaat [Tue, 14 Jan 2020 06:27:18 +0000 (06:27 +0000)]
Update Indonesian translation

5 years agoMerge branch 'adwaita-cross-fade-fix-gtk4' into 'master'
Matthias Clasen [Tue, 14 Jan 2020 06:08:24 +0000 (06:08 +0000)]
Merge branch 'adwaita-cross-fade-fix-gtk4' into 'master'

Adwaita: Fix syntax error in cross-fade() (GTK4)

Closes #2371

See merge request GNOME/gtk!1308

5 years agoMerge branch 'wip/chergert/fix-dragicon-installation' into 'master'
Matthias Clasen [Tue, 14 Jan 2020 06:06:35 +0000 (06:06 +0000)]
Merge branch 'wip/chergert/fix-dragicon-installation' into 'master'

build: fix gtkdragicon header installation

See merge request GNOME/gtk!1306

5 years agoHandle lack of file transfer portal
Matthias Clasen [Tue, 14 Jan 2020 06:03:48 +0000 (01:03 -0500)]
Handle lack of file transfer portal

Don't block for 25 seconds trying to get a bus
connection. Give up after 1 second.

5 years agogtk-demo: Use a default action in the infobars demo
Matthias Clasen [Fri, 10 Jan 2020 00:01:59 +0000 (19:01 -0500)]
gtk-demo: Use a default action in the infobars demo

This makes the question infobar activatable by clicking
anywhere in it.

5 years agoAdwaita: Add hover for clickable infobars
Matthias Clasen [Thu, 9 Jan 2020 21:13:33 +0000 (16:13 -0500)]
Adwaita: Add hover for clickable infobars

5 years agoinfobar: Activate default action on clicks
Matthias Clasen [Thu, 9 Jan 2020 21:11:36 +0000 (16:11 -0500)]
infobar: Activate default action on clicks

When we have a default action set on the infobar, activate it
for clicks anywhere in the infobar.  Also add an .action style
class in this case, so we can add a hover highlight to the infobar
just for this case.

5 years agoMerge branch 'wip/chergert/textview-propagate-undo-state' into 'master'
Matthias Clasen [Tue, 14 Jan 2020 01:59:22 +0000 (01:59 +0000)]
Merge branch 'wip/chergert/textview-propagate-undo-state' into 'master'

textview: propagate GtkTextBuffer can-undo/redo action state

See merge request GNOME/gtk!1311

5 years agotextview: propagate GtkTextBuffer can-undo/redo action state
Christian Hergert [Tue, 14 Jan 2020 01:26:18 +0000 (17:26 -0800)]
textview: propagate GtkTextBuffer can-undo/redo action state

This ensures the action state for undo and redo are propagated from the
buffer. Doing so means menu items now properly show sensitivity.

5 years agoMerge branch 'wip/chergert/textview-undo-menu-item' into 'master'
Matthias Clasen [Mon, 13 Jan 2020 23:51:40 +0000 (23:51 +0000)]
Merge branch 'wip/chergert/textview-undo-menu-item' into 'master'

textview: add undo/redo menu actions

See merge request GNOME/gtk!1310

5 years agotextview: add undo/redo menu actions
Christian Hergert [Mon, 13 Jan 2020 23:25:05 +0000 (15:25 -0800)]
textview: add undo/redo menu actions