Commit Graph

22658 Commits

Author SHA1 Message Date
Timm Bäder
9668962da1 gtkdnd: Set the dnd window's screen before its visual
This makes dnd icons work for widgets on a !default screen.

https://bugzilla.gnome.org/show_bug.cgi?id=743393
2015-01-24 15:57:46 -05:00
Matthias Clasen
b3c28e14fe file chooser: search improvements
Make it so that typing switches to search unless we have a better
use for the key events, and stop search if the entry is emptied.
2015-01-24 13:32:31 -05:00
Matthias Clasen
8f9c8120b9 file chooser: Turn off typeahead search
It is the third kind of navigation entry in the file chooser after
the location entry and search, and it interacts badly with both
of the others.
2015-01-24 08:44:30 -05:00
Matthias Clasen
3bf12c44e2 Use the new API in GtkSearchBar if we can
Sadly, GtkSearchBar allows connecting plain entries, so we have
to keep the old code around.
2015-01-24 08:44:30 -05:00
Matthias Clasen
354536d464 inspector: Use some of the new GtkSearchEntry API
Avoid repetitive, manual event handling in various places
in GtkInspector.
2015-01-24 08:44:30 -05:00
Matthias Clasen
500c8d82fc GtkSearchEntry: Add more API
Add ::next-match, ::previous-match and ::stop-search keybinding
signals that are bound to Ctrl-g, Ctrl-Shift-g and Escape. Also
add a gtk_search_entry_handle_event() function to handle key events.
2015-01-24 08:44:30 -05:00
Timm Bäder
ad180c4335 inspector: Make gl extension rows unactivatable 2015-01-22 21:18:25 +01:00
Benjamin Otte
3a9bf0fe1d widget: Compute clip of children properly
For widgets with a window, we need to adjust the allocation of their
children.
2015-01-22 16:25:43 +01:00
Benjamin Otte
d879a13600 widget: Correctly handle which widgets to include in the clip
Previously, we would not include any child widget on the first
allocation, which happens right after realize(), but before map(). No
widget is drawable at that point.
2015-01-22 16:25:35 +01:00
Benjamin Otte
bd31310c40 widget: Add debug spew for setting the clip 2015-01-22 16:25:30 +01:00
Benjamin Otte
3fcb892831 headerbar: Implement clipping 2015-01-22 16:25:24 +01:00
Benjamin Otte
ba06066158 border: Don't special case according to border styles
This is now done (as it should) in the compute code.
2015-01-21 16:22:30 +01:00
Sebastian Keller
728bce2cf8 css: Move "border-style: none" special case to CssValueNumber
This fixes the background being shifted by the border-width even though
the border-style was none.
2015-01-21 16:20:42 +01:00
Benjamin Otte
610f7e8f70 stylecontext: Don't do unnecessary workarounds
when calling get_padding/border/margin, there is no need to go through
the fallback API.

This is a huge speedup for certain benchmarks.
2015-01-21 02:16:44 +01:00
Sebastian Keller
8836a0d6ce render: fix arrow orientation
The rotation code in the draw_arrow function was assuming that the arrow
would be drawn pointing upwards but it was pointing to the right
resulting in the rotated arrows pointing in the wrong direction.

The recent refactoring caused a pi/2 rotation to be lost. Rather than
adding that back somehwere (to lose it again in the future), we just
draw the arrow pointing upwards as it is expected to do with a 0 angle.
2015-01-21 01:38:51 +01:00
Benjamin Otte
22967f1612 image: Compute clip properly
Use the helper function we have for this, don't do it manually. This has
the side effect of also supporting icon transforms.
2015-01-20 06:30:20 +01:00
Benjamin Otte
f7433557ab render: Implement -gtk-icon-transform for icon surfaces
Yes, I like playing around. To enjoy, add this CSS to your application
of choice (preferrably glade or something with lots of images):

GtkImage { animation: spin 2s linear infinite; }

You can thank me later.
2015-01-20 06:30:20 +01:00
Benjamin Otte
8c745088d5 render: Split icon surface rendering out
Just like normal icons, icon surfaces belong into gtkrendericon.c.
2015-01-20 06:30:20 +01:00
Benjamin Otte
f6d64f6591 render: Split icon rendering into its own file 2015-01-20 06:30:19 +01:00
Benjamin Otte
e697213b35 render: Remove spinner special-cases
The spinner is a regular builtin image now. There is no need to go
through the shadows code manually anymore as regular items do get
shadows automatically.

This also allows simplifying the actual spinner drawing code so that it
actually works.
2015-01-20 06:30:19 +01:00
Benjamin Otte
cc4d34e688 render: Render builtin images as regular CSS images
This not only reduces code, but also allows for builtin images to have
shadows or be transformed using -gtk-icon-transform.
2015-01-20 06:30:19 +01:00
Benjamin Otte
45541cbf10 render: Don't require passing CSS properties to builtin images
Instead, make the buiultin image get those properties itself in the
compute vfunc.
2015-01-20 06:30:19 +01:00
Benjamin Otte
9ce8ce1198 css: Move icon properties to the end
The order in which properties are defined depends on the order in which
they are computed. And that means that properties can only depend on
other properties that are defined before them.

The next patches will need this reordering.
2015-01-20 06:30:19 +01:00
Benjamin Otte
fe028e2789 render: Only render 4 different arrows
Instead of supporting every angle, just support top, right, bottom and
left and round the angle to one of those directions.

Adwaita overrides arrows anyway and doesn't even look at the angle, so
this should not be a problem.
2015-01-20 06:30:19 +01:00
Benjamin Otte
118c887656 render: Don't pass junction sides to builtin image
Instead, split the grip into 8 different builtin images (one for each
side and corner).
2015-01-20 06:30:19 +01:00
Benjamin Otte
e6b228f12a render: Extend builtin images to account for states
We add to the enum to account for the images generated for different
states.
2015-01-20 06:30:19 +01:00
Benjamin Otte
1c3dd5d46b render: Move code for rendering builtin images
Also, make it have a generic entry point with
gtk_css_image_builtin_draw().

The only feature lost so is the drawing of shadows for spinners, but
that will come back later.
2015-01-20 06:30:19 +01:00
Benjamin Otte
ebb64c2288 inspector: Remove unused hash table 2015-01-20 06:30:19 +01:00
Benjamin Otte
7ba7dff69e inspector: Remove unused treemodel properties
As a side effect, we can use _gtk_css_section_to_string() to format the
section and save a lot of code.
2015-01-20 06:30:19 +01:00
Benjamin Otte
4ba710ea30 inspector: Use GtkCssStyle and gtk_css_value_to_string() 2015-01-20 06:30:19 +01:00
Benjamin Otte
8b6d419e02 render: Move border rendering into its own file
gtkrenderborder.c now contains the implementation for
  gtk_css_style_render_border
  gtk_css_style_render_outline
2015-01-20 06:30:19 +01:00
Benjamin Otte
5ec97f6144 render: Remove unused header 2015-01-20 06:30:19 +01:00
Benjamin Otte
717877dff2 render: Rename gtkborderimage.[ch]
I want the gtkrender prefix for all filenames about rendering.
2015-01-20 06:30:18 +01:00
Benjamin Otte
cb0ca9a804 render: Use a GtkCssStyle instead of GtkStyleContext for focus 2015-01-20 06:30:18 +01:00
Benjamin Otte
5cc0cae4b7 render: Rename gtkthemingbackground.[ch]
I want the gtkrender prefix for all filenames about rendering.
2015-01-20 06:30:18 +01:00
Benjamin Otte
d25b4105d6 render: Take a GtkCssStyle for rendering frames
... and move the whole function into gtkthemingbackground.c
2015-01-20 01:23:19 +01:00
Benjamin Otte
d0a12d477e borderimage: Use a GtkCssStyle instead of GtkStyleContext 2015-01-20 01:23:19 +01:00
Benjamin Otte
dd2202288a themingbackground: Use a GtkCssStyle instead of GtkStyleContext 2015-01-20 01:23:19 +01:00
Benjamin Otte
8d94140da9 roundedbox: Take a GtkCssStyle instead of a GtkStyleContext
This is in preparation for iusing GtkCssStyle instead of GtkStyleContext
in render functions.
2015-01-20 01:23:18 +01:00
Benjamin Otte
73b3b9ee94 stylecontext: Rename function and export it.
The name now better reflects what it does, since GtkCssComputedValues
was renamed to GtkCssStyle, too.
2015-01-20 01:23:18 +01:00
Benjamin Otte
8c534fefca dnd: Draw dnd icon with regular code
Overriding the window background is ugly because the window background
is owned by GTK and can be reset at any time.

https://bugzilla.gnome.org/show_bug.cgi?id=742646
2015-01-20 01:07:13 +01:00
Benjamin Otte
dbb8d1dd07 stylecontext: Keep track of the CSS ID
This is necessary since we do the new caching and need to distinguish
between styles with different IDs.

Fixes various test cases.
2015-01-20 01:07:13 +01:00
Matthias Clasen
63bc3542ce path bar: Don't segfault if we get disposed quickly
The file chooser code now calls into the path bar in init,
starting an async operation. This unveiled that the path bar
code was not safe against being disposed early, by causing
a crahsh of the objects-finalize test.
Fix this by making the callback check for CANCELLED.
2015-01-19 11:57:10 -05:00
Matthias Clasen
00e08a0159 places sidebar: Drop the top margin
This looks odd in combination with the top underflow.
2015-01-19 09:37:04 -05:00
Carlos Garnacho
dc952e3d94 scrolledwindow: Don't displace invalidation by the widget allocation
This was left unmodified when GtkScrolledWindow was made a windowed widget.
Displacing here by the widget allocation is not necessary anymore, since
we are invalidating the window set at these coordinates.

This patch is a simplification of a previous one by Timm Bäder.

https://bugzilla.gnome.org/show_bug.cgi?id=742243
2015-01-19 13:06:27 +01:00
Benjamin Otte
cbabb2e6ff stylecontext: Fix FALSE/TRUE mixup
Introduced in e649c8773f. It's obviously
the root node right there.
2015-01-19 02:19:59 +01:00
Matthias Clasen
9e1f870680 scrolled window: Reduce the hover proximity distance further 2015-01-18 20:01:55 -05:00
Matthias Clasen
82e324f8ac file chooser: Fix up some focus issues
Better to switch the visible stack child early, since GtkStack
has its own focus handling now.
2015-01-18 19:45:13 -05:00
Lars Uebernickel
931a479da9 gtkimagemenuitem: create widget for action icons lazily
GtkImageMenuItem always packs a GtkImage when it is synced with a
related action. This is unnecessary when the action doesn't have an icon
set and results in excess padding when a GtkImageMenuItem is put in a
menu bar (GtkUIManager does this).

Fix this by not creating the GtkImage for icon-less actions.

https://bugzilla.gnome.org/show_bug.cgi?id=742181
2015-01-18 19:45:13 -05:00
Benjamin Otte
858c80f33e render: Replace gtk_style_context_get_border/padding()
Use _gtk_style_context_peek_property() instead.
2015-01-19 01:15:20 +01:00
Benjamin Otte
8b11e93a2d render: Get rid of gtk_style_context_get_color()
Use _gtk_style_context_peek_property() instead.
2015-01-19 01:15:19 +01:00
Benjamin Otte
4bffb6aff5 Adwaita: Make :active button gradient have 3 stops
Just add a 3rd stop in the place where the gradients for the other
states have a 3rd stop. When running transitions between states, this
avoids cross-fades and instead uses the much faster gradient
transitioning code.
2015-01-19 01:12:50 +01:00
Benjamin Otte
0fef59b486 stylecontext: Be more graceful when save() isn't matched with restore()
Instead of asserting, just print a g_warning() and try to work around
the problem.
I hope that g_warning() isn't too spammy for people that are hit with
it.

Also clarify the docs that not restore()ing after a save() is a bad
idea.

https://bugzilla.gnome.org/show_bug.cgi?id=743101
2015-01-19 01:12:50 +01:00
Benjamin Otte
e649c8773f stylecontext: Explicitly specify root node
When creating the query path, explicitly specify if it's for a root node
or for a child. Relying on gtk_style_context_is_saved() is unreliable
(for example when updating the cache).
2015-01-19 01:12:50 +01:00
Matthias Clasen
1a38c4d066 file chooser: Make search work again
The last round of filechooser redesign work had left
search somewhat dysfunctional. This commit fixes things
up enough that search is once again a working feature
of the file chooser.
2015-01-18 18:59:43 -05:00
Matthias Clasen
dcd3d15380 file chooser: Drop the location label
Bringing us close to the new design.
2015-01-18 17:57:12 -05:00
Matthias Clasen
4b47c5a649 file chooser: Don't show 'Enter Location' in save modes
In these modes, the entry is permanently visible anyway.
2015-01-18 17:39:05 -05:00
Matthias Clasen
a8cb7352c5 file chooser: Make Ctrl-L work in recent
Just switch to browse mode when we see Ctrl-L in recent mode.
https://bugzilla.gnome.org/show_bug.cgi?id=660450
2015-01-18 17:35:22 -05:00
Matthias Clasen
8133e7e624 file chooser: Ensure the path bar is initialized
There are some cases where we can end up showing the path
bar without ever setting a file on it. One example is:
1) Open file chooser
2) Hit ~
3) Hit Ctrl-L
While this is a bit of a workaround, at least it makes sure
that we never end up with an empty space where the path bar
is supposed to be.
2015-01-18 17:13:12 -05:00
Matthias Clasen
6a7b549608 trivial refactoring 2015-01-18 16:57:21 -05:00
Matthias Clasen
dfe6399de8 file chooser: Make ~ and / work in recent
Complained about in
https://bugzilla.gnome.org/show_bug.cgi?id=743117
2015-01-18 16:18:12 -05:00
Matthias Clasen
9fde44ac10 Fine-tune the proximity hovering for scrollbars
Reduce the distance at which we expand the scrollbar,
and add some hysteresis.
2015-01-18 14:28:47 -05:00
Christoph Reiter
500bd60873 Adjust gtk_status_icon_position_menu() annotation to match GtkMenuPositionFunc again
https://bugzilla.gnome.org/show_bug.cgi?id=674537

https://bugzilla.gnome.org/show_bug.cgi?id=742940
2015-01-17 16:31:26 -05:00
Maks Naumov
9f51d8948f Fix save_hot_y init in gtk_drag_get_icon()
Signed-off-by: Maks Naumov <maksqwe1@ukr.net>

https://bugzilla.gnome.org/show_bug.cgi?id=742786
2015-01-17 16:24:45 -05:00
Benjamin Otte
ad8d30ad86 inspector: Remove a bunch of unused variables 2015-01-17 02:37:36 +01:00
Benjamin Otte
d0ed29d58d stylecontext: Remove a bunch of return_if_fail()s
They're gonna be in the way when refactoring and we can live without
them.
2015-01-17 02:25:40 +01:00
Benjamin Otte
63f7a36ae0 stylecontext: Do not transition from the default style
This gets rid of a bunch of awkward transitions. It's not a perfect
solution to the problem of "should we transition from this state" but it
gets rid of the ugliest offenders.
2015-01-17 02:25:40 +01:00
Lapo Calamandrei
03d4e270c2 Adwaita: scrollbar style refactoring...
...making overlay indicator slider visible on any backgroung
in the process.
2015-01-16 18:32:16 +01:00
Carlos Garnacho
b8e87d4762 widget: Free the controller list on finalize()
If this is done on dispose(), the widget may be destroyed (and its
controllers list NULLified) within _gtk_widget_run_controllers(),
causing warnings/crashes when it just tried to hop on the next
controllers.

Freeing the controllers here should be a safety net for implementations,
so it also makes sense to do this late. The widgets that choose to
free their controllers on dispose can still do so, and get
_gtk_widget_remove_controller() called for these as an indirect result.
2015-01-14 17:11:25 +01:00
Carlos Garnacho
594de00cad listbox: Free the multipress gesture on finalize 2015-01-14 17:11:25 +01:00
Carlos Garnacho
7daa2a1eba event-controller: Chain up on dispose 2015-01-14 16:03:10 +01:00
Nelson Benítez León
f26986a50a gtkplacessidebar: insert bookmark by dnd in correct position
Add needed COLUMN INDEX to "new bookmark" row based on previous
bookmark index plus one.

Fixes bug 742727
2015-01-13 19:01:46 -05:00
Maks Naumov
54806d1295 Fix accessible_class->widget_set initialization
Signed-off-by: Maks Naumov <maksqwe1@ukr.net>

https://bugzilla.gnome.org/show_bug.cgi?id=742778
2015-01-13 19:01:01 -05:00
Maks Naumov
87d36885ac Properly check result of g_utf8_get_char_validated()
g_utf8_get_char_validated() may return -1 or -2
return type is gunichar(guint32)

Therefore such checks like 'gunichar < 0' or 'gunichar > 0'
are always 'false' or 'true'(except when gunichar == 0).

Signed-off-by: Maks Naumov <maksqwe1@ukr.net>

https://bugzilla.gnome.org/show_bug.cgi?id=742774
2015-01-11 15:46:06 -05:00
Maks Naumov
07cf489d2d Fix check for 'y' padding in gtk_cell_renderer_set_padding()
Signed-off-by: Maks Naumov <maksqwe1@ukr.net>

https://bugzilla.gnome.org/show_bug.cgi?id=742764
2015-01-11 15:34:20 -05:00
Matthias Clasen
f120ae7b4d Forgotten file 2015-01-10 21:16:21 -05:00
Matthias Clasen
838e982877 HighContrast: Don't set nonexisting style properties
These don't exist, so setting them can't do any good.
2015-01-10 21:14:56 -05:00
Matthias Clasen
e15152c837 Adwaita: Don't set nonexisting style properties
These don't exist, so setting them can't do any good.
2015-01-10 21:14:02 -05:00
Matthias Clasen
604704a3f0 HighContrast: Also fix separators in file chooser buttons
Same fix as for combo box separators.
2015-01-10 21:12:08 -05:00
Matthias Clasen
88567295f6 Adwaita: Also fix separators in file chooser buttons
Same fix as for combo box separators.
2015-01-10 21:09:30 -05:00
Iain Lane
8c5094c22c gtkfilechooserwidget: When using an extra widget, show or hide the filter combo as appropriate
https://bugzilla.gnome.org/show_bug.cgi?id=742653
2015-01-10 20:37:39 -05:00
Matthias Clasen
0b50e1fff6 HighContrast: draw combo box separators
Same fix as the previous commit.
2015-01-10 20:28:45 -05:00
Matthias Clasen
9c4d478dc7 Adwaita: draw combo box separators
Killing the separator in the button had the unintended side effect
of also killing separators in the popup.

https://bugzilla.gnome.org/show_bug.cgi?id=742704
2015-01-10 20:25:56 -05:00
Nelson Benitez Leon
885b36a6d5 GtkTextView: allow to extend text selection with mouse scrollwheel
Fixes bug 710612
2015-01-10 14:36:17 -05:00
Matthias Clasen
5d9710cc7f file chooser: Add some padidng
https://bugzilla.gnome.org/show_bug.cgi?id=742631
2015-01-10 14:35:56 -05:00
Matthias Clasen
b0e4273325 Forgotten files 2015-01-10 14:35:56 -05:00
Matthias Clasen
366527c2d0 Adwaita: Fix treeview separators in backdrop
https://bugzilla.gnome.org/show_bug.cgi?id=742702
2015-01-10 13:07:55 -05:00
Benjamin Otte
cec5815a0d stylecontext: Stop animations on manual invalidation
If a gtk_style_context_invalidate() is called on a widget's style
context (which nobody should ever do, sheesh!) and we're animating, stop
the animations.

Fixes crashers in Nautilus.
2015-01-10 14:25:40 +01:00
Matthias Clasen
9fcbae2d85 GtkScrolledWindow: Don't start fading right away
When we get a leave event, we need to remove the over bit,
since we may not get motion events that tell us when we lose
proximity, but we don't have to fade out right away - that
will happen on its on due to inactivity a bit later. Having
the indicator stay visible for a bit feels more relaxed.
2015-01-09 21:15:07 -05:00
Matthias Clasen
206f0bbf7f GtkScrolledWindow: Factor out a constant
Define INDICATOR_CLOSE_DISTANCE instead of hardcoding the same
number of pixels in 4 different places.
2015-01-09 21:15:06 -05:00
Matthias Clasen
11eb64a2b6 GtkScrolledWindow: Don't require proximity for track points
These are hard to navigate precisely, so show wide scrollbars
right away.
2015-01-09 21:15:06 -05:00
Matthias Clasen
2a3a7306ef GtkScrolledWindow: Drop device manager complications
We no longer use the presence or absence of particular device
types to determine which scrolling to use.
2015-01-09 21:15:06 -05:00
Matthias Clasen
96fcdebefb GtkScrolledWindow: Drop a redundant field
The Indicator.enabled field was not carrying any extra information,
so just use priv->use_indicators instead.
2015-01-09 21:15:06 -05:00
Matthias Clasen
1c6eca04db GtkScrolledWindow: Rename a private field
touch_mode -> use_indicators, more to the point.
2015-01-09 21:15:06 -05:00
Matthias Clasen
6384167054 inspector: Don't use GSettings directly
It is not necessary here, and using GtkSettings gives us
a greater chance to not fail e.g. on Windows.

https://bugzilla.gnome.org/show_bug.cgi?id=742664
2015-01-09 15:29:34 -05:00
Matthias Clasen
c2ff89bbe3 inspector: be careful about gsize vs guint64
Since gsize doesn't work as a typename in a ui file,
we have to be careful not to pass pointers to wrongly
sized variables when getting the guint64 values out
of the model.

https://bugzilla.gnome.org/show_bug.cgi?id=742664
2015-01-09 14:44:26 -05:00
Emmanuele Bassi
9a38fb79e5 docs: Add missing quote
The missing " breaks the syntax highlighting of the GtkImageMenuItem
example.
2015-01-09 16:42:55 +00:00
David King
a7638d5ecb docs: Add Since for GtkCellRendererPixbuf:surface 2015-01-09 14:51:21 +00:00
David King
9a50203408 docs: Fix some old live.gnome.org URLs 2015-01-09 14:08:20 +00:00
Matthias Clasen
885b3c704f Fix GTK_OVERLAY_SCROLLING=0
This was broken by the recent more dynamic approach.
2015-01-09 06:45:51 -05:00