Benjamin Otte
4eb077979f
widget: Don't grab focus when can-focus == false
...
... inside the default vfunc.
Instead, walk the children until we find the first widget that can be
focused. If no child can be focused, return FALSE from grab_focus.
2019-10-15 16:33:05 +02:00
Benjamin Otte
9c1b1eb894
widget: Insist that widgets are rooted to be focusable
...
This check was in the vfunc before, but it's a general rule, so apply it
before.
2019-10-15 16:33:05 +02:00
Benjamin Otte
14c34a7014
widget: Make grab_focus() fail on insensitive widgets
...
We can return FALSE early now instead of silently failing in
gtk_window_set_focus().
2019-10-15 16:33:05 +02:00
Benjamin Otte
427deb4f13
widget: Make gtk_widget_grab_focus() return a boolean
...
So now it can actually fail.
It doesn't yet though.
2019-10-15 16:33:05 +02:00
Benjamin Otte
01be7f0666
widget: Make gtk_widget_activate_action() return TRUE/FALSE
...
TRUE if an action was successfully activated, FALSE if it wasn't found.
2019-10-15 07:17:30 +02:00
Timm Bäder
c23afb2c86
widget: Compare adjusted sizes in size_allocate
2019-10-09 16:57:22 +02:00
Timm Bäder
d8c940325c
widget: Create finalize assertions in destroy()
2019-10-09 16:57:22 +02:00
Timm Bäder
355d3f070a
widget: Plug layout manager leak
2019-10-09 16:57:22 +02:00
Timm Bäder
8ec1c866e1
widget: Inline build_finalize_assertions into only caller
2019-09-11 08:12:31 +02:00
Alexander Larsson
73042bfc54
GtkWidget: Precompile template xml on class creation
...
Ideally we will precompile during build and store the result in the
resource, but if that doesn't happen at least we will only parse
the xml once.
2019-09-10 12:08:20 -04:00
Alexander Larsson
96b37f4eb8
Use the new GtkBuildableParser type in GtkBuildable interfaces
2019-09-10 12:08:20 -04:00
Timm Bäder
1339c425a8
widget: Queue an allocate on native widgets when changing opacity
...
This way the opacity change works on toplevel windows on wayland.
2019-09-09 17:36:25 +02:00
Timm Bäder
9952f72680
filechooserwidget: Properly watch for different display
...
The value returned by gtk_widget_get_settings() depends on the widget's
display, so watch for notify::display instead of using (un)root for
this.
Fixes the warnings seen when show a file chooser from the inspector.
2019-09-09 17:36:25 +02:00
Timm Bäder
0821d5b29d
widget: Clear up gtk_widget_class_install_property_action docs
2019-09-09 17:36:24 +02:00
Timm Bäder
b3cffc0516
widget: Remove reference to non-existent function
...
gtk_widget_class_install_stateful_action() does not exist.
2019-09-09 17:36:24 +02:00
Timm Bäder
80a58672d1
widget: Add some missing annotations to gtk_widget_class_query_action
2019-09-09 17:36:24 +02:00
Дилян Палаузов
6ded38de2b
Minor typos in the Documentation (a/an)
2019-08-25 12:52:46 +00:00
Timm Bäder
960e766206
widget: Don't duplicate events to translate coordinates
2019-08-15 16:23:01 +02:00
Timm Bäder
1c9fbe3773
widget: Remove captured event handler code
2019-08-15 16:23:01 +02:00
Mohammed Sadiq
55af84d359
widget: Fix a typo in documentation
2019-08-10 12:11:13 +05:30
Timm Bäder
509b781079
widget: Avoid a few type checks
2019-08-09 14:30:01 +02:00
Matthias Clasen
bda3c6c084
Merge branch 'wip/baedert/for-master' into 'master'
...
Improve the valgrind experience
See merge request GNOME/gtk!984
2019-07-09 19:39:13 +00:00
Robert Ancell
dbd2a81501
Change the few examples that use a full GTK_ enum value in .ui files.
...
Lowercase versions work just as well and are much more readable.
2019-07-08 15:52:28 +12:00
Timm Bäder
264d4bada6
widget: Remove queue_resize_no_redraw
...
We always invalidate the widget in size_allocate() anyway.
2019-07-07 07:43:08 +02:00
Timm Bäder
633172fd66
widget: Make queue_compute_expand() private
...
Nobody needs to call this anymore.
2019-07-07 07:36:29 +02:00
Timm Bäder
449c96ffb3
widget: Unref previous transform
2019-07-07 07:24:00 +02:00
Matthias Clasen
9768f35931
widget: Don't lose a layout manager ref
...
gtk_widget_set_layout_manager is transfer-full,
so we must give it a new reference from set_property
to implement object property semantics properly.
2019-07-03 09:18:41 -04:00
Matthias Clasen
895e8e25a8
widget: Implement GtkConstraintTarget
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
e7b2c530c5
Propagate rooting and unrooting widgets to layout managers
...
Layout managers may need to get access to data attached to the root of a
scene graph.
2019-06-30 23:42:44 +01:00
Matthias Clasen
2405e2711e
Add a non-varargs variant of activate_action
...
I recently turned gtk_widget_activate_action()
into a varargs function. That is more convenient
from C, but we need a non-varargs variant for
bindings. So add the old API back, under the
name gtk_widget_activate_action_variant(),
with a rename-to annotation.
2019-06-24 15:51:39 +00:00
Matthias Clasen
3acc014499
Make gtk_widget_activate_action better
...
As a convenience API, this should be easy to use,
so don't expect callers to manually create a
variant, do it for them.
Update all callers.
2019-06-23 22:51:55 +00:00
Matthias Clasen
3ebe30bf32
widget: create parent muxers lazily
...
We need to create a muxer eagerly for every
widget that has class actions, since those
are otherwise missed in the action lookup
on the muxer side. But otherwise, there is
no reason to create parent muxers aggressively,
as long as we update the parent muxers on
root/unroot.
This reduces the number of muxers we create
in widget-factory from 210 to around 50.
2019-06-23 17:59:41 +00:00
Matthias Clasen
203d612afd
widget: Clarify docs for action inheritance
...
Spell out how action inheritance works wrt to prefixes.
2019-06-22 19:17:30 -04:00
Matthias Clasen
1f0904d3df
widget: Teach query_action about property actions
...
This might be useful for documentation purposes.
2019-06-22 17:04:01 -04:00
Matthias Clasen
35a88c1440
widget: Rename a function
...
set_enabled is shorter and more to the point
than enabled_changed, now that we no longer have
a callback to query the state.
Adapt all callers.
2019-06-22 17:03:51 -04:00
Matthias Clasen
d1f4068b94
Replace stateful actions by property actions
...
The only cases of stateful actions we've seen
so far have been boolean properties, and we
don't really want to add much state handling
API, so lets just go with property actions
for now.
Adapt the only user in GtkText.
2019-06-22 17:03:38 -04:00
Matthias Clasen
7e73da5f73
widget: Add parameter type back to install_action
...
Adapt all callers.
2019-06-22 16:48:16 -04:00
Matthias Clasen
412006ad23
Add owner types for widget actions
...
This lets us filter out actions from parent classes
when introspecting.
2019-06-22 09:38:30 -04:00
Matthias Clasen
ea456b80da
Make actions minimally introspectable
...
This will let us autogenerate some docs for
actions, in the future.
2019-06-21 22:47:40 -04:00
Matthias Clasen
152eabbaba
widget actions: Add an explicit state type
...
Make the state type part of the API for installing
stateful widget actions. That lets us introspect it.
Update all callers.
2019-06-21 22:47:40 -04:00
Matthias Clasen
ef031e1a9d
Allow registering actions per-class
...
Add a facility to register and install actions
at class init time. The intended use for these
actions is for
a) context and other model-based menus
b) key bindings
Most of these actions are going to be stateless,
so add separate apis for the simple and stateful
cases.
We avoid creating an action group for these by
teaching the action muxer about these actions.
The action muxer also maintains the enabled
state for these actions.
2019-06-18 14:47:33 -04:00
Matthias Clasen
9b62da10e6
Give the action muxer a widget
...
This will be used in the future to obtain
widget class actions.
2019-06-18 06:12:50 -04:00
Matthias Clasen
cc667926d6
Drop gtk_widget_get_action_group
...
Ths api exposes too much of the internal
action muxer setup; we want to add actions
to the muxer without an action group.
2019-06-15 21:41:11 -04:00
Matthias Clasen
9bb2d1eb5c
widget: Remove gtk_widget_list_action_prefixes
...
This function was added just for the inspector,
and is not used there anymore. Drop it.
2019-06-15 21:40:38 -04:00
Matthias Clasen
21a5c7f0eb
layout managers: Handle native children
...
Add a convenience api to skip children
that should not be included in the layout,
and call gtk_native_check_resize on all
native children outside of the vfunc.
2019-06-11 14:52:30 -04:00
Matthias Clasen
ddee5cfc43
widget: Improve focus handling
...
Make gtk_widget_real_focus do the right
thing for focusable widgets with children.
A case where this is (now) relevant is
an entry with a context popover.
2019-06-11 17:14:49 +00:00
Matthias Clasen
c1791d030a
widget: Ignore natives for picking
...
The natives transforms are not set up properly
to make this work, so ignore them here, for now.
This my need to be revisited later.
2019-06-09 17:38:54 +00:00
Christian Hergert
828c36636c
va_marshaller: add various va_marshallers
...
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.
2019-06-06 15:30:42 -07:00
Matthias Clasen
0aa9e16294
Bring brink skip_allocate
...
This was removed by accident in 580aa8204f
,
together with some no longer needed popover
special-casing.
2019-06-05 00:31:53 +00:00
Timm Bäder
88344ccf4e
widget: Unref priv->{allocated_,}transform
2019-06-03 17:03:02 +02:00