Commit Graph

50282 Commits

Author SHA1 Message Date
Timm Bäder
4dd8d37191 widgetfocus: Use the same function to compare widgets
... in horizontal/vertical direction.
2017-03-31 09:50:40 +02:00
Timm Bäder
c9fc201f77 Implement tab/up-down/left-right focus sorting for widgets
basically do what GtkContainer already did.
2017-03-31 09:50:40 +02:00
Timm Bäder
6e9d857714 Widget: Shuffle focus code around 2017-03-31 09:50:40 +02:00
Timm Bäder
9b70d9897d tests: Add widget focus test case
Shows an example of a widget that directly inherits from GtkWidget and
has multiple focusable children.
2017-03-31 09:50:40 +02:00
Timm Bäder
1a7cbddbd4 statusbar: Remove margins in ui file
Widgets themselves shouldn't have margins assigned.
2017-03-31 09:50:40 +02:00
Timm Bäder
0153147ca2 widget: Allow focusing widgets with non-container parent
Especially if said parent also has can-focus set to FALSE, which is a
special-case we had before for GtkContainer instances.
2017-03-31 09:50:40 +02:00
Timm Bäder
0b48bb23b2 label: Fix focus implementation
Don't return TRUE if we didn't actually focus anything.
2017-03-31 09:50:39 +02:00
Timm Bäder
1affd425a1 window: Simplify _set_focus 2017-03-31 09:50:39 +02:00
Timm Bäder
cc05fc574c window: Remove _gtk_window_set_is_toplevel
All GtkWindow instances are toplevels.
2017-03-31 09:50:39 +02:00
Timm Bäder
270d957380 window: Fold update_has_focus in to set_is_active
We're now only ever setting has_focus to the same value we set is_active
to, so also remove that field from the private struct.
2017-03-31 09:50:39 +02:00
Timm Bäder
0ce9f26dc5 window: Remove has-toplevel-focus property
Since embedded toplevels don't exist anymore, :has-toplevel-focus is
equivalent to :active.
2017-03-31 09:50:39 +02:00
Timm Bäder
ebdbb6873a window: Remove check_resize special case for embedded toplevels
Those don't exist anymore.
2017-03-31 09:50:39 +02:00
Timm Bäder
49bbf67195 window: Remove gtk_quark_embedded
Unused.
2017-03-31 09:50:39 +02:00
Timm Bäder
0d0cb6e192 widget: Emit ::focus regardless of container-ness and can-focus 2017-03-31 09:50:39 +02:00
Timm Bäder
885bcd9fe4 container: Remove focus_child pointer
Use GtkWidget's instead.
2017-03-31 09:50:39 +02:00
Timm Bäder
64544968e9 widget: Also reset focus on non-container widgets 2017-03-31 09:50:39 +02:00
Timm Bäder
6353433f0e Make gtk_container_set_focus_child private 2017-03-31 09:50:39 +02:00
Timm Bäder
0d480a3eb0 Remove gtk_container_get_focus_child 2017-03-31 09:50:39 +02:00
Timm Bäder
43cdeee3c4 widget: Save pointer to focus child
Do the same thing GtkContainer does.
2017-03-31 09:50:39 +02:00
Timm Bäder
2bab2048f9 cssimageicontheme: Cache size + texture 2017-03-31 09:50:39 +02:00
Timm Bäder
d8f78d3a32 glrenderer: Reuse the GArray for render items 2017-03-31 09:50:39 +02:00
Timm Bäder
67e7f44654 glrenderer: Add render items for child nodes 2017-03-31 09:50:39 +02:00
Timm Bäder
fbada8e758 glrenderer: Handle color nodes 2017-03-31 09:50:39 +02:00
Timm Bäder
a33e90a029 glrenderer: Store uniform locations per program 2017-03-31 09:50:39 +02:00
Timm Bäder
8f2d0bc5a3 widget: Fix checks in gtk_widget_snapshot()
If the widget isn't drawable anyway, just return;

If the widget needs an allocate, print a warning, since it indicates a
problem in the widget workflow (e.g. forgot to size_allocate a child
widget).

This maches the previous checks in gtk_widget_draw (with the same
problems).
2017-03-31 09:50:39 +02:00
Timm Bäder
aa9da1fe1f filechooserbutton: Hide the combobox by default 2017-03-31 09:50:39 +02:00
Timm Bäder
0fa2fee01a recentchooserwidget: Inherit from GtkWidget 2017-03-31 09:50:39 +02:00
Timm Bäder
cf80a03f91 appchooserwidget: Inherit from GtkWidget 2017-03-31 09:50:39 +02:00
Timm Bäder
fc22543b41 fontchooserwidget: Inherit from GtkWidget 2017-03-31 09:50:39 +02:00
Timm Bäder
11c599a1b5 fontchooserwidget: Remove unused defines 2017-03-31 09:50:39 +02:00
Timm Bäder
806c4f7d2f filechooserwidget: Inherit from GtkWidget 2017-03-31 09:50:38 +02:00
Timm Bäder
3c0da77849 Remove the Raleigh theme
It's been broken for ages.
2017-03-31 09:50:38 +02:00
Timm Bäder
653b766e30 widget: Add a GtkBuildable::add_child implementation
Just call gtk_widget_set_parent in there.
2017-03-31 09:50:38 +02:00
Timm Bäder
cc5696b710 progressbar: Remove unused defines 2017-03-31 09:50:38 +02:00
Ernestas Kulik
fe1e53ad87 flowbox: don’t select when rubberbanding over nothing
When rubberbanding over an empty area, everything is selected on gesture
end, which is a bit counter-intuitive.

https://bugzilla.gnome.org/show_bug.cgi?id=780735
2017-03-31 07:24:15 +03:00
Christoph Reiter
1202082b9d osx: fix build
https://bugzilla.gnome.org/show_bug.cgi?id=734946
2017-03-30 09:54:38 -04:00
Olivier Fourdan
19ce6a8bc5 gdkwindow: subsurface in gdk_window_get_parent()
When the GtkWidget hierarchy does not match the GdkWindow hierarchy, the
GtkWidget code may find a common ancestor that cannot be found while
traversing the GdkWindow tree using gdk_window_get_parent().

This happens with for example on Wayland, a GtkPopover has another
GtkPopover as parent, in this case, the GdkWindow parent is the root
window, whereas the GtkWidget parent is the other GtkPopover.

That confuses the gtk_widget_translate_coordinates() logic which will
bail out in this case and won't return the translated coordinates.

Make gdk_window_get_effective_parent() aware of subsurfaces and use the
transient_for which represents the actual parent (whereas the parent
might be pointing to the root window).

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=774148
2017-03-30 15:46:25 +02:00
Matthias Clasen
2761fae728 Work around a wayland crash
For some reason, we are seeing damage being NULL here.
While that should never be the case, crashing on it is
unkind and makes the Wayland experience unusable.
2017-03-30 09:15:29 -04:00
Matthias Clasen
e70380a4dd Document GTK_INSPECTOR_RENDERER
Also add GTK_INSPECTOR_DISPLAY to the docs at the same time.
2017-03-30 09:15:22 -04:00
Christoph Reiter
e4b0bedb5d gtk_widget_intersect: fix annotations
https://bugzilla.gnome.org/show_bug.cgi?id=773228
2017-03-30 11:19:32 +02:00
Daniel Boles
d33878c5fe gskrendernodeimpl: Fix documentation argument type 2017-03-27 22:16:56 +01:00
Daniel Boles
3d11edf1bc GSK: Fix a bunch of warnings from the GIR scanner
arising from conflicting argument names, missing annotations, etc.
2017-03-27 20:22:07 +01:00
Daniel Boles
b00b7c3b0e TextView: Be const-correct when passing a pointer
The TextIter is passed by pointer for efficiency. We neither need to
modify it, nor should we leave it possible to accidentally do so. So,
it should be passed as a pointer-to-const.
2017-03-27 19:14:38 +01:00
Daniel Boles
c78f6c804e TextView: Get line direction in more efficient way
We do not need to go through the heavyweight process of constructing a
TextLineDisplay just to get the direction out of it, when we can simply
use TextIter API to get the text and then get its direction using Pango.

Adapted from a patch by Mehdi Sadeghi for GtkSourceView:

https://bugzilla.gnome.org/show_bug.cgi?id=779081#c20
2017-03-26 16:14:10 +01:00
Daniel Boles
7be01e84c4 TextBuffer: Add missing transfer full annotations 2017-03-26 16:14:10 +01:00
Piotr Drąg
adf4fa5d3f Update Polish translation 2017-03-25 23:17:18 +01:00
Kjell Ahlstedt
876e99df36 printjob: Clarify array ownership in gtk_print_job_set_page_ranges()
Add a documentation annotation saying that set_page_ranges transfers
ownership of the GtkPageRange array.
Add a g_free() call to fix a memory leak when set_page_ranges is
used repeatedly.

https://bugzilla.gnome.org/show_bug.cgi?id=780234
2017-03-24 16:41:47 +01:00
Matthias Clasen
147e0512c5 Avoid more compiler warnings 2017-03-23 16:15:26 +00:00
Matthias Clasen
6963d9e2ee Avoid unused variable warnings 2017-03-23 16:15:00 +00:00
Matthias Clasen
e171f4930b Avoid redefining GNU_SOURCE
Gives a compiler warning with the wrong flags.
2017-03-23 15:15:12 +00:00