Timm Bäder
80411fb905
scale: Use top/left/bottom/right style classes on value label
...
Just top/bottom is not enough anymore.
77769a52b3
broke e.g. horizontal scales
with the value on top/bottom, adding too much space.
2019-09-09 17:36:25 +02:00
Timm Bäder
9166b03c42
fixed: Documentation clarifications
2019-09-09 17:36:25 +02:00
Timm Bäder
31efc882db
fixed: x/y passed to get_child_position are not optional
2019-09-09 17:36:25 +02:00
Timm Bäder
1db59d1c89
fixedlayout: Don't call the child transform position
...
It's a full transform and not just a translation these days.
2019-09-09 17:36:25 +02:00
Timm Bäder
afb3715700
linkbutton: Use widget API to set has-toolip
...
As God intended.
2019-09-09 17:36:24 +02:00
Timm Bäder
6be4279f39
linkbutton: Use proper action name for right-click menu
2019-09-09 17:36:24 +02:00
Timm Bäder
5782871f91
menubutton: Control sensitivity of child button
...
Instead of the menubutton itself.
2019-09-09 17:36:24 +02:00
Timm Bäder
0e9ac9e64b
magnifier: Remove some unused members
2019-09-09 17:36:24 +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
Timm Bäder
18714e25a8
window: Remove useless deprecation guards
...
gtk_window_present() is not deprecated.
2019-09-09 17:36:24 +02:00
Timm Bäder
b29c30c9d5
cssprovider: Remove unused member from GtkCssScanner
2019-09-09 17:36:24 +02:00
Timm Bäder
d8df197489
cssprovider: Don't lookup on empty css providers
...
This should not have a huge performance impact, but debugging is easier
if we don't lookup in empty css providers.
2019-09-09 17:36:24 +02:00
Timm Bäder
514e60c1bb
cssnode: GtkCssAnimatedStyle->style is always a static style
2019-09-09 17:36:24 +02:00
Timm Bäder
32a256bd03
gtksettings: Remove unused functions & prototypes
2019-09-09 17:36:24 +02:00
Timm Bäder
b9316a404a
cssnode: Remove unused struct
2019-09-09 17:36:24 +02:00
Timm Bäder
ea2a3f3e62
cssstyle: Remove unused _add_difference
2019-09-09 17:36:24 +02:00
Timm Bäder
5cd8009c53
stylecontext: Remove leftover function prototypes
2019-09-09 17:36:24 +02:00
Timm Bäder
26aa620efe
stylecontext: Stop exporting _resolve_color
...
Only used in gtkstylecontext.c
2019-09-09 17:36:24 +02:00
Timm Bäder
e0cf6e4775
csscolorvalue: return the initial color value directly
2019-09-09 17:36:24 +02:00
Timm Bäder
df2d43c893
csscolorvalue: Remove unused new_from_rgba()
2019-09-09 17:36:24 +02:00
Timm Bäder
8d6c5ba90e
cssstaticstyle: Compute initial/inherit values directly
2019-09-09 17:36:24 +02:00
Timm Bäder
629f528f6d
cssinitialvalue: Make _compute public
...
So we can use it in cases where the class of css value is known to be an
initial one.
2019-09-09 17:36:24 +02:00
Timm Bäder
191e3bc7e1
csslookup: Remove 'relevant' parameter from _init
...
Unused.
2019-09-09 17:36:24 +02:00
Timm Bäder
ecad4743bd
csslookup: Remove 'missing' bitmask
...
It's almost never useful to have a bitmask here, since it's only used
for the intersection case in gtk_css_style_provider_lookup. However,
even if that returns true, we still need to check every single style
property for being set again in the look afterwards.
Just remove the bitmask.
2019-09-09 17:36:24 +02:00
Timm Bäder
ceb8aedf97
cssanimatedstyle: Keep transition_info_add from recursing
...
The slowest part of that fuction is the type check for
GtkCssShorthandProperty. Subproperties of shorthand properties never
refer to more shorthand properties however, so we don't want to have the
type check for those.
2019-09-09 17:36:24 +02:00
Timm Bäder
0cf4eb379f
csslookup: Remove tautological if expression
...
A value is always either set or missing.
This was changed in a1f7c459b7
, which
removed the ability for partial style computation.
2019-09-09 17:36:24 +02:00
Timm Bäder
f3fdf58ff7
cssstaticstyle: Avoid ref'ing specified value in compute_value
...
There are alerady _get functions for GtkCssInheritValue and
GtkCssInitialValue, so use those. We can avoid a ref+unref pair this
way.
2019-09-09 17:36:24 +02:00
Timm Bäder
3073e65851
cssprovider: Fix compilation wth VERIFY_TREE set
2019-09-09 17:36:24 +02:00
Timm Bäder
a75529f3c0
cssmatcher: Inline node values into matcher
...
So we don't have to go through the matcher->node->decl every time
2019-09-09 17:36:24 +02:00
Timm Bäder
75a48aed0b
cssanimatedstyle: Make set_animated_value transfer-full
2019-09-09 17:36:24 +02:00
Timm Bäder
a7f23ebe7d
cssimage: Use gtk_internal_return_val_*
...
GtkCssImage is not public and being used in hot paths, e.g. CSS.
2019-09-09 17:36:23 +02:00
Timm Bäder
0f9a02e6f4
gtkprivate: Only define gtk_internal_return_if* for consistency checks
...
The wanted behavior here is that these are only defined if the buildtype
is debug, i.e. full debugging.
2019-09-09 17:36:23 +02:00
Timm Bäder
4b4b77ca04
cssanimatedstyle: Save animation in array
2019-09-09 17:36:23 +02:00
Timm Bäder
a231648607
cssanimatedstyle: Avoid type check in loop
...
We can just do the check once as source is not going to change within
the loop.
2019-09-09 17:36:23 +02:00
Timm Bäder
eeb5cd2321
cssanimatedstyle: Avoid unnecessary transition work
...
No need to do all the transition work if the transition duration will be
0 for all of them.
2019-09-09 17:36:23 +02:00
Timm Bäder
5c705ae9a5
cssrgbavalue: Add & use new_white()
2019-09-09 17:36:23 +02:00
Timm Bäder
19f69f6ac8
cssrgbavalue: Add an opaque white singleton
...
Used a few hundred times in the widget-factory.
2019-09-09 17:36:23 +02:00
Timm Bäder
ad1340cab4
cssrgbavalue: Add a singleton for transparent colors
...
The most common background color is no background color.
2019-09-09 17:36:23 +02:00
Timm Bäder
3a3a59c188
cssdimensionvalue: Create a few more common singletons
2019-09-09 17:36:23 +02:00
Timm Bäder
6ed6cc46de
cssstaticstyle: Make set_value (transfer-full)
...
We only call this in one place and we can avoid a ref + unref pair this
way.
2019-09-09 17:36:23 +02:00
Timm Bäder
6837e80d14
css: Avoid more type checks in hot paths
2019-09-09 17:36:23 +02:00
Timm Bäder
4f3e65e745
csspalettevalue: Use simple arrays instead of a hashtable
...
Use two sorted name/value arrays to save the colors instead of a
hashtable. This makes palette values faster to compare etc.
2019-09-09 17:36:23 +02:00
Timm Bäder
36a1b69a19
cssanimatedstyle: Remove some casts in hot paths
...
gtk_css_animated_style_create_css_transitions down from 16% to 11%
when repeatedly clicking on a spinbutton button in the widget factory.
2019-09-09 17:36:23 +02:00
Timm Bäder
1f11892de4
bitmask: Add _gtk_allocated_bitmask_to_string
2019-09-09 17:36:23 +02:00
Timm Bäder
1bc8f3ac6e
Adwaita: Hack around list button styling
...
Once again.
2019-09-09 17:36:23 +02:00
Timm Bäder
822547dfef
spinbutton: Use a box layout
2019-09-09 17:36:23 +02:00
Timm Bäder
c0214cfcc1
menubutton: Add a create_popup_func
...
Some use cases require a menu button to create the popup on demand.
2019-09-09 17:36:23 +02:00
Timm Bäder
cb6d96d65f
menubutton: Remove unused member
2019-09-09 17:36:23 +02:00
Timm Bäder
4cc4868e93
label: Remove "line" from wrap properties
...
The property names are "wrap" and "wrap-mode", so it doesn't make sense
that the accessors refer to line_wrap and line_wrap_mode.
2019-09-09 17:36:23 +02:00
Timm Bäder
ffab342fc4
snapshot: Stop exporting _append_node_internal
...
Unused outside of gtksnapshot.c
2019-09-09 17:36:23 +02:00
Matthias Clasen
1203dc501c
popover menubar: Use nested popover menus
...
Make the popover menubar use nested menus, to
better match the expected behavior of traditional
menus.
2019-09-08 19:02:06 -04:00
Matthias Clasen
3cbf1845a9
Add a timeout for open submenus
...
When a popover menu has an open submenu,
delay activating another item until after
the pointer is stationary for a little
while. This avoids the need for precise
horizontal motion when moving towards the
submenu.
2019-09-08 19:02:06 -04:00
Matthias Clasen
ea44eade21
Add nesting popover menus
...
Add a variant of popover menus that are nesting
like traditional menus. This is a better fit for
replacing traditional main menus.
2019-09-08 19:02:06 -04:00
Matthias Clasen
c75a368bab
popover: Support vertical aligment
...
We already support horizontal alignment, and
we should do the same for vertical alignment.
2019-09-08 19:02:06 -04:00
Bob Ham
6bfe171058
gtkapplication-dbus: Initialise screensaver-active property
...
When GtkApplication starts listening to the screensaver's D-Bus
status, the screensaver-active property is not initialised and
applications making use of the property are out of sync until the
first state change. Any application starting when the screensaver is
active will think it's inactive.
To fix this, we set the property when we first start monitoring the
screensaver.
2019-09-06 14:59:27 +01:00
Christian Hergert
5e49da1d73
textview: optimize linedisplay cache based on number of visible rows
...
This tries to estimate the number of visible rows in a textview based on
the default text size and then tunes the GtkTextLineDisplayCache to keep
3*n_rows entries in the cache.
This was found imperically to be near the right cache size. In most cases,
this is less than the number of items we cache now. However, in some cases,
such as the "overview map" from GtkSourceView, it allows us to reach a
higher value such as 1000+. This is needed to keep scrolling smooth on
the larger view sizes.
With this patch, a HiDPI system with a GtkSourceView and GtkSourceMap
from the GTK 4 port can perform smooth scrolling simultaneously.
2019-09-05 19:06:35 -07:00
Christian Hergert
cc7ae525ef
texttag: avoid use of g_signal_emit_by_name()
...
This avoids looking up the signal by name and instead uses the saved
signal identifier from gtktexttagtable.c
2019-09-04 19:39:24 -07:00
Christian Hergert
7cea21043e
textlayout: remove use of GtkTextIter in line comparison
...
We do not need to create a GtkTextIter to perform the comparison here as
that will require a number of validation steps that are extra work
compared to just discovering the GtkTextLine number directly.
2019-09-04 09:12:54 -07:00
nana-4
b9d8eb54b7
Adwaita: Don't inherit font style to popover
...
https://gitlab.gnome.org/GNOME/gtk/issues/2061
2019-09-03 01:43:41 +09:00
nana-4
a2fdb55384
Adwaita: Fix broken osd popover style
...
Apply %osd to child arrow and contents instead of parent popover.
https://gitlab.gnome.org/GNOME/gtk/issues/2061
2019-09-03 01:34:05 +09:00
Alexandre Franke
88b617646a
popover: fix typo in schema string
2019-08-29 14:50:20 +02:00
Matthias Clasen
9bb58c3eca
Merge branch 'office-runner-crash' into 'master'
...
Fix a crash in gtk-builder-tool
See merge request GNOME/gtk!1064
2019-08-26 13:50:43 +00:00
Matthias Clasen
c0b8eb30de
Fix a crash in gtk-builder-tool
...
Crash pointed out by Bastien Nocera.
Testcase included.
2019-08-26 15:34:15 +02:00
Дилян Палаузов
6ded38de2b
Minor typos in the Documentation (a/an)
2019-08-25 12:52:46 +00:00
Timm Bäder
ee27587428
scale: Add a destroy notify to set_format_value_func
...
Closes #2098
2019-08-15 17:21:47 +02:00
Timm Bäder
d2f76d689f
scaler: Avoid some signal connections
...
We're mainly using this for icons that will never change contents or
size, and we're using a GtkScaler per such icon when on a hidpi setup,
so just avoid the two signal connections per icon.
2019-08-15 17:13:29 +02:00
Timm Bäder
20cd6cc155
spinbutton: Use gtk_button_new_from_icon_name
2019-08-15 16:23:01 +02: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
Timm Bäder
6669ddad09
scrolledwindow: Stop using _gtk_widget_set_captured_event_handler
...
We can use an event controller with phase = CAPTURE these days.
2019-08-15 16:23:01 +02:00
Matthias Clasen
55839dc508
Merge branch '948-patch-renaming-a-file-can-make-it-to-loose-selection_GTK4' into 'master'
...
filechooser: keep file selected after being renamed
Closes #948
See merge request GNOME/gtk!1053
2019-08-13 21:18:41 +00:00
Matthias Clasen
6dd23b2bf0
text view: Fix a typo
...
Pointed out in https://gitlab.gnome.org/GNOME/gtk/issues/2094
2019-08-13 15:16:03 -04:00
Nelson Benítez León
487e095d24
filechooser: keep file selected after being renamed
...
Because otherwise when the file list is sorted "by name"
and the new name causes the file to be re-sorted to another
row, the selection stays in the old row which is now
occupied by a different file.
Fixed by keeping track of the renamed file and revealing
it in the "row-changed" signal handler, which gets emitted
after a file is renamed.
Fixes issue #948
2019-08-12 17:32:56 -04:00
Timm Bäder
164ebee129
Adwaita: Style spinbutton up/down children explicitly
...
Once again to increase the specificty above that of the
"list row button.etc." selector. Makes hovering spinbutton buttons in
lists look normal again.
2019-08-11 10:41:58 +02:00
Timm Bäder
76f2c4f0aa
Adwaita: Update .devel headerbar styling
...
Just pull in the changes from gtk-3-24
2019-08-11 10:30:01 +02:00
Timm Bäder
9999ac1255
range: Avoid a divison by 0
...
Based on a patch by Blake Latchford
Fixes #618
2019-08-11 10:06:52 +02:00
Daniel Boles
3242174f81
AccelLabel: Add get_accel_closure() accessor
...
Fixes #875
2019-08-11 09:55:43 +02:00
Timm Bäder
6f1cade817
color chooser: Port checkered pattern drawing from cairo
2019-08-11 09:34:50 +02:00
Timm Bäder
c6961f1b61
range: Use public delay-factory API
2019-08-11 09:34:50 +02:00
Timm Bäder
8c88453816
cellrenderer: Add accessors for {get,set}_is_expande{r,d}
2019-08-11 09:34:50 +02:00
Timm Bäder
c812e1dc94
Adwaita: Fix hovering modelbutton arrows
...
This CSS snippet was supposed to only recolor the popover arrow but
ended up also recoloring the > arrow on modelbuttons that show a
submenu. Make the selector more specific.
2019-08-11 09:05:31 +02:00
Timm Bäder
8d1a2247e0
treeview: Redo tree line drawing using textures
...
Gets rid of the remaining cairo nodes used for line drawing.
2019-08-11 09:05:28 +02:00
Timm Bäder
4fba7f8c59
treeview: Redo grid line drawing using textures
...
The cairo pattern in use was simple enough, so just use a 2×1 or 1×2
texture to draw horizontal and vertical grid lines. This avoids a bunch
of cairo nodes (that can't be cached by the renderers).
2019-08-11 09:05:25 +02:00
Timm Bäder
a93745238f
snapshot: Annotate child_bounds parameter of push_repeat as nullable
2019-08-10 19:51:45 +02:00
Timm Bäder
b812ff2597
treeview: Shorten destroy() implementation
2019-08-10 19:51:45 +02:00
Timm Bäder
8a51796150
treeview: Remove two _dashes members
...
Tree lines and grid lines always look the same these days.
2019-08-10 19:51:45 +02:00
Timm Bäder
dd7d171186
treeview: Remove GTK_TREE_VIEW_FOREGROUND_LINE
2019-08-10 19:51:45 +02:00
Timm Bäder
0ac20f978e
spinbutton: Remove an unnecessary queue_draw() call
2019-08-10 19:51:45 +02:00
Timm Bäder
0a96c3f062
scale: Properly update when inverted
...
Just queue_resize()ing the range itself doesn't work as it will just
re-allocate all the child widgets (i.e. just the trough) to its old
position and size.
2019-08-10 19:51:45 +02:00
Timm Bäder
42e6630c3e
scale: Make a function shorter
2019-08-10 19:51:45 +02:00
Timm Bäder
1125d08f0d
range: Remove outdated comment
2019-08-10 19:51:45 +02:00
Mohammed Sadiq
c1bb699151
builderparser: Allow bind-source without bind-property
...
This allow users to bind same property of two objects with only
specifing “name” and “bind-source” in UI file.
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/2080
2019-08-10 19:01:36 +05:30
Mohammed Sadiq
55af84d359
widget: Fix a typo in documentation
2019-08-10 12:11:13 +05:30
Christian Hergert
4ae362d138
textview: clear cached entries before releasing containers
...
We want to ensure all of the display cache entries are released in the
normal fashion before releasing the structures so that we can maintain
the invariant that cache_iter will always exist while in the cache.
2019-08-09 12:52:16 -07:00
Timm Bäder
fd201e4df7
treeviewcolumn: Remove cell_area parameter from _cell_get_size
...
Fixes #297
2019-08-09 17:04:58 +02:00
Timm Bäder
21123a1264
iconhelper: Don't snapshot 0 sized icons
...
This is happening for me when snapshotting small thumbnails in the file
chooser. The GtkScaler will scale the 1px height/width by 2, resulting
in nothing being drawn at all.
2019-08-09 15:55:38 +02:00
Timm Bäder
87aeec2b63
scale: Fix value widget measurement
...
Since we set the size request of the label, the later measure()
call would return at least the size we set, making the size only ever
grow.
2019-08-09 14:30:01 +02:00
Timm Bäder
ea5fc348fa
scale: Replace format-value signal
...
There is no reason for this to be a signal, since multiple handlers
don't make sense anyway. It was also broken because the scale needs to
know when a signal handler is added so it can update the value
representation.
Replace the signal with a set_format_value_func function which allows us
to do that.
Fixes #113
2019-08-09 14:30:01 +02:00
Timm Bäder
ebc0d3760f
range: remove range_size_request vfunc
...
It's unneeded in GtkScale and named after the gtk2 size_request function
2019-08-09 14:30:01 +02:00
Timm Bäder
b4a6d69f5d
scale: Allocate left marks next to trough
2019-08-09 14:30:01 +02:00
Timm Bäder
05cdce2e8d
scale: Fix an uninitialized value
2019-08-09 14:30:01 +02:00
Timm Bäder
509b781079
widget: Avoid a few type checks
2019-08-09 14:30:01 +02:00
Timm Bäder
4b7a6a885d
Merge branch 'adwaita-scales-marks-fintune-fix-master' into 'master'
...
Adwaita: Fix fine-tune mode for scales with marks
Closes #1799
See merge request GNOME/gtk!696
2019-08-08 16:41:04 +00:00
Jonas Ådahl
048957cd49
gtk/icon-theme: Handle lack of SVG loader gracefully
...
When loading a SVG icon from a gresource file only containing SVG icons,
but without having a SVG loader available in gdk-pixbuf, we would crash
when trying to eventually load the resource. Fix this by gracefully
handling this by simply failing to load the icon, while the first time
it happens, log a warning.
Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/2084
2019-08-08 09:05:30 +02:00
Timm Bäder
434d32bf95
Adwaita: Fix round titlebar button outline radius
...
Fixes #2073
2019-08-07 18:49:50 +02:00
frederik.feichtmeier
1178a0011a
Exclude appmenu titlebuttons
2019-08-07 18:46:50 +02:00
frederik.feichtmeier
0af2e65c80
Make titlebuttons round
...
- use even sides for the titlebuttons so the result is a circle and not an ellipse
- add maximum border radius
- set min width/height to 0
- adjust margin and padding to match the previous look
2019-08-07 18:46:47 +02:00
Timm Bäder
e8f3b47bf3
gesturelongpress: Add getter/setter for delay-factor
2019-08-07 14:11:00 +02:00
Timm Bäder
8b16e44d26
passwordentry: Fix a documentation comment parameter name
2019-08-07 13:12:57 +02:00
Timm Bäder
002abc6d48
placessidebar: Remove popover using gtk_widget_unparent()
...
the gtk_widget_destroy() does not work anymore.
2019-08-06 17:39:01 +02:00
Timm Bäder
aca31c3ab6
adwaita: Increase spinbutton button styling specificity
...
So it trumps the 'toned down' button styling.
Fixes #2012
2019-08-06 17:38:54 +02:00
Matthias Clasen
a3609c3f6d
Merge branch 'implement-choices-file-chooser-native-win32-for-gtk-4' into 'master'
...
Implement choices for GtkFileChooserNativeWin32 [Gtk4]
Closes #1982
See merge request GNOME/gtk!1043
2019-08-05 12:20:06 +00:00
Luca Bacci
02935afe94
GtkFileChooserNativeWin32: Uninitialize COM at end of thread
...
GtkFileChooserNativeWin32 is created and shown on a secondary thread.
This thread initializes COM support with CoInitializeEx but does not
finalize it, so we have a leak. Fix that by calling CoUninitialize()
before thread terminates.
See Merge Request !1043
2019-08-04 18:03:37 +02:00
Luca Bacci
234d0443b2
GtkFileChoooserNative: change prepend to append for insertions in choices list
...
Although slightly less efficient, keeping the order in the choices
list makes it easier for GtkFileChooserNative implementations to
add widgets in the order specified by the application.
See Merge Request !1043
2019-08-04 18:03:21 +02:00
Luca Bacci
822deabdfe
Implement choices for GtkFileChooserNativeWin32
...
See Merge Request !1043
2019-08-04 18:03:05 +02:00
Timm Bäder
b2e94f81cf
window: Remove some leftover event code
2019-08-03 14:44:25 +02:00
Timm Bäder
109df77d87
popover: Use GTK_POS_BOTTOM as default position
...
This has always made a lot more sense.
2019-08-03 14:44:25 +02:00
Timm Bäder
76e3284ca1
colorchooserwidget: Inherit from GtkWidget
...
No reason for this to be a GtkBox.
2019-08-03 14:44:24 +02:00
Ray Strode
1612e38cda
window: sort icons before adding to _NET_WM_ICON
...
When processing the list of icons for a window to add them to
_NET_WM_ICON gdk_x11_surface_set_icon_list only adds as many
icon sizes as will fit within X protocol limits.
It achieves this by keeping a running total of the number of
bytes taken up by icons already processed and bails as soon
as it goes over the limit.
The problem is, one 512x512 icon is already over the limit,
and so no icons will get added at all if the first icon in
list is 512x512.
Indeed, the code seems to assume the list is sorted from smallest
icon to biggest icon.
This commit changes the caller to sort the list.
2019-08-01 16:48:58 -04:00
Matthias Clasen
4a631787bd
Merge branch 'subpixel-positioning' into 'master'
...
Subpixel positioning
See merge request GNOME/gtk!1024
2019-07-28 21:02:31 +00:00
Matthias Clasen
4de670b0b4
Turn off metrics hinting
...
This will be necessary to see the effects of subpixel positioning.
2019-07-28 16:42:52 -04:00
Christian Hergert
9926e6ebde
textlayout: introduce caching for GtkTextLineDisplay
...
This adds a GtkTextLineDisplayCache which can be used to cache a number
of GtkTextLineDisplay (and thus, PangoLayout) while displaying a view.
It uses a GSequence to track the position of the GtkTextLineDisplay
relative to each other, a MRU to cull the least recently used display,
and and a direct hashtable to lookup display by GtkTextLine.
We only cache lines that are to be displayed (!size_only). We may want to
either create a second collection of "size_only" lines to speed that up,
or determine that it is unnecessary (which is likely the case).
2019-07-28 10:34:15 -07:00
Christian Hergert
b930c5a8a2
textiter: add _gtk_text_iter_same_line()
...
This is a faster form to compare two text iter to see if they are on the
same line.
2019-07-28 10:34:15 -07:00
Matthias Clasen
7eb5dfd294
inspector: Show the pango backend
2019-07-28 11:39:16 -04:00
Matthias Clasen
988fac404a
Add pango version checks
...
Seems the ci does not have pango 1.44 yet.
2019-07-28 10:50:14 -04:00
Timm Bäder
eea76e8cce
textview: Remove some unnecessary gtk_widget_show() calls
...
Widgets are visible by default.
2019-07-28 08:44:45 +02:00
Timm Bäder
b2d639b6d9
window: Unroot with old display
...
Things might rely on the old display being set while unrooting.
Fixes #2052
2019-07-27 07:57:06 +02:00
Matthias Clasen
f1c7803f80
label: Parse new pango attributes
...
Support allow-breaks and show attributes.
These will be in pango 1.44
2019-07-27 00:02:08 -04:00
Emmanuele Bassi
f1e4efebb7
Merge branch 'gtk-4-add-TCRYPT-options-to-ask-password-dialog' into 'master'
...
gtkmountoperation: Add TCRYPT options to the ask-password dialog
See merge request GNOME/gtk!263
2019-07-25 10:16:11 +00:00
Matthias Clasen
e89e182565
Merge branch 'avoid-redundant-attributes' into 'master'
...
text layout: Avoid redundant text attributes
See merge request GNOME/gtk!1015
2019-07-24 23:47:41 +00:00
Matthias Clasen
552fe0406c
text layout: Avoid redundant text attributes
...
Don't insert text attributes if the font, or scale
or fallback did not actually change. This helps
Pango avoid excessive item breaks, which in turn
helps shaping to work across things like color
changes.
Related: https://gitlab.gnome.org/GNOME/pango/issues/28
2019-07-24 19:05:32 -04:00
Matthias Clasen
2f387c2a23
Merge branch 'missing-gobject-annotation' into 'master'
...
Add nullable annotation to combo_box_text_get_active_text
See merge request GNOME/gtk!1012
2019-07-24 13:50:04 +00:00
Timm Bäder
0d95c5dfe2
passwordentry: Normalize boolean value
2019-07-24 08:10:37 +02:00
Timm Bäder
f2a2908c59
passwordentry: Remove empty vfunc implementation
2019-07-24 08:10:26 +02:00
Timm Bäder
f4cb60dcca
textlayout: Avoid querying CSS state if we don't have to
...
This is actually pretty slow, and we almost never render a selection.
2019-07-24 07:54:30 +02:00
Timm Bäder
b3d0629709
popover: Remove some unnecessary checks
...
gtk_popover_move_resize() already checks whether the popover has a
surface.
2019-07-24 07:54:30 +02:00
Matthias Clasen
30f55c4d07
Remove a redundant vfunc
...
PangoRenderer has a perfectly adequate default
implementation of draw_glyphs, no need to duplicate that.
2019-07-23 23:28:24 -04:00
Ryan Westlund
f00d964f4f
Add nullable annotation to combo_box_text_get_active_text
2019-07-23 22:59:35 -04:00
Matthias Clasen
d2920c501d
Merge branch 'blink-later' into 'master'
...
Blink later
See merge request GNOME/gtk!1011
2019-07-24 02:05:32 +00:00
Matthias Clasen
af528b08dc
Merge branch 'error-nodes' into 'master'
...
Render error underlines as render nodes
See merge request GNOME/gtk!1009
2019-07-24 01:39:37 +00:00
Matthias Clasen
a628907891
textview: Defer cursor blinking on input
...
We were not calling the right cursor functions
in the commit handler.
2019-07-23 21:18:03 -04:00
Matthias Clasen
19ad4d67ef
textview: Delay initial cursor blinking
...
These changes follow the same changes for
gtktext.c in the previous commit.
2019-07-23 21:17:05 -04:00
Matthias Clasen
a4e427b44a
text: Delay initial cursor blinking
...
We used to have a solid cursor for 2/3 of the cycle,
now we start fading after 1/4th. To make up for it,
add half a cycle of delay.
2019-07-23 21:08:47 -04:00
Matthias Clasen
3278e9ab6c
Render error underlines as render nodes
...
Use a sequence of transformed squares,
instead of a cairo node. The drawing is not
identical to the previous code, but reasonably
close.
2019-07-23 18:31:39 -04:00
Christian Hergert
02d8e95b73
textlayout: remove use of gtk_text_layout_free_line_display
...
Now that these are reference counted, we no longer need to use
the variant requiring access to the GtkTextLayout.
2019-07-23 14:59:40 -07:00
Christian Hergert
e0b9b51e9f
textlayout: make GtkTextLineDisplay reference counted
...
This makes GtkTextLineDisplay use GRcBox instead of g_slice_*
directly. By using reference counting for this structure, we
can ensure that we hold an extra ref for one_display_cache as
well as caching additional GtkTextLineDisplay for the visible
range in the future.
2019-07-23 14:52:14 -07:00
Matthias Clasen
fb06b7fa94
text: Remove an outdated comment
2019-07-23 15:14:38 -04:00
Matthias Clasen
7b451678f5
fix the build
2019-07-23 14:26:32 -04:00
Matthias Clasen
758c54eab8
text: Fix incomplete invalidation
...
When a style change affects the text, we need to
clear the cached content, in order to pick up the
new text style.
2019-07-23 10:41:52 -04:00
Matthias Clasen
c39cc15573
text view: Fix incomplete invalidation
...
Update the cached text style when a css change affects
content or background. This fixes text views drawing
black-on-dark when switching to the dark theme.
2019-07-23 10:41:43 -04:00
Christian Hergert
e475d4bdc5
textlayout: fix bounds for clipping
...
This should match gtk_snapshot_append_layout(), which means that we expect the
bounds to be rooted at 0, 0.
2019-07-21 18:21:04 -07:00
Matthias Clasen
064ad42432
text view: Smooth cursor blinking
...
Fade the text cursor in and out, instead
of abruptly turning it on and off.
2019-07-21 16:03:49 -07:00
Christian Hergert
4ff9163c47
textview: port GtkTextView to GskPangoRenderer
...
This removes the use of GtkTextDisplay (a PangoRenderer) to use
the GskPangoRender which generates render nodes. Part of this means
improving the GskPangoRenderer to support the necessary features for
displaying a GtkTextView.
Primarily, this is a merging of GtkTextDisplay features into
GskPangoRender. Additionally, GtkTextDisplay was removed to allow for
gtk_text_layout_snapshot() to be implemented elsewhere.
2019-07-21 16:03:45 -07:00
Matthias Clasen
45ebe47d94
textview: Stop exporting private apis
...
These headers are no longer 'semi-public, but private
and uninstalled, so exporting these functions does
not do any good.
2019-07-21 13:26:40 -07:00
Matthias Clasen
51161fb0d6
text: Smooth cursor blinking
...
Fade the text cursor in and out, instead
of abruptly turning it on and off.
2019-07-21 11:35:13 -07:00
Matthias Clasen
63fd97749c
Adwaita: Fix entry block cursors
2019-07-21 11:35:04 -07:00
Timm Bäder
8f734b01b2
window: Plug a GList leak
...
We need to free the GList manually when using g_list_remove_link().
2019-07-21 12:45:10 +02:00
Timm Bäder
8beea4d958
window: Merge some functions into their only callers
...
So it's clear we only add or remove the pointerfocus-es in
_update_pointer_focus.
2019-07-21 11:06:24 +02:00
Timm Bäder
1583200e24
cellrenderertext: Remove some unnecessary NULL checks
2019-07-21 10:26:00 +02:00
Timm Bäder
03fa8ed259
cellrenderertext: Don't unnecessarily ref a layout
...
We never pass a NULL layout to get_size().
2019-07-21 10:22:05 +02:00
Timm Bäder
0bd939624e
textlayout: Remove some outdated comments
...
These two members have been commented out for 19 years.
2019-07-21 10:02:54 +02:00
Timm Bäder
b658a1a8e3
entry: Measure icons again
...
This was previously removed because it changes the minimum and natural
size of the entry when the icons are shown/hidden at runtime. Just not
measuring them does not work however, so reintroduce this.
2019-07-21 09:58:08 +02:00
Timm Bäder
7eae9d115c
placesview: Make "Other Locations" search case-insensitive
...
It's just weird to search for "c" and not find the list item labelled
"Computer".
2019-07-21 09:51:54 +02:00
Timm Bäder
2ca56d4c4c
linedisplay: Save paragraph bg color inline
...
No need to allocate this separately.
2019-07-21 09:47:09 +02:00
Timm Bäder
3935027880
filechooserwidget: Fold function into only caller
2019-07-19 18:14:50 +02:00
Timm Bäder
8665828d7f
filechooserwidget: Don't emit default-size-changed() in unroot()
...
It doesn't make much sense to assume the default size has changed just
because the widget has been unrooted.
2019-07-19 18:14:50 +02:00
Timm Bäder
a8b559e99f
filechooser: Remove SETTINGS_KEY_WINDOW_POSITION
...
Now unused.
2019-07-19 18:14:50 +02:00
Timm Bäder
5674a3db46
filechooserwidget: Don't look at saved window position
...
We don't save it anymore so no need to look at it here.
2019-07-19 18:14:49 +02:00
Timm Bäder
dd3acc9014
filechooserdialog: Stop using gtk_window_get_position()
2019-07-19 18:14:49 +02:00
Timm Bäder
a9364bc053
Revert "file chooser: Stop using gtk_window_get_position"
...
This reverts commit 2ed533c3e1
.
This also made the filechooser dialog not save the window size anymore,
which does not depend on the gtk_window_get_position() removal.
2019-07-19 18:14:49 +02:00
Timm Bäder
59313e1459
gtkfilechooserwidget: Temporarily disable revealer transitions...
...
... when going between recent and browse. It just looks weird to have
this transition while the treeview model is just cleared/repopulated
without any transition.
2019-07-19 18:14:49 +02:00
Timm Bäder
3e54d374de
placessidebar: Remove sidebar border again
2019-07-19 18:14:49 +02:00
segfault
97cdf87350
gtkmountoperation: Add TCRYPT options to the ask-password dialog
2019-07-18 20:06:20 +02:00
segfault
e5cccbf5a0
gtkmountoperation: Support TCRYPT options when using proxy handler
...
GMountOperation now supports options to unlock TCRYPT volumes. This
patch sets these options if they are returned by AskPassword() of a
GtkMountOperationHandlerProxy.
2019-07-18 11:41:45 +02:00
Timm Bäder
24a4063645
scrollbar: Use a box layout
...
Makes a lot more sense than the intermediate box just for its layout.
2019-07-15 07:52:42 +02:00
Timm Bäder
4f11bbc59b
text: Don't leak emoji chooser
2019-07-15 06:56:19 +02:00
Timm Bäder
9ceb41f9a4
menu: Fix an uninitialized value
...
If the menu does not have any children, we'd otherwise end up calling
g_object_ref() on an uninitialized value.
2019-07-15 06:43:25 +02:00
Timm Bäder
831309eed2
progressbar: Use box layout
...
Instead of the custom layouting we did before.
2019-07-15 06:38:51 +02:00
Timm Bäder
4bb4a98493
text: Move some locals into the closest scope
2019-07-15 05:38:25 +02:00
Timm Bäder
70b0f712ad
text: Remove some useless casts
2019-07-15 05:19:02 +02:00
Timm Bäder
c6e9372ba3
text: Move some locals into the closest scope
2019-07-15 05:17:46 +02:00
Timm Bäder
38f4a7708e
Remove some dead assignments
2019-07-14 10:08:04 +02:00
Timm Bäder
6abcd8d013
Adwaita: Add fontbutton spacing back
2019-07-14 10:08:04 +02:00
Timm Bäder
37906a2200
adwaita: Remove a dead rule
...
GtkFileChooserButtons are called "filechooserbutton" these days, not
button.file
2019-07-14 10:08:04 +02:00
Timm Bäder
92a79d3f96
popover: Fix a broken cast
...
The widget passed here is priv->relative_to, not the popover.
2019-07-13 17:06:22 +02:00
Timm Bäder
2884691740
picture: Unref previous paintable
...
We were leaking all of them.
2019-07-13 09:38:28 +02:00
Timm Bäder
a13d6bbbdf
Merge branch 'fix-issue-2014-gtk4' into 'master'
...
Fix a string leak in gtkemojicompletion.c [gtk4]
Closes #2014
See merge request GNOME/gtk!993
2019-07-12 09:59:38 +00:00
Luca Bacci
d15dc6f90b
Fix a string leak
...
Fixes #2014
2019-07-12 08:43:44 +00:00
Timm Bäder
58e6c277b0
fpsoverlay: Fix fps overlay position
2019-07-10 18:34:16 +02:00
Matthias Clasen
1d29d44ddb
Merge branch 'wip/baedert/accelmap' into 'master'
...
AccelMap: Sort accels before iterating over them in foreach()
See merge request GNOME/gtk!980
2019-07-09 19:39:58 +00: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
95f30fee87
iconhelper: Try to avoid some save/restore calls
...
GtkImage already does something similar so we often end up with 0/0
here. Avoid the save()/restore() calls in GtkSnapshot in that case.
2019-07-07 07:24:00 +02:00
Timm Bäder
449c96ffb3
widget: Unref previous transform
2019-07-07 07:24:00 +02:00
Timm Bäder
4123c85021
actionmuxer: Plug a memory leak
2019-07-07 07:24:00 +02:00
Timm Bäder
a77f8e886b
cssprovider: Fix a memory leak in load_internal
...
We create a new GBytes but never unref it.
2019-07-06 09:50:07 +02:00
Adrien Plazas
3bae6fa1c7
headerbar: Don't change the custom title's valign
...
This allows custom titles to use the vertical alignment of their choice
without having to set it manually after it has been added to the header
bar, hence allowing them to define their preferred alignment from a UI
template.
This is useful for widgets like the view switcher which requires filling
the header bar's whole height.
2019-07-04 13:03:37 +02:00
Timm Bäder
68f19a8e6a
accelmap: Sort accels before interating over them in foreach()
2019-07-04 08:35:42 +02:00
Timm Bäder
12ebbd1b24
accelmap: Avoid a confusing goto
2019-07-04 08:35:34 +02:00
Benjamin Otte
b2868d7218
Merge branch 'wip/frame-clock-consumers' into 'master'
...
Frame clock consumers
See merge request GNOME/gtk!971
2019-07-03 16:21:32 +00: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
Jonas Ådahl
f66e764855
menu: Remove unused variable
2019-07-03 11:42:28 +02:00
Mohammed Sadiq
a8c23d06ac
constraint: Fix property name typo in doc
2019-07-03 09:31:39 +05:30
Matthias Clasen
274c47e5ba
constraint layout: Provide list models
...
Provide list models for the constraints and guides,
so we can show them in the inspector, and use them
in e.g. the constraints editor.
2019-07-02 10:03:48 -04:00
Matthias Clasen
b2f15a622d
Merge branch 'wip/ebassi/constraint-layout' into 'master'
...
Add constraint-based layout manager
Closes #1090
See merge request GNOME/gtk!973
2019-07-02 14:01:01 +00:00
Benjamin Otte
129691f3a6
flattenlistmodeL: Compute items-changed position properly
...
The code previously forgot to include the left child of the model's
node. Which of course only happened if that child wasn't NULL, which is
a common case.
Found and test provided by Matthias Clasen.
2019-07-02 02:53:00 +02:00
Emmanuele Bassi
8ab609e4e7
Add custom parser for guides defined in GtkBuilder UI files
...
Like we describe constraints, we can also define guides.
2019-07-01 19:22:48 +01:00
Emmanuele Bassi
6bc156c237
Implement GtkBuildable for GtkConstraintLayout
...
Using GtkBuildable we can provide a custom parser for reading
constraints defined in a GtkBuilder UI file.
2019-07-01 18:03:20 +01:00
Emmanuele Bassi
b435dc4366
Use the right GValue getter for GtkConstraintGuide:strength
...
The property is defined as an enum.
This fixes the defaultvalue and notify tests.
2019-07-01 18:02:19 +01:00
Emmanuele Bassi
4dd1de4129
Use explicit values for constraint strength
...
Instead of playing games with mapping negative symbolic values to
positive ones, let's use the appropriate constants everywhere. This
allows us to use:
GTK_CONSTRAINT_STRENGTH_WEAK * 2
Or
GTK_CONSTRAINT_STRENGTH_STRONG + 1
In code using the public API.
We also store the strength values as integers, so we can compare them
properly, and only turn them into doubles when they are inserted into
the solver, just like every other variable.
2019-07-01 12:39:24 +01:00
Matthias Clasen
658397fad0
Documentation fixes
...
Make sure all types show up in the docs,
and misc other improvements.
2019-07-01 03:17:58 +00:00
Matthias Clasen
b224df8109
constraint layout: go back to keeping constraints
...
We want to minimize changes to the solver, so
keep the size constraints around and only update
them when the size changes.
2019-07-01 01:54:57 +00:00
Matthias Clasen
c88e7c180d
constraint layout: Use stronger force for min size
...
We want our edit constraint to be strong enough to
overpower nat. size constraint, therefore use STRONG * 2.
2019-07-01 01:49:20 +00:00
Emmanuele Bassi
2aabd64f1a
Fix warnings from the introspection scanner
...
The name of the arguments of the functions must match the name of the
arguments in the documentation stanza.
2019-07-01 01:13:00 +01:00
Emmanuele Bassi
7990b24287
Add gtkconstraintguide.h to the public headers
...
It needs to be introspected and installed.
2019-07-01 01:12:25 +01:00
Emmanuele Bassi
c76c1a46e4
Remove specialised API from GtkConstraint
...
Thet widget-based API for constraint target and source properties is
unused, and not really necessary.
2019-07-01 01:05:04 +01:00
Emmanuele Bassi
68fed63eac
Add missing documentation for GtkConstraint
2019-07-01 01:02:56 +01:00
Emmanuele Bassi
74c626f835
Document GtkConstraintGuide
2019-07-01 00:48:59 +01:00
Emmanuele Bassi
d45a662679
Move the VFL error domain to a public header
...
Since the public API will use it to fill out GErrors, it needs to be
publicly available.
2019-07-01 00:48:48 +01:00
Emmanuele Bassi
9a463056d0
constraint layout: Notice when guides change
...
We need to queue a resize here.
2019-07-01 00:10:11 +01:00
Matthias Clasen
035baa092c
Mark the layout as changed
...
We should mark the layout as changed when
constraints are added or removed.
2019-07-01 00:10:11 +01:00
Matthias Clasen
499738c903
constraint guide: Avoid redundant constraints
...
There is no point in creating a stay for nat
size when min == max. And no point in a constraint
for <= G_MAXINT either.
2019-07-01 00:10:11 +01:00
Matthias Clasen
f2d7433bf6
constraint guide: Fix initial property values
...
This was overlooked when the max-width/max-height/
strength properties were added.
2019-07-01 00:10:11 +01:00
Matthias Clasen
405121bccc
constraint solver: Use GTK_NOTE
...
Allow using GTK_DEBUG=constraints to get debug
output from the constraints solver.
2019-07-01 00:10:11 +01:00
Matthias Clasen
cb96b34315
solver: Add private statistics api
...
No point in keeping these counters without
a way to show them.
2019-07-01 00:10:11 +01:00
Matthias Clasen
9edf6fb6cb
constraint layout: Dont reset constraints in allocate
...
If trust our allocation algorithm, this can never
trigger (and in fact, it never does).
2019-07-01 00:10:11 +01:00
Matthias Clasen
e3c4fb67ca
constraints: Add some internal apis
...
Checking if a set is empty or a singleton can
be done more efficiently than determining its size.
2019-07-01 00:10:11 +01:00
Matthias Clasen
a9dfca04e4
constraint guide: Make strength tweakable
...
The strength for the natural width can be used
as a tie-breaker to make instable systems behave
in a more predictable way. This can be seen
in the simple constraints demo in gtk-demo.
2019-07-01 00:10:11 +01:00
Matthias Clasen
f62fc4e2f2
constraint layout: freeze/thaw on mass ops
...
In measure and allocate we are potentially
changing quite a few constraints. Don't
optimize at every step.
2019-07-01 00:10:11 +01:00
Matthias Clasen
511e2b435e
constraints: Use better data structures
...
Use a GSequence for GtkVariableSet, to avoid
quadratic behavior.
2019-07-01 00:10:11 +01:00
Matthias Clasen
3f36340921
constraint layout: Measure min/nat size separately
...
Only constraint the opposite direction if we
actually have a for_size, and measure natural
size after removing the edit constraints. With
these changes, the test that compares constraint
layout to grid layout passes.
2019-07-01 00:10:11 +01:00
Matthias Clasen
b1f0f4478e
constraint layout: Use stays for natural size
...
It makes more sense to treat the natural size
of both children and guides as stays, since
we want to meet these values as closely as we
can, under the circumstances.
2019-07-01 00:10:11 +01:00
Matthias Clasen
90f8dcc5e1
constraint layout: Add debug output for guides
...
Print out the allocation we end up giving to
guides. This helps in making sense of the
allocations of the child widgets that these
guides relate to.
2019-07-01 00:10:11 +01:00
Matthias Clasen
b39a5fe5dc
constraint guide: Add a name property
...
We need to be able to print meaningful debug messages
regarding these objects, and eventually present them
in the inspector too.
2019-07-01 00:10:11 +01:00
Matthias Clasen
c7ef8411bd
constraint guide: Shorten names
...
Now that this is its own source file,
no need for these prefixes anymore.
2019-07-01 00:10:11 +01:00
Matthias Clasen
dab8a8b5c5
constraint layout: Measure more correctly
...
Set up all constraints for minimum + natural
width + height when measuring, regardless
of the orientation we're measuring. Anything
else will lead to incorrect answers when
there are constraints that cut across
dimensions.
2019-07-01 00:10:11 +01:00
Matthias Clasen
8b9c5e3a04
solver: Fix a copy/paste error
2019-07-01 00:10:11 +01:00
Matthias Clasen
3d3a672deb
constraint solver: Fix repeat suggestions
...
We were not storing the previous value, causing
the first two suggestions to work, but not later
ones.
Fixes the test added in the previous commit.
2019-07-01 00:10:11 +01:00
Matthias Clasen
139a59cae3
Flesh out GtkConstraintGuide
...
This commit moves GtkConstraintGuide into its own
source files to avoid gtkconstraintlayout.c turning
too messy, adds max size properties and implements
getters and setters.
2019-07-01 00:10:11 +01:00
Matthias Clasen
60fb9092fe
Drop an indirection
...
This struct is not really useful for just
a single hash table, and it gets in the way
of moving the guide code to its own file.
2019-07-01 00:10:11 +01:00
Matthias Clasen
61b4febbaf
Detach guides on unroot
...
We don't want to leave constraints behind.
2019-07-01 00:10:11 +01:00
Matthias Clasen
4f4ba8c4f6
Simplify the guide implementation
...
Store the values and constraints in
arrays, to facilitate treating them
uniformly.
2019-07-01 00:10:11 +01:00
Emmanuele Bassi
651adbfb39
Return the list of constraints added via VFL description
...
Otherwise it's impossible to remove them.
2019-07-01 00:10:11 +01:00
Emmanuele Bassi
3204347bb0
Add method to remove all constraints from a layout
2019-07-01 00:10:11 +01:00
Georges Basile Stavracas Neto
b929846cc1
Adwaita: Also apply $color_menu to popover arrows
...
So that popovers and arrows are always in agreement of
the background color.
2019-06-30 19:51:51 -03:00
Georges Basile Stavracas Neto
fe65da05be
Adwaita: Use $menu_color background in popover.menu
...
GtkPopoverMenus should mimic menus. Commit d936967b7a
introduced
some CSS related to menu popovers, however, it hardcodes 'white'
as the background color. That is problematic for the dark theme.
Use '$menu_color' instead of 'white', since $menu_color both
guarantees menu popovers and menus match, and already handles
different colors for dark and light theme variants.
2019-06-30 19:47:32 -03:00
Emmanuele Bassi
06c825df90
Add a C convenience function for VFL constraints
...
The dictionary-based function is convenient for language bindings, but C
developers will feel more at home with a variadic arguments list.
2019-06-30 23:42:45 +01:00
Emmanuele Bassi
859c95b435
Allow adding constraints described through VFL
2019-06-30 23:42:45 +01:00
Emmanuele Bassi
5ea8167802
Add VFL parser for constraints
...
Constraints can be expressed with a compact syntax, called VFL (visual
format language).
2019-06-30 23:42:45 +01:00
Emmanuele Bassi
92d3d55164
Remove GtkConstraintVariable.set_prefix()
...
The prefix and name are set at construction time.
2019-06-30 23:42:45 +01:00
Matthias Clasen
38d353dc1a
Add GtkConstraintGuide
...
This is meant to be a flexible space.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
7ae04ba36b
Use generic pointers for constraint targets
...
Since GtkWidget implements GtkConstraintTarget, we can omit the explicit
cast, and validate the type at run time.
2019-06-30 23:42:44 +01:00
Matthias Clasen
39c284c490
Redefine constraints with GtkConstraintTarget
...
This is in preparation for allowing non-widgets
to act as constraint targets.
2019-06-30 23:42:44 +01:00
Matthias Clasen
895e8e25a8
widget: Implement GtkConstraintTarget
2019-06-30 23:42:44 +01:00
Matthias Clasen
04562a76e3
Add GtkConstraintTarget
...
This is an marker interface that we will
use to accept other things that widgets
in constraints.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
b6781e06c1
Notify a layout change when adding and removing constraints
...
Changing the set of constraints should cause a relayout.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
54104b6676
Fix the opposite size measurement in GtkConstraintLayout
...
We cannot use the given "for size" when querying our children, because
the constraint layout has no idea about the opposite size of its
children until the layout is complete.
Additionally, we should only suggest an opposite size for the layout if
we have one, instead of suggesting a weak zero size.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
21450d5f23
Remove size constraints from ConstraintLayoutChild
...
The size constraints are transient to measurement and allocation, so
they don't really need to be stored inside the GtkLayoutChild subclass
created by a GtkConstraintLayout.
2019-06-30 23:42:44 +01:00
Matthias Clasen
a39bbb2041
constraints: Make internal consistency required
...
The relations between left, right, width
and top, bottom, height are required for
internal consistency. It doesn't make sense
to ever drop these.
Changing the strength of these relations makes
my systems behave much more stable.
2019-06-30 23:42:44 +01:00
Matthias Clasen
176d9c6baf
Add gtk_constraint_layout_remove_constraint
...
Otherwise, you can't do many interesting things.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
64afa765c8
Do not release reference on the subject of an expression
...
We don't own the reference in the first place.
2019-06-30 23:42:44 +01:00
Matthias Clasen
a246d8c926
constraints solver: Avoid critials
...
When the solver is finalized with existing
constraints, we end up with criticals when
the constraints ref finalize code calls
back into the hash table. Avoid that by
emptying the hash table beforehand.
2019-06-30 23:42:44 +01:00
Matthias Clasen
0531e663ee
constraint solver: Fix thawing
...
There was an obviously wrong precondition here.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
bd2349c0a0
Do not leak LayoutChild instances
...
Since the LayoutManager owns the LayoutChild it creates, it's also
responsible for mopping them up.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
cdf80f1d65
Add GtkConstraintLayout
...
A layout manager using GtkConstraintSolver to measure and allocate
children.
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
Emmanuele Bassi
e07098da03
window: Create a GtkConstraintSolver
...
Implement the GtkRoot getter for GtkConstraintSolver.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
98a21bf498
Assign a GtkConstraintSolver to each GtkRoot
...
Constraints need to work across different parents, so it's better to
have a single constraint solver per top level.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
c694dd6049
Move the Root interface to a private header
...
We don't expect out of tree implementations of GtkRoot, and having the
interface structure private to the GTK code allows us to add virtual
functions involving private types.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
6b308cd71e
Add constraint solver
...
GtkConstraintSolver is an implementation of the Cassowary constraint
solving algorithm:
http://constraints.cs.washington.edu/cassowary/
The Cassowary method allows to incrementally solve a tableau of linear
equations, in the form of:
x = y × coefficient + constant
with different weights, or strengths, applied to each one.
These equations can be used to describe constraints applied to a layout
of UI elements, which allows layout managers using the Cassowary method
to quickly, and efficiently, lay out widgets in complex relations
between themselves and their parent container.
2019-06-30 23:42:44 +01:00
Matthias Clasen
3b6ee32f83
Fix a crash in action muxer destruction
...
I've seen a crash when the action muxer gets
disposed during widget destroy, and tries to
disconnect from widget signals too late.
There is no real need to disconnect, since the
only time an action muxer is going away is when
its widget is destroyed, so just don't do it.
2019-06-30 18:37:32 +00:00
Timm Bäder
a6a9853676
Adwaita: Fix popover style
...
We add the .background class to the popover node now.
2019-06-29 09:06:32 +02:00
Matthias Clasen
8fa7de5563
grid layout: Fix initial property values
...
Too bad that we don't cover layout children
in the default value test - it would have
caught this.
2019-06-28 12:42:06 +00:00
Jakub Steiner
9e6b4e82c9
Adwaita: allow flat list row buttons to be flat
...
- Be more specific about the list row image buttons
Addresses corner case of https://gitlab.gnome.org/GNOME/gtk/issues/1748
2019-06-27 12:15:51 +02:00
Jakub Steiner
4be2e804ae
Adwaita: lighten dark switch sliders
...
- addresses legibility concerns
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1819
2019-06-27 10:58:18 +02:00
Alex Monday
1056e9976a
Adwaita: Apply border-radius to .csd popovers
...
Fix popover_radius variable doesn't apply to .csd popover.
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1984
2019-06-27 10:40:22 +02:00
Alex Monday
851bb61455
Adwaita: Fix padding/rounding on submenus
...
- Apply menubar submenu style for .csd submenus;
- Remove child subemenu style (looks like it is inherited
from a parent).
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1976
2019-06-27 10:31:11 +02:00
Jakub Steiner
3aadc29af4
Adwaita: darken osd background for A:dark
...
- OSD background color was too close to $bg_color to make out outline
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1964
2019-06-27 10:30:01 +02:00
Hodong Kim
19b1fcfee3
Fix a typo
2019-06-24 18:42:40 +00:00
Daniel Boles
98cfbd3712
ShortcutsSection: Fix tiny grammar-o "in for"→"in"
2019-06-24 18:02:15 +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
996f011ed8
window: Fix the default value of mnemonics-visible
...
They aren't visible, so why should the property
be TRUE?
2019-06-23 10:59:17 -04:00
Timm Bäder
0611370a5f
Merge branch '362-gtk-fileopen-dialog-need-filetype-mime-sort-option-2_GTK4' into 'master'
...
GtkFileChooser: add a sortable "Type" column
Closes #362
See merge request GNOME/gtk!874
2019-06-23 07:58:26 +00:00
Matthias Clasen
8fd968e5bf
action muxer: Don't activate disabled actions
...
We really shouldn't.
2019-06-23 01:39:26 +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
ad4a81e9df
action muxer: Change inheritance
...
Previously, we would not look any further for
an action once we found a match for the prefix,
defining inheritance by groups. Change this to
inheritance for individual actions, since we
are moving towards individual actions as the
main ingredient in GTKs action support.
2019-06-22 22:51:23 +00:00
Matthias Clasen
95e5472ade
action muxer: Remove unused api
2019-06-22 22:38:14 +00:00
Matthias Clasen
06ff4a8b6f
textview: Stop using action muxer needlessly
...
This lets us drop some private api.
2019-06-22 22:34:26 +00: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
Nelson Benítez León
c789a39660
GtkFileChooser: add a sortable "Type" column
...
along with a new 'type-format' setting that allows
to choose the output format for the "Type" column.
The options implemented for this setting are:
'mime' : Output from g_content_type_get_mime_type().
'description' : Output from g_content_type_get_description().
'category' : It uses the corresponding generic icon
of the mime type to group by categories (aka basic types).
This produces a more compact output than previous options,
and allows for type families to be grouped together, so eg.
after sorting by "Type" column, jpeg and png images will
be placed together, or the various types of archiver files
will also be grouped together.
This format was copied from and currently used by Nautilus
list view, so we also improve consistency with Nautilus.
Bugzilla entry for Nautilus implementation is:
https://bugzilla.gnome.org/show_bug.cgi?id=683722
The list of type families or categories can be checked on:
https://developer.gnome.org/icon-naming-spec/#mimetypes
This 'category' format is set as default.
Issue #362
2019-06-22 13:22:59 -04:00
Matthias Clasen
3c6045e300
css: Fix some doc typos
2019-06-22 09:49:50 -04:00
Matthias Clasen
9389768a17
Add GTK_CSS_PARSER_WARNING_UNIMPLEMENTED
...
gtk-doc was complaining about it missing,
and it is used in some ifdefed code.
2019-06-22 09:48:34 -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
9be0b3d76f
application: Stop extracting accels from menus
...
This functionality has been superseded by
gtk_application_set_accels_for_action in GTK3,
and we don't want to carry it forward in GTK4.
2019-06-21 22:47:40 -04:00
Matthias Clasen
9b0d87c5a7
window: Cosmetics
2019-06-21 02:55:27 +00:00
Matthias Clasen
a515fca63f
inspector: Fix actions visibility
...
We need to always hide the page when setting
an object, otherwise the initial visibility
sticks.
2019-06-20 22:49:22 -04:00
Matthias Clasen
b6baa15e0a
inspector: Use event controller names
...
Use these in the same place we use widget names.
2019-06-20 22:48:42 -04:00
Matthias Clasen
955ae40cd6
event controller: Add a name property
...
This helps identifying controllers in the inspector.
2019-06-20 22:48:33 -04:00
Matthias Clasen
dee9e40ad3
Build fix
2019-06-20 22:47:35 -04:00
Matthias Clasen
a933a9bc79
Fix initial mnemonic visibility
...
We were showing mnemonics initially, which is not desired.
2019-06-21 02:38:05 +00:00
Matthias Clasen
6a4a082660
main: Move visible mnemonics handling
...
No need to special-case this anymore; we can use
a regular event controller in GtkWindow for this.
2019-06-21 02:37:51 +00:00
Matthias Clasen
a7cdcdf92c
main: Move visible focus handling
...
No need to special-case this anymore; we can use
a regular event controller in GtkWindow for this.
2019-06-21 02:37:12 +00:00
Daniel Boles
a7a0a34da1
Overlay: Document overlay children aren't measured
...
Some users expect that the Overlay will automatically request enough
size for its overlay children as well as its main child. It doesn't,
because it's just a GtkBin. Add a short paragraph pointing that out.
Close https://gitlab.gnome.org/GNOME/gtk/issues/1939
2019-06-20 21:41:59 +01:00
Daniel Boles
a03e531772
FileChooserButton: Document the CSS nodes & class
...
The only glancing mention of this we had was that GtkButton mentioned it
in passing when discussing how `button` could get contextual classes,
and even that's not relevant in master anymore... so drop it from there.
2019-06-20 20:51:37 +01:00
Daniel Boles
217f9ea3b8
ListBox: Document buildable child type placeholder
...
andyholmes on IRC asked about this and it wasn't documented, so fix that
2019-06-18 21:45:08 +01:00
Daniel Boles
ab7b9d882e
Window: Hyperlink to GtkBuildable from its section
2019-06-18 21:45:08 +01:00
Benjamin Otte
27d6276212
bindings: Make gtk_binding_entry_add_signall() private
...
This function needs a replacement and that will appear after
refactorings.
2019-06-18 15:54:27 -04:00
Benjamin Otte
d8d5cc9788
bindings: Hide structs
2019-06-18 15:54:07 -04:00
Benjamin Otte
2687a2eb8d
bindings: Remove unused member variables
2019-06-18 15:53:48 -04:00
Matthias Clasen
7dbeee5d50
color chooser widget: Use the new action machinery
...
Port GtkColorChooserWidget to use widget class actions.
Note that this also changes the names of
the GtkColorChooserWidget actions away from a generic
"context" prefix.
2019-06-18 14:48:02 -04:00
Matthias Clasen
01e89f9142
link button: Use the new action machinery
...
Port GtkLinkButton to use widget class actions.
Note that this also changes the names of
the GtkLinkButton actions away from a generic
"context" prefix.
2019-06-18 14:47:33 -04:00
Matthias Clasen
dafb7054a1
window: Use the new action machinery
...
Change the default.activate action to use the
new action machinery.
2019-06-18 14:47:33 -04:00
Matthias Clasen
04bace1982
textview: Use the new action machinery
...
Port GtkTextView to use widget class actions.
Note that this also changes the names of
the GtkTextView actions away from a generic
"context" prefix.
2019-06-18 14:47:33 -04:00
Matthias Clasen
90701cb655
label: Use the new action machinery
...
Port GtkLabel to use widget class actions.
Note that this also changes the names of
the GtkLabel actions away from a generic
"context" prefix.
2019-06-18 14:47:33 -04:00
Matthias Clasen
ccccaa2681
password entry: Adapt to action name change
...
Also fix updating the icon when changing visibility
via the context menu.
2019-06-18 14:47:33 -04:00
Matthias Clasen
421e9c3502
text: Use the new action machinery
...
Port GtkText to use widget class actions.
Note that this also changes the names of
the GtkText actions away from a generic
"context" prefix.
2019-06-18 14:47:33 -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
Jakub Steiner
aa6f5dae5a
Adwaita: tone down infobars
...
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1957
2019-06-18 10:25:54 +02:00
Matthias Clasen
a5c327bb02
popover: Drop unused api
...
The inspector is no longer using this
list model, so drop the api.
2019-06-16 23:03:34 -04:00
Matthias Clasen
bda5a8214b
inspector: Don't duplicate popovers
...
Popovers are now regular children in the widget
tree, no need to duplicate them as toplevels
in the object tree.
2019-06-16 23:03:27 -04:00
Matthias Clasen
3ad8797068
inspector: Add a refresh button for actions
...
Action state updates may not always be precise.
2019-06-16 23:03:19 -04:00
Matthias Clasen
2457ed03c2
inspector: Fix centering of subtitles
2019-06-16 23:03:12 -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
bc56860fa1
places sidebar: Stop using gtk_widget_get_action_group
...
We create this action group ourselves,
we can keep track of it.
2019-06-15 21:41:03 -04:00
Matthias Clasen
820929958d
file chooser: Stop using gtk_widget_get_action_group
...
We create this action group ourselves,
we can keep track of it.
2019-06-15 21:40:55 -04:00
Matthias Clasen
72d306c132
entry: Remove hacky code
...
We can leave it up to apps to not set less-than-useful
combinations, such as show-emoji-icon, but a no-emoji
input hint.
2019-06-15 21:40:50 -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
d2e0d3222f
widget: Cosmetics
2019-06-15 21:40:33 -04:00
Matthias Clasen
44970b5182
inspector: Fix actionable handling
2019-06-15 21:40:28 -04:00
Matthias Clasen
00c828e752
inspector: Redo the action page
...
Instead of iterating action groups manually,
just show what the action muxer provides. This
gives an accurate view of what actions are
available in a widgets context, and saves us
the trouble of juggling prefixes manually.
2019-06-15 21:40:22 -04:00
Matthias Clasen
3b565d7f6e
action muxer: cosmetics
2019-06-15 21:40:17 -04:00
Matthias Clasen
db7f0189dd
action muxer: Add some convenience api
...
Instead of duplicating this code in multiple places,
add an api to look up an action group for a prefixed
name, and return the unprefixed name at the same time.
2019-06-15 21:40:12 -04:00
Matthias Clasen
d2a794b411
menu tracker item: Improve logging
...
Pass the action name along, so we can put
it in log messages.
2019-06-15 21:40:06 -04:00
Guillaume Maudoux
76b2f97602
PrintUnixDialog: Slightly ease page range entry
...
Page ranges entry can now be focused directly, and will automatically
select the page ranges button when doing so.
This avoids the sometimes counter-intuitive previous behavior where the
entry was automatically focused when toggling the radio button, but the
user may still find themselves clicking uselessly in the text entry
because they scheduled it in their mental model.
2019-06-13 21:11:56 +00:00
Matthias Clasen
1d92fb1013
print operation: Reinstate the priv pointer
...
The attempt to drop it in 6a669265ac
was incomplete, and non-working.
2019-06-13 15:58:07 -04:00
Matthias Clasen
f1fe54f337
headerbar: Fix fallback appmenu
...
We were using menubuttons here in a way that
does not work anymore. Make it work again.
2019-06-13 19:39:45 +00:00
Matthias Clasen
1e3ec7c1f9
message dialog: Stop hardcoding title styles
...
Instead, use a new title style class to let
themes influence title formatting. Note that
the theme style will be overridden if the
application uses markup for presentation,
such as <b> or <i>.
2019-06-13 16:29:29 +00:00
Matthias Clasen
6f12c39a04
color chooser: Use a popover menu
...
Make the color chooser use a popover menu
and actions.
2019-06-13 11:59:51 +00:00
Matthias Clasen
6452aeef3c
link button: Use new context menu api
2019-06-13 11:59:51 +00:00
Matthias Clasen
10ce2076f9
treeview: Stop disabling the context menu
2019-06-13 11:59:51 +00:00
Matthias Clasen
0509f8cff3
places sidebar: remove populate-popup
2019-06-13 11:59:51 +00:00
Matthias Clasen
3dd7b41077
cell renderer: remove populate-popup
2019-06-13 11:59:51 +00:00
Matthias Clasen
f12057b9dc
textview: Support toggle actions
...
When creating a touch selection bubble, create toggle
buttons for toggle actions.
2019-06-13 11:59:50 +00:00
Matthias Clasen
037e205da0
textview: Redo context menus
...
Drop the ::populate-popup signal and implement
the new context menu api.
2019-06-13 11:59:50 +00:00
Matthias Clasen
964b2574cf
label: Redo context menus
...
Drop the ::populate-popup signal and implement
the new context menu api. Things are a bit more
complicated here, since we have different menus
on links and selectable text.
2019-06-13 11:59:50 +00:00
Matthias Clasen
1b21d6ecba
password entry: Adapt to new context menu api
2019-06-13 11:59:50 +00:00
Matthias Clasen
6030465cdf
text: Add a context action for visibility
...
This will be used by GtkPasswordEntry for amending
the context menu.
2019-06-13 11:59:50 +00:00
Matthias Clasen
a28d5d1888
text, entry: Implement context menu api
...
Drop the ::populate-popup signal and implement
the new context menu api.
2019-06-13 11:59:50 +00:00
Matthias Clasen
cbc0a8447d
popover menu: Unify hover and focus
...
Menus traditionally don't have separate
hover and focus locations. Make the same
change here that we already did for
popover menubars: Track the active item
and set its selected state. Both keynav
and mouse change the active item.
2019-06-12 21:50:46 -04:00
Matthias Clasen
a7e121384c
popover menubar: Use a pseudo state
...
Use :selected instead of .active to
mark the active item.
2019-06-12 21:50:37 -04:00
Matthias Clasen
6c7cb8d862
popover: Improve the move-focus fix
...
Avoid breaking menubar keynav (we still
need the focus change to be propagated
down from the root).
2019-06-12 21:50:29 -04:00
Matthias Clasen
5b0002a9dc
popover menu bar: Don't leave active item behind
...
When the mouse leaves the bar, turn the lights off.
2019-06-12 21:50:22 -04:00
Matthias Clasen
c16f10abea
popover menu: Add our own activate key bindings
...
This solves issues with parent widgets, like combobox
or entry, installing their own bindings for these
keys, overriding the activation behavior that
is implemented in gtkwindow.
2019-06-12 21:50:08 -04:00
Matthias Clasen
d0a38c677c
popover: Bring back the activate-default signal
...
As long as key bindings only work via action
signals, we need a signal here in order to
override the Enter/Space bindings for popover
menus.
2019-06-12 21:49:59 -04:00
Matthias Clasen
a56f99355a
popover menu: Add our own focus key bindings
...
This solves issues with parent widgets, like textview
or scrolled window or combobox installing their own
bindings for these keys, overriding the focus behavior
that is implemented in gtkwindow.
2019-06-12 21:49:52 -04:00
Matthias Clasen
5df592d33e
color editor: Don't leak adjustments
2019-06-12 21:38:39 -04:00
Matthias Clasen
aa69ca4ef4
color editor: Fix numerical oddities
...
This is probably ue to a pass through gtk-builder-tool.
2019-06-12 21:38:28 -04:00
Matthias Clasen
28c40a4c3d
Merge branch 'wip/dboles/scrolledwindow-annotations' into 'master'
...
ScrolledWindow: Replace deprecated annotations; add (nullable) to set_[hvadjustment]()
See merge request GNOME/gtk!868
2019-06-12 16:18:36 +00:00
Emmanuele Bassi
0269d670b5
Merge branch 'layout-avoid-native' into 'master'
...
layout managers: Handle native children
See merge request GNOME/gtk!926
2019-06-12 11:18:05 +00:00
Jakub Steiner
af7b3df659
Adwaita: update treeview progressbars
...
- The style resembles Clearlooks and is way outdated.
https://gitlab.gnome.org/GNOME/gtk/issues/1938
2019-06-12 12:40:41 +02:00
Matthias Clasen
f5ce5a0abd
Merge branch 'wip/chergert/profiler-gtk4-dbus-api' into 'master'
...
gtkapplication: track changes to profiler D-Bus API
See merge request GNOME/gtk!919
2019-06-12 01:04:53 +00: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
f03c7c379a
text: Fix selection bubble handling
...
Same fix as the previous commit.
2019-06-11 17:46:01 +00:00
Matthias Clasen
67c82e8bd9
text view: Fix selection bubble handling
...
We can't call gtk_widget_destroy on something
that wasn't added as a child to a container -
it ends up calling gtk_container_remove, which
asserts if it doesn't find the child.
2019-06-11 17:45:55 +00:00
Matthias Clasen
37090a7ab4
popover menu: Set autohide
...
This is the expected behavior for menus.
2019-06-11 17:38:22 +00: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
31066a697b
window: Fix focus wraparound
...
If tab focus falls off the end, and we have an empty headerbar,
we end up with window->focus == NULL. Don't let that happen
2019-06-11 10:14:14 -04:00
Matthias Clasen
f1b9e7c23b
Rename a bunch of private headers
...
We want to follow the convention that all
private headers have names ending in private.h
2019-06-10 03:10:13 +00:00
Matthias Clasen
9182f0fe9d
Adwaita: Make selection in menus visible
2019-06-10 02:27:56 +00:00
Georges Basile Stavracas Neto
c82dcc8e3a
build: Install gtkpopovermenubar.h
...
It is not listed in 'gtk_public_headers', so it is not
installed, and breaks anyone including gtk.h
2019-06-09 15:40:55 -03:00
Matthias Clasen
3c1163e7f4
popovermenubar: Add docs
2019-06-09 17:42:11 +00:00
Matthias Clasen
8e5985d05e
Typo fix
2019-06-09 17:42:10 +00:00
Matthias Clasen
17ec958f30
Rename GtkPopoverBar to GtkPopoverMenuBar
...
Clarity over beauty.
2019-06-09 17:42:07 +00:00
Matthias Clasen
65f71cdbae
popover bar: Add setters
...
Add setters/getters for the menu-model property.
2019-06-09 17:40:51 +00:00
Matthias Clasen
d936967b7a
Adwaita: Adapt to popover bar changes
...
Add some initial styling for popover bars
and popover menus. This needs revision.
2019-06-09 17:40:08 +00:00
Matthias Clasen
d78b6451b3
popoverbar: Use a box layout
...
Its the cool way to do layout these days.
2019-06-09 17:40:00 +00:00
Matthias Clasen
bc4f744562
main: Warn if GDK sends us bad focus events
...
The new rule for focus events from the windowing
system is: We only want them for toplevels. If you
put focus on popups, we don't want to know about
it, and you still need to deliver key events to
the toplevel.
2019-06-09 17:38:54 +00:00
Matthias Clasen
6342287288
popover menu: Disappear on focus out
...
We try to keep focus inside by wrapping arrow keynav.
But focus can still escape. If it does, we want to
disappear, like any good menu should.
2019-06-09 17:38:54 +00:00
Matthias Clasen
143ea34ca1
popover bar: Don't grab focus away from open menus
...
It makes them unhappy and disappear.
2019-06-09 17:38:54 +00:00
Matthias Clasen
abc9fef615
popover menu: Implement focus
...
We want to cycle around for up/down arrows.
2019-06-09 17:38:54 +00:00
Matthias Clasen
18fd512c80
popover bar: Implement focus
...
This is the proper way to do focus.
We want to cycle around for left/right arrows.
2019-06-09 17:38:54 +00:00
Matthias Clasen
f82898f393
model button: Make left/right switch submenus
...
This is expected menu keynav behavior: If the
focused item has a submenu, open it on right
arrow press. And if we are in a submenu title,
make left arrow press close it.
2019-06-09 17:38:54 +00:00
Matthias Clasen
ae8373f116
menu button: Use proper focus api
...
Widgets are supposed to call gtk_widget_child_focus.
Calling internal focus_move function directly makes
us skip the childs ::focus() implementation, which
is where the magic happens.
2019-06-09 17:38:54 +00:00
Matthias Clasen
f01e5d2267
popover bar: Add arrow keynav
...
Make left/right cycle the active item
among the bars children. Separate the styling
for the active item from :hover, since it is
a separate state, and only mixed up in menus
for historical reasons.
2019-06-09 17:38:54 +00:00
Matthias Clasen
0d800acd40
popover bar: Add a model property
...
This makes it less annoying to use in ui files.
2019-06-09 17:38:54 +00:00
Matthias Clasen
4ecaa754e2
popover bar: Break out items
...
These will grow enough functionality that its
worth having an object for it.
2019-06-09 17:38:54 +00:00
Matthias Clasen
6f689ec5b1
label: Fix mnemonic visibility handling
...
With non-widgets having children, we can no
longer assume that using gtk_container_forall
lets us walk the entire tree.
2019-06-09 17:38:54 +00:00
Matthias Clasen
583c6a9072
popover bar: towards menubar-like behavior
...
Make the open popover follow the pointer.
2019-06-09 17:38:54 +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
Matthias Clasen
d736778c2f
popover: Respect alignment for positioning
...
We lost the code that takes the halign of
the popover into account when positioning it.
Bring it back, since we want to use it for
popover menus.
2019-06-09 17:38:54 +00:00
Matthias Clasen
f91cc6c473
Introduce a popover bar
...
This is meant to grow into a menubar replacement
with popovers. For now, it is just a box of menubuttons,
and not very much like a menubar at all.
2019-06-09 17:38:54 +00:00
Matthias Clasen
609f1659bd
Rationalize popover menu apis
...
Make gtk_popover_new_from_model() return a GtkPopoverMenu,
rename it to gtk_popover_menu_new_from_model() and add
a relative_to argument to gtk_popover_menu_new().
Update all callers.
2019-06-09 17:38:54 +00:00
Matthias Clasen
724f315ae6
Stop exporting gtk_popover_bind_model
...
We can't improve popover menus as long as we
have to be able to work with any old popover
we're given. Remove this, so we can make
gtk_popover_new_from_model return a subclass.
2019-06-09 17:38:54 +00:00
Matthias Clasen
59ed4da717
box layout: Handle native children
...
These need to be skipped in measuring,
and we need to call gtk_native_check_resize
on them during allocation.
This was showing up as the new-style
context menu in widget-factory forcing
its relative-to box to grow when its
shown.
2019-06-09 17:38:53 +00:00
Matthias Clasen
640c7939ea
modelbutton: Sizing fixes
...
We only want to reserve indicator size if
there are any checks or radios in the popover.
Unfortunately, GtkIcon has a hardcoded min-size
of 16, defeating this use. Work around by
wrapping each indicator in a box, and showing/
hiding the actual indicator.
2019-06-09 17:38:53 +00:00
Matthias Clasen
698e39bcac
popover menu: Fix style classes
...
We want the same style classes that are produced
when creating a popover from a menu model.
2019-06-09 17:38:53 +00:00
Matthias Clasen
e080f35d25
menu section box: Add style classes for display hints
...
This makes it easier to realize some of the new
styles for popover menus.
2019-06-09 17:38:53 +00:00
Matthias Clasen
3313322864
menu section box: Introduce more section variants
...
Allow display-hint to be circular-buttons or
inline-buttons, to produce variations of horizontal
button layouts.
2019-06-09 17:38:53 +00:00
Matthias Clasen
dd572ed10a
model button: Look up accels if needed
...
When we are not given an explicit accel (as is
the case when the popover is constructed from
a model), then look it up from the GtkApplication
at map time.
2019-06-09 17:38:53 +00:00
Matthias Clasen
fc3d3fb3af
model button: Show shortcuts
...
Most of the machinery for this is already
in place. We just need to add an accel property
to GtkMenuButton and pass it through.
2019-06-09 17:38:53 +00:00
Matthias Clasen
eda31dff5d
model button: Redo layout
...
Move checks to the left, and introduce a size group
to align things. The size group is provided by the
parent, using the new ::indicator-size-group property.
2019-06-09 17:38:53 +00:00
Matthias Clasen
30f6bea25f
model button: Drop centered, inverted properties
...
These properties were only useful for titles,
and we have a role for that now.
2019-06-09 17:38:53 +00:00
Matthias Clasen
fc6010be37
model button: Add a role for titles
...
This gets us out of using direct presentational
markup like 'inverted' and 'centered' and will
make it easier to play with different layout.
Use the new role when creating popover
menus from models.
2019-06-09 17:38:53 +00:00
Matthias Clasen
0d59ece4a4
model button: Small fixes
...
Make iconic model buttons work better.
2019-06-09 17:38:53 +00:00
Christian Hergert
4a954a9a1c
gtkapplication: track changes to profiler D-Bus API
...
Recently, to make things more forward-portable, Sysprof and Mutter altered
the API for org.gnome.Sysprof3.Profiler. This tracks those changes.
2019-06-06 17:24:33 -07: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
Benjamin Otte
bb5871fd81
docs: Remove mention of queue_draw_area()
...
and queue_draw_region(). They're gone since 73650c6da2
.
2019-06-04 14:59:32 +00:00
Timm Bäder
ac333d712d
snapshot: Make append_node_internal transfer-full
...
There is only one case where we do *not* directly unref the node again
after calling this.
2019-06-04 16:48:08 +02:00
Benjamin Otte
836635d1ae
builder: Allow values of type GType
...
In particular this allows setting the item-type property of GListStore.
2019-06-04 06:11:44 +02:00
Benjamin Otte
6a0e0031b1
builder: Make GListStore buildable
...
Treats GListStore like any other object and allows <child> to add items
to it.
2019-06-04 06:11:44 +02:00
Timm Bäder
88344ccf4e
widget: Unref priv->{allocated_,}transform
2019-06-03 17:03:02 +02:00
Matthias Clasen
c7ccaa5ef2
menu: Update scrollbar policy
...
We want to avoid sizing problems for small menus
due to the vertical scrollbar imposing a min-height on
its slider.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1930
2019-06-03 14:49:13 +00:00
Michael Natterer
caf50bcb93
gtk: fix weed_out_neg_zero() in spinbutton and scale
...
It was not copying the terminating \0 in the string, breaking output
in spinbutton (didn't try scale). Fixes #3452 .
(cherry picked from commit ae2ef1472c
)
2019-06-03 00:34:44 +00:00
Christian Hergert
41e373f10c
gtk: fix all uses of g_cclosure_marshal_generic
...
This adds specific marshallers for all of the locations where a generic
marshaller is being used. It also provides va_marshallers to reduce the
chances that we get stack traces from perf going through ffi_call_unix64.
This is forward ported from gtk-3-24.
# Conflicts:
# gtk/gtkeventcontrollerkey.c
# gtk/gtkeventcontrollermotion.c
# gtk/gtkgesture.c
# gtk/gtkgesturemultipress.c
2019-06-02 14:24:51 -07:00
Matthias Clasen
aa267c1c84
Add gtkmenubarprivate.h
...
Move private api into a private header.
2019-06-01 21:56:49 +00:00
Matthias Clasen
3dea73bd4a
Cosmetics
...
Remove comments that are old enough to still
talk about option menus and item factories.
2019-06-01 21:56:49 +00:00
Matthias Clasen
03964b5edb
Remove an unused enum
...
No use of GtkArrowPlacement anywhere.
2019-06-01 04:11:22 +00:00
Matthias Clasen
0c7e567c32
Merge branch 'global-coords' into 'master'
...
Drop global coordinates
See merge request GNOME/gtk!899
2019-06-01 03:53:13 +00:00
Matthias Clasen
fcdea03796
Fix menu item accessible
...
The menu shell is not a direct parent anymore.
2019-06-01 03:39:12 +00:00
Matthias Clasen
feef0ef93a
menu: Fix destruction
...
Now that menubar and menu are containers
with internal structure, we need to be
careful about doing the right thing in
forall and dispose.
2019-06-01 03:32:10 +00:00
Matthias Clasen
6c201e7927
menu: Fix keynav between submenus
...
Left/Right arrow now work again to enter
or leave a submenu.
2019-05-31 23:36:35 +00:00
Matthias Clasen
ace30d42ea
menu: Bring back the scroll keybindings
...
Home, End, Page Up/Down, work again.
2019-05-31 23:36:35 +00:00
Matthias Clasen
e599336ad4
menu: Keep selected item in view
...
This gets us most of the way to working scrolling.
2019-05-31 23:36:35 +00:00
Matthias Clasen
8ba3c75682
More menu work
2019-05-31 23:36:35 +00:00
Matthias Clasen
3f6272f56e
More menu restructuring
...
Make GtkMenuBar use a box as well,
and let GtkMenuShell get the items
from GtkMenuBar and GtkMenu via
a vfunc. Use that to fix the keynav
implementation in GtkMenuShell.
2019-05-31 23:36:35 +00:00
Matthias Clasen
13e010deb6
menu: Use a scrolled window
...
This brings back some support for scrolling.
We still need to reinstate some of the
scroll-to-selected and keynav functionality.
2019-05-31 23:36:35 +00:00
Matthias Clasen
ae1ba79f63
menu: Use a box
...
This makes some of the GtkMenuShell api
no longer work, since we don't let the
menu shell code maintain the list of
children anymore.
2019-05-31 23:36:35 +00:00
Matthias Clasen
17cd6d7f44
widget: Stop setting root coords in events
...
Nothing should use them anymore.
2019-05-31 23:36:35 +00:00
Matthias Clasen
f645c4e923
menu: Remove global coordinates
...
This commit removes support for scrolling and
for the keep-up triangle from GtkMenu, and gets
rid of all use of global coordinates.
2019-05-31 23:36:34 +00:00
Benjamin Otte
4e464b4960
menu: Only set position in one place
2019-05-31 23:36:34 +00:00
Benjamin Otte
d971c4e69d
menu: Simplify function
...
No need to do complicated math when we can just look at the allocation.
2019-05-31 23:36:34 +00:00
Benjamin Otte
e702a33432
menuitem: Introduce gtk_menu_item_get_menu_shell()
...
Returns the parent menu shell or NULL.
Replace all calls to gtk_widget_get_parent() with this function.
2019-05-31 23:36:34 +00:00
Lubomir Rintel
8799e5798b
builder-tool: Rewrite GtkDialog
...
Changes
<object class="GtkDialog">
<child internal-child="vbox">
<...>
<child internal-child="action_area">...</child>
...
</...>
<packing />
</child>
<object>
to
<object class="GtkDialog">
<child internal-child="content_area">
<...>
...
</...>
</child>
<child internal-child="action_area">...</child>
<object>
2019-05-31 17:03:12 +00:00
Matthias Clasen
97e15b8718
scrolled window: respect overlay-scrolling setting
...
If the gtk-overlay-scrolling setting is FALSE,
don't use overlay scrollbars.
2019-05-31 15:04:23 +00:00
Matthias Clasen
2ae6f1a741
Add a gtk-overlay-scrolling setting
...
This is in preparation for letting user opt out of
overlay scrolling in the control-center.
2019-05-31 14:07:15 +00:00
Matthias Clasen
8145872e27
Merge branch 'wip/chergert/remove-cclosure' into 'master'
...
gtk: rely on default marshallers
See merge request GNOME/gtk!893
2019-05-31 10:57:27 +00:00
Benjamin Otte
4df049e81c
Merge branch 'for-master' into 'master'
...
For master
See merge request GNOME/gtk!892
2019-05-31 04:07:11 +00:00