Commit Graph

34659 Commits

Author SHA1 Message Date
Benjamin Otte
f9ee703af4 bindings: Split out function to invoke an action signal
We want to use that in shortcuts later.
2020-03-25 22:36:03 -04:00
Benjamin Otte
a232107122 shortcutcontroller: Introduce
This is a very barebones controller that currently does nothing but
activate the binding signals. Yay.

And because we have bindings on every widget (Yes, a GtkGrid has a
keybinding - 2 in fact), we need that controller everywhere.
2020-03-25 22:36:03 -04:00
Benjamin Otte
27834b04ae bindings: Make gtk_binding_parse_signal() use GVariantBuilder
And because it's the last user of GtkBindingArg and
gtk_binding_entry_add_signall(), also remove those two.
2020-03-25 22:36:03 -04:00
Benjamin Otte
cbe207a8de bindings: Parse into GVariantBuilder directly
Avoids the indirection via GtkBindingArg
2020-03-25 22:36:03 -04:00
Benjamin Otte
1cab5e03ca bindings: Add gtk_binding_entry_add_signal_variant()
This function is the replacement for
gtk_binding_entry_add_signall().

The GVariant will be demarshalled and passed to the action signal upon
binding activation. The same rules apply as used to apply for
GtkBindingArg, in that long, double and string args are now replaced by
"x", "d" and "s" variant types.
2020-03-25 22:36:03 -04:00
Benjamin Otte
f8c523fa72 bindings: Replace GtkBindingArg arguments with GVariant
So far, this only replaces invocation, not yet parsing.
2020-03-25 22:36:03 -04:00
Matthias Clasen
e17db0abde Merge branch 'matthiasc/for-master2' into 'master'
Matthiasc/for master2

See merge request GNOME/gtk!1568
2020-03-26 02:30:54 +00:00
Emmanuele Bassi
a9c3a33620 passwordentry: Remove unused include 2020-03-25 21:53:12 -04:00
Emmanuele Bassi
f61d520ab1 entry: Remove unused include 2020-03-25 21:53:06 -04:00
Matthias Clasen
7672e6c833 text view: Fix touch selection
We forgot to allocated that popover.
2020-03-25 18:48:01 -04:00
Matthias Clasen
faf61cd112 event controller focus: drop include
This header is not needed here, and it is going away.
2020-03-25 18:47:54 -04:00
Matthias Clasen
1308ecb0ae flattenlistmodel: Give access to child models
Add an api to retrieve the model containing a given
item in a flatten listmodel. This is useful when the
individual items in the list don't have backpointers.
2020-03-25 18:47:46 -04:00
Matthias Clasen
4f6096947e Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master

See merge request GNOME/gtk!1565
2020-03-25 21:48:38 +00:00
Matthias Clasen
8493ebfe98 filechoosererrorstack: Fix object life-cycle
Unparent children in dispose, not in finalize.
2020-03-25 17:04:29 -04:00
Christian Hergert
b5b836668a muxer: force muxer dispoal as part of widget dispose
We need to cleanup state here immediately so that we do not potentially
access the g_class private data after it been finalized. This ensures that
the borrowed reference is dropped by the muxer.
2020-03-25 14:02:59 -07:00
Timm Bäder
c155ac98c8 Merge branch 'wip/sadiq/fix-leak' into 'master'
singleselection: Fix a memory leak

See merge request GNOME/gtk!1554
2020-03-25 09:13:50 +00:00
Timm Bäder
600952e295 magnifier: Don't try to use a null widget paintable
We destroy the paintable in dispose, which can be called multiple times.
2020-03-24 10:44:06 +01:00
Timm Bäder
3b2adf5d1f inspector: Fix child widget life cycle
unparent them in dispose
2020-03-24 10:44:06 +01:00
LingMan
29c9776daa gtkfilechoosernative: Remove duplicate "the" in the documentation 2020-03-24 04:58:13 +00:00
Mohammed Sadiq
cfc44e09a0 singleselection: Fix a memory leak 2020-03-22 14:05:56 +05:30
Matthias Clasen
dabd09bc42 a11y: Don't re turn uninitialized memory
For some reason, this was now showing up in the
a11y tests as random image sizes in the about
dialog test.
2020-03-21 21:44:23 -04:00
Matthias Clasen
95209290c4 file chooser: Fix the rename file popover
Make this popover work again by attaching it
to the file chooser itself.
2020-03-21 20:14:23 -04:00
Matthias Clasen
90197240d3 filechooser: Fix the file list popover
Make this popover work again.
2020-03-21 20:00:15 -04:00
Matthias Clasen
6555a2f661 filechooser: Fix the new folder popover
We were listening for change notification on a
no-longer-existing property.
2020-03-21 19:32:08 -04:00
Matthias Clasen
a197b202b8 places sidebar: Fix the popovers
We need to check-resize the popovers.
2020-03-21 18:28:57 -04:00
Bastien Nocera
e99d1605dc filechoosernativeportal: Allowing selecting folder(s)
Use the "directory" portal option when asked to select folders.
2020-03-21 15:46:05 -04:00
Matthias Clasen
245851a6bb portal file chooser: Handle errors
Fall back to showing a local file chooser
if we get DBus errors from the portal.

Closes: #2527
2020-03-21 13:16:43 -04:00
Matthias Clasen
bb3dc16680 Merge branch 'fix-inspector-picking' into 'master'
inspector: Make picking work again

Closes #2528

See merge request GNOME/gtk!1549
2020-03-21 16:21:51 +00:00
Matthias Clasen
fd58b116cf inspector: Make picking work again
We used to either make the inspector see- and click-thru
or lower it, but sadly translucency broke after we
removed surface opacity, and lowering doesn't work
on Wayland. So just hide the inspector window while
we are picking.

Fixes: #2528
2020-03-21 09:42:58 -04:00
Matthias Clasen
9259efb5d7 Make overline support conditional
The ci image does not have Pango 1.45, so for the
time being, make the overline support conditional
on Pango being new enough.
2020-03-21 01:18:54 -04:00
Matthias Clasen
795ef5b4e3 textbuffer: Parse overline and hyphenation attributes
When inserting Pango markup into a text buffer, translate
Pango attributes for overlines and hyphenation control
into the corresponding text tag properties.
2020-03-20 23:58:23 -04:00
Matthias Clasen
fd9c911c3a textlayout: Handle new text tag properties
Translate tag properties for overlines and
hyphenation control into Pango attributes.
2020-03-20 23:58:23 -04:00
Matthias Clasen
a8c6ae6085 texttag: Support overline and hyphenation control
Add support for recently added Pango attributes
for overlines and hyphenation control. The new
properties of GtkTextTag are
overline, overline-rgba, allow-breaks, show-spaces
and insert-hyphens.
2020-03-20 23:58:23 -04:00
Carlos Garnacho
28e7a0a565 Merge branch 'master_MR1290' into 'master'
Copy of !1290 for master

Closes #2365

See merge request GNOME/gtk!1546
2020-03-20 20:20:41 +00:00
Christian Hergert
ccac404f28 widget: fix class private data usage to be _init() safe
Before this commit, adding GtkWidgetAction to class private data would
require copying the actions to each subclass as they were built or
modified. This was convenient in that it is a sort of "copy on write"
semantic.

However, due to the way that GTypeInstance works with base _init()
functions, the "g_class" pointer in GTypeInstance is updated as each
_init() function is called. That means you cannot access the subclasses
class private data, but only the parent class private data.

If instead we use a singly linked list of GtkWidgetAction, each subclass
has their own "head" yet all subclasses share the tail of the
GtkWidgetAction chain.

This creates one bit of complexity though. You need a stable way to know
which "bit" is the "enabled" bit of the action so we can track enabled
GAction state. That is easily solved by calculating the distance to the
end of the chain for a given action so that base classes sort ahead of
subclasses. Since the parent class always knows its parent's actions, the
position is stable.

A new dynamic bitarray helper also helps us avoid allocations in all the
current cases (up to 64 actions per widget) and dynamically switches to
malloc if that is to ever be exceeded.
2020-03-20 11:17:56 -07:00
Christian Hergert
6822dce8fb widget: move class private data to gtkwidgetprivate.h
We want access to the private data from the action muxer so we can just
move the structures to the gtkwidgetprivate.h header. Alternatively we
could create accessors, but given that we'll probably need to use this
in other areas, seems reasonable to just put it there.
2020-03-20 11:17:56 -07:00
Alexandr Miloslavskiy
32f088e335 gkimmulticontext: Fix crash due to leaked signal handler
The problem is caused by gtk_im_multicontext_set_slave(), which forgets
to disconnect these signal handlers:
* gtk_im_multicontext_retrieve_surrounding_cb
* gtk_im_multicontext_delete_surrounding_cb

If slave GtkImContext emits signal after GtkIMMulticontext context is
destroyed, this leads to reading freed memory, sometimes causing a crash.

Fixes: #2365
2020-03-20 18:02:22 +01:00
Carlos Garnacho
23f03ca1f2 gtktextview: Set magnifier popover on top
At the bottom, it sometimes has to fight for the same position than
text handles, besides might not be ergonomically convenient (eg.
finger/hand partly covering the popover). Move it at the top to fix
both.
2020-03-20 15:52:19 +01:00
Carlos Garnacho
54a4a18bcf gtktext: Set magnifier popover on top
At the bottom, it sometimes has to fight for the same position than
text handles, besides might not be ergonomically convenient (eg.
finger/hand partly covering the popover). Move it at the top to fix
both.
2020-03-20 15:52:19 +01:00
Carlos Garnacho
9a0b70fc84 gtkpopover: Re-present surface if position/pointing-to change while visible
This ensures the popover will follow the new position parameters. This is
necessary for popovers like the text magnifier that can be repositioned
while visible.
2020-03-20 15:52:19 +01:00
Carlos Garnacho
6431bdcf91 gtkpopover: Ensure the pointed to rectangle has a minimum w/h
On wayland, protocol errors will be raised if the rectangle width/height
are 0. Avoid that situation so it's valid to all popovers.
2020-03-20 15:52:19 +01:00
Carlos Garnacho
0f73e83f44 gtkwindow: Remove internal popover API
This was only used by text handles, and not anymore.
2020-03-20 15:52:19 +01:00
Carlos Garnacho
0264a64f29 gtktexthandle: Refactor and use native surfaces
Instead of being a GObject managing two GtkWidgets, make GtkTextHandle
a GtkWidget subclass, representing a single handle.

From the perspective of users (GtkText and GtkTextView), this is not a
big leap since they have to be aware of a great deal of text handles'
state. It actually makes things more direct and simple.

With text handles being widgets, those can be actual children of the
widget, and may have their own GdkSurface that we move around at will.
This is the second major aspect of this refactor.
2020-03-20 15:52:19 +01:00
Matthias Clasen
31db615885 Revert "Merge branch 'disable-window-test' into 'master'"
This reverts commit 3ac4c76b18, reversing
changes made to 6ec96d2e98.
2020-03-19 18:03:16 -04:00
Matthias Clasen
7d5cfcf61d Fix a compiler warning 2020-03-19 14:13:26 -04:00
Matthias Clasen
fcab0943bf text view: Fix touch selection
We forgot to allocated that popover.
2020-03-19 09:46:53 -04:00
Matthias Clasen
c8fd6407a8 widget: Drop the ::popup-menu signal
This is now done in widgets which have context
menus.
2020-03-19 00:56:46 -04:00
Matthias Clasen
53f29ba427 placesview: Stop using ::popup-menu
This signal is going away.
2020-03-19 00:54:23 -04:00
Matthias Clasen
eb3f4b302f filechooser: Stop using ::popup-menu
This signal is going away.
2020-03-19 00:24:53 -04:00
Matthias Clasen
59df45f3f7 mountoperation: Stop using ::popup-menu
We can just use a shortcut controller directly.
2020-03-18 23:00:51 -04:00
Matthias Clasen
f40965cc40 colorchooser: Stop using ::popup-menu
This signal is going away. Use an action instead.
2020-03-18 23:00:51 -04:00
Matthias Clasen
ab9b094f80 range: Remove ::popup-menu emission
This signal is going away, and having context menus
on sliders is not really a thing anyway.
2020-03-18 23:00:51 -04:00
Matthias Clasen
4bc60c6110 scrollbar: Remove :popup-menu forwarding
This signal is going away.
2020-03-18 23:00:51 -04:00
Matthias Clasen
48ace13635 emojichooser: Stop using ::popup-menu
This signal is going away. Use an action instead.
2020-03-18 23:00:51 -04:00
Matthias Clasen
908d996b4f Use an action for the context menu keybinding
The ::popup-menu signal is going away.
2020-03-18 23:00:51 -04:00
Matthias Clasen
4e263b4042 Print mnemonic triggers clearly 2020-03-18 23:00:51 -04:00
Matthias Clasen
f5134a833c inspector: Show shortcuts
At a tab that lists the shortcuts contained in a
GtkShortcutController.
2020-03-18 23:00:51 -04:00
Matthias Clasen
f7021e80a7 Only create a class shortcut controller if we have shortcuts
No point in creating objects that just hold empty lists.
2020-03-18 23:00:51 -04:00
Matthias Clasen
3e7d49a8d3 widget: Name the controllers 2020-03-18 23:00:51 -04:00
Matthias Clasen
5a6533d8fb window: Name the the controllers 2020-03-18 23:00:51 -04:00
Matthias Clasen
5a6a9dc149 shortcutmanager: Name the controllers
This is helpful in the inspector.
2020-03-18 23:00:51 -04:00
Matthias Clasen
ad69899a9d Move shortcut manager initialization code
It is just too ugly to use quarks across multiple
source files, so add a private helper function that
attaches the controllers.
2020-03-18 23:00:51 -04:00
Benjamin Otte
3cf56817e7 filechooser: Trigger the location popup via bindings
Simplifies code quite a bit.
2020-03-18 23:00:51 -04:00
Benjamin Otte
ff6df33b6a accels: Remove GtkAccelGroup 2020-03-18 23:00:51 -04:00
Benjamin Otte
17d9ba362c widget: Remove gtk_widget_add_accelerator()
People should use shortcut controllers instead (global, capture).

A side effect of this is that GtkAccelLabel now lost its method to
magically look up accelerators to display. Somebody needs to add that
back later.
2020-03-18 23:00:51 -04:00
Benjamin Otte
29ced09dc4 shortcutcontroller: Implement GtkBuildable
Use it to allow adding shortcuts to the controller via the usual <child>
method.
2020-03-18 23:00:51 -04:00
Benjamin Otte
458fcba457 shortcutaction: INtegrate with GtkBuilder property parsing
<property name="action">action(win.quit)</property> style action
specifications now work for GtkShortcutAction properties.
2020-03-18 23:00:51 -04:00
Benjamin Otte
5218dd6a34 shortcuttrigger: Add gtk_shortcut_triger_new_parse_string()
And hook it up into the GtkBuilder infrastructure.
2020-03-18 23:00:51 -04:00
Benjamin Otte
df792a088d application: Replace accelerator handling with shortcuts
API remains the same, but activation is now done via a
shortcutcontroller.

The code uses a controller with global scope so that the
shortcuts are managed with all the other global shortcuts.
2020-03-18 23:00:51 -04:00
Benjamin Otte
94ef20ea36 accel: Add display arg to gtk_accelerator_parse_with_keycode()
It was using the default display unconditionally.
2020-03-18 23:00:51 -04:00
Benjamin Otte
87df17e4ce accelerators: Make gtk_accelerator_parse() return TRUE/FALSE
A parse function should return success or not. So do that.
2020-03-18 23:00:51 -04:00
Benjamin Otte
673a0463e0 shortcuttrigger: Add hash(), equal(), and compare() functions
Those are useful for putting triggers in hash tables or getting sorted
output.
2020-03-18 23:00:51 -04:00
Benjamin Otte
0c81698911 shortcuts: Mananage managed shortcuts with a custom model
Reduce the amount of special casing by using a list model
for global and managed shortcuts, too.

This way, the ListModel API will work for the ShortcutController in the
GtkShortcutManager and GtkRoot.

The only special case remaining is shortcut activation, which needs to
pass the right widget to the controller in the global/managed case.
2020-03-18 23:00:51 -04:00
Benjamin Otte
a10a295515 shortcutaction: Add gtk_shortcut_action_to_string()
For all but the callback action, we can print something useful.
2020-03-18 23:00:51 -04:00
Benjamin Otte
3b595f5720 widget: Keep keybindings as a GListStore
This way, we can use shortcut_controller_new_for_model() and avoid all
the special casing about run_class.
2020-03-18 23:00:51 -04:00
Benjamin Otte
d14807b93d shortcutcontroller: Add gtk_shortcut_controller_new_for_model()
This is mainly for internal use, but I can't see a reason to not have it
public for people who want to maintain their own lists.

I'm sure gnome-builder will never ever find a way to misuse it.
2020-03-18 23:00:51 -04:00
Benjamin Otte
538a1a0461 shortcutcontroller: Implement GListModel
After all, this controller is a list of shortcuts.
2020-03-18 23:00:51 -04:00
Benjamin Otte
4a4bfa0766 shortcut: Change the API for creating shortcuts
When creating shortcuts, there almost always are a trigger and an action
available for use. So make gtk_shortcut_new() take those as arguments.

Also add gtk_shortcut_new_with_arguments() so people can easily pass
those in, too.
2020-03-18 23:00:51 -04:00
Benjamin Otte
e6d0560a82 shortcut: Add GtkShortcutAction
Similar to GtkShortcutTrigger, GtkShortCutAction provides all the
different ways to activate a shortcut.

So far, these different ways are supported:

 - do nothing
 - Call a user-provided callback
 - Call gtk_widget_activate()
 - Call gtk_widget_mnemonic_activate()
 - Emit an action signal
 - Activate an action from the widget's action muxer
 - Activate a GAction
2020-03-18 23:00:51 -04:00
Benjamin Otte
4d0bab0c24 accelgroup: Remove unneeded APIs
After the removal of GtkAccelMap, these things are no longer necessary.
2020-03-18 23:00:51 -04:00
Emmanuele Bassi
b28da74e90 gtk: Remove GtkAccelMap
Now that accel paths are gone, the object managing them isn't needed
anymore either.
2020-03-18 23:00:51 -04:00
Benjamin Otte
ba3882de83 gtk: Remove accel paths
It's an outdated technology now that everybody is using GActionGroups.

If somebody wanted to support changeable shortcuts, they'd need to
reintroduce it in another way.
2020-03-18 23:00:51 -04:00
Benjamin Otte
20cfa2e280 Remove GtkMnemonicHash
It's not used anymore.
2020-03-18 23:00:51 -04:00
Emmanuele Bassi
a977094e18 window: Remove all old mnemonic handling API 2020-03-18 23:00:51 -04:00
Emmanuele Bassi
09400b6bfe Add GtkShortcutManager
This adds an interface for taking care of shortcut controllers with
managed scope.

Only GtkWindow currently implements this interface, so we need to ensure
that we check if any top-level widget we reach is a shortcuts manager
before we call into it.
2020-03-18 23:00:50 -04:00
Benjamin Otte
bbe98d9f7c label: Implement mnemonics using shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
ab681b0e05 shortcut: Add gtk_shortcut_set_mnemonic_activate()
Makes the shortcut call gtk_widget_mnemonic_activate() upon activation.
2020-03-18 23:00:50 -04:00
Benjamin Otte
ef40f22632 shortcuttrigger: Add support for mnemonics
Mnemonics need to be triggered with help from the controllers (who
determine the modifiers). Support for that has been added, too.

Mnemonics do not use this yet though.
2020-03-18 23:00:50 -04:00
Benjamin Otte
bea2dcef8f window: Put F10 accelerator into its own shortcut controller
So instead of relying on gtk_window_activate_key(), it's now using
proper infrastructure.
2020-03-18 23:00:50 -04:00
Benjamin Otte
cc13b47542 window: Get rid of public APIs that shouldn't be
Event controllers should have replaced all of them.
And if they haven't, apps need to fix their code (I'm
looking at you Gimp).
2020-03-18 23:00:50 -04:00
Benjamin Otte
8c23ccd86e gdk: Remove GDK_RELEASE_MASK
It was only ever supported by keybindings and those are gone now.
2020-03-18 23:00:50 -04:00
Benjamin Otte
d4127fe0d4 shortcutcontroller: Add GtkShortcutScope
Allow setting the scope for a controller. The scope determines at what
point in event propagation the shortcuts will be activated.

Local scope is the usual activation, global scope means that the root
widget activates the shortcuts - ie they are activated at the very
start of event propagation (for global capture events) or the very end
(for global bubble events).
Managed scope so far is unimplemented.

This is supposed to be used to replace accelerators and mnemonics.
2020-03-18 23:00:50 -04:00
Benjamin Otte
22801f0d4d shortcuttrigger: Add gtk_shortcut_trigger_to_label()
Provide a user-presentable string.
2020-03-18 23:00:50 -04:00
Benjamin Otte
e050288d07 accelgroup: Add gtk_accel_group_print_label() 2020-03-18 23:00:50 -04:00
Benjamin Otte
93af53a2fc accellabel: Move gtk_accelerator_get_label() code
The function lives in gtkaccelgroup.c, so there's no need to have that
call a private function in another source file. Instead, make that
other source file call gtk_accelerator_get_label() instead.
2020-03-18 23:00:50 -04:00
Benjamin Otte
e2a0ed4fcb accellabel: Get rid of class variables
We can just look them up as-needed, no need to cache them.
2020-03-18 23:00:50 -04:00
Benjamin Otte
fb99f834e6 gtk: Remove bindings
The whole binding functionality is now handled by shortcuts.
2020-03-18 23:00:50 -04:00
Matthias Clasen
a062b96051 event controller focus: drop include
This header is not needed here, and it is going away.
2020-03-18 23:00:50 -04:00
Emmanuele Bassi
5033fc62f2 Remove bindings activation from GtkEventControllerKey
We're going to use shortcuts soon.
2020-03-18 23:00:50 -04:00
Emmanuele Bassi
bdde072c06 popover: Remove unused include 2020-03-18 23:00:50 -04:00
Matthias Clasen
f7a4d968e9 popover: Add keynav keybindings
The shortcut controllers are limited to same-native,
so we need to duplicate the Tab and arrow key bindings
for focus handling, as well as the Enter bindings for
activation.
2020-03-18 23:00:50 -04:00
Emmanuele Bassi
252030ba59 popovermenu: Port to shortcuts 2020-03-18 23:00:50 -04:00
Emmanuele Bassi
f24cf29326 passwordentry: Remove unused include 2020-03-18 23:00:50 -04:00
Emmanuele Bassi
9b1d593967 entry: Remove unused include 2020-03-18 23:00:50 -04:00
Benjamin Otte
4e3ac8f52b accelgroup: Actually have a default mod mask
Don't just use a value without initializing it.
2020-03-18 23:00:50 -04:00
Benjamin Otte
7f10641fd9 treeview: Redo event forwarding hack
Reorder the event controllers so that key forwarding to the search
entries really happens after shortcut triggering.
2020-03-18 23:00:50 -04:00
Benjamin Otte
3ef6be0d25 combobox: Redo key event forwarding hack
Instead of manualling invoking bindings, we now reorder event
controllers inside the treemenu, so that shortcuts run before the event
forwarding.
2020-03-18 23:00:50 -04:00
Emmanuele Bassi
56595e7529 widget: Add private accessor to event controllers 2020-03-18 23:00:50 -04:00
Benjamin Otte
4b798e238f iconview: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
718faf68ac infobar: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
83dc9dabed label: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
051f7e4118 listbox: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
cbeb096bb3 notebook: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
bf7c51cc11 scale: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
3803209330 scalebutton: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
fb7d1095d1 scrolledwindow: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
45ec453b76 searchentry: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
e4d628b410 shortcutssection: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
e11d799460 shortcutswindow: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
6e38af4429 flowbox: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
a70635f760 paned: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
2c91f15f6d spinbutton: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
bad5ee7ed9 textview: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
277aaab041 filechooserwidget: Port bindings to use shortcuts 2020-03-18 23:00:50 -04:00
Benjamin Otte
5ade831cd1 shortcutcontroller: Add gtk_shortcut_controller_add_shortcut()
... and gtk_shortcut_controller_remove_shortcut().
2020-03-18 23:00:50 -04:00
Benjamin Otte
3b8a4340da shortcutcontroller: Add private API for running class shortcuts
We don't want regular users to be able to run class shortcuts in their
controllers, so we have to special case that.
2020-03-18 23:00:49 -04:00
Benjamin Otte
ae11b29ee7 treeview: Port bindings to use shortcuts 2020-03-18 23:00:49 -04:00
Benjamin Otte
ac31979805 widget: Port bindings to use shortcuts 2020-03-18 23:00:49 -04:00
Benjamin Otte
0b4d0f4d31 dialog: Port binding to use shortcuts 2020-03-18 23:00:49 -04:00
Emmanuele Bassi
00bc9e6b85 text: Port to widget shortcuts 2020-03-18 23:00:49 -04:00
Emmanuele Bassi
d75fd59ddf Allow installing bindings bound to actions
This is just convenience code around GtkShortcut, just like bindings for
signal emission and callback invocation.
2020-03-18 23:00:49 -04:00
Emmanuele Bassi
84a52e3bbd shortcut: Add action activation 2020-03-18 23:00:49 -04:00
Emmanuele Bassi
9687d69b5a bindings: Export action activation internally
We're going to use it, just like we use the signal emission code.
2020-03-18 23:00:49 -04:00
Benjamin Otte
b18f9da807 shortcut: Add gtk_shortcut_set_callback()
... and gtk_widget_class_add_binding() to go with it.

This allows shortcuts to invoke manually added callbacks.
2020-03-18 23:00:49 -04:00
Benjamin Otte
6c13bbb441 combobox: Port bindings to use shortcuts 2020-03-18 23:00:49 -04:00
Benjamin Otte
4f128a4a21 assistant: Port bindings to use shortcuts 2020-03-18 23:00:49 -04:00
Benjamin Otte
e62154c91f trigger: Add an alternative trigger
And use it.

I just added it to GtkWidget just to show that I can.
The real reason I want it is for gamepad/joystick triggers
in games, so that it becomes possible to select 2 different
triggers (gamepad and keyboard) for the same shortcut.
2020-03-18 23:00:49 -04:00
Matthias Clasen
78f9940ddc shortcut: Add GtkShortcutTrigger
Triggers are meant to describe how to trigger a shortcut.
So far only a keyval + modifiers trigger exists.
2020-03-18 23:00:49 -04:00
Benjamin Otte
0f6c5da28d window: Port bindings to use shortcuts 2020-03-18 23:00:49 -04:00
Benjamin Otte
c7f10e570e bindings: Add more variant types
Also marshal types that the code in gtkbindings.c doesn't use. These
will be used by gtk_widget_class_add_binding_signal().
2020-03-18 23:00:49 -04:00
Benjamin Otte
e19b49f5aa widget: Add gtk_widget_class_add_shortcut()
This allows adding shortcuts as a replacement for keybindings.
2020-03-18 23:00:49 -04:00
Benjamin Otte
ff13ee4b66 gtk: Add GtkShortcut
This is the base class for what is about to take over all sorts of
keyboard shortcuts. The initial version barely deals with keybindings.
2020-03-18 23:00:49 -04:00
Benjamin Otte
fed7d3833f bindings: Split out function to invoke an action signal
We want to use that in shortcuts later.
2020-03-18 23:00:49 -04:00
Benjamin Otte
5c6be5c0cd shortcutcontroller: Introduce
This is a very barebones controller that currently does nothing but
activate the binding signals. Yay.

And because we have bindings on every widget (Yes, a GtkGrid has a
keybinding - 2 in fact), we need that controller everywhere.
2020-03-18 23:00:49 -04:00
Benjamin Otte
06660874ee bindings: Make gtk_binding_parse_signal() use GVariantBuilder
And because it's the last user of GtkBindingArg and
gtk_binding_entry_add_signall(), also remove those two.
2020-03-18 23:00:49 -04:00
Benjamin Otte
4675d74e42 bindings: Parse into GVariantBuilder directly
Avoids the indirection via GtkBindingArg
2020-03-18 23:00:49 -04:00
Benjamin Otte
3b3a5c2d53 bindings: Add gtk_binding_entry_add_signal_variant()
This function is the replacement for
gtk_binding_entry_add_signall().

The GVariant will be demarshalled and passed to the action signal upon
binding activation. The same rules apply as used to apply for
GtkBindingArg, in that long, double and string args are now replaced by
"x", "d" and "s" variant types.
2020-03-18 23:00:49 -04:00
Benjamin Otte
385c5e0569 bindings: Replace GtkBindingArg arguments with GVariant
This only replaces invocation, not yet parsing.
2020-03-18 23:00:49 -04:00
Christian Hergert
6c8d47f585 textbtree: short-circuit visibility check when possible
If we have never seen a GtkTextTag in the GtkTextTagTable with the
invisible bit set, then we do not need to go through the process of
checking the accumulated tags.

Not using invisible tags is overwhelmingly the common case.
2020-03-18 11:32:46 -07:00
Matthias Clasen
1bc1b82256 Merge branch 'wip/jimmac/adwaitadark-lighten-switches' into 'master'
Adwaita: dark switches/check/radios

Closes #2461

See merge request GNOME/gtk!1532
2020-03-18 12:28:15 +00:00
Matthias Clasen
89c0df6cb7 Merge branch 'wip/chergert/textview-fix-gdk_event_unref' into 'master'
textview: use gdk_event_unref()

Closes #2520

See merge request GNOME/gtk!1531
2020-03-18 12:27:08 +00:00
Jakub Steiner
c91dd2cb45 Adwaita: dark switches/check/radios
- lighten up radios, switches and checkboxes

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/2461
2020-03-18 13:01:17 +01:00
Matthias Clasen
3408ff1dd7 emojichooser: Fix keynav
Make arrow and tab keys work in the
variations popover again.
2020-03-17 21:49:29 -04:00
Matthias Clasen
7a46157edf window: Set min size properly
When we are mapping the window, we need to compute
a proper min size, otherwise the 1, 1 sticks and
makes all windows shrinkable to nothing.
2020-03-17 20:46:57 -04:00
Matthias Clasen
01568dc915 Revert "Adwaita: dark switches/check/radios"
This reverts commit 435992600f.

This causes warnings from the CSS parser.
2020-03-17 20:32:23 -04:00
Matthias Clasen
6eb848f0e0 popover: Add keynav keybindings
The shortcut controllers are limited to same-native,
so we need to duplicate the Tab and arrow key bindings
for focus handling, as well as the Enter bindings for
activation.
2020-03-17 20:15:26 -04:00
Christian Hergert
e4578b15c3 textview: use gdk_event_unref()
Fixes #2520
2020-03-17 13:24:03 -07:00
Jakub Steiner
435992600f Adwaita: dark switches/check/radios
- lighten up radios, switches and checkboxes

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/2461
2020-03-17 11:03:28 +01:00
Matthias Clasen
5d4b46b2d8 Merge branch 'emoji-chooser-fixes' into 'master'
Emoji chooser fixes

See merge request GNOME/gtk!1530
2020-03-17 05:12:12 +00:00
Matthias Clasen
292cea7310 Adwaita: Fix focus in emoji chooser 2020-03-17 00:28:57 -04:00
Matthias Clasen
4d7f0f330b emojichooser: Make the variation picker work again
We can't attach popovers to unsuspecting widget anymore.
2020-03-17 00:07:37 -04:00
Robert Mader
5343ec3345 imcontextwayland: Honour len argument in gtk_im_context_wayland_set_surrounding
Clients may pass not `NULL`-terminated strings as the function takes a
`len` argument. Use that argument.
2020-03-16 16:53:33 +01:00
Matthias Clasen
c9ec1c6af1 Drop focus-related properties
We don't use these, and they are only implemented on X11.
2020-03-14 19:28:00 -04:00
Matthias Clasen
6f156dad7f window: Drop keep above/below 2020-03-14 15:16:56 -04:00
Matthias Clasen
fb7ef8f62c window: Drop sticky
This is an X11-only concept that we don't have
on Wayland.
2020-03-14 14:34:39 -04:00
Matthias Clasen
dfda88038e window: Drop gtk_window_set_attached_to
We are no longer attaching windows to widgets.
2020-03-14 02:00:10 -04:00
Matthias Clasen
66a0a8d53e Merge branch 'wip/baedert/test-cflags' into 'master'
Pass (almost) all our cflags to tests, testsuite, examples, demos, ...

See merge request GNOME/gtk!1516
2020-03-13 18:40:46 +00:00
Matthias Clasen
c5076675aa a11y: Drop the private from GtkPopoverAccessible
It is not used, and empty structs upset msvc.
2020-03-13 09:51:04 -04:00
Matthias Clasen
9d98707f66 Merge branch 'present-toplevel-2' into 'master'
surface api splitup

See merge request GNOME/gtk!1511
2020-03-13 13:34:57 +00:00
Bastien Nocera
179b39eb86 Merge branch 'wip/hadess/fix-remote-filechooser-main' into 'master'
Fix crasher/warnings when browsing remote filesystems

Closes #2482

See merge request GNOME/gtk!1490
2020-03-13 12:36:10 +00:00
Matthias Clasen
19e2ab76ce win32: Build fixes
These fixes were done blindly, to make the ci pass,
and will need review by somebody with access to an
actual win32 system to make sure the surface subtypes
are implemented properly.
2020-03-13 07:47:48 -04:00
Matthew Leeds
1963ff2951 gtk: Tweak GTK_ALIGN_BASELINE docs 2020-03-12 12:36:09 -07:00
Matthias Clasen
81be6ff46b Move edge-constraints to GdkToplevel 2020-03-12 15:30:11 -04:00
Matthias Clasen
412a593618 widget: Stop using gdk_surface_set_opacity 2020-03-12 14:56:21 -04:00
Matthias Clasen
ceefe34027 gtkdragicon: Use drag surface api 2020-03-12 14:56:21 -04:00
Matthias Clasen
f90c0ccaf0 a11y: Stop using gdk_surface_get_state 2020-03-12 14:56:20 -04:00
Matthias Clasen
6edff8cd67 gtk: use toplevel state getter 2020-03-12 14:56:20 -04:00
Matthias Clasen
9266881691 window: Use GdkToplevel 2020-03-12 14:56:20 -04:00
Timm Bäder
822d67295a Replace a few more fallthrough comments 2020-03-12 08:32:03 +01:00
Matthias Clasen
11c91065cf window: Drop type hints 2020-03-11 19:36:04 -04:00
Matthias Clasen
2ae3b46ee9 Stop setting type hints for dialogs 2020-03-11 19:36:04 -04:00
Matthias Clasen
ef9d7612f6 shortcutswindow: Stop setting type hints 2020-03-11 19:36:04 -04:00
Matthias Clasen
66669e0573 headerbar: Stop looking at type hints 2020-03-11 19:36:04 -04:00
Matthias Clasen
ec0fb44958 a11y: Stop using type hints 2020-03-11 19:35:56 -04:00
Matthias Clasen
b2ae6ce8ff surface: Rename gdk_surface_input_shape_combine_region
There is no shape combining going on anymore, so
call this just gdk_surface_set_input_region, and
remove the offset arguments too. All callers pass
0 anyway.

Update all callers and implementations.
2020-03-11 19:35:56 -04:00
Matthias Clasen
513eb11c7c inspector: Stop raising and lowering windows
We should always be composited, so this should not
matter in practice.
2020-03-11 19:35:56 -04:00
Matthias Clasen
4e8dfdff2e tooltip: Use GdkPopup 2020-03-11 19:35:55 -04:00
Matthias Clasen
b670bf54f7 popover: Use GdkPopup 2020-03-11 19:35:55 -04:00
Matthias Clasen
78d71eb439 Simplify surface move/drag api
Drop the with_device variants, and always pass a device.
2020-03-11 19:35:55 -04:00
Matthias Clasen
6f36d9865e Drop gtk_window_begin_move/resize_drag
These are just simple wrappers around GdkSurface
api, and we don't need them.
2020-03-11 19:35:55 -04:00
Emmanuele Bassi
7de62118a0 Fix message for VFL parser errors
The loop is iterating over the wrong variable, and it's reimplementing
g_strfill() in a less efficient way.
2020-03-11 15:14:17 +00:00
Rico Tzschichholz
4232cbe33f Really fix annotation for GtkDropTarget.get_gtypes() 2020-03-09 17:03:58 +01:00
Timm Bäder
7789d0e23f builder: Make object names a const array
We don't take ownership.
2020-03-07 15:30:38 +01:00
Timm Bäder
049f841900 padcontroller: Copy action entries
The label and action_name entries of GtkPadActionEntry are supposed to
be const, so copy them into a private ActionEntryData struct that we
later free.
2020-03-07 14:52:45 +01:00
Matthias Clasen
948ab2767b Merge branch 'master' into 'master'
builder-tool: rename show-close-button to show-title-buttons

See merge request GNOME/gtk!1497
2020-03-06 18:02:06 +00:00
Timm Bäder
d7fb33caf7 filechooserwidget: Avoid criticals when in recent mode
Don't try to use the browse_files_model just because we have a location
entry. The model might still be NULL at this point.
2020-03-06 16:29:32 +01:00
Timm Bäder
a1c75795bc Replace fallthrough comments with G_GNUC_FALLTHROUGH 2020-03-06 10:39:42 +01:00
Benjamin Otte
cda9007f0f stack: Make static analyzer happy 2020-03-06 05:56:29 +01:00
Benjamin Otte
394955cceb pathbar: Don't do the same thing twice.
Don't do the same thing twice.
2020-03-06 05:53:20 +01:00
Benjamin Otte
a106b54355 treeview: Don't assign value twice. 2020-03-06 05:51:37 +01:00
Benjamin Otte
510e17d123 cellarea: Be very clear
The static analyzer needs to know we absolutely DO NOT want to use this
return value.
2020-03-06 05:50:35 +01:00
Benjamin Otte
317dcddddb builder-tool: Don't allow property to be both resize and shrink
Otherwise builder-tool crashes when you do

  <property name="shrink" name="resize">1</property>

Thanks to the static analyzer for figuring that one out.
2020-03-06 05:44:11 +01:00
Benjamin Otte
df282a13bb applicationaccels: Use g_renew() 2020-03-06 05:44:11 +01:00
Benjamin Otte
e37729756d liststore: Fix gtk_list_store_iter_is_valid()
The iter may be invalid, so we may not read from it.

testsuite/gtk/treemodel tests this and valgrind is shouting about it,
but it never crashed until I just ran it...

This bug is from 2004 and the test is from 2007. I guess invalid memory
accesses don't get caught by CI much.
2020-03-06 05:44:11 +01:00
Benjamin Otte
03e7c7fab1 treepath: Use g_renew() 2020-03-06 05:43:56 +01:00
Benjamin Otte
be30f78e62 treeview: Don't initialize variable twice 2020-03-06 05:43:56 +01:00
Benjamin Otte
e356d59a92 build: Add -Wnull-dereference
Sprinkle various g_assert() around the code where gcc cannot figure out
on its own that a variable is not NULL and too much refactoring would be
needed to make it do that.

Also fix usage of g_assert_nonnull(x) to use g_assert(x) because the
first is not marked as G_GNUC_NORETURN because of course GTester
supports not aborting on aborts.
2020-03-05 08:14:37 +01:00
Benjamin Otte
4be4799316 icontheme: Remove unused parameter
It's only ever set to NULL (and then dereferenced, too)
2020-03-05 07:59:59 +01:00
Benjamin Otte
7dce9e426e treerbtree: Use for loops
Makes the code more readable.
Also does the NULL check for the initial element, which was misisng
before.
2020-03-05 07:59:05 +01:00
Benjamin Otte
4e88d5a7cf notebook: Don't crash on drags not coming from a notebook 2020-03-05 07:59:05 +01:00
Benjamin Otte
fdd4630952 icontheme: Don't crash on icon lookup failure 2020-03-05 07:59:05 +01:00
Benjamin Otte
dc86c744bf rbtree: Simplify macros
* NODE_FROM_POINTER() can not be NULL

* shuffle NODE_TO_POINTER() code for readability so that the NULL check
  is on the outside and not the cast
2020-03-05 07:59:05 +01:00
Benjamin Otte
9fedcec82e rbtree: Simplify code
This makes it easier to understand for gcc (and hopefully humans, too)
that by rotating we essentially just swap `node` and `p`.
2020-03-05 07:59:05 +01:00
Benjamin Otte
38dcc8f63b mountoperation-x11: Fix copy/paste thinko 2020-03-05 07:05:48 +01:00
Benjamin Otte
8fc360dac5 imcontextwayland: Fix copy/paste error 2020-03-05 04:03:02 +01:00
Benjamin Otte
4313c47113 textview: Fix copy/paste error 2020-03-05 04:03:02 +01:00
Emmanuele Bassi
a3b9dba13c Fix annotation for GtkDropTarget.get_gtypes()
The argument name must match in the documentation, and the `allow-none`
annotation is deprecated, and should be replaced by `optional` in this
case.
2020-03-03 13:17:31 +00:00
Emmanuele Bassi
5e099e2606 Remove incorrect rename-to annotations
The `rename-to` annotation is used to "shadow" a symbol with another
one, which means both symbols need to exist. It can't be used to rename
a symbol to something else.
2020-03-03 13:13:26 +00:00
Emmanuele Bassi
041043eec1 Fix introspection warnings for GtkDragIcon 2020-03-03 13:12:52 +00:00
Emmanuele Bassi
ec9038a8f2 Add missing annotation for GtkIconTheme 2020-03-03 13:04:06 +00:00
Georges Basile Stavracas Neto
8e14b21e52 build: Install gtkeventcontrollerfocus.h
It's a public class, and is included by gtk.h. Ship it.
2020-03-03 00:38:13 -03:00
Matt Guerrette
46ba019522 builder-tool: rename show-close-button to show-title-buttons
For GtkHeaderBar show-close-button has been renamed to
show-title-buttons for GTK4. This commit adds this fixup to the builder
tool
2020-03-02 22:24:46 -05:00
Benjamin Otte
2e55c9cf8c droptarget: Fast-path local value load
This way, we can ensure that for local same-type drops the GValue
is set when ::enter is emitted.

This is the common case for dnd between widgets inside larger
applications, so it's worth it to speed it up.
2020-03-02 21:45:59 +01:00
Benjamin Otte
c0a63e6dd2 dnd: Fix some documentation gotchas 2020-03-02 21:26:08 +01:00
Benjamin Otte
f5fda3ae58 themes: Set proper foreground color for DND icons 2020-03-02 04:43:56 +01:00
Benjamin Otte
f4a00e7909 calendar: Use a drag source 2020-03-02 04:43:56 +01:00
Benjamin Otte
e7db386018 dnd: Don't create custom color drag icons
... use the default one. It looks much better.
2020-03-02 04:43:56 +01:00
Benjamin Otte
2a697827e1 dragicon: Add gtk_drag_icon_create_widget_for_value()
... and use it to set a drag icon.
2020-03-02 04:43:56 +01:00
Benjamin Otte
03882e1f96 dragicon: Change how to acquire drag icons
Before, gtk_drag_icon_new_for_drag() allowed creating new drag icons.
This could cause multiple drag icons to exist for a single drag.

Now, gtk_drag_icon_get_for_drag() makes sure that only one drag icon is
created.
2020-03-02 04:43:56 +01:00
Benjamin Otte
9efc4e6777 dragicon: Add GtkDragIcon::child 2020-03-02 04:43:56 +01:00
Benjamin Otte
7cd728a0ea gdk: Make gdk_drop_status() take preferred action
This allows textview/text dnd to properly display a MOVE icon when in
the widget the drag started from but a COPY icon otherwise.
2020-03-02 04:43:56 +01:00
Benjamin Otte
c3fb6ca747 colorswatch: Switch to dragged color during dnd
This is really simple to implement now, so do it.
2020-03-02 03:18:55 +01:00
Benjamin Otte
a411959c91 droptarget: Redo
This is a huge reorganization of GtkDropTarget. I did not know how to
split this up, so it's unfortunately all one commit.

Highlights:

- Split GtkDropTarget into GtkDropTarget and GtkDropTargetAsync
  GtkDropTarget is the simple one that only works with GTypes and offers
  a synchronous interface.
  GtkDropTargetAsync retains the full old functionality and allows
  handling mime types.

- Drop events are handled differently
  Instead of picking a single drop target and sending all DND events to
  it, every event is sent to every drop target. The first one to handle
  the event gets to call gdk_drop_status(), further handlers do not
  interact with the GdkDrop.
  Of course, for the ultimate GDK_DROP_STARTING event, only the first
  one to accept the drop gets to handle it.
  This allows stacking DND event controllers that aren't necessarily
  interested in handling the event or that might decide later to drop
  it.

- Port all widgets to either of those
  Both have a somewhat changed API due to the new event handling.
  For the ones who should use the sync version, lots of cleanup was
  involved to operate on a sync API.
2020-03-02 03:18:55 +01:00
Benjamin Otte
f4ac74795c placessidebar: Don't use the GdkDrag
First, it should have been a GdkDrop, but even then, proper DND code
should not rely on internals.

It's only been used in an unused signal emission anyway.
2020-03-02 03:18:55 +01:00
Benjamin Otte
b64a0273c5 notebook: Make dnd page switching a drop controller
This untangles tab dnd from page switching.
2020-03-02 03:18:55 +01:00
Benjamin Otte
b799bc5ce1 textview: Move drop scrolling to drop motion controller
Don't confuse the drop target with it.
2020-03-02 03:18:55 +01:00
Benjamin Otte
fdb39b095b treeview, iconview: Don't return the drop target
Not a good idea to hand internal event controllers out to public API.
2020-03-02 03:18:55 +01:00
Piotr Drąg
810d567cc9 placessidebar: Fix a couple of typos and thinkos in menu labels 2020-03-01 15:05:28 +01:00
Matthias Clasen
3d11973df8 Drop gtk_grab_add/remove from public api
The only form in which we still allow grabs to take place
is with modal toplevels.
2020-02-28 16:36:17 -05:00
Matthias Clasen
57c8a643ff Drop gtk_grab_get_current
Another grab-related api that we are not using.
2020-02-28 16:29:56 -05:00
Matthias Clasen
0ffb35c9e7 Drop device grabs
We were not using this api at all, so lets drop it.
2020-02-28 16:27:42 -05:00
Matthias Clasen
8f87555176 inspector: Fix the "Software GL" switch
This was crashing.
2020-02-28 14:42:19 -05:00
Bastien Nocera
8cb45cdeae filechooser: Fallback if content-type unavailable
Fallback to fast-content-type if the content-type attribute isn't
available, as is the case for most remote filesystems.

Closes: #2482
2020-02-28 17:33:08 +01:00
Bastien Nocera
823714cf66 filechooser: Fix crash when file has no content-type
This might happen for slow filesystems where a fast-content-type might
be provided instead. Don't try to manipulate that content_type if it's
NULL, otherwise we'll either throw warnings (at best) or crash (at
worse).

Conflicts:
	gtk/gtkfilechooserwidget.c
2020-02-28 17:32:48 +01:00
Matthias Clasen
cf873f3426 Remove a stray g_object_unref
Events are no longer objects, so this does not do
any good. Use gdk_event_unref instead.
2020-02-27 14:31:19 -05:00
Matthias Clasen
527a8048b6 Avoid a crash in css font features values 2020-02-27 14:30:58 -05:00
Krzesimir Nowak
8df045537e Fix a typo in gtkplacessidebar.c
Some mistyped vim command got into the code in commit 60d2813247.
2020-02-27 10:02:56 +00:00
Matthias Clasen
90376d6d6e Fix a leftover occurrence of ::expand 2020-02-26 19:31:25 -05:00
Matthias Clasen
dcbecdac31 gesture: Actually track targets
Due to a mismerge, this wasn't actually working,
and was causing criticals from gtk_widget_has_grab
when dragging windows.
2020-02-26 17:06:15 -05:00
Matthias Clasen
fa75d7f480 builder-tool: Fix a thinko
We can't rely on the pspec for a removed property.
This code worked until I actually removed the properties.

Update the tests to reflect this.
2020-02-26 10:01:38 -05:00