Timm Bäder
7b5c12c7dc
iconhelper: Inherit from GObject
...
Nothing is using any gadget API on iconhelpers anymore.
2017-07-19 21:27:14 -04:00
Robert Ancell
82a4e830a3
iconhelper: Show error if fail to load placeholder icon
2017-06-09 09:24:02 +12:00
Timm Bäder
4e141883e8
iconhelper: Remove unused _draw implementation
2017-02-14 16:56:55 +01:00
Benjamin Otte
87497ca2e1
snapshot: Rename gtk_snapshot_translate_2d()
...
It's now called gtk_snapshot_offset().
2017-01-13 14:37:48 +01:00
Matthias Clasen
a013a16d1c
Use _gtk_widget_get_window more
...
This avoids type checks in places where we know it is safe.
2017-01-10 19:56:02 -05:00
Benjamin Otte
2571036c07
gsk: Turn GskTexture into a GObject
2017-01-01 19:53:36 +01:00
Benjamin Otte
45fbc25e5e
css: Remove -gtk-icon-effect
...
-gtk-icon-filter replaces this now.
2016-12-31 02:49:47 +01:00
Benjamin Otte
1d84555729
iconhelper: Invalidate style before accessing texture
...
Invalidating the style might cause invalidation of the texture. So we
end up with a pointer to freed memory.
SAD!
2016-12-24 06:19:16 +01:00
Benjamin Otte
c258ee403a
snapshot: Make gtk_snapshot_get_renderer() private
...
Public API doesn't need to be concerned with renderers. Worst case, they
can use NULL instead of the actual renderer.
2016-12-20 18:01:10 +01:00
Benjamin Otte
3ba5c70028
iconhelper: Implement snapshot
2016-12-19 05:36:06 +01:00
Timm Bäder
3dac21f20b
entry: Refactor get_icon_pixbuf
...
This way it will only return a pixbuf if the icon helper has a pixbuf.
2016-12-03 13:19:26 +01:00
Timm Bäder
8a543ab23c
iconhelper: Ensure the surface used for textures is ARGB32
2016-12-03 13:19:26 +01:00
Timm Bäder
49508ddfdb
iconhelper: Remove allocate implementation
2016-12-03 13:19:26 +01:00
Benjamin Otte
8161f8dcca
rendericon: Pass the scale factor when rendeirng textures
...
Fixes icon rendeirng on hidpi.
2016-11-26 11:52:30 +01:00
Benjamin Otte
2745c2502f
snapshot: Move GtkSnapshot declaration to gtypes.h
2016-11-19 20:58:36 +01:00
Benjamin Otte
6d9725f7fd
snapshot: Add infrastructure to snapshot CSS images
...
Use this infrastructure to render builtin images. Which means from now
on, GtkCheckbutton, GtkSpinner and a few others use snapshots.
2016-11-16 20:51:53 +01:00
Benjamin Otte
40565fb030
gsk: Rework GskTexture
...
We do no longer bind textures to a renderer, instead they are a way for
applications to provide texture data.
For now, that's it. We've reverted to uploading it from scratch every
frame.
2016-11-16 17:36:33 +01:00
Benjamin Otte
dad8703e03
snapshot: Convert GtkSpinner
2016-11-15 17:49:19 +01:00
Benjamin Otte
4b8b06bb08
image: Invalidate icon helper when unrealizing
...
This frees up any cached surfaces and textures in the iconhelper,
ensuring that the renderer can release its texture data.
2016-11-15 17:49:19 +01:00
Benjamin Otte
c0aa065ac1
snapshot: Convert GtkImage and GtkIconHelper
...
Adds a bunch of new APIs to render textures with theming.
FIXME: Cannot draw shadows for textures.
2016-11-15 17:49:19 +01:00
Benjamin Otte
1259a489f2
iconhelper: Add support for GskTexture
...
... and use that in GtkImage.
2016-11-08 20:31:34 +01:00
Timm Bäder
ed184b3935
Remove GtkIconFactory
...
Move the icon size lookup API into gtkicontheme.c
2016-10-16 18:17:21 +02:00
Timm Bäder
627a824cab
image: Remove GtkIconSet API
2016-10-16 18:17:21 +02:00
Timm Bäder
ad155fb26c
Remove GtkStock API from GtkImage
2016-10-16 18:17:21 +02:00
Daniel Drake
fa23641992
_gtk_icon_helper_draw: get style earlier
...
After checking for rendered_surface, the call to gtk_css_node_get_style
can invalidate the style and result in rendered_surface being set to
NULL. This was result in some icon views appearing blank on
Endless OS on armv7hl, and this error:
Gtk-CRITICAL **: gtk_css_style_render_icon_surface: assertion 'surface != NULL' failed
Call gtk_css_node_get_style earlier to ensure we always pass a valid
surface to gtk_css_style_render_icon_surface.
https://bugzilla.gnome.org/show_bug.cgi?id=765649
https://phabricator.endlessm.com/T13524
2016-09-26 14:23:51 -07:00
Christian Hergert
8fc11ef2a5
Revert "iconhelper: check if surface was invalidated"
...
This reverts commit 88d0258397
.
2016-04-27 19:02:25 -07:00
Christian Hergert
88d0258397
iconhelper: check if surface was invalidated
...
Fetching the style may cause the surface to be invalidated.
2016-04-27 17:45:01 -07:00
Benjamin Otte
3bc58d01e3
iconhelper: Invalidate on clear()
...
When clearing the icon helper, we need to invalidate it. Otherwise the
previous icon keeps lingering along.
This is not relevant inside gtkiconhelper.c where other code causes the
invalidation, but happens when external code calls
_gtk_icon_helper_clear().
https://bugzilla.gnome.org/show_bug.cgi?id=765066
2016-04-14 15:17:02 -04:00
Matthias Clasen
7382f3c347
icon helper: Properly update on style change
...
A GtkCssChange of NULL means 'everything changed!'.
2016-03-04 08:50:52 -05:00
Matthias Clasen
bbd94b5a9f
gtk: Strip newlines from g_warning and g_error
...
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
abd781a2c9
icon helper: Don't set baseline to 0
...
It is clearly not the intention that the baseline of icons is at
the very top. The visible effect of this was that spin buttons were
higher than expeted, because the box gadget was trying to line up
the baseline of the text with the top of the buttons, forcing extra
height to be requested.
Just don't set a baseline at all for now.
2016-02-25 13:18:02 -05:00
Timm Bäder
ded745a4b9
Make gtk_icon_helper_invalidate private
2016-02-07 19:16:26 +01:00
Timm Bäder
0bd6c48315
Add and use gtk_icon_helper_invalidate_for_change
2016-02-07 19:16:26 +01:00
Timm Bäder
0c80210685
iconhelper: Save whether the surface is symbolic
2016-02-07 19:16:26 +01:00
Timm Bäder
2902063f24
iconhelper: Un-duplicate some code
2016-02-07 19:16:26 +01:00
Matthias Clasen
f63e8edec6
Make sure icons update on theme change
...
Gadgets don't connect to style-changed for widget nodes, and
GtkImage uses its widget node for the icon helper. The visible
effect of this is that symbolic icons don't change color when
switching to the dark variant of Adwaita.
Fix this by manually invalidating the icon helper.
2016-01-04 21:32:19 -05:00
Руслан Ижбулатов
1f154f576a
Fix a surface leak
...
Was introduced as part of b79a187d47
.
Results in memory leaks (and GDI objects leaks on W32).
2015-12-27 02:02:19 +00:00
Matthias Clasen
ac65952f0d
icon helper: suppress style_changed when transient
...
Transient nodes should not propagate style-changed signals
that can cause widgets to get reallocated. This was causing
treeviews and iconviews with pixbuf cells to be constantly
resized and redrawn.
2015-12-18 20:53:02 -05:00
Benjamin Otte
1f6efbf669
iconhelper: Queue resize on invalidation
...
When things change in the iconhelper, queue a resize on the owner widget
so that it automatically resizes.
Only do this for iconhelpers that are used as gadgets though, not for
temporary helpers - and to check this, check if the node is transient.
2015-12-15 08:41:16 -05:00
Benjamin Otte
4586503e93
iconhelper: Finish gadget conversion
...
Implement missing vfuncs
2015-12-15 08:41:16 -05:00
Benjamin Otte
b79a187d47
iconhelper: Handle invalidation
...
When CSS, direction or scale factor change, handle the invalidation
inside the iconhelper.
This way the widgets using them don't have to.
2015-12-15 08:41:16 -05:00
Benjamin Otte
de6dca4f81
iconhelper: Use the gadget's node
...
... instead of looking at the widget's style context.
This removes all calls to the style context.
2015-12-15 08:41:16 -05:00
Benjamin Otte
ad22612ab2
iconhelper: Require passing a cssnode to the constructor
...
Note that we don't use it yet.
2015-12-15 08:41:16 -05:00
Benjamin Otte
7075d00958
iconhelper: Use the gadget's owner property
...
Don't keep the owner widget ourselves.
2015-12-15 08:41:16 -05:00
Benjamin Otte
25ecd8cd37
iconhelper: Turn into gadget
...
This is just the basic conversion to inheriting from
GTK_TYPE_CSS_GADGET.
2015-12-15 08:41:16 -05:00
Benjamin Otte
861ac8e373
iconhelper_ Don't use deprecated functions
...
Use gtk_widget_get_direction() instead of
gtk_style_context_get_direction().
2015-12-09 13:30:40 +01:00
Benjamin Otte
ccfc4d3f12
iconhelper: Remove the context argument
...
Instead, use the widget's context.
2015-12-09 13:30:40 +01:00
Benjamin Otte
e95e2d5048
iconhelper: Get rid of _gtk_icon_helper_set_window()
...
Instead use the window of the owner widget.
2015-12-09 13:30:40 +01:00
Benjamin Otte
c9d1a45d30
iconhelper: Require a widget as construction argument
...
Note that the caller needs to ensure the widget lives as long as the
iconhelper as the iconhelper will not ref the widget.
2015-12-09 13:30:40 +01:00
Benjamin Otte
01387428a3
iconhelper: Pass only the CssStyle when loading pixbufs
2015-12-09 13:30:40 +01:00