Matthias Clasen
54a3293cad
stack: Fix handling of GtkStackPage:visible
...
The stack wasn't updating its visible-child when
the stack pages visible property changes. This
showed up in the inspector, when showing the details
for a list model item.
2020-07-07 00:48:43 -04:00
Matthias Clasen
7c98af6358
stack: Cosmetic documentation fixes
...
Fix parameter mismatches.
2020-06-28 12:23:52 -04:00
Timm Bäder
fbb7948c13
stack: Avoid using an uninitialized value
...
This was showing up as criticals since for_size != >= -1.
2020-06-19 05:58:52 +02:00
Timm Bäder
d81a5a8338
stack: Add missing accessors for GtkStackPage properties
2020-06-19 05:26:25 +02:00
Timm Bäder
652323a4bf
stack: Fix some documentation mishaps
2020-06-19 05:26:25 +02:00
Timm Bäder
e45518fb5f
stack: Fix :needs-attention docs
...
This is a property on GtkStackPage these days.
2020-06-19 05:26:25 +02:00
Timm Bäder
3bd648e72e
stack: stop keeping a cached child render node around
...
All widgets cache their render node already. Just allocate the
last_visible_child always at 0/0 and then move its rendernode around
during snapshot.
Fixes #2678
2020-06-19 05:26:25 +02:00
Yuri Chornoivan
01bd4cc4e1
Fix minor typos
2020-05-28 11:00:03 +03:00
Matthias Clasen
5907ecebfc
stack: Derive from GtkWidget
2020-05-11 22:21:39 -04:00
Matthias Clasen
5e0c1e6a86
stack: Add gtk_stack_remove
...
This is a replacement for gtk_container_remove.
2020-05-11 22:21:39 -04:00
Matthias Clasen
cb056a1e8f
stack: Add a :use-underline property
...
Add GtkStackPage:use-underline, and use it when
constructing labels in the stack switcher.
2020-04-30 19:17:34 -04:00
Matthias Clasen
5f01f6f36b
Drop GtkStack:homogeneous
...
We have hhomogeneous and vhomogeneous properties
that can be set individually.
Fixes : #2673
2020-04-28 20:00:12 -04:00
Matthias Clasen
b55195fa2e
Move the idle sizer to GtkWindow
...
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.
2020-04-20 16:30:45 -04:00
Benjamin Otte
cda9007f0f
stack: Make static analyzer happy
2020-03-06 05:56:29 +01:00
Timm Bäder
188f00e05a
stack: Add GtkStackPage:visible accessors
2020-02-20 10:23:09 +01:00
Andy Holmes
44093f4966
stack: return the stack page when adding a child, to ease setting props
2019-11-03 18:05:03 -08:00
Matthias Clasen
700e9e03c5
stack: Make final
2019-05-28 22:35:36 +00:00
Matthias Clasen
18788c2a86
Remove gtk_widget_get/set_has_surface
...
These serve no purpose anymore - widgets don't
have surfaces, unless they're a GtkNative.
2019-05-28 20:25:15 +00:00
Benjamin Otte
9d0a42dc14
stack: Add a cube spin transition
...
Add a transition to GtkStack that pretends pages
are the sides or a cube, and switch them by
rotating the cube.
Use this transition in widget-factory.
2019-03-29 10:03:18 -04:00
Matthias Clasen
2bf1561b48
Port widgets to the root focus API
2019-03-16 21:24:44 -04:00
Benjamin Otte
6df2023e9d
stack: Use new snapshot transforms
2019-02-21 19:47:28 +01:00
Benjamin Otte
9a8082bab2
widget: Remove gtk_widget_get_allocated_size()
...
Use gtk_widget_get_allocated_width/height in the only user (GtkStack),
even though that isn't 100% correct.
2019-02-19 19:29:58 +01:00
Matthias Clasen
89d8ae0431
stack: Fix a crash
...
We need to remove the weak pointer, as the stack switcher can
keep the list model alive beyond the stack. This was observed
to cause crashes:
==16870== Invalid write of size 8
==16870== at 0x5168A4E: g_nullify_pointer (gutils.c:2284)
==16870== by 0x522C500: weak_refs_notify (gobject.c:2791)
==16870== by 0x50FE7BC: g_data_set_internal (gdataset.c:407)
==16870== by 0x50FECA7: g_datalist_id_set_data_full (gdataset.c:670)
==16870== by 0x5227EB4: g_object_real_dispose (gobject.c:1056)
==16870== by 0x522D295: g_object_unref (gobject.c:3309)
==16870== by 0x4AF849F: unset_stack (gtkstackswitcher.c:428)
==16870== by 0x4AF892E: gtk_stack_switcher_dispose (gtkstackswitcher.c:527)
2019-02-14 12:24:22 -05:00
Matthias Clasen
6ef775dbcb
stack: Add a pages property
...
This makes the list model available in the inspector.
2019-02-13 14:14:54 -05:00
Matthias Clasen
8c0b70691b
stack: Don't emit bad ::selection-changed signals
...
We have to be careful to not pass bad numbers to
this signal, which was happening in cases where
we have on old or new selected item.
2019-02-13 09:01:07 -05:00
Matthias Clasen
1750922631
stack: Fix a corner-case
...
When the stack goes empty, we were failing to reset
the visible_child member to NULL, causing problems later
on, since we don't have a ref for it.
2019-02-13 09:00:00 -05:00
Matthias Clasen
2dd85b826f
stack: Don't leak a reference
...
The page holds a reference to the widget, so can't just clear
this pointer.
2019-02-13 08:42:58 -05:00
Matthias Clasen
c0c6c87781
stack: Avoid some ugly unrefs
...
Instead of using the list model api that forces us
to drop the ref, just work with the list we have.
2019-02-13 08:40:13 -05:00
Matthias Clasen
916508f3db
stack: Drop the position property
...
GtkStackSwitcher and GtkStackSidebar no longer
use the GtkStackPage::position property, so we
don't need to maintain it anymore.
2019-02-10 18:43:59 -05:00
Matthias Clasen
7b08d13aea
stack: Provide a selection model
...
Make GtkStack expose a selection model for its pages.
The model can be used to track changes to the pages,
and to change what child is visible.
2019-02-10 18:43:59 -05:00
Matthias Clasen
dc0750f6ef
stack: Add a GtkStackPage::visible property
...
This will let GtkStackSwitcher track visibility
without having to interact with the widgets directly.
2019-02-10 18:43:59 -05:00
Matthias Clasen
b8903a4aba
stack: Fix up property notification
...
This was showing up in testsuite failures.
2019-02-08 09:03:45 -05:00
Matthias Clasen
1632cc7929
stack: Make the child meta work without stack
...
We have tests that expect this to work, like defaultvalue.
2019-02-08 08:22:35 -05:00
Matthias Clasen
ad9c2a624f
stack: Convert child properties to a child meta object
...
Create a GtkStackPage public object which holds the former
child properties of GtkStack.
Adjust all callers.
2019-02-08 00:09:44 -05:00
Timm Bäder
0530637fef
stack: Don't queue an unnecessary redraw
...
Both queue_allocate and queue_resize already queue a draw.
2019-01-03 08:52:35 +01:00
Timm Bäder
ade171a2ed
widget: Don't pass a position to ->size_allocate
...
The values have been 0/0 for a long time now, so just drop the
GtkAllocation argument and replace it with width and height.
2018-11-13 16:28:54 +01:00
Hugo Lefeuvre
44655932c4
gtkstack: fix null pointer dereference
...
The gtk_stack_snapshot_slide() function dereferences the
last_visible_child pointer without proper != NULL ckeck. This might
result in NULL pointer dereference and crash if last_visible_child is
invalid.
Add a != NULL check before dereferencing the pointer.
2018-09-27 09:53:22 -04:00
Matthias Clasen
8755d884f3
Remove a lot of Since annotations
...
4.0 will represent a clean epoch. We don't want to have
lots of noise in the docs about 2.x or 3.x.
2018-06-25 19:55:04 -04:00
Benjamin Otte
73b4a62f51
snapshot: Redo debug messages
...
Instead of every snapshot function having debug messages, have an
explicit gtk_snapshot_push_debug() function that appends a debug node.
2018-04-24 04:06:58 +02:00
Marco Trevisan (Treviño)
c15b64b720
stack: protect set_visible_child_name from NULL stack
...
Return with error if gtk_stack_set_visible_child_name is called
with NULL parameter
(cherry picked from commit 2ee5aee4a9
)
2018-04-19 08:40:17 +00:00
Benjamin Otte
169203951b
widget: Remove clip from size-allocate vfunc
...
As the clip is no longer needed, get rid of it.
2018-04-05 14:56:38 +02:00
Benjamin Otte
e3a717363b
snapshot: Remove clip argument from gtk_snapshot_new()
...
It's not used anymore. And anybody who wants to have a clip on a
newly created snapshot can achieve that using gtk_snapshot_push_clip().
2018-04-05 14:56:38 +02:00
Benjamin Otte
e6d24f4c15
snapshot: Make gtk_snapshot_append_node() take care of offset
...
Push an offset node when append_node is called. That resets the offset.
2018-03-26 18:16:36 +02:00
Benjamin Otte
1cfa88ed91
snapshot: Remove renderer
...
Now that there's no longer a need to keep the renderer around for Cairo
rendering, don't do that then.
2018-03-24 21:57:20 +01:00
Alexander Larsson
63e060a21d
GtkWidget: Start renaming widget->window
...
This is an automated change doing these command:
git sed -f g gtk_widget_set_has_window gtk_widget_set_has_surface
git sed -f g gtk_widget_get_has_window gtk_widget_get_has_surface
git sed -f g gtk_widget_set_parent_window gtk_widget_set_parent_surface
git sed -f g gtk_widget_get_parent_window gtk_widget_get_parent_surface
git sed -f g gtk_widget_set_window gtk_widget_set_surface
git sed -f g gtk_widget_get_window gtk_widget_get_surface
git sed -f g gtk_widget_register_window gtk_widget_register_surface
git sed -f g gtk_widget_unregister_window gtk_widget_unregister_surface
git checkout NEWS*
2018-03-20 15:21:12 +01:00
Matthias Clasen
d55da3fd44
Use GtkSnapshot getters
...
We can avoid direct struct access and gtksnapshotprivate.h
everywhere.
2018-03-11 00:31:44 -05:00
Matthias Clasen
694f1d8ecd
Stop using stack-allocated snapshots
...
Use the new/free api instead of init/finish
for GtkSnapshot.
2018-03-11 00:31:44 -05:00
Matthias Clasen
4c150d8eb5
The big versioning cleanup
...
Remove all the old 2.x and 3.x version annotations.
GTK+ 4 is a new start, and from the perspective of a
GTK+ 4 developer all these APIs have been around since
the beginning.
2018-02-06 01:16:32 -05:00
Timm Bäder
1aa811ce12
Remove all gtk_widget_get_content_size usages
...
And remove the function itself. Make everything use gtk_widget_get_width
and gtk_widget_get_height instead.
2017-12-06 07:56:12 +01:00
Matthias Clasen
ffd6baec42
gtk: Intern css names
...
This avoids a bunch of strdups at startup.
2017-11-17 22:49:57 -05:00