]>
Pileus Git - ~andy/gtk/log
Benjamin Otte [Fri, 30 Nov 2012 21:45:20 +0000 (22:45 +0100)]
API: Deprecate functions to register custom CSS properties
We should slowly transition code to using the GTK-provided CSS. So here
we go.
Benjamin Otte [Fri, 30 Nov 2012 21:41:22 +0000 (22:41 +0100)]
stylecontext: Remove unused private functions
Benjamin Otte [Fri, 30 Nov 2012 19:41:58 +0000 (20:41 +0100)]
cssstyleproperty: Don't mark border width properties as NO_RESIZE
I was to overeager when marking properties in
66d22f101d32630aa3f030585a948d17deb91f4a apparently.
Benjamin Otte [Fri, 30 Nov 2012 19:40:18 +0000 (20:40 +0100)]
widget: Optimize away unndeeded redraws
If only styles were updated that don't require resizes, don't queue one.
Benjamin Otte [Fri, 30 Nov 2012 19:37:46 +0000 (20:37 +0100)]
styleproperty: Add _gtk_css_style_property_changes_affect_size()
This gives fast access to the question of wether a style update requires
a resize.
Benjamin Otte [Fri, 30 Nov 2012 19:36:57 +0000 (20:36 +0100)]
stylecontext: Expose a function to get at the current changes
Benjamin Otte [Fri, 30 Nov 2012 18:00:23 +0000 (19:00 +0100)]
styleproperty: Mark properties as not needing resizes
Benjamin Otte [Fri, 30 Nov 2012 17:57:56 +0000 (18:57 +0100)]
styleproperty: Add an affects-size property
This property will be used to avoid gtk_widget_queue_resize() calls in
favor of gtk_widget_queue_draw().
Benjamin Otte [Fri, 30 Nov 2012 12:58:11 +0000 (13:58 +0100)]
stylecontext: Pass a bitmask to the changed values
Benjamin Otte [Fri, 30 Nov 2012 13:57:02 +0000 (14:57 +0100)]
reftests: Fix a reftest
Recent Adwaita changes caused diffs. We don't want that, so we run this
test against the default settings.
Alexander Larsson [Fri, 30 Nov 2012 15:18:14 +0000 (16:18 +0100)]
icon cache: Fix double free
The symbolic icon cache code free crashed with a double free
due to a missing ->next in the loop.
Michael Natterer [Fri, 30 Nov 2012 14:06:48 +0000 (15:06 +0100)]
gtk: convert keyvals to unicode before committing to the imcontext
(cherry picked from commit
1eb0d98d734d96a6612e320d32a2aded423d2746 )
Michael Natterer [Fri, 30 Nov 2012 13:39:42 +0000 (14:39 +0100)]
gtk: add more OSX special casing for the deadacute and deaddoubleacute keys
So " plus foo prduces foo-with-diaereses and ' plus c produces
c-with-cedilla.
(cherry picked from commit
c0102b30894401a9a1d6d93a972bcc6c37f1b5ac )
Alexander Larsson [Fri, 30 Nov 2012 13:18:39 +0000 (14:18 +0100)]
css: Make test pass
The new css tree may change the order of selectors (keeping the
same semantics). This affects how the selectors are printed later,
which causes some css parsing tests to not match the references.
Fortunately the order is consistent between runs given the same
css, so we just have to switch around the order in some of the
.ref.css files.
Alexander Larsson [Thu, 29 Nov 2012 19:52:46 +0000 (20:52 +0100)]
css: Allocate the css tree in a single chunk
This gives us several advantages:
* Smaller struct on 64bit (32bit indexes vs 64bit pointers)
* Less overhead for allocation
* Less fragmentation
Alexander Larsson [Thu, 29 Nov 2012 18:10:57 +0000 (19:10 +0100)]
css: Fix leak of lists while building tree
Alexander Larsson [Thu, 29 Nov 2012 16:56:00 +0000 (17:56 +0100)]
css: Add accessor functions for traversing css tree
This will let us later change how the tree is stored
Alexander Larsson [Thu, 29 Nov 2012 16:55:26 +0000 (17:55 +0100)]
css: Add const to _gtk_css_selector_tree_match_all arg
Alexander Larsson [Thu, 29 Nov 2012 16:28:51 +0000 (17:28 +0100)]
css: Don't keep around linear selectors
Now we use the selector tree everywhere, so there is no need to
keep around the linear selectors unless we're using them to
verify the tree correctness, so free them.
Alexander Larsson [Thu, 29 Nov 2012 16:23:36 +0000 (17:23 +0100)]
css: Remove gtk_css_ruleset_matches
This is only not needed anymore, and only the VERIFY_TREE code
should access ->selector.
Alexander Larsson [Thu, 29 Nov 2012 16:13:59 +0000 (17:13 +0100)]
css: Use tree for gtk_css_provider_get_style_property
Alexander Larsson [Thu, 29 Nov 2012 15:43:02 +0000 (16:43 +0100)]
css: Implement ruleset_get_change() with the tree
We traverse the tree on the matches instead of using
the linear selectors.
Alexander Larsson [Thu, 29 Nov 2012 15:20:14 +0000 (16:20 +0100)]
css: Ensure the tree built is always the same
We add some "artificial" ordering to the otherwise unordered
tree nodes. This means the tree will be the same every time for the
same input. This is good because e.g. tree order affects the
reordering of the simple selectors, which may affect how
css providers are printed, which need to be consistent for
the css tests to work.
Alexander Larsson [Thu, 29 Nov 2012 15:00:01 +0000 (16:00 +0100)]
css: Use the tree to print css selectors
Alexander Larsson [Thu, 29 Nov 2012 14:29:14 +0000 (15:29 +0100)]
css: Track the tree selector matches
Alexander Larsson [Thu, 29 Nov 2012 14:01:47 +0000 (15:01 +0100)]
css: Fix type of GtkCssSelectorRuleSetInfo match
The old type was a leftover from a previous version.
Alexander Larsson [Thu, 29 Nov 2012 13:58:08 +0000 (14:58 +0100)]
css: Track parent in the css tree nodes
This way we can reconstruct matched css rules
Alexander Larsson [Thu, 29 Nov 2012 13:40:10 +0000 (14:40 +0100)]
css: Better tree match verification
Alexander Larsson [Thu, 29 Nov 2012 13:25:53 +0000 (14:25 +0100)]
css: Fix up position with region tree matching
This was using the wrong result in case of a match (results from
the position, not the region. Also, the descendant checks were
wrong.
Alexander Larsson [Thu, 29 Nov 2012 13:21:20 +0000 (14:21 +0100)]
css: Don't reorder some selectors when building selector tree
When building the tree we generally reorder the selectors inside
the same simple selector in order to pick a good first selector
to balance the tree better. However, some kinds of selectors
can't really be reordered, even thought they are simple.
This is since the matching code for some types handle
the existance of a directly preceeding selector differently:
REGION and ANY selectors look for a DESCENDANT previous
POSITION selector look for a REGION previous
Alexander Larsson [Wed, 28 Nov 2012 11:13:09 +0000 (12:13 +0100)]
css: Fixed typo in PRINT_TREE debug code
Alexander Larsson [Wed, 28 Nov 2012 10:21:06 +0000 (11:21 +0100)]
css: Create and use a tree for css selector matching
Alexander Larsson [Wed, 28 Nov 2012 10:15:53 +0000 (11:15 +0100)]
css: Add GtkCssSelectorTree creation and matching
From a set of GtkCssSelectors and the rulesets they match to
we create a large decision tree that lets us efficitently match
against all the rules and return the set of matched rulesets.
The tree is created such that at each level we pick the initial rule[1]
in all the considered selectors for that level and use put the
one that is in most selectors in the node. All selectors matching that
are put in the previous part of the tree.
Alexander Larsson [Wed, 28 Nov 2012 10:07:52 +0000 (11:07 +0100)]
css: Add _gtk_css_matcher_matches_any()
This returns true if the matcher matches *anything*. We need
to check this later, because such matchers are dangerous in loops
that iterate over all parents/siblings since such loops would not
terminate.
Alexander Larsson [Tue, 27 Nov 2012 09:50:59 +0000 (10:50 +0100)]
css: Track which selectors are "simple"
Alexander Larsson [Mon, 26 Nov 2012 12:52:05 +0000 (13:52 +0100)]
Reuse rendered symbolic icons
With the previous commit all loads of the same icon will share a single
GtkIconInfo, which typicallty means the pixbuf is shared via Info->pixbuf.
However, atm we don't share symbolic icons, which causes these to be re-read
and re-parsed every time. This is especially bad if the icon is used many times
in some form of list. So, we cache the pixbufs and reuse them.
https://bugzilla.gnome.org/show_bug.cgi?id=689081
Alexander Larsson [Mon, 26 Nov 2012 12:49:49 +0000 (13:49 +0100)]
Cache GtkIconInfo
In order to avoid loading and keeping around the same icon multiple times
we keep a cache of all outstanding GtkIconInfo objects for a given theme.
Additionally we return to the app not the normal pixbuf from the info,
but rather a proxy copy of it sharing the same data, but no extra
reference. This allows us to track when the app is no longer using
the pixbuf, and we can thus ensure that the GtkIconInfo in the cache
stays around for at least as long as the pixbuf is alive.
When the app unrefs the pixbuf we put the Info on a short LRU list
to keep it alive a bit longer, in case the app needs it in a short
while.
https://bugzilla.gnome.org/show_bug.cgi?id=689081
Matthias Clasen [Fri, 30 Nov 2012 04:18:49 +0000 (23:18 -0500)]
Add a missing va_end call
va_copy must be matched with va_end.
Matthias Clasen [Fri, 30 Nov 2012 04:08:24 +0000 (23:08 -0500)]
Avoid unreachable code
Reestablish an else that went missing in commit
5ff328d2 . Without
it, the return is reached unconditionally, and the code behind
it is dead.
Matthias Clasen [Fri, 30 Nov 2012 04:05:07 +0000 (23:05 -0500)]
Don't return prematurely
This code was clearly meant to return _after_ the loop.
Don't put the return inside the loop body, then.
Matthias Clasen [Fri, 30 Nov 2012 04:01:10 +0000 (23:01 -0500)]
GtkAboutDialog: Initialize a variable
Coverity complains about it being uninitialized, otherwise.
Matthias Clasen [Fri, 30 Nov 2012 03:48:27 +0000 (22:48 -0500)]
GtkNotebook: Clarify a switch statement
We were intentionally falling through here, this commit
just adds comments to make that explicit.
Matthias Clasen [Fri, 30 Nov 2012 03:47:02 +0000 (22:47 -0500)]
GtkCellAccessible: Add missing break statements
This switch was entirely breakless. Amazing accessibility code,
found by Coverity.
Matthias Clasen [Fri, 30 Nov 2012 03:45:24 +0000 (22:45 -0500)]
GtkExpander: Clarify a nested switch
This code confused Coverity into thinking we were falling through,
when we were not. Add a few explicit breaks to clear that up.
Matthias Clasen [Fri, 30 Nov 2012 03:42:36 +0000 (22:42 -0500)]
Add a forgotten break in render_border
The GTK_BORDER_STYLE_DOUBLE case was clearly not meant to
fall through to the subsequent cases, yet it did.
Found by Coverity.
Matthias Clasen [Fri, 30 Nov 2012 03:14:12 +0000 (22:14 -0500)]
GtkIconViewAccessible: Fix a copy-paste error
Don't access vadjustment after checking hadjustment for
not being NULL. Found by Coverity.
Matthias Clasen [Fri, 30 Nov 2012 03:12:58 +0000 (22:12 -0500)]
GtkActionHelper: Fix a copy-paste error
The code clearly meant to reset action->active here.
This was found by Coverity.
Matthias Clasen [Fri, 30 Nov 2012 03:09:31 +0000 (22:09 -0500)]
gtk_css_value_bg_size_equal: actually compare contain values
Due to a copy-paste error, the code failed to compare the
contain members of value1 and value2.
This was found by Coverity.
Matthias Clasen [Fri, 30 Nov 2012 03:06:18 +0000 (22:06 -0500)]
Don't check the same crossing mode twice
This was broken since commit
b2aaa94 in 2008. Its commit message
clearly states that the intention was to check for GTK_GRAB,
GTK_UNGRAB and STATE_CHANGED. Lets do that, then.
This was found by Coverity.
Matthias Clasen [Fri, 30 Nov 2012 03:02:16 +0000 (22:02 -0500)]
GtkLabel: Fix a pointless expression
Clearly, what was meant here was that we create a new attribute
list if either of the input attribute lists are non-NULL.
This was found by Coverity.
Matthias Clasen [Sun, 25 Nov 2012 20:45:26 +0000 (15:45 -0500)]
Obtain the recent files max age setting from xsettings
This will help with implementing desktop-wide policy for
retaining of history.
https://bugzilla.gnome.org/show_bug.cgi?id=689047
Timothy Arceri [Sun, 25 Nov 2012 06:05:45 +0000 (17:05 +1100)]
In the file chooser, use a proper apostrophe rather than a prime mark (tick mark)
https://bugzilla.gnome.org/show_bug.cgi?id=689012
Alan McGovern [Fri, 23 Nov 2012 20:38:34 +0000 (15:38 -0500)]
Fix broken function pointer declarations on windows
Both flashing a window and setting the window opacity were using
incorrect declarations for function pointers. They were missing the
WINAPI annotation as defined in windows.h. As a result, the stack
could be corrupted when these functions were invoked.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=689235
(cherry picked from commit
5637ef1f97ee46666c97707ed7f6bae459007163 )
Michael Natterer [Thu, 29 Nov 2012 13:51:59 +0000 (14:51 +0100)]
quartz: add mountain lion as version 8 to enum GdkOSXVersion
Also use GDK_OSX_UNSUPPORTED instead of 0 in gdk_quartz_osx_version().
(cherry picked from commit
9644e910a85f97aedf3f5f4fee974229f29766c3 )
Michael Natterer [Thu, 29 Nov 2012 13:44:04 +0000 (14:44 +0100)]
quartz: call Gestalt() only once per session in gdk_quartz_osx_version()
Thanks to Paul Davis for pointing this out.
(cherry picked from commit
d6533ffc44d77b42cce7987f249fa481581b7c50 )
Benjamin Berg [Sun, 28 Oct 2012 21:19:35 +0000 (22:19 +0100)]
Use the ppd groups "name" instead of "text" (bug #687065)
This commit fixes a regression caused by a patch to remove Cups 1.2
ifdefs. This resulted in the "installable options" to appear in the
print dialog.
Benjamin Otte [Wed, 28 Nov 2012 20:15:05 +0000 (21:15 +0100)]
menuitem: Remove unused variables
Benjamin Otte [Wed, 28 Nov 2012 20:11:22 +0000 (21:11 +0100)]
tests: Add CSS test for comment detection
Tests recent fix.
Marcus Kraßmann [Wed, 28 Nov 2012 20:09:37 +0000 (21:09 +0100)]
cssparser: Don't detect /*/ as a comment
Cosimo Cecchi [Tue, 27 Nov 2012 14:54:42 +0000 (09:54 -0500)]
menubar: deprecate internal-padding style property
https://bugzilla.gnome.org/show_bug.cgi?id=689168
Cosimo Cecchi [Tue, 27 Nov 2012 14:14:20 +0000 (09:14 -0500)]
menubar: add support for CSS padding
In preparation for the removal of the internal-padding style property.
https://bugzilla.gnome.org/show_bug.cgi?id=689168
Cosimo Cecchi [Tue, 27 Nov 2012 14:04:12 +0000 (09:04 -0500)]
menu: deprecate horizontal-padding and vertical-padding
https://bugzilla.gnome.org/show_bug.cgi?id=689168
Cosimo Cecchi [Tue, 27 Nov 2012 13:57:23 +0000 (08:57 -0500)]
menuitem: deprecate horizontal-padding style property
https://bugzilla.gnome.org/show_bug.cgi?id=689168
Nilamdyuti Goswami [Wed, 28 Nov 2012 08:19:44 +0000 (13:49 +0530)]
Assamese translation updated
Nilamdyuti Goswami [Wed, 28 Nov 2012 08:17:00 +0000 (13:47 +0530)]
Assamese translation updated
Matej Urbančič [Mon, 26 Nov 2012 20:12:00 +0000 (21:12 +0100)]
Updated Slovenian translation
Matej Urbančič [Mon, 26 Nov 2012 20:07:25 +0000 (21:07 +0100)]
Updated Slovenian translation
David King [Thu, 22 Nov 2012 18:38:21 +0000 (18:38 +0000)]
docs: Add gtk-doc comment for GtkTreeRowReference
https://bugzilla.gnome.org/show_bug.cgi?id=93381
Christophe Fergeau [Thu, 22 Nov 2012 18:04:48 +0000 (19:04 +0100)]
Sanitize memory handling in cups_request_printer_list_cb
gtk+ was trying to display already freed strings, leaking memory,
...I noticed this because I was getting weird blinking characters
as the status of my cups printers, and valgrind confirmed something
was wrong.
https://bugzilla.gnome.org/show_bug.cgi?id=683072
Philip Withnall [Mon, 26 Nov 2012 09:00:32 +0000 (09:00 +0000)]
i18n: Update British English translation
Philip Withnall [Mon, 26 Nov 2012 08:59:27 +0000 (08:59 +0000)]
Bug 595615 — Use proper ellipses
Use ‘…’ instead of ‘...’ in translatable strings.
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=595615
Piotr Drąg [Sun, 25 Nov 2012 23:46:05 +0000 (00:46 +0100)]
Updated POTFILES.skip
Benjamin Otte [Sun, 25 Nov 2012 22:50:27 +0000 (23:50 +0100)]
reftests: Add reftest for broken fixed height mode
https://bugzilla.gnome.org/show_bug.cgi?id=687816
Benjamin Otte [Sun, 25 Nov 2012 23:06:40 +0000 (00:06 +0100)]
treeview: Delay computing fixed height
In the setter, we only set fixed height mode and queue a revalidation of
the row heights.
https://bugzilla.gnome.org/show_bug.cgi?id=687816
Emmanuele Bassi [Sun, 25 Nov 2012 21:57:41 +0000 (22:57 +0100)]
sizegroup: Use g_hash_table_add()
This is the function to use when treating hash tables as a set.
Benjamin Otte [Sun, 25 Nov 2012 14:35:52 +0000 (15:35 +0100)]
styleproperty: Use _gtk_css_initial_value_get()
See previous commit(s).
Benjamin Otte [Sun, 25 Nov 2012 14:35:27 +0000 (15:35 +0100)]
cssvalue: Use _gtk_css_initial_value_get() for the inherit value
See previous commit(s).
Benjamin Otte [Sun, 25 Nov 2012 14:31:59 +0000 (15:31 +0100)]
cssvalue: Add _gtk_css_initial_value_get()
... so we don't bump a refcount whenever we get the initial singleton.
We want to use this function instead of
_gtk_css_style_property_get_initial_value() everywhere where we compute
values, because some initial values may depend on settings soon.
Benjamin Otte [Sun, 25 Nov 2012 12:32:21 +0000 (13:32 +0100)]
izegroup: Improve performance
Keep a list of all groups and avoid groups we already handled. Speeds up
GtkToolpalette a lot.
Benjamin Otte [Sun, 25 Nov 2012 03:41:49 +0000 (04:41 +0100)]
widget: Remove an unneeded queue_resize()
Resizes are queued via
gtk_widget_propagate_state()
=> gtk_style_context_set_state()
=> gtk_style_context_queue_invalidate()
=> gtk_style_context_validate()
=> _gtk_widget_style_context_invalidated()
so there's no need to queue an extra one.
Benjamin Otte [Sun, 25 Nov 2012 03:16:43 +0000 (04:16 +0100)]
deprecations: Move files into deprecated/ dir
Benjamin Otte [Sun, 25 Nov 2012 02:47:51 +0000 (03:47 +0100)]
gtkgradient: Deprecate
Benjamin Otte [Sun, 25 Nov 2012 02:34:08 +0000 (03:34 +0100)]
symboliccolor: Deprecate
Symbolic colors are an implementation detail of the CSS engine and have
been superceded by GtkCssColorValue. We don't want them clobbering the
public API. In particular because the only use I could find in the
public API is people using it to shade colors.
Benjamin Otte [Sun, 25 Nov 2012 02:33:33 +0000 (03:33 +0100)]
themingengine: Do shading with GtkHSLA
... instead of with symbolic colors.
Benjamin Otte [Sun, 25 Nov 2012 02:24:47 +0000 (03:24 +0100)]
hsla: Add _gtk_hsla_shade()
We use it in multiple places, so better split it out.
Benjamin Otte [Sun, 25 Nov 2012 01:59:15 +0000 (02:59 +0100)]
symboliccolor: Remove extra includes
That header was included in way too many places.
Benjamin Otte [Sun, 25 Nov 2012 01:28:59 +0000 (02:28 +0100)]
styleprovider: Change function prototype
Make _gtk_style_provider_private_get_color() return a GtkCssValue (a
GtkCssColorValue to be exact) instead of GtkSymbolicColor.
With this, the symbolic color usage inside GTK is minimized.
Benjamin Otte [Sun, 25 Nov 2012 00:55:53 +0000 (01:55 +0100)]
symboliccolor: Implement using GtkCssValue
Benjamin Otte [Sat, 24 Nov 2012 21:04:24 +0000 (22:04 +0100)]
symboliccolor: symbolic color is no longer a CssValue
This is not needed anymore, because we have GtkCssColorValue for that
now.
Benjamin Otte [Sat, 24 Nov 2012 20:56:31 +0000 (21:56 +0100)]
symboliccolor: Change prototype of function
Makes it easier to use the function in the places where it's still used.
Benjamin Otte [Sat, 24 Nov 2012 20:27:33 +0000 (21:27 +0100)]
settings: Remove support for color schemes
Color schemes were unused and their interaction with CSS3 themes was
undefined. So we decided to remove support for them.
This commit does that.
Benjamin Otte [Sat, 24 Nov 2012 20:08:11 +0000 (21:08 +0100)]
styleprovider: Remove (broken) implementations of get_style
The implementations were broken and get_style() is deprecated and
documented to return NULL now.
Benjamin Otte [Sat, 24 Nov 2012 19:59:37 +0000 (20:59 +0100)]
stylecascade: Remove get_icon_factory() implementation
It was redundant.
Benjamin Otte [Sat, 24 Nov 2012 19:57:12 +0000 (20:57 +0100)]
styleprovider: Deprecate two non-working functions
Both of them weren't used inside GTK. And apparently they weren't used
outside of GTK either, as alex recently mentioned them being severly
broken.
David King [Thu, 22 Nov 2012 21:15:06 +0000 (21:15 +0000)]
docs: gtk_file_chooser_get_filename() returns absolute paths
The documentation for gtk_file_chooser_get_filenames() states that the
returned filenames are absolute paths, and uses g_file_get_path() to
construct the filename. The same function is used to construct the
filename in gtk_file_chooser_get_filename(), so it should also return
absolute paths.
https://bugzilla.gnome.org/show_bug.cgi?id=371034
Nilamdyuti Goswami [Fri, 23 Nov 2012 14:48:36 +0000 (20:18 +0530)]
Assamese translation updated
Nilamdyuti Goswami [Fri, 23 Nov 2012 14:47:24 +0000 (20:17 +0530)]
Assamese translation updated
David King [Thu, 22 Nov 2012 18:57:15 +0000 (18:57 +0000)]
docs: Fix typo in gtk_tree_view_set_tooltip_column comment
https://bugzilla.gnome.org/show_bug.cgi?id=688884
David King [Thu, 22 Nov 2012 17:38:41 +0000 (17:38 +0000)]
docs: Improve GtkTreeModel iteration pattern
Iterating over the model in this way means that use of continue is less
error-prone, as the increment is part of the loop construct.
https://bugzilla.gnome.org/show_bug.cgi?id=548793
David King [Thu, 22 Nov 2012 17:15:56 +0000 (17:15 +0000)]
docs: Correct GtkWidget::scroll-event mask documentation
Since GTK+ 3.3.18, GDK_SCROLL_MASK has been used as the mask for scroll
events. Update the documentation to reflect this.
https://bugzilla.gnome.org/show_bug.cgi?id=677339