Daniel Boles
bae6d3d45c
Fix some nullable Returns annotations
...
based on reports and patches by Iñaki García Etxebarria:
https://bugzilla.gnome.org/show_bug.cgi?id=781246
https://bugzilla.gnome.org/show_bug.cgi?id=785423
2017-08-03 20:27:29 +01:00
Timm Bäder
e70a3fab0d
widget: Constify state parameter of propagate_state
...
Makes sense.
2017-08-02 08:58:30 +02:00
Timm Bäder
8c08a33220
widget: Don't try to propagate 0 state flags
...
This happens quite often and has no effect anyway.
2017-08-02 08:58:30 +02:00
Timm Bäder
9a3049009e
widget: Fix size_allocate's out_clip annotation
2017-08-02 08:58:30 +02:00
Timm Bäder
f7bb6a7aa8
widget: Unset PRELIGHT and ACTIVE state in _set_sensitive
...
They both depend on input, which an insensitive widget does not receive.
2017-08-01 18:43:42 +02:00
Timm Bäder
2cbcee8549
widget: Don't access highlight_resize in non-debug builds
...
The GtkWidgetPrivate struct only contains that member if G_ENABLE_DEBUG
is defined.
2017-07-28 21:28:32 +02:00
Timm Bäder
3f9bcf3b31
widget: Stop invalidating recursively
2017-07-24 14:32:06 +02:00
Timm Bäder
5720f2a845
widget: Make _set_clip private
...
We don't need this anymore since clips are now reported in
size-allocate.
2017-07-19 21:27:16 -04:00
Timm Bäder
5116ce19b7
widget: Remove queue_draw_region vfunc
...
Unused
2017-07-19 21:27:16 -04:00
Timm Bäder
65209da486
widget: Set :focus on focus children
2017-07-19 21:27:16 -04:00
Timm Bäder
36ab70ddf5
widget: Add baseline and out_clip parameters to size-allocate
...
Since setting a clip is mandatory for almost all widgets, we can as well
change the size-allocate signature to include a out_clip parameter, just
like GtkCssGadget did. And since we now always propagate baselines, we
might as well pass that one on to size-allocate.
This way we can also make sure to transform the clip returned from
size-allocate to parent-coordinates, i.e. the same coordinate space
priv->allocation is in.
2017-07-19 21:27:16 -04:00
Timm Bäder
95bd58ac00
widget: Don't propagate size-allocate if only the position changed
...
We can do this now so we should
2017-07-19 21:27:15 -04:00
Timm Bäder
2e6b1158ee
widget: Fix priv dereference in size_allocate_with_baseline
...
Accessing ->priv is only safe *after* the GTK_IS_WIDGET precondition, so
use the get_instance_private function instead.
2017-07-19 21:27:15 -04:00
Timm Bäder
6d9a0d432a
widget: Fix a widget/container mixup
2017-07-19 21:27:15 -04:00
Timm Bäder
0ebd8840a8
widget: Remove gtk_cairo_transform_to_window
...
Useless in a world without windows and cairo.
2017-07-19 21:27:15 -04:00
Timm Bäder
097ab2baed
widget: Draw css box after pushing a opacity node
2017-07-19 21:27:15 -04:00
Timm Bäder
eb34c68ff4
widget: Move get_resize_needed to gtkwidget.c
...
It's only used in there so we don't need it in the private header.
2017-07-19 21:27:15 -04:00
Timm Bäder
f0d6cb5f40
widget: Propagate correct baseline
2017-07-19 21:27:15 -04:00
Timm Bäder
e19e3b72a3
widget: Always pass on baselines
2017-07-19 21:27:15 -04:00
Timm Bäder
fb2bb87bb1
widget: Simplify snapshot_child
2017-07-19 21:27:15 -04:00
Timm Bäder
0726148ca5
widget: Draw debug nodes for widget margins too
2017-07-19 21:27:15 -04:00
Timm Bäder
fa5203e700
widget: Fix copy&paste error when creating debug nodes
2017-07-19 21:27:15 -04:00
Timm Bäder
cef4df1e7e
widget: Unset PRELIGHT and ACTIVE state flags in unmap
2017-07-19 21:27:15 -04:00
Timm Bäder
451a991488
window: Move updates debugging to GtkWidget
...
Which has the necessary information.
2017-07-19 21:27:15 -04:00
Timm Bäder
42aa7453ab
Fix baselines wrt css values
...
The reported minimum baseline is for the reported min height, but if the
css min-height is greater than that, we need to account for that fact
when saving the baseline.
Since the reported baseline is relative to the widget's origin, we also
need to add the top values for margin, border and padding to the
reported baseline.
2017-07-19 21:27:14 -04:00
Timm Bäder
ea3876d26a
widget: black is the new red
2017-07-19 21:27:14 -04:00
Timm Bäder
bc4c32505a
menu: Popup at window coordinates if widget is given
...
Since widget allocations are now relative to the parent's origin, we
need to pass the window allocation here.
2017-07-19 21:27:14 -04:00
Timm Bäder
2cbaa998db
widget: Fix drawing invalidation with windowed widgets
...
E.g. popovers. Find the parent of the given widget with the window and
invalidate the given region in that window.
2017-07-19 21:27:14 -04:00
Timm Bäder
e36ddfec17
Remove all widget style property code
2017-07-19 21:27:14 -04:00
Timm Bäder
a826ee37ca
widget: Remove _set_simple_clip
...
Unused.
2017-07-19 21:27:14 -04:00
Timm Bäder
1bad3e1f28
widget: Transform clips into right coordinate space
...
The values passed to gtk_widget_set_clip are relative to the widget's
origin, but we need the values to be relative to priv->allocation.
2017-07-19 21:27:14 -04:00
Timm Bäder
63ba8fa355
widget: Consider opacity when drawing toplevels
...
This used to work in gtk3 and is used e.g. in the inspector when using
wayland.
2017-07-19 21:27:14 -04:00
Timm Bäder
b17d998eb5
widget: Add new allocation accessors
2017-07-19 21:27:14 -04:00
Timm Bäder
360b075164
widget: Avoid some type checks in snapshot_child
2017-07-19 21:27:13 -04:00
Timm Bäder
2b06986c38
widget: "fix" event and invalidation coordinates
2017-07-19 21:27:13 -04:00
Timm Bäder
241a009938
widget: Adapt translate_coordinates to coordinate changes
2017-07-19 21:27:13 -04:00
Timm Bäder
bccaeb0e2d
widget: Make allocations parent-content-allocation relative
2017-07-19 21:27:13 -04:00
Timm Bäder
ec6184c2af
widget: Remove queue_draw_child vfunc
2017-07-19 21:27:13 -04:00
Timm Bäder
73f5f45456
widget: Draw widget clips with GEOMETRY debugging
2017-07-19 21:27:13 -04:00
Timm Bäder
90c8a3f920
widget: Bring back layout debugging
2017-07-19 21:27:13 -04:00
Timm Bäder
ec51c63313
widget: Bring resize and baseline debug rendering back
2017-07-19 21:27:13 -04:00
Timm Bäder
dd713e0ae2
widget: Consider css margins when setting clip
...
This is optional for positive margins as they just increase the widget
allocation. However, with negative css margins, the allocation is
smaller than the clip.
This fixes scale sliders leaving a small trail behind.
2017-07-19 21:27:13 -04:00
Timm Bäder
2651fcbef9
widget: Special-case popover in snapshot
...
Just like we do it for GtkWindow.
2017-07-19 21:27:12 -04:00
Timm Bäder
2cedf1be9c
widget: Remove gtk_widget_set_allocation
2017-07-19 21:27:12 -04:00
Timm Bäder
a71edd2925
widget: Add private get_margin_allocation
2017-07-19 21:27:12 -04:00
Timm Bäder
ede6f2ab59
Slightly rework clip handling
...
always initialize clips to the (content) allocation, don't walk up the
widget hierarchy in gtk_widget_set_clip, implement
gtk_widget_size_allocate in GtkSeparator. This way we don't end up using
uninitialized clip values.
The entire clip handling is up for major rework since we can't and don't
want to force every single widget to call _set_clip in size-allocate
implementations.
2017-07-19 21:27:12 -04:00
Timm Bäder
c87be0a27a
widget: Don't set the allocation in size-allocate
...
If widgets chain up in their size-allocate implementation, they pass the
content allocation and not the widget allocation which will cause the
wrong allocation to be set.
2017-07-19 21:27:12 -04:00
Timm Bäder
ff6db012d9
widget: Add private get_border_allocation
2017-07-19 21:27:11 -04:00
Timm Bäder
a1b3a26ba4
widget: Add private gtk_widget_get_content_allocation
2017-07-19 21:27:11 -04:00
Timm Bäder
4e0f569b26
widget: Union clip with allocation and box shadow size
2017-07-19 21:27:11 -04:00