Commit Graph

19676 Commits

Author SHA1 Message Date
1d495cbafd popover: Add a "modal" boolean property to GtkPopover
This property is TRUE by default, when a popover is modal, it
will automatically set a GTK+ grab on the popover, and grab
the keyboard focus into the popover.
2014-01-22 17:10:06 +01:00
31042fe95f popover: Fix memory management of popovers
Popovers are strange in the sense that they aren't attached to a
parent directly, they rely on the relative_to widget so the toplevel
is shared, and when they have a parent, it is the toplevel itself,
not relative_to. This also means that there are conditions where the
popover loses it's parent, so they must survive unparenting.

The previous code would be floating the last reference as soon as the
parent is gone, but it was non-obvious who'd own that reference. So
fix this situation by granting the ownership of popovers to their
relative_to widget, an extra reference may be held by the toplevel
when the popover has a parent, but the popover object will be
guaranteed to be alive as long as the parent lives.

This way, memory management of popovers is as hidden from the user
as regular widgets within containers are, users are free to call
gtk_widget_destroy() on a popover, but it'd eventually become
destructed when relative_to is.
2014-01-22 17:10:06 +01:00
342c23da23 popover: Implement keyboard focus behavior
When a popover is focused, the focus is forwarded so the first
child what would get the focus actually gets it. Also, implement
correct focus chain, so the keyboard focus stays within the popover
when navigating with keyboard.
2014-01-22 17:10:06 +01:00
bd5490ad62 texthandle: Fix arguments in ::style-updated callback 2014-01-22 17:10:06 +01:00
36abb4b829 gtkmain: Let windows handle WM-related events before delivering to the grab_widget
This makes it possible to move/resize client-side decorated windows that are
otherwise obscured by a GTK+ grab somewhere else, either a popover within the
window itself or a modal dialog above the window.
2014-01-22 17:10:05 +01:00
bfc87a315d entry: Show a GtkMagnifier popover on touch selection 2014-01-22 17:10:05 +01:00
4a8a2286e1 texthandle: Remove relative_to API
It's unused now, GtkTextHandle uses widget coordinates.
2014-01-22 17:10:05 +01:00
844c6b8951 texthandles: Use GtkWindow popovers API
This offers the same behavior, but GDK_WINDOW_TEMP windows aren't used
anymore, involving less translations from/to root coordinates, plus no
glitches in having handles snap to content as windows move.
2014-01-22 17:10:05 +01:00
db9e1d36d0 window: Keep track of popover children mapped status
In order to maintain visibility of the GdkWindow that's the parent window
of the popover widget.
2014-01-22 17:10:05 +01:00
ace25368b1 window: Add gtk_window_get_popover_position()
A getter to complement the setter
2014-01-22 17:10:05 +01:00
7b9e060994 entry: Set use-underline in popover GtkToolButtons 2014-01-22 17:10:05 +01:00
d7acd29421 textview: Set use-underline in popover GtkToolButtons 2014-01-22 17:10:05 +01:00
3e6462c71b textview: Use GtkMagnifier on touch selection
The magnifier renders the area covered by the finger, making it easier to follow
the text being selected.
2014-01-22 17:10:05 +01:00
61ab302c75 Add GtkMagnifier
This is a private widget that takes another widget on construction, and is able
to render parts of it, possibly at a different magnification level.
2014-01-22 17:10:05 +01:00
15d7d5b31f pixelcache: check whether cached surface and cairo_t scales match 2014-01-22 17:10:05 +01:00
bb7ef098c4 popover: Add documentation 2014-01-22 17:10:05 +01:00
4d12d85919 popover: Honor GtkContainer::border-width
The border width is now set around the contained widget.
2014-01-22 17:10:05 +01:00
7c10fc5580 popover: remove GTK+ grab (if any) on unmap
If there is a GTK+ grab on the popover, ensure that it's removed when it's
unmapped. If no GTK+ grab was performed on the popover, this function will
do nothing.
2014-01-22 17:10:05 +01:00
b4805f7076 popover: listen harder on the widget being pointed to
Hierarchy, size allocation and widget visibility are now listened
to in order to update the popover state accordingly.
2014-01-22 17:10:05 +01:00
caeb896096 Introduce GtkPopover
Now that the GtkBubbleWindow object has been cleaned up and made
more generic, rename it as GtkPopover and make it public.
2014-01-22 17:10:04 +01:00
8a661b8786 bubblewindow: Remove popup/popdown() APIs
Those functions aren't as useful anymore, hiding/showing can be
controlled by setting the widget visibility, and grabbing can be
achieved by performing a GTK+ grab.
2014-01-22 17:10:04 +01:00
8384ef961e entry: Avoid bubblewindow popup/popdown API
Besides setting all positioning properties at once, popup() would just
show the widget, so do that directly after just updating the position.
2014-01-22 17:10:04 +01:00
1813c8391c textview: Avoid bubblewindow popup/popdown API
Besides setting all positioning properties at once, popup() would just
show the widget, so do that directly after just updating the position.
2014-01-22 17:10:04 +01:00
49277953d3 bubblewindow: Point to the entire widget area by default
This way pointing_to is not fully needed, unless you're pointing
to an specific rectangle within the widget, passing NULL would unset
the region too.
2014-01-22 17:10:04 +01:00
617f23b7eb bubblewindow: check the border-radius when rendering the bubble tail. 2014-01-22 17:10:04 +01:00
d55f39d26d bubblewindow: Improve overflow cases
If the bubble window doesn't fit into one direction, it must
lay at the other side of the pointed_to rectangle.
2014-01-22 17:10:04 +01:00
923da6a8b8 bubblewindow: Make it relative to GtkWidget coordinates
GdkWindows are gone now from the API, the pointed_to rectangle
is from now on relative to the widget allocation. GtkTextView
and GtkEntry were updated to adapt to this change.
2014-01-22 17:10:04 +01:00
e506f67c9b bubblewindow: Remove grab API
This is not as necessary now that bubble windows are popovers, if
a modal behavior is wanted on popover contents, a GTK+ grab on the
popover widget will suffice.
2014-01-22 17:10:04 +01:00
12b0033266 bubblewindow: Turn into a GtkWindow popover
This way GtkBubbleWindows are rendered on top of all window content, without
the need of a GDK_WINDOW_TEMP window.
2014-01-22 17:10:04 +01:00
85a19c894f window: Add lowlevel popovers API
Popovers are transient floating widgets that are confined to the
window space. These have their own GdkWindow that is set on top
of the regular window contents, so they can be used for popup menu
alike UIs with custom popup/popdown/grabs behavior.
2014-01-22 17:10:04 +01:00
89a51bd15d docs: fix improper description of GtkTreeModel "rows-reordered" iter
https://bugzilla.gnome.org/show_bug.cgi?id=698398
2014-01-22 01:21:27 -05:00
798d53c7fd docs: use correct syntax for signals 2014-01-21 23:20:38 -05:00
61a59bd390 docs: don't use property syntax for style properties 2014-01-21 23:20:38 -05:00
e24d1626a5 docs: mark gtkdoc blocks as private for internal only API 2014-01-21 23:20:38 -05:00
93138e96c1 docs: don't reference nonexisting type in docs 2014-01-21 23:20:38 -05:00
5a4a99a97f docs: fix links to docs 2014-01-21 22:40:55 -05:00
ce2c3eb4c4 docs: fix docs link 2014-01-21 22:40:55 -05:00
6644b60999 docs: don't reference api that doesn't exist 2014-01-21 22:40:55 -05:00
889ba7abf8 docs: don't refer to NO_WINDOW as type 2014-01-21 22:40:55 -05:00
a8a080fc06 docs: fix dnd docs links 2014-01-21 22:40:55 -05:00
529dafdf0b docs: don't use signal syntax for properties 2014-01-21 22:40:55 -05:00
00f15b863e docs: don't use property syntax for child properties 2014-01-21 22:40:55 -05:00
c6e1b2513e docs: fix links in builder docs 2014-01-21 22:40:55 -05:00
7c1b573209 docs: fix signal link syntax 2014-01-21 22:40:55 -05:00
de4959ca47 Use symbolic icon for file chooser
https://bugzilla.gnome.org/show_bug.cgi?id=722642
2014-01-21 21:10:07 -05:00
2082e0e399 Remove the use of stock icons from widget templates
https://bugzilla.gnome.org/show_bug.cgi?id=722642
2014-01-21 21:10:07 -05:00
11f0813e40 GtkActionBar: Fix center widget visibility handling
This is the same fix that was applied to GtkHeaderBar
recently. Adding a child widget should not make it
visible as a side-effect.
2014-01-21 20:22:14 -05:00
72be6c494a Make GTK_TREE_SORTABLE_*_SORT_COLUMN_ID defines instead of enum
This allows it to be more easily documented.
2014-01-21 19:48:41 -05:00
a7a9c14677 docs: remove duplicate member 2014-01-21 18:57:41 -05:00
0b23877ca6 docs: fix duplicate symbols in docs 2014-01-21 18:57:41 -05:00