Commit Graph

25110 Commits

Author SHA1 Message Date
Matthias Clasen
530aa3cced shortcuts: Avoid excessive property notification
Notifying needlessly causes unnecessary work, and causes our
testsuite to fail.
2015-11-20 00:13:20 -05:00
Carlos Garnacho
26f9d6b1c1 gtkdnd: Ensure we don't fold the drag icon into the cursor on wayland
This is wrong by all accounts there, as we can do no tricks there to show
a "drag failed" animation, which is performed by the compositor itself
on wayland.
2015-11-19 23:28:19 +01:00
Carlos Garnacho
e3012dc9b3 gtkdnd: Use gdk_drag_begin_for_device()
We've got the pointer at hand there, just pass that instead of figuring
out from the client pointer.
2015-11-19 23:26:49 +01:00
Christoph Reiter
bb34db6d35 gtkheaderbar: update the window buttons on ::hierarchy-changed instead of ::realize
The window button setup depends on properties of the toplevel window.
Instead of updating the setup on realize, do it when the toplevel
changes.

This makes sure that when a GtkHeaderBar is added to a window
all the widgets are present and get_preferred_height() will return
the height the widget will have when finally shown. This allows
the logic in gtkwindow to select the right window size so that
the content size will match the requested default size.

https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-11-19 21:42:53 +01:00
Christoph Reiter
308aec53c6 gtkwindow: apply CSD adjustments to the default size when used instead of when setting it
Before the resulting window size would differ if the default size was set
before adding a headerbar vs after. Now the saved state is again the actual
requested size and it is adjusted at the time we request a window size.

https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-11-19 21:42:24 +01:00
Olivier Fourdan
1080ffdf19 window: maximize on double click only if allowed
GtkHeaderBar will not show the maximize button if the window in not of
type normal or not resizeable.

Use the same restriction for double-click actions as well.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=757530
2015-11-19 15:04:03 -05:00
Jonas Platte
6a69c01e42 Fix return annotations for GtkWindow
Add nullable annotations for functions that may return NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=753520
2015-11-19 15:01:31 -05:00
Phillip Wood
ce8b5b4586 Fix character entities
These are not supposed to be supported by gtk-doc¹

¹https://bugzilla.gnome.org/show_bug.cgi?id=758137

https://bugzilla.gnome.org/show_bug.cgi?id=758175
2015-11-19 14:54:57 -05:00
Carlos Soriano
9f3839066e gtkstack: allow templates to override all properties
Currently GtkStack has some G_PARAM_CONSTRUCT properties. That means,
the properties are set with its default value after the initializacion
of the object.
When using GtkBuilder to build objects, GtkBuilder creates them and
after that sets the properties found on the xml definition.
However, this is not true for templates because the template is initialized
in the init() function of the actual object, and after that, the construct
properties will be set.

This is a problem when someone wants to use templates with GtkStack and
set those properties, since they will be set on the tempalt initialization
and set again to its default values afterwards.

To fix this, make those properties not G_PARAM_CONSTRUCT.

https://bugzilla.gnome.org/show_bug.cgi?id=758086
2015-11-19 14:50:09 -05:00
Matthias Clasen
029aad7907 Add more CSS node docs 2015-11-19 14:01:41 -05:00
Matthias Clasen
040723ec2d Trivial: Some doc rewording 2015-11-19 13:40:57 -05:00
Matthias Clasen
2b5d4455b8 Add some CSS node docs
Write up some of the insights from doing the CSS node transition,
so the knowledge is not lost.
2015-11-19 12:56:30 -05:00
Emmanuele Bassi
e2d9051f23 Do not use the GPL v3 blurb for LGPL v2.1 files
GTK+ is licensed under the terms of the GNU LGPL v2.1+.
2015-11-19 12:54:48 +00:00
Emmanuele Bassi
e4c565d780 Do not use the LGPL v3 blurb for LGPL v2.1 files
GTK+ is released under the terms of the GNU LGPL v2.1+.
2015-11-19 12:54:48 +00:00
Emmanuele Bassi
8194bd1960 Fix the license version in GtkTrashMonitor
There is no GNU Lesser General Public License version 2; it's either GNU
Library General Public License version 2, or GNU Lesser General Public
License version 2.1.
2015-11-19 12:54:48 +00:00
Emmanuele Bassi
0d48a308ae Fix license version for GtkFileChooserWidget private header
Since it's using Lesser GPL, use version 2.1; there is no Lesser GPL v2,
as it was called 'Library GPL' prior to v2.1.
2015-11-19 12:54:06 +00:00
Emmanuele Bassi
eec10b703f Fix the licensing blurb of GtkBookmarksManager
Copy-pasta from GPL instead of LGPL.

Also, there is no GNU Lesser General Public License version 2; either
it's the GNU Library General Public License version 2, or it's the GNU
Lesser General Public License version 2.1.
2015-11-19 12:52:46 +00:00
Emmanuele Bassi
1ddf204745 Fix the licensing blurb in GtkPlacesSidebar
The code is released under the terms of the LGPL v2.1+, as is the rest
of the GTK+ code.
2015-11-19 12:52:46 +00:00
Matthias Clasen
a2d9223094 Fix license header
I didn't meant to make this different from any other file
in GTK+ when I added it.
2015-11-19 07:22:01 -05:00
Matthias Clasen
95df0fb6f5 box: Use an element name 2015-11-19 07:07:26 -05:00
Matthias Clasen
86764aeb1c toolitemgroup: Fix initial state
GtkToolItemGroup starts out as non-collapsed, make the CSS node
state reflect that.
2015-11-19 06:05:15 -05:00
Christian Hergert
0a0213bc1c entry: ensure valid GdkWindow before set_invisible_cursor()
If the window has not yet been created, then we can't set the invisible
cursor yet. This can happen in situations where the widget is in a
revealer with type-to-search functionality.
2015-11-18 14:41:29 -08:00
Cosimo Cecchi
bb441f4488 HighContrast: remove deprecated progressbar style properties
These are ignored and trigger a runtime warning.
2015-11-18 09:16:51 -08:00
Olivier Fourdan
370e3469c6 gtkwindow: apply csd offset to set/get_default_size
An application may use gtk_window_get_size() to retrieve the current
window size and later reuse that size with
gtk_window_set_default_size().

gtk_window_set_default_size() and gtk_window_get_default_size() should
also take client side decorations offset into account.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-11-18 08:35:31 +01:00
Matthias Clasen
87b10e6f60 popover: Avoid a crash when no relative-to widget is set
This was showing up in glade, which creates freestanding
popovers.
2015-11-17 22:48:35 -05:00
Matthias Clasen
f79aef67f8 HighContrast: remove deprecated style properties 2015-11-17 21:47:02 -05:00
Matthias Clasen
7085595c08 expander: Use the right state when querying style properties
Failure to do so causes warnings.
2015-11-17 20:48:50 -05:00
Matthias Clasen
49bb6d287c Adwaita: Drop deprecated style properties 2015-11-17 19:41:08 -05:00
Christian Hergert
0ca014af14 stackswitcher: add GtkStackSwitcher:icon-size property
Set the GtkStackSwitcher:icon-size property to change the size of icons
used in the linked GtkRadioButton children.

https://bugzilla.gnome.org/show_bug.cgi?id=758208
2015-11-16 21:38:22 -08:00
Matthias Clasen
e24c248013 Adwaita: Remove deprecated style properties
These are now triggering warnings, so clean them up.
2015-11-16 15:14:41 -05:00
Matthias Clasen
43f822e70f Annotate deprecated style properties
Use G_PARAM_DEPRECATED with deprecated style properties.
This will make it easier to identify and remove such stale
properties from css, since it will now trigger warnings.
2015-11-16 15:13:33 -05:00
Matthias Clasen
08c4bc8aa5 css provider: Issue deprecation warnings for style properties
This makes G_PARAM_DEPRECATED useful for style properties.
2015-11-16 14:37:23 -05:00
Benjamin Otte
9facd00884 cssprovider: Only push a new scanner when none exists
For @import, we want to emit the error as part of the @import statement,
not as part of the new file.
2015-11-16 19:34:24 +01:00
Benjamin Otte
0a4e88b79b cssprovider: Have a section on import error
When loading a nonexisting CSS file using
gtk_css_provider_load_from_file() or gtk_css_provider_load_from_path()
we would emit the error using a NULL scanner. Don't do that, because
we'll have a NULL section in that case and error handlers don't like
that.

Testcase attached.

https://bugzilla.redhat.com/show_bug.cgi?id=1277959
2015-11-16 17:39:15 +01:00
Carlos Soriano
81cb57b260 gtkcontainer: clarify requirements for implementations
Spent quite a few time investigating why the widgets were
not shown in my GtkContainer implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=758087
2015-11-16 17:18:00 +01:00
Matthias Clasen
ed2c14f4aa spinbutton: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
90f8b054b3 range: Document some style properties as deprecated
Remove dead code dealing with the arrow-displacement-x/y style
properties, and document them as deprecated.
2015-11-16 07:20:18 -05:00
Matthias Clasen
c6d5accf9c progressbar: Ignore x/yspacing style properties
These are not really useful, so ignore and deprecate them.
2015-11-16 07:20:18 -05:00
Matthias Clasen
bab98a8427 menuitem: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
3aa9293258 menubar: Ignore the shadow-type style property
The border can be controlled with regular CSS, so deprecate
and ignore this style property.
2015-11-16 07:20:18 -05:00
Matthias Clasen
af04390b29 icon view: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
46b7b0ac9f entry: Ignore the icon-prelight style property
The icon prelight effect can be controlled with regular CSS,
so deprecate and ignore this style property.
2015-11-16 07:20:18 -05:00
Matthias Clasen
684cd47c53 button: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
8fea3ebfa0 button box: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
c1dd25d459 assistant: Document style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
5cc6fb7644 Avoid an unused variable warning
This was introduced with the recent win32 build fix.
2015-11-16 07:20:18 -05:00
Cosimo Cecchi
8a66e685a6 stack switcher: fix typos in documentation comment 2015-11-15 14:11:48 -08:00
Matthias Clasen
3811eb4f32 label: Use css nodes for links
Use a subnode with name link for links in labels. These subnodes
carry the :link or :visited state.
2015-11-15 01:04:27 -05:00
Matthias Clasen
a24de82ced spinbutton: update node state more often
We need to update the entry_node state, and we should
update the node state initially.
2015-11-14 23:18:17 -05:00
Matthias Clasen
9b041ae930 shortcuts: Support direction-specific shortcuts
The prime example for direction-dependent shortcuts is using
<Alt>Left or <Alt>Right to go back. Support this by adding a
direction property to GtkShortcutsShortcut, and filtering by
the current text direction.

https://bugzilla.gnome.org/show_bug.cgi?id=757888
2015-11-14 22:34:19 -05:00
Matthias Clasen
705d371362 help overlay: Allow key sequences
Extend the syntax to allow sequences of keys or key combinations,
e.g. t+t or <ctl>c+<ctl>x.

https://bugzilla.gnome.org/show_bug.cgi?id=758051
2015-11-14 21:34:43 -05:00
Matthias Clasen
aa5af9da4f HighContrast: Fix selection styling in icon views
This makes selected items in icon view show up again.
2015-11-14 18:35:03 -05:00
Matthias Clasen
55667352aa HighContrast: Fix selection styling in treeviews
This makes selected rows in treeviews show up again.
2015-11-14 18:29:27 -05:00
Matthias Clasen
65635546b4 HighContrast: Fix selection styling in some places
Make selected flow box children and list box rows show up again.
2015-11-14 18:25:59 -05:00
Matthias Clasen
4cee658f5f Adwaita: Misc cleanups
Various cleanups and simplifications.
2015-11-14 18:25:24 -05:00
Matthias Clasen
afab635f9d HighContrast: Fix shadow size
Ensure that the shadow extents don't change as we go to backdrop,
to prevent windows from jumping.
2015-11-14 18:05:06 -05:00
Matthias Clasen
718ca64bb7 Adwaita: Fix selection styling in icon views
This was also broken by recent selection styling changes.
2015-11-14 17:36:35 -05:00
Matthias Clasen
919be04a3d Adwaita: Fix selection styling in flow boxes
This was broken by recent selection styling changes.
2015-11-14 17:33:00 -05:00
Timm Bäder
d6cbe7ed2b GtkApplicationWindow: the help_overlay is nullable 2015-11-14 22:58:38 +01:00
Timm Bäder
d9de02e1ca GtkApplicationWindow: Fix typos 2015-11-14 22:20:27 +01:00
Matthias Clasen
dc836abbb4 Adwaita: Fix window shadow size
Ensure that the shadow extents don't change as we go to backdrop,
to prevent windows from jumping.
2015-11-14 12:55:34 -05:00
Matthias Clasen
93629325d5 Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
debb33db8c Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
bcc6df00e5 Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
828a66b4aa Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
38be852bee Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
10a8533bd3 Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
6c5d08d75a Cosmetic: Avoid explicit state variables
Fold it into its single user.
2015-11-14 12:32:57 -05:00
Matthias Clasen
3007ad6f3b Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
eca9549c72 Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
beb2875437 Cosmetic: Avoid explict state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
acdb7dae4e Cosmetic: Avoid an explicit state variable
Using the state of the context makes it more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
cf1adadfed listbox: Cosmetic cleanup
We don't cast these arguments anywhere else, so lets not do here
either.
2015-11-14 12:32:57 -05:00
Benjamin Otte
55735cee2f window: Don't invalidate cssnode during get_preferred_width()
Getting the shadow width must not call gtk_style_context_set_state()
because that will invalidate the node and cause a style-updated emission
which can cause gtk_widget_queue_resize() calls.

And calling queue_resize() from get_preferred_size() essentially means
the size is permanently invalid because you invalidate it while
querying it.

This causes flickering of windows when going from/to backdrop state. To
avoid this we either need to fix the theme to not have different shadow
sizes in those cases or we need to ensure the window doesn't flicker in
the first place.
2015-11-14 18:32:08 +01:00
Timm Bäder
3c22784328 GtkShortcutsShortcut: Add missing word 2015-11-13 14:12:35 +01:00
Timm Bäder
86f4346c29 GtkGrid: Remove invalid return annotation 2015-11-13 14:12:35 +01:00
Chun-wei Fan
d01ea18dc3 gtkimcontextsimple.c: Use X11_DATA_PREFIX only on X11/Wayland
Only use the hard-coded build-time path given by X11_PREFIX on X11 and
Wayland where a X11 package is normally available.  On other platforms,
get the datadir of the running system and mimic the behavior by
constructing the path dynamically.  This avoids hardcoding the path for
searching for compose tables where we want to have relocatability.

This fixes the build on Windows/MSVC as well, where we don't normally have
any X11 packages available.

https://bugzilla.gnome.org/show_bug.cgi?id=757984
2015-11-13 07:39:54 -05:00
Matthias Clasen
1190a61c27 check menu item: Fix a typo
It is check, not checl. Pointed out by Giovanni Campagna in
https://bugzilla.gnome.org/show_bug.cgi?id=757968
2015-11-13 07:11:23 -05:00
Matthias Clasen
386b9ef075 Adwaita: Fix styling of selected rows in treeviews
This broke in some of the recent selection handling changes.
2015-11-13 07:07:53 -05:00
Paolo Borelli
c619c86250 filechooser: ignore double clicks on the selected item
Since we are now interpreting button press events and
make our own double-click determination, we should not
handle double-click events that are generated by GDK.

https://bugzilla.gnome.org/show_bug.cgi?id=757950
2015-11-13 07:07:53 -05:00
Matthias Clasen
4faef48410 notebook: Chain up in direction_changed
We do this everywhere else.
2015-11-13 06:41:14 -05:00
Matthias Clasen
a0cdd4ac51 HighContrast: Update levelbar styling
Adapt to changes in the previous commit.
2015-11-13 01:05:30 -05:00
Matthias Clasen
d5ab5fee3b Adwaita: Update levelbar styling
Adapt to the changes in the previous commit. In particular, fix
the handling of low and high offsets. Anything below the low offset
gets warning color, anything below high gets selected background,
and anything below the new full offset gets success color.
2015-11-13 00:56:54 -05:00
Matthias Clasen
21209a963a levelbar: Use more CSS nodes
Create as many CSS nodes as we're rendering blocks on the screen.
2015-11-13 00:55:28 -05:00
Sébastien Wilmet
1685da6f69 textbuffer: nicer get_iter functions, without return values
Avoid crashes when passing an invalid location to a
gtk_text_buffer_get_iter_at_*() function.

A first attempt added boolean return values to know if @iter has been set to
the exact location, but it breaks Python and JS bindings because the out
parameter is already a return value in those languages.

Unit tests are added.

https://bugzilla.gnome.org/show_bug.cgi?id=735341
2015-11-12 17:50:39 +01:00
Matthias Clasen
fde91c3bec Revert "textbuffer: nicer get_iter functions"
This reverts commit a9a1c00cc9.

Unfortunately, adding the boolean return broke both the python
and javascript bindings, since they now return a tuple consisting
of the boolean and the out argument.
2015-11-12 09:58:28 -05:00
Chun-wei Fan
a56f8859ee gtktestutils.c: Ensure variables are declared at top of block
Fixes build on C89 compilers...
2015-11-12 20:12:26 +08:00
Alexander Larsson
51dc4873fd Add gtk_native_dialog_destroy()
Its very easy to get extra references to the NativeDialog so that
when you release your last reference any visible dialog is not
hidden. We handle this by adding a destroy method similar to how
you destroy regular toplevels.
2015-11-11 16:06:44 +01:00
Alexander Larsson
402225a8e2 GtkNativeDialog: Fix modal handling in gtk_native_dialog_run() 2015-11-11 15:14:40 +01:00
Emmanuele Bassi
0e0b45602a tooltipwindow: Use a builder UI file
It's not a hugely complicated file, but it's easier to deal with some of
the details of tooltip windows styling if we have a UI file to edit,
instead of source code.
2015-11-11 12:27:07 +00:00
Emmanuele Bassi
73497c16ae Add autocleanups for GtkShortcutsWindow 2015-11-11 12:02:43 +00:00
Emmanuele Bassi
9ebe95f4a9 Remove introspection scanner guards around autocleanups
They are not needed.
2015-11-11 12:02:43 +00:00
Timm Bäder
5912790f32 gtklevelbar: Fix typo 2015-11-11 09:35:31 +01:00
Matthias Clasen
373a3517b3 HighContrast: Update levelbar styling
Adapt to the changes in the previous release.
2015-11-11 00:30:24 -05:00
Matthias Clasen
2a0024ebe2 Adwaita: Update levelbar rendering
Adapt to the changes in the previous commit.
2015-11-11 00:26:32 -05:00
Matthias Clasen
17f110433d levelbar: Port to use CSS nodes
Use element names levelbar, trough, block, and some style
classes on the block nodes: .discrete, .continuous, .empty,
.level-low, etc.
2015-11-11 00:25:24 -05:00
Matthias Clasen
02d08a1bd7 text util: Avoid creating transient nodes
We don't need to add .view - its already added, and shouldn't
really be needed in the first place.
2015-11-10 21:59:31 -05:00
Matthias Clasen
f3c915f18c HighContrast: Update textview selection styling
Use the selection element name.
2015-11-10 21:52:45 -05:00
Matthias Clasen
fbd6a814c6 Adwaita: Update textview selection styling
Use the selection name.
2015-11-10 21:51:36 -05:00
Matthias Clasen
9d9088304c text view: Improve text rendering
Use the text CSS node for rendering text, and the selection node
for rendering selected text, avoid gtk_style_context_save, update
states of all CSS nodes, and use the proper states when querying
style properties.
2015-11-10 21:49:42 -05:00
Matthias Clasen
bb786ac240 textview: Use a CSS node for selection rendering
Use a CSS node with name selection, like we do for entries
and labels. Unlike those widgets, we currently don't user
gtk_render_background, but just use the background color.
That will require more effort.
2015-11-10 21:18:10 -05:00
Matthias Clasen
735a71da11 cell view: Add an element name
The element name is...cellview.
2015-11-10 20:45:42 -05:00
Matthias Clasen
514c0f761f HighContrast: Update label selection styling
Adapt to changes in the previous commit.
2015-11-10 20:33:12 -05:00
Matthias Clasen
218d584b54 Adwaita: Update label selection styling
Adapt to the changes in the previous commit.
2015-11-10 20:29:31 -05:00
Matthias Clasen
fafa75ac19 label: Use a CSS node for selection rendering
This adds new possibilities for themes to render the selection
in fancy ways.
2015-11-10 20:28:10 -05:00
Matthias Clasen
27d70cbb10 entry: Simplify selection rendering
Calling gtk_render_background for each rectangle in the region
leads to suboptimal and sometimes weird results. Getting this
right requires more work in Pango first. Go back to just rendering
a single background, and clip it to the selection region. This
matches what GtkLabel does.
2015-11-10 20:18:39 -05:00
Matthias Clasen
e9449f6014 inspector: Don't grow horizontally
Labels in the object tree are application data. Ellipsize them
to avoid growing extremely wide if the data is bogus.
2015-11-10 17:36:33 -05:00
Matthias Clasen
774b6f94d5 inspector: fix a typo 2015-11-10 17:36:23 -05:00
Matthias Clasen
6cbfc780c5 HighContrast: Update entry selection styling
Adapt to changes in the previous commit.
2015-11-10 13:39:10 -05:00
Matthias Clasen
e7854aeb42 Adwaita: Update entry selection rendering
Adapt to the changes in the previous commit.
2015-11-10 13:37:15 -05:00
Matthias Clasen
2a03107677 entry: Use a CSS node for selection rendering
This adds new possibilities for themes to render the selection
in fancy ways.
2015-11-10 13:36:16 -05:00
Matthias Clasen
3552f524c3 Adwaita: Update tooltip styling more
Now that tooltips are csd again, the CSS wasn't quite working
anymore.
2015-11-10 12:48:40 -05:00
Olivier Fourdan
f2b373add8 gtkwindow: css offset for toplevel only
At the time gtk_window_move() or gtk_window_resize() get called, there
is no way to predict if a popup window will actually draw its shadow, so
applying an offset in this case may end up with a wrong size or
positioning for such windows.

Changing the logic in gtk_window_should_use_csd() as previously done to
address that issue will cause some other breakage as popup windows may
not draw a shadow but still need CSD.

So best is to actually apply client side decorations offset for regular,
top level windows only. This is actually a lot simpler and safer and
less likely to cause additional breakage.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-11-10 12:35:23 -05:00
Matthias Clasen
69cbf0a129 Adwaita: update tooltip styling
Adapt to the changes in the previous commit. Note that tooltip
appearance is currently affected by tooltips having lost their
csd nature, due to a regression.
2015-11-10 12:26:05 -05:00
Emmanuele Bassi
62d9abeebc Move GtkAccelMap autocleanup to the class header 2015-11-10 14:12:35 +00:00
Emmanuele Bassi
a395852233 Recursively move autocleanups to their header files
Start from GtkAccelLabel and walk the tree downwards.
2015-11-10 14:11:04 +00:00
Emmanuele Bassi
56ab3bdf3c Move GtkAboutDialog autocleanup to the class header 2015-11-10 14:08:07 +00:00
Emmanuele Bassi
90c15c294e Move GtkDialog autocleanup to the class header 2015-11-10 14:07:41 +00:00
Emmanuele Bassi
93369788c9 Start recursively moving autocleanups macros to their headers
* Cover letter

Having a single header file for all autocleanups definitions was a
reasonable stop-gap measure, but now GTK+ is starting to use G_DECLARE_*
macros. This means that every class using a G_DECLARE_* macro will need
to include "gtk.h" to avoid compiler warnings, which is not acceptable.

By moving the G_DEFINE_AUTO* use to the header that defines the type we
allow using the G_DECLARE_* macros without sacrificing the ability to
include only the needed files when deriving from a class.

* Commit

This commit changes all includes relative to GtkWindow to define their
own autocleanup macros.
2015-11-10 13:59:36 +00:00
Emmanuele Bassi
d589170754 Only include the necessary headers in GtkPlacesViewRow
When compiling inside GTK we also use the GTK_COMPILATION guard, as the
GtkPlacesView and GtkPlacesViewRow widgets are shared with Nautilus.
2015-11-10 13:49:11 +00:00
Emmanuele Bassi
862007fe1c Move GtkListBox g_autoptr macros to the class header
This allows GtkPlacesViewRow to use G_DECLARE_FINAL_TYPE without having
to include gtk.h.
2015-11-10 13:48:31 +00:00
Emmanuele Bassi
0d4a010cbb Remove an unused variable declaration
And the compiler warning that comes with it.
2015-11-10 13:42:02 +00:00
Emmanuele Bassi
40d6321b4c Move GtkWindow g_autoptr macros in the class header
Otherwise we won't be able to use G_DECLARE_* macros internally to GTK
without generating warnings, or without including gtk.h itself.
2015-11-10 13:42:02 +00:00
Matthias Clasen
534f537a3c Fix an oversight
We must set the construct-only "type" to GTK_WINDOW_POPUP, otherwise
this ends upo being a regular toplevel.
2015-11-10 13:23:18 +00:00
Emmanuele Bassi
6f6e536543 Use CSS node name for GtkTooltipWindow
Instead of a style class.
2015-11-10 13:23:18 +00:00
Emmanuele Bassi
a846fd586d Add GtkTooltipWindow private sub-class
GtkTooltip does a lot of set up on the GtkWindow it uses internally. We
should move that code to a separate class to keep it contained.
2015-11-10 13:23:18 +00:00
Matthias Clasen
c2d0aa7851 print dialog: Avoid gtk_style_context_save
There was one more call to gtk_style_context_save here that I
overlooked. We can get rid of it by just setting the element name
on the drawing area.
2015-11-10 07:54:59 -05:00
Matthias Clasen
afc09d924e flowbox: Add a diagram to CSS documentation 2015-11-10 07:39:40 -05:00
Matthias Clasen
740fa2cd70 iconview: Add a diagram to CSS documentation 2015-11-10 07:37:25 -05:00
Matthias Clasen
ff4b112265 treeview: Add a diagram to CSS documentation 2015-11-10 07:36:41 -05:00
Matthias Clasen
ec065d4cbf HighContrast: Update treeview rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 07:31:32 -05:00
Matthias Clasen
8efb1b1f92 Adwaita: Update treeview rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 07:30:29 -05:00
Matthias Clasen
4c56a1ea5d treeview: Use a CSS node for rubberband drawing
Use a CSS node with name rubberband to draw the rubberband
selection.
2015-11-10 07:29:54 -05:00
Alexander Larsson
0af457639d TextView: Use saner coordinate space in draw_layer.
When I added the draw_layer vfunc it accidentally got passed a cairo_t
that was configured with to draw in the viewport coordinate space (rather
than the buffer coordinate space). This makes things unnecessary complex,
because you have to convert between the two.

The pixel cache is shared between the text and the layers, so there is
no way to use draw_layer to get a stationary overlay effect. Thus it makes
much more sense for the draw_layer vfunc to draw in the buffer space.

Just changing this would break ABI for existing code, so this is fixed
by adding new layer types and deprecating the old ones.

Also, we use the new layer types to fix gtk3-widget-factory.

https://bugzilla.gnome.org/show_bug.cgi?id=757856
2015-11-10 08:39:47 +01:00
Matthias Clasen
b0a6af3783 Forgotten file
This change belongs to the iconview rubberband changes.
2015-11-10 00:55:57 -05:00
Matthias Clasen
921c2a1db4 HighContrast: Update flowbox rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 00:55:29 -05:00
Matthias Clasen
f6201e4ccd Adwaita: Update flowbox rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 00:52:09 -05:00
Matthias Clasen
6c7f4b78b5 flowbox: Use a CSS node for rubberband drawing
Use a CSS node with name rubberband to draw the rubberband
selection.
2015-11-10 00:51:48 -05:00
Matthias Clasen
75d465eee4 HighContrast: Update rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 00:30:39 -05:00
Matthias Clasen
f4076dff42 Adwaita: Update rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 00:28:46 -05:00
Matthias Clasen
318269550b iconview: Use a CSS node for rubberband drawing
Use a CSS node with name rubberband to draw the rubberband
selection.
2015-11-10 00:27:11 -05:00
Matthias Clasen
ee76f9bfed HighContrast: Update text handle styling
Adapt to the changes in the previous release.
2015-11-09 23:49:29 -05:00
Matthias Clasen
3daff48aca Adwaita: Update text handle styling
Adapt to the changes in the previous commit.
2015-11-09 23:47:08 -05:00
Matthias Clasen
0a136004c9 Document text handle styling
Since GtkTextHandle is private, document text handle style
classes in the GtkEntry and GtkTextView documentation.
2015-11-09 23:45:29 -05:00
Matthias Clasen
ea51db1feb text handle: Port to CSS nodes
Use cursor-handle as the element name for the CSS node that
is used to render text the selection handles.
2015-11-09 23:33:54 -05:00
Matthias Clasen
14f4b7ead2 Avoid excessive property notification for GtkStack::interpolate-size
make check checks this for writable properties, and fails now that
we've made this property writable.
2015-11-09 14:53:25 -05:00
Matthias Clasen
c283315466 notebook: Update CSS docs
The .header style class is no longer used.
2015-11-09 13:33:58 -05:00
Timm Bäder
c28be30ac1 colorswatch: Don't pass _GENERIC_FALLBACK to API that doesn't support it 2015-11-09 17:13:19 +01:00
Benjamin Otte
a0d9728e6c textdisplay: save/restore when using different state flags
Also, never use gtk_widget_get_state_flags() when we want
gtk_style_context_get_state()
2015-11-09 14:17:53 +01:00
Olivier Fourdan
9757ea2c49 gtkwindow: Fix resize without "_GTK_FRAME_EXTENTS"
git commit a5b1cdd0 introduced a regression where CSD windows are not
resizable with metacity.

Reason being that metacity does not support "_GTK_FRAME_EXTENTS" and
therefore gtk_window_supports_client_shadow() would always return FALSE.

This explains why it works with window managers which support
"_GTK_FRAME_EXTENTS" such as mutter/gnome-shell or xfwm4.

Partially revert commit a5b1cdd0 to reinstate the logic in
get_shadow_width().

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=757805
2015-11-09 14:17:53 +01:00
Matthias Clasen
32f27a4cd0 container: Slightly reword some docs
Clarify gtk_container_remove documentation regarding reference
holding. Suggested in

https://bugzilla.gnome.org/show_bug.cgi?id=757607
2015-11-09 07:40:44 -05:00
Matthias Clasen
7314c8ca06 tool item group: Use a CSS node for the arrow
This completes the transition for GtkToolItemGroup.
2015-11-09 06:42:59 -05:00
Matthias Clasen
db70ec9666 HighContrast: Update notebook styling
Some fixes for arrows and for headers.
2015-11-08 21:08:38 -05:00
Matthias Clasen
f564f16b5c Adwaita: Update notebook styling
Adapt to the changes in the previous commit.
2015-11-08 21:08:38 -05:00
Matthias Clasen
4802b515e4 notebook: Use CSS nodes for arrows
This converts the drawing of scroll arrows to use separate CSS
nodes.
2015-11-08 21:08:38 -05:00
Matthias Clasen
78373eb9f7 Don't use a transient node in gtk_render_arrow()
It is not necessary for the users of this API, and causes things
to not work as intended. Without this transient node, styling
"notebook header tabs arrow" has the desired effect on notebook
arrows.
2015-11-08 21:08:38 -05:00
Matthias Clasen
e892b918dc HighContrast: update notebook styling
Adapt to the changes in the previous commit.
2015-11-08 21:08:38 -05:00
Matthias Clasen
6592c6f51f Adwaita: Adapt notebook styling a bit
This needs a lot more work.
2015-11-08 21:08:38 -05:00
Matthias Clasen
5686853c6e notebook: redo notebook styling
Add a header node, and put positional classes on it.
2015-11-08 21:08:38 -05:00
Benjamin Otte
2fcbf996c6 placesview: Don't export API
This is a private object, don't export its symbols.

https://bugzilla.gnome.org/show_bug.cgi?id=756978
2015-11-09 01:48:54 +01:00
Benjamin Otte
0e75fbf39c cssnode: Propagate NTH_LAST_CHILD changes properly
We were just catching the previous sibling before. Now we properly
invalidate all previous siblings (and also all other wiblings, but we
can think about optimizing that later).
2015-11-09 01:48:14 +01:00
Benjamin Otte
4141a7d7c8 csstypes: Propagate NTH_CHILD and NTH_LAST_CHILD to siblings
Otherwise, we'd have to mark eveyr child on changes, and it's far easier
to do that once we actually validate.
2015-11-09 01:48:14 +01:00
Benjamin Otte
a7816909ef box: Refactor CSS node handling
Only update the node that changed, don't invalidate everything.
2015-11-09 01:48:14 +01:00
Benjamin Otte
bed3ff2737 box: Don't track children visibility
It's not necessary anymore with css nodes.
2015-11-09 01:48:14 +01:00
Benjamin Otte
d55628cd9f testutils: Add deprecation guards 2015-11-09 01:48:14 +01:00
Matthias Clasen
c2a9202a66 Move gtk_builder_extend_with_template to public header
We export the symbol, so we should not hide it in private
headers.
2015-11-08 19:21:45 -05:00
Matthias Clasen
f0a74bc302 Document gtk_builder_extend_wth_template 2015-11-08 19:21:39 -05:00
Matthias Clasen
f5af2612f4 Adwaita: Update print dialog styling
Adapt to the changes in the previous commit. With the changes here,
we always render the paper as white, even in the dark theme.
2015-11-07 00:58:00 -05:00
Matthias Clasen
59c1547a48 print dialog: Use an element name for rendering the paper
Use a transient node with name paper instead of a random
collection of style classes for rendering the papers.
2015-11-07 00:57:03 -05:00
Matthias Clasen
c63c932a05 Adwaita: Update expander styling
Adapt to the changes in the previous commit.
2015-11-07 00:42:37 -05:00
Matthias Clasen
7ba1368c40 epxander: Port to CSS nodes
Use CSS nodes with name expander and arrow here.
2015-11-07 00:42:24 -05:00
Matthias Clasen
cf7f23f4dd scrolledwindow: Document overlay scrolling style classes
Document which style classes are used on scrollbars to
implement overlay scrolling.
2015-11-06 23:35:20 -05:00
Matthias Clasen
353bfb0092 scrolledwindow: Set positional classes on scrollbars
This might be useful for some themes.
2015-11-06 23:28:22 -05:00
Matthias Clasen
f900bec4fa scrolled window: Drop unnecessary transient nodes
We already add the .frame style class to the context depending
on the shadow property. No need to save the context and add it
again all the time.
2015-11-06 22:58:08 -05:00
Matthias Clasen
e1182ec0e1 window: Don't pass wrong state to context
GtkStyleContext warns nowadays if one queries properties
from a different state. So, don't do that.
2015-11-06 22:47:16 -05:00
Matthias Clasen
d25e0657be range: Fixes to the new trough rendering
There was an errant y that caused some troughs to not be drawn.
And also set the state of the fill node.
2015-11-06 22:27:31 -05:00
Matthias Clasen
60c7893c14 scale: Document the new CSS nodes 2015-11-06 22:27:31 -05:00
Benjamin Otte
e5ef7dc681 notebook: Fix copy/paste error
This is from the recent commit 2a1a483ede
2015-11-07 03:29:44 +01:00
Matthias Clasen
f95a22a3ab Adwaita: Update range styling
Adapt to the new CSS nodes for trough rendering. This commit
also brings back visible fill-level rendering for scales, which
was not working for a while. The styling provided for that
(scale trough fill) is just a placeholder to aid in debugging
the implementation.
2015-11-06 19:28:56 -05:00
Matthias Clasen
11d7f6df7c range: Use CSS nodes for all trough rendering
This replaces the somewhat freewheeling use of style classes to
render a part of the trough highlighted and show a fill level.
2015-11-06 19:25:58 -05:00
Matthias Clasen
50ff2a566a Update mac key theme for css changes
Use the element names for widgets.
2015-11-06 15:20:35 -05:00
Matthias Clasen
bc656a3ca5 Update emacs key theme for css changes
Use the element names for widgets.
2015-11-06 15:20:35 -05:00
Benjamin Otte
a9814fea7d stylecontext: Always warn on style mismatch
For now, always warn when
gtk_style_context_get()/get_padding()/get_margin()/get_border()
get called with the wrong state.

We used to hide this behind an env var because the warnings were
too frequent, but with the recent refactorings, this warning has become
rather important for detecting bugs.

If it's still problematic, we might want to revert this patch before
3.20.
2015-11-06 18:59:15 +01:00
Benjamin Otte
68ed166c60 range: Use right state when querying margin 2015-11-06 18:59:15 +01:00
Benjamin Otte
2a1a483ede notebook: Query the right node's padding 2015-11-06 18:59:15 +01:00
Benjamin Otte
37b4b60e91 spinbutton: Use right state when querying padding 2015-11-06 18:59:15 +01:00
Matthias Clasen
38cd2c1239 range: Update trough state
It might make sense for the theme to render an insensitive trough
differently.
2015-11-06 11:53:42 -05:00
Matthias Clasen
0bfc7db1fa popover: Don't create transient CSS nodes
There is no need to save the style context here.
2015-11-06 11:50:23 -05:00
Matthias Clasen
8d886f3513 Cosmetic: Use defines for style classes 2015-11-06 11:50:23 -05:00
Matthias Clasen
76fbcc2f26 range: Document fine-tuning style class use 2015-11-06 11:50:23 -05:00
Benjamin Otte
203d8daff4 acccellabel: Use right state when querying font
This was causing permanent invalidations otherwise because drawing
causes the state of the accel node to change.
2015-11-06 16:37:40 +01:00
Matthias Clasen
ffd517cc3f Adwaita: Update scale styling
Use :first-child/:last-child on the trough for determining
which slider we need.
2015-11-06 07:04:14 -05:00
Matthias Clasen
bfee2d3c61 scale: Stop using style classes for marks
We can use :first/last-child for this now.
2015-11-06 07:01:42 -05:00
Matthias Clasen
fd5729baef Adwaita: Fix up filechooser styling
Several details of sidebar and places view styling were lost
along the way. Bring back the circular buttons.
2015-11-05 23:44:16 -05:00
Matthias Clasen
527df17ea3 places view: Remvoe some unused style classes
These style classes were not used in Adwaita, and didn't make
any difference for the appearance.
2015-11-05 23:44:16 -05:00
Matthias Clasen
efc7dfd7a7 places view: Add an element name
Use placesview as the element name.
2015-11-05 23:41:42 -05:00
Matthias Clasen
6be2073740 Adwaita: Redo combo box entry styling
Instead of relying on .linked or + (which doesn't work right in rtl),
use :not(:only-child) to select a button that is not alone inside a
combobox.
2015-11-05 21:59:56 -05:00
Matthias Clasen
f1b7005ede combobox: Don't add .linked
It interferes with getting the desired styling for combo boxes
with an entry, and is not needed.
2015-11-05 21:59:56 -05:00
Matthias Clasen
7cd177e0d7 Fix a typo 2015-11-05 21:59:56 -05:00
Matthias Clasen
ad214e1871 window: Add a diagram to the CSS documentation 2015-11-05 16:13:06 -05:00
Matthias Clasen
5d62c808b1 Adwaita: Update window styling
We no longer inherit the style classes on the decoration subnodes,
so we have to adjust some selectors.
2015-11-05 16:07:29 -05:00
Matthias Clasen
b4c650ae85 window: Use permanent CSS nodes
gtk_style_context_save_named() has drawbacks that we want to avoid.
2015-11-05 16:06:49 -05:00
Matthias Clasen
948e077f1c tool button: Add element names for tool item subclasses
Add the obvious names to the CSS nodes of GtkRadioToolButton,
GtkToggleToolButton and GtkSeparatorToolItem.
2015-11-05 15:41:37 -05:00
Matthias Clasen
ec60bd889c flowbox: Add element names
The names used here are flowbox and flowboxchild.
2015-11-05 15:23:44 -05:00
Matthias Clasen
527f4f44c1 Adwaita: Update listbox styling
Adapt to the changes in the previous commit.
2015-11-05 13:53:43 -05:00
Matthias Clasen
94e675257a placessidebar: Use the same element name for rows
Use row as the element name here too.
2015-11-05 13:51:58 -05:00
Matthias Clasen
4f29b4a348 listbox: Add element names
The names used here are list and row.
2015-11-05 13:48:02 -05:00
Matthias Clasen
92a5eccc3d aspect frame: Use an element name 2015-11-05 12:56:16 -05:00
Matthias Clasen
cd798d5aed places sidebar: Document style classes
Document the style classes that GtkPlacesSidebar uses on its rows.
2015-11-05 12:56:16 -05:00
Alexander Larsson
b3d02671ca GtkFileChooserButton: Use native dialogs
Unless you explicitly set the dialog constructor property we use a
native dialog (GtkFileChooserNative).
2015-11-05 16:54:12 +01:00
Alexander Larsson
5094900180 GtkFileChooserNative: Fallback and win32 implementation
This is a subclass on GtkNativeDialog that uses GtkFileChooserDialog
as a fallback, but also has support for the win32 file chooser dialog.
2015-11-05 16:54:07 +01:00
Alexander Larsson
693db082a1 GtkFileFilter: Add private function to represent filter as pattern
This will be needed for the win32 native file chooser which
does not support mimetype sniffing.
2015-11-05 16:52:52 +01:00
Alexander Larsson
81cef0091e Add GtkNativeDialog abstract base class
This is a base class that essentially mirrors GtkDialog, but
it is not a GtkWindow, as the actual implemetation will be using
native code.

The base class has show and hide vfuncs, as well as a helper function
to run the dialog in a modal fashion.

This will be later used by the native file chooser dialog.
2015-11-05 16:52:52 +01:00
Alexander Larsson
0f6c7682b3 Make GtkFileChooser interface require a GObject
Before all GtkFileChooser implementations had to be a GtkWidget,
but we want to introduce one for native implementations that
is not a widget.

This is technically an ABI break, because some code could rely
on the guarantee that GtkFileChoosers are GtkWidgets and do
unchecked GtkWidget calls. However, that does seem unlikely,
and this has not really been documented anywhere.
2015-11-05 16:52:52 +01:00
Alexander Larsson
1c46a02bcb TreeModelFilter: Fix uninitialized memory read.
We were copying an iterator that sometimes was not initialized,
which caused debugger warnings in VS2015.
2015-11-05 16:52:51 +01:00
Matthias Clasen
199e35fa5c HighContrast: Update places sidebar styling
Use the new element name.
2015-11-05 10:43:02 -05:00
Matthias Clasen
35eaca27e4 Adwaita: Update places sidebar styling
Use the new element name.
2015-11-05 10:43:02 -05:00
Matthias Clasen
de3ad3781c placessidebar: Use an element name
Set the element name placessidebar.
2015-11-05 10:43:02 -05:00
Matthias Clasen
f327ef3cf1 scrolledwindow: Use permanent CSS nodes
This avoids false inheritance due to gtk_style_context_save_named(),
and is generally the right thing to do.
2015-11-05 10:32:04 -05:00
Matthias Clasen
4ed47e757f Fix a crash with steppers
The introduction of the trough node was not properly carried
into the code constructing stepper nodes, and was causing
assertion failures there. This was only showing up on Windows,
since Adwaita and HighContrast don't have steppers.
2015-11-05 09:44:14 -05:00
Matthias Clasen
4247e42411 stack sidebar: Remove an unused variable 2015-11-05 09:44:14 -05:00
Benjamin Otte
820a8c2c7f checkmenuitem: Update CSS nodes on set_active()
The function only doesn't notify(). It is supposed to handle CSS
changes.
2015-11-05 15:23:12 +01:00
Benjamin Otte
c7491fa144 stack: Store actual widget size, not preferred size
This is just a cleanup commit, no actual bug.
2015-11-05 15:23:12 +01:00
Carlos Garnacho
4d524ab469 widget: Avoid critical warnings when disconnecting plain GtkEventControllers
This signal is only set on GtkGesture objects, so check it's really there
before disconnecting.
2015-11-05 14:32:37 +01:00
Matthias Clasen
66d2c9e6fa Adwaita: Update stack sidebar styling
We no longer use the .sidebar-item style class.
2015-11-05 08:18:38 -05:00
Matthias Clasen
87deb25dc3 stack sidebar: Drop the .sidebar-item style class
It is not needed to achieve the desired theming.
2015-11-05 08:18:06 -05:00
Matthias Clasen
c59ef7bf2f stack switcher: Clarify CSS documentation 2015-11-05 08:17:49 -05:00
Matthias Clasen
37c923ad8a HighContrast: Update filechooser styling
Update for changes in previous commit.
2015-11-05 07:45:39 -05:00
Matthias Clasen
87c6ae1c18 Adwaita: Update searchbar styling
Adapt to the changes in the previous commit.
2015-11-05 07:44:29 -05:00
Matthias Clasen
bec58dc39e searchbar: Stop adding a style class
We have an element name now.
2015-11-05 07:44:04 -05:00
Matthias Clasen
a71bc24184 file chooser: Don't use .search-bar for a box
Just use the more general .view class to avoid special-casing
the file chooser in the theme.
2015-11-05 07:40:48 -05:00
Matthias Clasen
2e314940af range: Redraw when slider visiblity changes
We were not queuing a draw (and not updating the CSS node) when
the slider visibility changed. This was exposed by the Trough
button in tests/testscale.
Fix this by taking slider visibility into account when deciding
whether to queue a draw in response to adjustment changes.
2015-11-05 07:26:10 -05:00
Matthias Clasen
8afb4a69e8 HighContrast: Update scale styling 2015-11-05 07:26:10 -05:00
Matthias Clasen
53ae100e64 Adwaita: Update scale styling
Adapt to the introduction of trough nodes.
2015-11-05 07:26:10 -05:00
Matthias Clasen
07841f269d scale: Split marks node into two
Use separate CSS nodes for the marks above and below the trough.
2015-11-05 07:26:10 -05:00
Matthias Clasen
973836d395 range: Add private api to get the trough node
This will be needed in range subclasses to position their
own subnodes.
2015-11-05 07:26:10 -05:00
Matthias Clasen
9f3deaa496 HighContrast: Update range styling
Adjust to the changes in the previous commit.
2015-11-05 07:26:10 -05:00
Matthias Clasen
1261aa6fdf Adwaita: Update range styling
Adjust to the changes in the previous commit. This partially
undoes the earlier range changes.
2015-11-05 07:26:10 -05:00
Matthias Clasen
2bfb5ad812 range: Add a CSS node for the trough
This is in sync with what we do elsewhere for troughs.
2015-11-05 07:26:10 -05:00
Benjamin Otte
b6b00c31d7 stack: Queue a resize/allocate when switching children
We only allocate a size to the currently visible child, so we obviously
need to rerun allocation when the visible child changes.

In the case where the stack is not homogenous, we also need to queue a
resize because our size request just changed.
2015-11-04 19:39:29 +01:00
Matthias Clasen
894bd13240 HighContrast: Update progressbar styling
Adjust to the chagnes in the previous commit. This partially
undoes the earlier progressbar changes.
2015-11-04 12:43:06 -05:00
Matthias Clasen
48e605b7a4 Adwaita: Update progressbar styling
Adjust to the changes in the previous commit. This partially
undoes the earlier progressbar changes.
2015-11-04 12:33:06 -05:00
Matthias Clasen
9d4c78c2d0 progressbar: Add a CSS node for trough
This is better, since the trough doesn't fill up the allocation
entirely.
2015-11-04 12:32:15 -05:00
Matthias Clasen
eade244cac popover: Add the .background style class
This style class indicates that something _requires_ a background,
which is clearly the case for popovers.
2015-11-04 12:05:03 -05:00
Matthias Clasen
cca5cac965 paned: Move .wide to CSS subnode
This fits better with our general use of style classes.
2015-11-04 12:05:03 -05:00
Matthias Clasen
d40576fb3e revealer: Use an element name 2015-11-04 12:05:03 -05:00
Krzesimir Nowak
4fe04ab54a scrolledwindow: Fix a typo 2015-11-04 14:19:13 +01:00
Matthias Clasen
399ab49fbb HighContrast: Update scrolled window styling
Adapt to the changes in the previous commit.
2015-11-04 07:38:15 -05:00
Matthias Clasen
2ef86c94ed Adwaita: Update scrolledwindow styling
Adapt to the changes in the previous commit.
2015-11-04 07:38:15 -05:00
Matthias Clasen
80af6ff130 scrolledwindow: Port to CSS nodes
Change GtkScrolledWindow to use transient named CSS nodes for
drawing the overshoot, undershoot and scrollbar junction.
2015-11-04 07:38:15 -05:00
Emmanuele Bassi
c1ecd1ef9d docs: Point at for_scale() variants
Using lookup_icon() and lookup_by_gicon() with a size multiplied by a
scaling factor is almost certainly going to get worse results than using
their for_scale() variants.
2015-11-04 11:50:37 +00:00
Emmanuele Bassi
f959b35064 docs: Clarify gtk_render_icon()'s behaviour
A GdkPixbuf has no scaling factor, so drawing directly from it can only
using a scale of 1, to avoid blurry, fuzzy icons.

You should be using gtk_render_icon_surface() anyway.
2015-11-04 11:45:41 +00:00
Matthias Clasen
b9613cc416 inspector: Some improvements to the CSS node tree
Set a min-content-height for the property list, and
allow horizontal scrolling.
2015-11-04 00:00:56 -05:00
Matthias Clasen
d077f627ef inspector: Really show the selected CSS node
Try harder to scroll the selected CSS node into view.
2015-11-03 23:55:50 -05:00
Matthias Clasen
0024358c91 scale: Fix a crash
We can only free the marks_node if there is one.
2015-11-03 23:35:32 -05:00
Matthias Clasen
099cde5f80 stack sidebar: Use an element name 2015-11-03 23:27:34 -05:00
Matthias Clasen
ead35ee12f stack switcher: Use an element name 2015-11-03 23:24:49 -05:00
Matthias Clasen
910f4f72ba stack: Set an element name
And it is...stack.
2015-11-03 23:20:24 -05:00
Matthias Clasen
8dfb0e728c HighContrast: Update range styling
Adapt to changes in the previous commit.
2015-11-03 23:17:09 -05:00
Matthias Clasen
37ad3628a0 Adwaita: Update range styling
Adapt to the changes in the previous commit.
2015-11-03 23:17:09 -05:00
Matthias Clasen
8727c8fe24 range: Convert to CSS nodes
Use CSS nodes for GtkScale and GtkScrollbar. See their documentation
for details on what subnodes with what names exist.
2015-11-03 23:17:09 -05:00
Benjamin Otte
2a6e1498ba testutils: Deprecate a bunch of ugly functions
We've by now disabled and then remved all of the tests that use these
functions because they never worked properly. So let's depecate these
functions before somebody starts using them.
2015-11-04 05:06:31 +01:00
Christian Hergert
24391634b5 stack: GtkStack:interpolate-size should be read/write
It looks like the param spec for interpolate-size was
copied from the line above it, which is a read only property.

There is a setter for interpolate-size, and it is implemented in
set_property().
2015-11-03 15:13:51 -08:00
Christian Hergert
5f0a8cf136 headerbar: remove G_PARAM_CONSTRUCT from custom-title
This fixes the ability to sublcass GtkHeaderBar from a UI template which
contains a custom <child type="title"> element.

https://bugzilla.gnome.org/show_bug.cgi?id=757544
2015-11-03 14:50:56 -08:00
Benjamin Otte
d65ba7cf97 widget: Queue resize on parent, not self
When setting the parent of a widget, queue_resize() on the widget will
be optimized away if the widget already had a resize queued.

Plus, we do not need to resize the widget as its size request is not
going to change.
2015-11-03 22:55:03 +01:00
Matthias Clasen
8e5c7ac028 menu: Add diagrams to CSS documentation 2015-11-03 14:27:35 -05:00
Matthias Clasen
c389511b86 paned: Add diagrams to CSS documentation 2015-11-03 14:27:35 -05:00
Matthias Clasen
92e3655ace combo box: Add diagrams to CSS documentation 2015-11-03 14:27:35 -05:00
Matthias Clasen
a7076d1c4c text view: Add diagram to CSS documentation 2015-11-03 14:27:35 -05:00
Matthias Clasen
fc0a222350 accel label: Add diagrams to CSS documentation 2015-11-03 14:27:35 -05:00
Matthias Clasen
332ea5f8ec progressbar: Add diagrams to CSS documentation 2015-11-03 14:27:35 -05:00
Matthias Clasen
65d959bbc8 spin button: Add diagrams to CSS documentation 2015-11-03 14:27:35 -05:00
Matthias Clasen
870461475a switch: Add a diagram to CSS node documentation 2015-11-03 14:27:35 -05:00
Benjamin Otte
1f01b8d52a widget: Queue an allocate on hide
This makes sure that hidden widgets always have priv->alloc_needed set
on them.

The constructor sets that flag, so we want to have it back when we
revert to this state.

This fixes GtkWindow skipping a size_allocate() when reshowing a
previously hidden window and thereby not updating its allocation and
clip. And that in turn would lead to draws not happening and us beig
left with a black window.
2015-11-03 18:57:14 +01:00
Matthias Clasen
09f7c8511b model button: Add diagrams to the CSS node documentation 2015-11-03 12:51:52 -05:00
Matthias Clasen
19b34a44b2 model button: Complete the CSS node conversion
There was still style context saving in the draw function,
and the CSS node was not always properly updated and positioned.
Fix these things, and use the same CSS node for the arrow
drawing as well.
2015-11-03 12:20:53 -05:00
Matthias Clasen
6791c1413d list box: Remove an unused static 2015-11-03 10:43:48 -05:00
Matthias Clasen
77e99039fc file chooser button: Remove an unused variable 2015-11-03 10:41:49 -05:00
Matthias Clasen
67b739b58a button: Add diagrams to CSS node docs for buttons 2015-11-03 10:17:41 -05:00
Matthias Clasen
6328cf5ee5 entry: Add a diagram to CSS node docs 2015-11-03 09:53:00 -05:00
Matthias Clasen
c711906f8c inspector: Replace a use of gtk_button_set_focus_on_click
It is deprecated now.
2015-11-03 07:44:17 -05:00
Florian Müllner
de50012371 listbox: Implement :focus-on-click
Similar to buttons-in-toolbars, it can make sense for listbox rows
to not take away the focus from the main application view, for
instance when used for navigation. Support this by taking the newly
added GtkWidget:focus-on-click property into account.

https://bugzilla.gnome.org/show_bug.cgi?id=757269
2015-11-03 07:44:17 -05:00
Florian Müllner
e364ae3ea8 Use gtk_widget_set_focus_on_click() instead of deprecated setters
https://bugzilla.gnome.org/show_bug.cgi?id=757269
2015-11-03 07:44:17 -05:00
Florian Müllner
9a29a2768b Deprecate widget-specific :focus-on-click properties
The differences between the existing properties and the newly added
GtkWidget:focus-on-click property are minimal (different owner_type
in GParamSpec), so it is extremely unlikely that dropping the former
would break anything.

https://bugzilla.gnome.org/show_bug.cgi?id=757269
2015-11-03 07:44:17 -05:00
Florian Müllner
ebdf5f581d widget: Add :focus-on-click property
There are currently three widget that implement such a property, and
there are other widgets for which the behavior can make sense. It
seems like a good time to add the property to GtkWidget itself so
subclasses can choose to respect it without adding their own property.

https://bugzilla.gnome.org/show_bug.cgi?id=757269
2015-11-03 07:44:17 -05:00
Carlos Garnacho
4f61fd09c5 texthandle: Request raising of text handle popovers.
https://bugzilla.gnome.org/show_bug.cgi?id=756670
2015-11-03 07:25:33 -05:00
Carlos Garnacho
9d1b8dfc61 popover: Request raise on ::show
This way latest shown popovers are ensured to be on top.

https://bugzilla.gnome.org/show_bug.cgi?id=756670
2015-11-03 07:25:33 -05:00
Carlos Garnacho
fa3e0be80c GtkWindow: make popover stacking explicit
The list of popovers will specify the stacking order, a
_gtk_window_raise_popover() private call has been added so popover
widgets can request being on top.

Also, the stacking on popovers is ensured on gtk_window_size_allocate(),
after the size/stacking changes on the child widget have finished, this
will ensure popovers are kept on top of window contents.

https://bugzilla.gnome.org/show_bug.cgi?id=756670
2015-11-03 07:14:36 -05:00
Olivier Fourdan
a5b1cdd0c1 GtkWindow: Fix the shadow width logic
Previous commit 305b34a "GtkWindow: fix move/get position with CSD"
introduced a regression because some windows presumably use shadows but
actually don't, resulting in a negative offset being wrongly applied.

Problem is that get_shadow_width() would return non-zero shadows even
for windows that have no shadow, thus causing the negative offset.

Fix the logic in get_shadow_width() and gtk_window_should_use_csd() so
that get_shadow_width() returns accurate values.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-11-03 09:33:34 +01:00
Matthias Clasen
9f04efd316 Adwaita: Update menubar styling
Adapt to the changes in the previous commit.
2015-11-02 23:49:38 -05:00
Matthias Clasen
a0d7b609e3 menubar: Use an element name 2015-11-02 23:49:20 -05:00
Matthias Clasen
b6112c6ed6 Adwaita: Update menu item styling
Adapt to the changes in the previous commit.
2015-11-02 23:43:58 -05:00
Matthias Clasen
aede5c65d3 menu item: Use CSS nodes
Use the element name menuitem for GtkMenuItem, GtkCheckMenuItem
and GtkRadioMenuItem. GtkSeparatorMenuItem gets the name separator.
Add a subnode with name arrow if a submenu is attached.
Give the radio and check menu items a subnode with name check or
radio.
2015-11-02 23:42:14 -05:00
Matthias Clasen
ac553d7e44 check button: Match documented behavior
We were not actually adding the style classes that the
documentation is talking about, for the !draw-indicator case.
Fix that.
2015-11-02 23:06:57 -05:00
Matthias Clasen
dd01f2d407 menu item: Remove an unused member
Nobody is reading or writing this field, so we can do without it.
2015-11-02 22:20:04 -05:00
Matthias Clasen
2ba957364d menu: Fix up CSS node ordering
Keep the bottom arrow node at the end, where it belongs.
2015-11-02 21:49:10 -05:00
Matthias Clasen
25e01a3937 menu: Document CSS nodes 2015-11-02 21:40:40 -05:00
Matthias Clasen
0e41ff015c HighContrast: Update menu styling
Support the element names introduced in the previous commit.
2015-11-02 21:34:14 -05:00
Matthias Clasen
f8c3e48bd2 Adwaita: Update menu styling
Support the element names introduced in the previous commit.
2015-11-02 20:47:56 -05:00
Matthias Clasen
0b52b29dfc menu: Port to use css nodes
Use the element name menu for the main node, and use two subnodes
with name arrow and style classes .top and .bottom for the arrows
of scrolling menus.
2015-11-02 20:47:55 -05:00
Cosimo Cecchi
f6ca908e03 menushell: don't call gtk_render_background()
GtkMenu and GtkMenuBar, the two implementations of GtkMenuShell in GTK,
already draw it.
Furthermore, rendering a background here will overdraw any rendering
that the subclass will do, such as arrows for scrolling menus.
2015-11-02 16:05:07 -08:00
Benjamin Otte
7cdfee71da inspector: Do not show transient nodes
This is kind of a hack the way it's implemented, but it's necessary
for performance to ignore transient nodes as they get created all the
time (via gtk_style_context_save()) and invalidate the whole treeview.
And that causes resizes and redrawing of the treeview and performance of
the inspector would go down the drain now that we display a larger part
of the node tree.
2015-11-02 20:32:12 +01:00
Benjamin Otte
81de33e906 inspector: Always show full CSS node tree
Just select the node of the current widget whenever a new one gets
selected.
2015-11-02 20:32:12 +01:00
Matthias Clasen
5ebb713df5 HighContrast: Update combobox styling
Adapt to the changes in the previous commit.
2015-11-02 14:26:50 -05:00
Matthias Clasen
0d12cc3354 Adwaita: Update combobox styling
Adapt to the changes in the previous commit. Some further fixes will
be necessary here.
2015-11-02 14:22:49 -05:00
Matthias Clasen
d229ea3de1 combobox: Use element names
Use combobox as the element name for the main CSS nodes of
GtkComboBox and GtkComboBoxText. Add the .combo style class
to the button and entry. in a GtkComboBox or GtkComboBoxText.
2015-11-02 13:56:25 -05:00
Matthias Clasen
e56bb49407 popover: Document differentiating style classes
There's a lot of popover variations out there.
2015-11-02 12:53:57 -05:00
Matthias Clasen
13d091f700 button: Mention differentiating style classes
There's a lot of button variations out there, lets document
the ones we know about.
2015-11-02 12:51:00 -05:00
Matthias Clasen
113c88c2cf HighContrast: Update magnifier styling
Adapt to changes in the previous commit.
2015-11-02 12:47:14 -05:00
Matthias Clasen
85bfe9ee38 Adwaita: Update magnifier styling
Adapt to changes in the previous commit.
2015-11-02 12:46:45 -05:00
Matthias Clasen
d5ff9af94e entry, textview: Use a dedicated style class for magnifier
This will free up "osd" as an application-level style class,
and lets us style magnifiers differently.
2015-11-02 12:40:38 -05:00
Matthias Clasen
f2434e7cea file chooser button: Add a style class
Unfortunately, GtkFileChooserButton is different from the other
pickers in that it is not a button, but rather has a button.

We ignore the difference for styling purposes, and just add
a .file style class to the button.
2015-11-02 12:27:36 -05:00
Matthias Clasen
957135a57c Adwaita: Fix menu separators
These were inadvertedly broken by the element name conversion
for regular separators.
2015-11-02 12:21:39 -05:00
Benjamin Otte
5c53e873b1 inspector: Track updates of node styles
When the CSS style of a node changes, we want to display the new values
in the inspector.

This for example allows to see how styles update on hover or during
animations.
2015-11-01 16:45:11 +01:00
Colomban Wendling
f4c30060be cssnode: Fix style updating when the CSS node ID changes
Since 4ebb5781ea ID has a specific value,
while it used to be the same as NAME.  Thus, explicitly list ID as a
radical change just like NAME.

https://bugzilla.gnome.org/show_bug.cgi?id=757397
2015-11-01 02:42:36 +01:00
Colomban Wendling
79a3a7800e cssnode: Fix a typo leading to very poor cache hashing 2015-11-01 02:42:36 +01:00
Colomban Wendling
eef5f27fb4 gtkcontainer: Guard internal use of deprecated public API 2015-11-01 02:42:36 +01:00
Benjamin Otte
e0f4bf5d35 inspector: Store the current node in the priv struct 2015-11-01 02:42:36 +01:00
Benjamin Otte
b89939f5a4 inspector: Split out a function 2015-11-01 02:42:36 +01:00
Matthias Clasen
7568d17a15 toolpalette: Use element names
Give the GtkToolPalette and GtkToolItemGroup the element
names toolpalette and toolitemgroup.
2015-10-31 21:02:36 -04:00
Matthias Clasen
cacc63ea4b HighContrast: Update toolbutton styling 2015-10-31 20:55:51 -04:00
Matthias Clasen
1bc2913f52 Adwaita: Update tool button styling 2015-10-31 20:52:41 -04:00
Matthias Clasen
4323dd34f3 tool button: Add an element name
Unsurprisingly, it is toolbutton.
2015-10-31 20:52:09 -04:00
Matthias Clasen
dba8eba6db HighContrast: Update toolbar styling
Adapt to the changes in the previous commit.
2015-10-31 20:43:07 -04:00
Matthias Clasen
5ffd54aca8 Adwaita: Update toolbar styling
Adapt to the changes in the previous commit.
2015-10-31 20:42:41 -04:00
Matthias Clasen
7ee7019ca7 toolbar: Use an element name instead of a style class
The element name is ... toolbar.
2015-10-31 20:30:56 -04:00
Matthias Clasen
479d64e89a progress bar: Add CSS documentation 2015-10-31 20:30:15 -04:00
Matthias Clasen
ca385af3c4 HighContrast: Update progressbar styling
Adapt to the changes in the previous commit.
2015-10-31 20:24:46 -04:00
Matthias Clasen
71afd762ed Adwaita: Update progressbar styling
Adapt to the changes in the previous commit.
2015-10-31 20:24:19 -04:00
Matthias Clasen
73704d98cc progressbar: Convert to CSS nodes
Use the element names progressbar and progress.
2015-10-31 20:20:13 -04:00
Matthias Clasen
bab20f1d10 trivial formatting fix 2015-10-31 19:23:47 -04:00
Matthias Clasen
7ea33d82ed Remove a duplicate include 2015-10-31 19:19:53 -04:00
Matthias Clasen
d3abd83330 Adwaita: Fix up color button styling
There was one forgotten instance of the GtkColorSwatch type name.
2015-10-31 19:13:32 -04:00
Matthias Clasen
7465601c1e HighContrast: Update the frame styling
Adapt to the changes in the previous commit.
2015-10-31 19:11:18 -04:00
Matthias Clasen
3de78decd4 Adwaita: Update frame styling
Adapt to the changes in the previous commit.
2015-10-31 19:10:52 -04:00
Matthias Clasen
aa5dc38b0d frame: Use an element name instead of a style class
Unsurprisingly, the element name is ... frame.
2015-10-31 19:09:46 -04:00
Matthias Clasen
1f585151fd Load settings.ini from all data dirs
An error in the loading function was making us load the file from
the first data dir repeatedly, instead.

https://bugzilla.gnome.org/show_bug.cgi?id=757377
2015-10-31 18:16:10 -04:00
Matthias Clasen
e2e198aae4 model button: Propagate state
Propagate the state to the CSS node for the indicator.
2015-10-31 00:08:00 -04:00
Matthias Clasen
b6fda5dc0a inspector: Show CSS node state
This is useful when debugging state propagation issues between
CSS nodes.
2015-10-31 00:07:19 -04:00
Matthias Clasen
c265b58181 HighContrast: adjust message dialog styling 2015-10-30 23:49:44 -04:00
Matthias Clasen
d70d5ea6ec adwaita: Adjust message dialog styling 2015-10-30 23:49:17 -04:00
Matthias Clasen
4fe1b9589e message dialog: Use an element name 2015-10-30 23:48:46 -04:00
Matthias Clasen
dfedda3dee color editor: Redo the non-activatable color swatch
Use a .activatable style class on the color swatch and tie the
hover effect to it. The color editor simply removes this class
now to get an inert color swatch.

This is more flexible and lets us avoid referring to the
GtkColorEditor type in the theme.
2015-10-30 22:19:07 -04:00
Matthias Clasen
42a231a61c HighContrast: Adapt to color swatch changes
This needs more work and simplification.
2015-10-30 21:46:36 -04:00
Matthias Clasen
4e8aea012e Adwaita: Adapt to color swatch changes
This needs more work and simplification.
2015-10-30 21:44:19 -04:00
Matthias Clasen
5ec9b330b3 swatch fixup 2015-10-30 21:43:50 -04:00
Matthias Clasen
e5d3c8dbae color swatch: Convert to CSS nodes
Convert GtkColorSwatch to use the two elements colorswatch and
image.
2015-10-30 21:29:46 -04:00
Matthias Clasen
e3ef2c48d5 text view: Add css node docs 2015-10-30 21:00:01 -04:00
Matthias Clasen
a4a3736461 HighContrast: Update textview styling
Some updates to make text appear as usual.
2015-10-30 19:58:11 -04:00
Matthias Clasen
b39601bcc1 Adwaita: Update textview styling
Some updates to make text appear as usual. The border windows
probably need some more work.
2015-10-30 19:55:42 -04:00