Commit Graph

22687 Commits

Author SHA1 Message Date
Matthias Clasen
1d64175c4b file chooser: Simplify search entry callback 2015-01-28 16:07:51 -05:00
Matthias Clasen
d270c5524f file chooser: Drop unused callbacks 2015-01-28 16:07:51 -05:00
Matthias Clasen
4ac57d4d4c file chooser: Remove the search/browse buttons
Enabling search is now handled in the file chooser dialog,
so we don't need these buttons anymore.
2015-01-28 16:07:51 -05:00
Matthias Clasen
7c51e60b86 file chooser dialog: Add a search button to the header
This is where we put similar search buttons in applications
and in other dialogs, such as the GtkAppChooserDialog.
2015-01-28 16:07:51 -05:00
Matthias Clasen
de4427304c file chooser: Add a search-mode property
This will be used to control search from the dialog.
2015-01-28 16:07:51 -05:00
Matthias Clasen
76b674f3b6 file chooser: Clean up includes 2015-01-28 16:07:51 -05:00
Lapo Calamandrei
f029a2230d Adwaita: undershoot tweaks 2015-01-28 20:22:05 +01:00
Lapo Calamandrei
5f1fb0e4fc Adwaita: undershoot teeth removal 2015-01-28 20:05:03 +01:00
Jakub Steiner
201134b9df Adwaita: shade content-view
https://bugzilla.gnome.org/show_bug.cgi?id=740336
2015-01-28 18:35:52 +01:00
Lapo Calamandrei
f07ac793fe Adwaita: set the right background color for message dialogs 2015-01-28 18:20:05 +01:00
Carlos Garnacho
3f4df0644c window: Only claim the sequence if keeping the grab
If the grab belongs elsewhere, the window won't claim the sequence right
away. The sequence may still be claimed afterwards when window dragging
starts, but simple clicks won't be consumed this way.

This makes it possible to close popovers when clicking on the title region,
while still permitting touch/button 1 interaction for every other purpose.

https://bugzilla.gnome.org/show_bug.cgi?id=743257
2015-01-28 17:11:12 +00:00
Lapo Calamandrei
f717d98458 Adwaita: another approach at the undershoot styling 2015-01-28 17:11:34 +01:00
Matthias Clasen
1aee4f0384 Fix a typo
commit aa1b7fab9c introduced a misuse of G_UNLIKELY in
several places. Fix all those.
2015-01-28 10:08:13 -05:00
Lars Uebernickel
8e8a94bc23 Also bundle icons in status/ as resources
https://bugzilla.gnome.org/show_bug.cgi?id=743647
2015-01-28 14:26:46 +00:00
Niels Nesse
27cf0fa34c Fix core context creation in GdkGLContext
- Specifically request GL version when creating context. Just specifying core
profile bit results in the requested version defaulting to 1.0 which causes
the core profile bit to be ignored and an arbitrary compatability context to be
returned.

- Fix GL painting by removing GL calls that have been depricated by the 3.2 core
profile.

- Additionally remove glInvalidateFramebuffer() call, it is not supported by 3.2
core.

https://bugzilla.gnome.org/show_bug.cgi?id=742953
2015-01-28 12:00:30 +00:00
Alexander Larsson
a1e4ba0dd4 gtktreeview: Fix horizontal grid lines
The clipping was wrong so it was not drawing grid lines
outside the visible area, which broke due to the pixel cache.
2015-01-27 17:16:03 +00:00
Jonas Danielsson
1442299b48 clipboard: Add get_default() helper
Add helper for getting the main clipboard. This makes
the API usable for bindings (as GdkAtoms aren't usable through
gobject-introspection), and easier to use in C.

https://bugzilla.gnome.org/show_bug.cgi?id=712752
2015-01-27 18:09:31 +01:00
Benjamin Otte
aa1b7fab9c css: Remove _gtk_css_style_property_changes_affect_size()
... and _gtk_css_style_property_changes_affect_font().

Replace it with _gtk_css_style_property_get_mask_affecting().
2015-01-27 05:04:34 +01:00
Benjamin Otte
488ea44a59 image: Use _gtk_css_style_property_get_mask_affecting()
... to avoid recomputing the cached surface all the time.
2015-01-27 05:04:34 +01:00
Benjamin Otte
c42e54e949 css: Add _gtk_css_style_property_get_mask_affecting()
Computes a bitmask for all properties that affect the given flags.
2015-01-27 05:04:34 +01:00
Benjamin Otte
ffff7b055b css: Remove GtkCssStyleProperty::affects-size
... and GtkCssStyleProperty::affects-font properties. Code now uses
GtkCssStyleProperty::affects instead.
2015-01-27 05:04:34 +01:00
Benjamin Otte
c0650057c1 css: Add GtkCssStyleProperty::affects property 2015-01-27 05:04:34 +01:00
Benjamin Otte
11d70f1ac3 css: Add a -gtk-icon-theme CSS property
The property is useless to set (it only allows 'initial', 'inherit' and
'unset' as values), but it is used to track changes to the icon theme.
And as such, it can ensure that widgets can track when they need to
reload icons.

https://bugzilla.gnome.org/show_bug.cgi?id=743341
2015-01-27 05:04:34 +01:00
Mike Gorse
9cbf04c1d2 A11y: fix typo when initializing a container cell accessible
Gtk_container_cell_widget_set should chain up to its parent's set
function, not its parent's unset function. This was resulting in
accessibles being erroneously marked defunct after being created.
2015-01-26 15:03:10 -06:00
Matthias Clasen
542c824c71 Trivial doc fixes
Remove two erroneous quotation marks.
2015-01-24 19:25:50 -05:00
Christoph Reiter
8fc920144b GtkFileChooserWidget: Fix a crash for when the widget was unrefed right after setting a current folder.
Keep a reference to the widget while the async operation is ongoing.

https://bugzilla.gnome.org/show_bug.cgi?id=725164
2015-01-24 17:28:28 -05:00
Christoph Reiter
c235747847 GtkFileChooserWidget: remove unused fields and cleanup code.
These fields are never set, so we don't need the code to clean them up.

https://bugzilla.gnome.org/show_bug.cgi?id=725164
2015-01-24 17:28:28 -05:00
Debarshi Ray
aa0811d320 GtkTreeModel: Documentation fix
https://bugzilla.gnome.org/show_bug.cgi?id=743286
2015-01-24 16:16:35 -05:00
Christoph Reiter
f4dee9b682 Fix transfer annotation for tree_model parameter of gtk_tree_get_row_drag_data() and add nullable, optional
The GtkSelectionData does not own the model set with
gtk_tree_set_row_drag_data so change the out param to "transfer none".
This fixes a crash after multiple DnD actions due to the bindings
stealing a reference each time this function is called.

This also adds nullable and optional annotations for tree_model and path while at it.

https://bugzilla.gnome.org/show_bug.cgi?id=743193
2015-01-24 16:11:51 -05:00
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