Compare commits

...

530 Commits

Author SHA1 Message Date
Matthias Clasen
b51255b6a7 3.22.0 2016-09-19 15:31:56 -07:00
Daniel Korostil
d9c3fc1aed Updated Ukrainian translation 2016-09-20 00:05:57 +03:00
Ask Hjorth Larsen
f2a18709d5 Updated Danish translation 2016-09-19 22:32:38 +02:00
Jakub Steiner
d8776ae756 Adwaita: sync svg assets with css
- scale slider strokes were lighter on the SVG variants
2016-09-19 22:21:23 +02:00
Olivier Fourdan
4cb1b9645e gtkwindow: Update shadow size on state change
Otherwise, with CSD, we could have a discrepancy where gtk uses the
right values for the shadows whereas the gdk backend still uses the old
values, leading in some cases to invalid or negative min size being
computed (which, in Wayland, leads a protocol error).

https://bugzilla.gnome.org/show_bug.cgi?id=771561
2016-09-19 19:35:50 +02:00
Jeremy Tan
b6ac1b4bbf GDK W32: Ignore autorepeated key presses on modifier keys
The X11 backend does not send autorepeated messages for modifier keys,
and doing so prevents motion compression from working.

https://bugzilla.gnome.org/show_bug.cgi?id=771568
2016-09-19 12:36:53 +00:00
Jeremy Tan
a5c8fedf47 GDK W32: Always process all available messages
The GLib main loop blocks on MsgWaitForMultipleObjectsEx to
determine if there are any incoming messages while also allowing
for background tasks to run. If all available messages are not
processed after MsgWaitForMultipleObjectsEx has signaled that
there are available, CPU usage will skyrocket.

From my limited understanding (by inspection of profiling
under Visual Studio):
Key is pressed - MsgWaitForMultipleObjectsEx unblocks, and
sends message to GDK's event handler. Some event is now queued.

g_poll unblocks, calls the g_event_dispatch which finally
resolves to gdk_event_dispatch. This then calls
_gdk_win32_display_queue_events, but since a message is already
queued, it fails to call PeekMessage and returns immediately.

At the next iteration, g_poll again calls MsgWaitForMultipleObjectsEx
which queues yet another event and returns almost immediately, since
there are events available which haven't been processed by PeekMessage.

The dispatch function is then called and the process repeats.

https://bugzilla.gnome.org/show_bug.cgi?id=771568
2016-09-19 12:36:51 +00:00
David King
6d722f2aaf Update British English translation 2016-09-18 14:12:06 +02:00
Baurzhan Muftakhidinov
efcc2b6b54 Updated Kazakh translation 2016-09-18 08:47:39 +00:00
Руслан Ижбулатов
0274b2c94e GDK W32: Set is_modifier field in GdkKeyEvent
This hardcodes Control, Alt and Shift as modifier keys.

https://bugzilla.gnome.org/show_bug.cgi?id=602773
2016-09-17 20:24:18 +00:00
Emmanuele Bassi
08e443e0db docs: Update gtk_window_get_size()
The main corpus of the documentation for gtk_window_get_size() is still
full of X11-isms, so we should port it to something that is more
backend-agnostic. Additionally, having some examples would be nice for
application authors looking at a way to appropriately use this function.
2016-09-17 12:47:39 +01:00
Tom Tryfonidis
b40469638b Updated Greek translation 2016-09-16 13:43:18 +00:00
Fran Dieguez
28b1d5cc22 Updated Galician translations 2016-09-16 10:34:20 +02:00
Anders Jonsson
fa97b19246 Updated Swedish translation 2016-09-15 21:54:18 +00:00
Claude Paroz
e7a6d28e4f Updated French translation 2016-09-15 12:37:43 +00:00
Emmanuele Bassi
bb705837bc Ensure drawing context is set
If somebody decides to use gtk_widget_set_double_buffered() in the
middle of a draw() then there's the risk of calling end_draw_frame()
with an invalid pointer.

Some overeager compilers may warn about the double_buffered bit field
changing values and leading to a potentially uninitialized variable.

In order to avoid compiler warnings or crashes, we can simply store the
value of the double_buffered bit field at the beginning of the rendering
and use that instead of the actual bit field.

https://bugzilla.gnome.org/show_bug.cgi?id=771463
2016-09-15 10:17:24 +01:00
Dušan Kazik
638c3e2e6b Updated Slovak translation 2016-09-15 09:15:48 +00:00
Timm Bäder
5ea69a136b widget: Only warn about missing allocation if G_ENABLE_DEBUG
Not all occurrences of this warning can be fixed today, so put it behind
a G_ENABLE_DEBUG flag since it still shows legitimate problems even if
some of them are false positives.
2016-09-14 18:06:54 -04:00
Daniel Mustieles
108a4f88bf Updated Spanish translation 2016-09-14 20:43:32 +02:00
Daniel Mustieles
66db47217d Updated Spanish translation 2016-09-14 20:43:22 +02:00
Matthias Clasen
21bdf617ce Implement gdk_screen_get_monitor_scale_factor generically
This was forgotten when the other screen monitor apis were
ported to GdkMonitor.

https://bugzilla.gnome.org/show_bug.cgi?id=771349
2016-09-14 06:45:21 -04:00
Rafael Fontenelle
323a59577b Updated Brazilian Portuguese translation 2016-09-14 05:13:58 +00:00
Jonas Ådahl
c529d0a96e wayland: Move and resize popup after it was configured
A popup may have moved and resized when configured. Make sure every
layer knows about this and call gdk_window_move_resize() with the
configured dimension and position. This won't actually move the
window, but might resize it.

https://bugzilla.gnome.org/show_bug.cgi?id=771117
2016-09-14 11:29:32 +08:00
Jonas Ådahl
d792400d7c wayland: Transform moved_to_rect result properly
The result of move_to_rect, received from the xdg_popup.configure
event, needs to be translated to the correct coordinate space; that is
from real parent window geometry to coordinates relative to the gdk
window set as transient-for.

https://bugzilla.gnome.org/show_bug.cgi?id=771117
2016-09-14 11:29:32 +08:00
Jonas Ådahl
74d237df41 wayland: Use helper to translate to real parent window geometry
Use a helper to translate a coordinate from non-real GdkWindow parent
to window geometry coordinate space of the real GdkWindow parent,
meaning the coordinate space of the GdkWindow of the parent used as a
xdg_popup parent where (0, 0) is inside of the shadow margin.

https://bugzilla.gnome.org/show_bug.cgi?id=771117
2016-09-14 11:29:32 +08:00
Jonas Ådahl
bc6630bb7d wayland: Don't pass parent when creating dynamic positioner
When using the dynamic positioner (i.e. positioning from move_to_rect)
we can always rely on having a proper transient-for to position
relative to, so lets drop the ignored parameter.

https://bugzilla.gnome.org/show_bug.cgi?id=771117
2016-09-14 11:29:32 +08:00
Jonas Ådahl
9a2ce3a485 wayland: Don't pass transient-for when getting real parent
It's always derived from transient-for so no need to pass it.

https://bugzilla.gnome.org/show_bug.cgi?id=771117
2016-09-14 11:29:32 +08:00
Jonas Ådahl
50e33308db wayland: Fix south-west anchor rect calculation
https://bugzilla.gnome.org/show_bug.cgi?id=771117
2016-09-14 11:29:32 +08:00
Jonas Ådahl
4d2c0a843a wayland: Don't pass non-changing state when calculating popup rects
https://bugzilla.gnome.org/show_bug.cgi?id=771117
2016-09-14 11:29:32 +08:00
Jonas Ådahl
e656a14764 wayland: Move move_to_rect related code closer together
Move the code used for calculating the result of move_to_rect
(final_rect, flipped_rect etc) closer to the other move_to_rect
functions (i.e. next to create_dynamic_positioner), and let the
xdg_popup configure handler just call the calculation function.

https://bugzilla.gnome.org/show_bug.cgi?id=771117
2016-09-14 11:29:32 +08:00
Jordi Mas
0b07884587 Update Catalan translation 2016-09-13 19:52:46 +02:00
Arash Mousavi
14c7f4b3fb [l10n] update Persian translations 2016-09-13 18:08:46 +04:30
Charles Monzat
68a87196c4 Updated French translation 2016-09-13 10:18:34 +00:00
Matthias Clasen
a361705817 3.21.6 2016-09-13 05:34:55 -04:00
Fran Dieguez
8ea88d9f4e Updated Galician translations 2016-09-13 11:09:41 +02:00
Marek Černocký
63a22894c2 Updated Czech translation 2016-09-13 10:59:29 +02:00
Erwan Georget
063b38167f Updated French translation 2016-09-12 21:30:41 +00:00
Aurimas Černius
7e148697ad Updated Lithuanian translation 2016-09-12 20:49:17 +03:00
Piotr Drąg
c7f2d19b5e Add more options to XGETTEXT_OPTIONS in Makevars 2016-09-12 19:46:09 +02:00
Jiri Grönroos
a5fcde9b5f Updated Finnish translation 2016-09-12 17:27:09 +00:00
Balázs Meskó
8af6bade64 Updated Hungarian translation 2016-09-12 09:06:21 +00:00
Olivier Fourdan
eb17ee1c26 wayland: unmap popup along with its toplevel
If an application umaps the toplevel from its popup callback, this can
lead to a protocol error.

Make sure we mark popup parent and use that to check if their parent is
the toplevel being unmapped in which case we shall unmap the popup first
to avoid the protocol error.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=770906
2016-09-12 10:03:58 +02:00
Ask Hjorth Larsen
50595cc63f Updated Danish translation 2016-09-12 03:16:16 +02:00
Ask Hjorth Larsen
dbc7ff70d9 Updated Danish translation 2016-09-12 03:13:53 +02:00
Ask Hjorth Larsen
764457fcce Updated Danish translation 2016-09-12 03:11:36 +02:00
Anders Jonsson
edca0b1ad2 Updated Swedish translation 2016-09-11 19:44:01 +00:00
Stas Solovey
b6b3d1ba4f Updated Russian translation 2016-09-11 18:20:55 +00:00
Mario Blättermann
8217d941b6 Updated German translation 2016-09-11 17:00:23 +00:00
Piotr Drąg
1e32d86871 Updated Polish translation 2016-09-11 18:55:25 +02:00
Matthias Clasen
29faa2db44 Redo focus handling in treeview once more
The fix for bug 767468 had some unintended side-effects. This is
an attempt at doing the same fix (don't grab focus when we are
grab-shadowed), while avoiding the breakage, by using GTK+'s
internal tracking for grab-shadowed-ness.

https://bugzilla.gnome.org/show_bug.cgi?id=770508
2016-09-11 11:47:55 -04:00
Matthias Clasen
d7b446ec06 Add a --version option to gtk3-widget-factory
This was missing, for no good reason.
2016-09-11 11:25:50 -04:00
Matthias Clasen
ac95470c01 Add a --version option to gtk3-demo
This was missing, for no good reason.
2016-09-11 11:25:50 -04:00
Matthias Clasen
3f102c27aa gtk-launch: Add help string for --version
This was missing for no good reason.
2016-09-11 10:51:19 -04:00
Yosef Or Boczko
bce313881c Updated Hebrew translation 2016-09-10 23:43:57 +03:00
Dušan Kazik
d2718ab12d Updated Slovak translation 2016-09-10 14:33:24 +00:00
Mohammed Sadiq
22ae9d0884 examples: use G_DECLARE_FINAL_TYPE in applications
G_DECLARE_FINAL_TYPE was introduced in glib 2.44.
We shall use that now so that lots of boilerplate code can
be reduced.

https://bugzilla.gnome.org/show_bug.cgi?id=770278
2016-09-10 09:01:08 -04:00
Fran Dieguez
d817d525e6 Updated Galician translations 2016-09-10 01:11:22 +02:00
Christian Kellner
d4bf215611 placesview: keep reference during network fetching
Analogous to (un)mount operation, we now keep a reference around
during the ongoing operation and make use of the destroyed flag
to check if we are still alive or if we have been cancelled as
a result of the widget being destroyed.

https://bugzilla.gnome.org/show_bug.cgi?id=764979
2016-09-09 16:55:47 -04:00
Christian Kellner
7cdc04c8d2 placesview: override destory to cancel ongoing ops
Since we hold on to a reference during (un)mount operations, we
don't trigger the cancellation of operations in finalize anymore.
Instead we now override the GtkWidget's destroy() and cancel any
ongoing operations there.

https://bugzilla.gnome.org/show_bug.cgi?id=764979
2016-09-09 16:55:47 -04:00
Christian Kellner
0e5b0b75c5 placesview: properly recover from cancellation
The current code wrongly assumes that cancellation can only happen
as a result widget finalization, and consequentially does not
properly recover from it. Therefore if the operation is cancelled
as a result of user interaction, the entry is will stay disabled
and the spinner will keep spinning. This is fixed by removal of
the early bail out in case of cancellation.

https://bugzilla.gnome.org/show_bug.cgi?id=764979
2016-09-09 16:55:47 -04:00
Christian Kellner
3ed25941ac placesview: hold onto ref during (un)mount ops
During mount and unmount opertions we keep a reference to the
GtkPlacesView around, so we have a valid view for the callback
code, even in the case that othe external references have been
dropped (i.e. the containing window gets destroyed).

https://bugzilla.gnome.org/show_bug.cgi?id=764979
2016-09-09 16:55:47 -04:00
Takao Fujiwara
f2ba6ca473 gdkscreen-x11: Enable RandR on VirtualBox
RandR 1.5 is enabled on VirtualBox guest of Fedora 25 but
XRROutputInfo->name is "default". If init_randr15() does not
return TRUE, the monitor size sets 0 because gdk_screen_get_width()
returns 0.

This problem causes GtkStatusIcon not to show the activate menu.

https://bugzilla.gnome.org/show_bug.cgi?id=771033
2016-09-09 16:41:23 -04:00
Tiago Santos
221caf19f7 Updated Portuguese translation 2016-09-09 16:59:19 +00:00
Arash Mousavi
952c990e25 [l10n] update Persian translations 2016-09-09 18:26:04 +04:30
Fran Dieguez
4cd8e6c5ef Update Galician translations
Signed-off-by: Fran Dieguez <fran.dieguez@mabishu.com>
2016-09-08 23:03:31 +02:00
Rūdolfs Mazurs
f73e808c50 Update Latvian translation 2016-09-08 21:19:39 +03:00
Bruce Cowan
21a23fcc97 Updated British English translation 2016-09-08 11:10:05 +00:00
Timm Bäder
fbca09ecb4 gdkdisplay: Unref seats in finalize 2016-09-08 11:34:13 +02:00
Timm Bäder
476c1c44a5 gdkdisplay-wayland: Fix some memory leaks 2016-09-08 11:34:13 +02:00
Anders Jonsson
16cd3c1363 Updated Swedish translation 2016-09-08 07:57:11 +00:00
Rafael Fontenelle
ba26179959 Updated Brazilian Portuguese translation 2016-09-06 12:46:30 +00:00
Tristan Van Berkom
c39ad84970 Revert "about dialog: Set a max-content-height on credits"
This reverts commit 6af5033386.

Scrolled window behavior of propagating child natural sizes
has now been made optional, so there is no need to work around
this by setting a hard coded maximum content height anymore.
2016-09-06 21:29:03 +09:00
Tristan Van Berkom
fd065f63b0 Revert "Add a release note for scrolled windows"
This reverts commit 76af907676.

The behavioral change described in the migration guide
has now been made optional with new scrolled window API,
so no need to mention this in the migration guide.
2016-09-06 21:09:26 +09:00
Tristan Van Berkom
6be8979c64 Revert "widget factory: Adapt to new scrolled window behavior"
This reverts commit 37e913d76b.

This is no longer needed since the natural size propagation of
scrolled window children is now an optional behavior. Reverting
this also makes the widget factory scrolled window sizes behave
the same as with the gtk+ 3.20 branch.
2016-09-06 20:51:20 +09:00
Matthias Clasen
e51fd7cb18 css: Complete the cross-fade implementation
We need to actually compute the images. Otherwise,
bad things happen when we try to draw.

https://bugzilla.gnome.org/show_bug.cgi?id=767391
2016-09-06 06:38:50 -04:00
Matthias Clasen
c2ab49e963 Fix whitespace 2016-09-06 06:38:50 -04:00
Matthias Clasen
c30ee622fe css: Set meaningful fallback color
This code was passing out-of-range values into
gdk_cairo_set_source_rgb, which cannot really make
anything better.
2016-09-06 06:38:50 -04:00
Yosef Or Boczko
bd374b8070 Updated Hebrew translation 2016-09-06 11:47:45 +03:00
Piotr Drąg
a43a6d7fff Updated Polish translation 2016-09-06 01:40:13 +02:00
GNOME Translation Robot
d1f82577a9 Updated Scottish Gaelic translation 2016-09-05 14:24:37 +00:00
GNOME Translation Robot
8ca055cf13 Updated Scottish Gaelic translation 2016-09-05 14:17:15 +00:00
Tristan Van Berkom
eaa6ca4a49 GtkScrolledWindow: Bug 766569 - fix return types in added APIs
In gtkscrolledwindow.c, the return type of _get_propagate_natural_width()
and _get_propagate_natural_height() were accidentally gint instead of
gboolean, fixed to match the type correctly declared in the header file.
2016-09-05 16:08:27 +09:00
Matthias Clasen
26f575014d gtk3-demo: Avoid underallocating columns
Setting a fixed width on the columns causes the headers to be
be underallocated. It is not necessary either.
2016-09-04 21:45:31 -04:00
Matthias Clasen
953b82a584 label: take padding into account when measuring
When doing height-for-width measurements, we need to take
padding into account. This was causing various allocation
errors.

https://bugzilla.gnome.org/show_bug.cgi?id=770849
2016-09-04 15:41:11 -04:00
Matthias Clasen
61e8c69460 label: Fix indentation
Trivial, but annoying.
2016-09-04 15:41:11 -04:00
Marek Černocký
f5ce6c88ee Updated Czech translation 2016-09-04 21:22:08 +02:00
Matthias Clasen
5b21c7d79f range: Ensure we don't underallocate the highlight gadget
This was causing warnings in HighContrast.

https://bugzilla.gnome.org/show_bug.cgi?id=770614
2016-09-04 09:43:51 -04:00
Matthias Clasen
9ddd40f61e Fix a variable name misspelling
No semantic change here; the misspelling just annoyed me.
2016-09-04 08:21:49 -04:00
Aurimas Černius
2eeda22606 Updated Lithuanian translation 2016-09-04 12:21:43 +03:00
Baurzhan Muftakhidinov
770e44c83e Updated Kazakh translation 2016-09-03 17:56:09 +00:00
Baurzhan Muftakhidinov
59937e8654 Updated Kazakh translation 2016-09-03 17:55:38 +00:00
Changwoo Ryu
d6adda99c7 Updated Korean translation 2016-09-03 14:35:58 +00:00
Changwoo Ryu
e9acfc97f1 Updated Korean translation 2016-09-03 14:35:32 +00:00
Joaquim Rocha
f9658a2faf listbox: Select the last row on page down when there are few rows
When pressing page down doesn't retrieve a valid row (because the list
box has few rows), the last visible one should be selected instead.

https://bugzilla.gnome.org/show_bug.cgi?id=770703
2016-09-03 13:52:39 +02:00
Joaquim Rocha
adabec7d25 listbox: Avoid crashing on page down if the list has few rows
The code always assumed that getting a row at a certain 'y' was
possible but if the list box has more empty space than rows then a
valid row may not be retrieved.

https://bugzilla.gnome.org/show_bug.cgi?id=770703
2016-09-03 13:52:39 +02:00
Timm Bäder
857997be8c popover: Skip first frame when transitioning
Similar to what we do in GtkStack.
2016-09-03 12:24:58 +02:00
Jiri Grönroos
a145211acc Updated Finnish translation 2016-09-03 09:16:40 +00:00
Jakub Steiner
63c18bba51 Adwaita,HC: fix icon name
- while we don't use steppers anymore, for some reason they are still
  defined in the theme and if you sacrifice a chicken and jump on one
  leg at full moon, you can enable them.

https://bugzilla.gnome.org/show_bug.cgi?id=769498
2016-09-02 19:11:29 -04:00
Bernd Homuth
e5f0a77ad4 Updated German translation 2016-09-02 14:04:21 +00:00
Jonas Ådahl
98b0f78200 wayland: Warn when an application tries to map popup incorrectly
When a popup is mapped but will not be the top most popup (for example
the parent is not the current top most popup, or if there already is a
popup mapped but the parent is a toplevel), warn and ignore it instead
of continuing, as continuing would be a protocol violation.

https://bugzilla.gnome.org/show_bug.cgi?id=770745
2016-09-02 18:56:03 +08:00
Balázs Meskó
c32a31f223 Updated Hungarian translation 2016-09-02 08:16:23 +00:00
Мирослав Николић
f4f57f8600 Updated Serbian translation 2016-09-01 18:14:09 +02:00
Timm Bäder
ce1ae60da2 popover: Propagate drawing 2016-09-01 15:20:12 +02:00
Timm Bäder
2c04941c5c popover: Fix hfw/wfh size request
Since we're using _get_rect_coords in size-allocate when allocating the
size of the child widget, use the newly introduced _get_rect_for_size to
calculate the difference between the passed size_for and the one we're
supposed to pass on to the child widget.
2016-09-01 15:16:58 +02:00
Timm Bäder
7f1ab32e60 popover: Introduce _get_rect helper for a size
When calculating the requested size of a popover, we need to do the
exact same same thing _get_rect_coords did, but not for the
current popopver allocation. Add _get_rect_for_size that can be used for
this purpose
2016-09-01 15:15:18 +02:00
Timm Bäder
4f7ec1f1c0 gtk{info,search}bar.ui: Remove some leftover attributes 2016-09-01 12:32:51 +02:00
Arnaud Bonatti
533de822ba Use 'focused' everywhere.
https://bugzilla.gnome.org/show_bug.cgi?id=770624
2016-09-01 07:14:30 +02:00
Arnaud Bonatti
3c3a11591b Fix typos.
https://bugzilla.gnome.org/show_bug.cgi?id=770624
2016-09-01 07:14:30 +02:00
Piotr Drąg
a89b3c1b9e Updated Polish translation 2016-09-01 02:59:03 +02:00
Matthias Clasen
4a035403d3 Fix the scrolledwindow test
These tests were written for the propagate-nat-size semantics,
so opt in to it.
2016-08-31 15:04:57 -04:00
Tristan Van Berkom
0984d1622d GtkScrolledWindow: Bug 766569 - Make propagation of natural child sizes optional
Making propagation of child natural sizes mandatory (or default, even) was
evidently a mistake as this causes dynamic content in a scrolled window
to resize it's parent when the scrolled window is competing for space
with an adjacent widget.

This patch instead adds API to control whether natural width and
height of the child should be propagated through the scrolled windows
size requests.
2016-08-31 14:44:50 -04:00
Matthias Clasen
738b1e3eec Require wayland-protocols 1.7
Needed for xdg-shell v6.
2016-08-31 07:07:54 -04:00
Christian Kirbach
b9757b87a1 Updated German translation 2016-08-31 07:10:52 +00:00
Gábor Kelemen
92520a38d5 Updated Hungarian translation 2016-08-30 07:39:03 +00:00
Matthias Clasen
852bdae85f 3.21.5 2016-08-29 15:51:06 -04:00
Matthias Clasen
c9749ad7dc x11: Fix a trap mixup
There was a return between a push/pop of an error trap, and
this managed to trigger the 'unpopped trap' warning in the
displayclose test now. Fix this.
2016-08-29 15:51:05 -04:00
Lionel Landwerlin
ea1295c9ab gtk: window: don't forget to realize popovers of subwindows
https://bugzilla.gnome.org/show_bug.cgi?id=770307
2016-08-29 14:01:10 -04:00
Matthias Clasen
bdbe2de57d Document handle-related Wayland api
In particular, note that this API depends on an unstable
Wayland protocol and thus may have to change.
2016-08-29 13:20:44 -04:00
Jonas Ådahl
340b5964dd wayland: Add API for setting an exported as a parent
Add an API that enables an application to, given an exported window
handle, set its own window as a transient of the window associated with
the exported window handle.

https://bugzilla.gnome.org/show_bug.cgi?id=769788
2016-08-29 13:20:44 -04:00
Jonas Ådahl
f98c9fec6c window: Add Wayland implementation of gtk_window_export_handle
https://bugzilla.gnome.org/show_bug.cgi?id=769788
2016-08-29 13:20:44 -04:00
Jonas Ådahl
127d2ac956 wayland: Add API for creating exported window handles
Using the xdg_foreign protocol, expose a way to get handles to windows
that may be shared between processes.

https://bugzilla.gnome.org/show_bug.cgi?id=769788
2016-08-29 13:20:44 -04:00
Benjamin Otte
e1a03ead7a Use NULL for generic marshallers in g_signal_new()
glib will use the correct marshaller automatically. And as a side
effect, we also get all glib optimizations, like a va marshaller.
2016-08-29 16:20:54 +02:00
Matthias Clasen
6af5033386 about dialog: Set a max-content-height on credits
This keeps the credits section from making the dialog grow
when there are lots of credits.

https://bugzilla.gnome.org/show_bug.cgi?id=770458
2016-08-29 10:01:20 -04:00
Carlos Soriano
cfe4c9e0f4 gtkplacessidebar: fix signal marshal
We were using __VOID for the SHOW_OTHER_LOCATION signal that
uses flags named SHOR_OTHER_LOCATION_WITH_FLAGS.
However, if a signal uses flags the marshal needs to use __FLAGS.

This patch addresses this using VOID__FLAGS as the marshaler parameter.

Thanks to Jan Steffens for pointing this out.

https://bugzilla.gnome.org/show_bug.cgi?id=770550
2016-08-29 15:01:12 +02:00
Мирослав Николић
a0ff0de6a5 Updated Serbian translation 2016-08-28 21:55:26 +02:00
Мирослав Николић
349170c011 Updated Serbian translation 2016-08-28 21:54:20 +02:00
Руслан Ижбулатов
b05ed13710 GDK W32: Remove obsolete assertions 2016-08-26 20:46:27 +00:00
Piotr Drąg
f6935de517 Updated Polish translation 2016-08-26 13:46:38 +02:00
Matthias Clasen
fcfbffc145 Updates 2016-08-26 01:09:40 -04:00
Benjamin Otte
35c96c2c1f Add braces to appease gcc
-ftrack-macro-expansion=0 doesn't like if statements without braces when
evaluating indentation levels.
2016-08-25 23:02:27 +02:00
Benjamin Otte
c8b301f1ea uimanager: Correctly indent code 2016-08-25 23:02:27 +02:00
Benjamin Otte
da8cef16dc a11y: Correctly indent code 2016-08-25 23:02:27 +02:00
Matej Urbančič
12e590e99a Updated Slovenian translation 2016-08-25 22:16:17 +02:00
Matej Urbančič
9dfff0d21d Updated Slovenian translation 2016-08-25 22:09:16 +02:00
Matthias Clasen
f53706b003 cell renderer text: Allow entries to shrink
Set a small max-width on entries used for editing cells, so they
adapt to small columns and don't overlap the next column.

https://bugzilla.gnome.org/show_bug.cgi?id=770374
2016-08-25 07:53:32 -04:00
Olivier Fourdan
9f57fe9960 wayland: add min/max size from xdg-shell v6
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=764413
2016-08-25 11:04:16 +02:00
Jonas Ådahl
b7964cf5a7 wayland: Implement move_to_rect
Translate move_to_rect parameter into xdg_positioner requests, and use
the generated xdg_positioner to create the popup.

https://bugzilla.gnome.org/show_bug.cgi?id=769937
2016-08-25 12:31:40 +08:00
Jonas Ådahl
ceada4adc2 wayland: Port to xdg_shell unstable v6
https://bugzilla.gnome.org/show_bug.cgi?id=769937
2016-08-25 12:31:40 +08:00
Jonas Ådahl
643f033923 wayland: Move window geometry calculation to helper
We'll use it from more places later.

https://bugzilla.gnome.org/show_bug.cgi?id=769937
2016-08-25 12:31:40 +08:00
Jonas Ådahl
d2a80cd235 wayland: Only update the window title if it actually updated
This makes the protocol log less spammy.

https://bugzilla.gnome.org/show_bug.cgi?id=769937
2016-08-25 12:31:40 +08:00
Jonas Ådahl
8270699119 wayland: Only sync surface regions once per commit
Only set input, opaque and window geometry regions once per commit.
They are double buffered anyway, so the last one would only take effect
either way; this way reading protocol logs are much more pleasent.

https://bugzilla.gnome.org/show_bug.cgi?id=769937
2016-08-25 12:31:40 +08:00
Jonas Ådahl
d2385bec09 wayland: Remove gdk_wayland_display_get_xdg_shell()
Don't expose the xdg_shell struct as it is not yet a stable type that
will stay the same.

https://bugzilla.gnome.org/show_bug.cgi?id=769937
2016-08-25 12:31:40 +08:00
Jonas Ådahl
e53d381430 wayland: Get tiled state from gtk_shell instead of xdg_shell
Use our the 'tiled' entry from our new 'state' enum sent via
xdg_surface.configure.

https://bugzilla.gnome.org/show_bug.cgi?id=769937
2016-08-25 12:31:40 +08:00
Jonas Ådahl
80dd7566d5 wayland: Fix indentation
https://bugzilla.gnome.org/show_bug.cgi?id=769937
2016-08-25 12:31:40 +08:00
Matthias Clasen
b8f464e102 wayland: Add some more debug spew 2016-08-25 00:13:13 -04:00
Matthias Clasen
ae720784d9 wayland: Replace g_debug by GDK_NOTE
We have this framework, lets use it.
2016-08-25 00:05:49 -04:00
Matthias Clasen
f66a76d998 Document window-icon related api as 'may not work'
Some platforms simply don't have window icons (such as Wayland).
2016-08-24 14:43:58 -04:00
Matthias Clasen
ae636ba0c2 notebook: Update arrow state when switching pages
Otherwise, we may end up showing clickable arrows that don't
do anything.

https://bugzilla.gnome.org/show_bug.cgi?id=770332
2016-08-24 14:10:35 -04:00
Matthias Clasen
07e9b399d5 scale: Document interaction between rounding and autoscrolling
This is a bit of a gotcha, so better document it.
2016-08-24 12:58:54 -04:00
Matthias Clasen
f7c87fb3b7 widget-factory: Fix smooth autoscrolling of scales
There is annoying interference between formatting the value
(for which we set the number of digits to show) and the small
frame-to-frame value changes that we do for autoscrolling.

To work around this, turn off the digits-based rounding entirely
and format the value ourselves with ::format-value.
2016-08-24 12:53:28 -04:00
Matthias Clasen
ceb18a989e gtk-demo: Make the scale demo fully functional
The adjustments need to have step-increment and page-increment
set up, or keynav and autoscrolling will not work.
2016-08-24 11:11:57 -04:00
Matthias Clasen
6163b3b2b5 Allow activating the desktop portal for inhibit
We allow it everywhere else, and there is nothing wrong with it.
2016-08-24 10:55:44 -04:00
Marek Černocký
9f456028ae Updated Czech translation 2016-08-24 14:10:11 +02:00
Daniel Mustieles
2a8826dea5 Updated Spanish translation 2016-08-24 10:05:51 +00:00
Piotr Drąg
a12567cafd Update POTFILES.in and POTFILES.skip 2016-08-23 21:57:59 +02:00
Carlos Garnacho
5d99b7d538 demos: Use stateful actions for rings/strips in "Touch and Drawing Tablets" demo
https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
e9771d642f GtkPadController: Make ring/strip actions be activated with the axis value
This way these axes may be used in detail by the implementors of pad GActions.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
b24a865d9b GtkEventController: Add some comment describing the filter_event private vfunc
It might not be entirely clear what the boolean return value means.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
ae29157a63 demos: Add pad support to "event axes" demo
And rename it to "Touch and Drawing Tablets", since it's no longer about
"axes" really.

As for pad support in the demo, just keep it "simple", make the
controller handle all pad devices, and make all the actions have the
same callback.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
e66a821a74 GtkPadController: Notify actions back to the windowing on wayland
This allows applications to provide descriptions of the actions performed
by each pad feature. pass the GtkPadActionEntry labels for this.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
87af999b5d wayland: Offer wayland-specific method to set pad actions feedback
The wayland tablet protocol allows notifying the compositor with
descriptions of the actions performed by each tablet element. This
API call allows to hook up in to this wayland-specific feature.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
27f879b835 wayland: Support pad devices in gdk_wayland_device_get_node_path()
We can return the node path on those too, so do that.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
7e961b8bcc wayland: Implement pad event emission
We now send all the set of button/ring/strip/group_mode events.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
cca51b71cb wayland: Create/expose pad devices
These devices are kind of an strange case. Their "master" device is
the keyboard, because they share toplevel focus with it, regardless
of stylus focus. Nonetheless, they are only expected to send the
GdkEventPad* set of events.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
82a46faf41 wayland: Add GdkWaylandDevicePad
This is a subclass of GdkWaylandDevice that implements GdkDevicePad,
all pad features are looked up from the info obtained through the
tablet v2 interface.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
feb09e384c wayland: Implement backbone of pad support
All pad interfaces and features are poked, we just now need
exposing those.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
a0b9586465 gtk: Add GtkPadController
This GdkEventController is a helper object to handle pad events,
it allows setting a mapping to action names, to be triggered in
the given action group.

In order to help on places where advanced mapping/configurability
of pad features is not desirable, this controller also allows
passing a NULL pad device, meaning it will listen on all pads,
and/or passing -1 on mode/index, so an action applies to all
modes/features (eg. strips/rings).

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:45 +02:00
Carlos Garnacho
3a6d0ff2ab gtk: Add minimal handling of pad events
No real handling is yet performed, to be done through a GdkEventController

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:44 +02:00
Carlos Garnacho
b8a77d4da3 gdk: Add GdkDevicePad
This is an interface meant to be implemented by the "pad" devices.
This device-specific interface exposes the mapping of all pad features,
it allows retrieving:
- The number of buttons/rings/strips
- The number of groups
- The number of modes a group has
- Whether a given button/ring/strip belongs to a given group

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:44 +02:00
Carlos Garnacho
f1a9cd466e gdk: Address pad events similarly to keyboard events
We want the same treatment for those, the event will be emitted on the
toplevel, which will then decide what to do with the event.

It just doesn't make much sense to propagate those up/down the hierarchy,
when we want specifically one action being triggered from those.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:44 +02:00
Carlos Garnacho
0dcb9b316e gdk: Add pad event structs, enum values, and event mask bit
GDK_PAD_BUTTON*,RING and STRIP will be emitted respectively when
pad buttons, rings or strips are interacted with. Each of those
pad components belong to a group (a pad can contain several of
those), which may be in a given mode. All this information is
contained in the event.

GDK_PAD_GROUP_MODE is emitted when a group in the pad switches
mode, which will generally result in a different set of actions
being triggered from the same buttons/rings/strips in the group.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:44 +02:00
Carlos Garnacho
3f56af3738 gdkdevice: Add GDK_SOURCE_TABLET_PAD input source type for GdkDevices
This will represent a tablet pad.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:44 +02:00
Carlos Garnacho
3ac56e60c7 wayland: Add wayland-specific method to retrieve a device node path
This will be useful at least for g-c-c, in order to match libwacom
data with GdkDevices.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:44 +02:00
Carlos Garnacho
942d144d3b gdk: Pass hardware ID on gdk_device_tool_new()
And implement this on wayland, where this information is already obtained.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:44 +02:00
Carlos Garnacho
40f75e74be gdk: Add a getter for the hardware id of a GdkDeviceTool
Although scarcely used, this information may be useful to retrieve
from the windowing systems that offer this information.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-23 21:01:44 +02:00
Philip Withnall
d3c204c774 gtkbindings: Add an example for gtk_binding_entry_add_signal()
Otherwise the way the varargs are supposed to be used is completely
opaque.

https://bugzilla.gnome.org/show_bug.cgi?id=770236
2016-08-23 11:51:13 +01:00
Jordi Mas
8f19871876 Update Catalan translation 2016-08-22 21:52:18 +02:00
Piotr Drąg
3cf304ecd0 Updated Polish translation 2016-08-22 20:00:39 +02:00
Philip Withnall
92a95c7de7 gtkbindings: Clarify that widgets need has-focus for bindings to work
https://bugzilla.gnome.org/show_bug.cgi?id=770242
2016-08-22 18:06:39 +01:00
Lapo Calamandrei
a6409458f0 Adwaita: increase border radius on button.circular...
...to allow huge circular buttons.
See https://bugzilla.gnome.org/show_bug.cgi?id=770166
2016-08-22 14:17:34 +02:00
Emmanuele Bassi
74bd3f3810 quartz: Fix typo that broke debug builds 2016-08-22 09:23:02 +01:00
Alexandre Franke
00545dfee4 Updated French translation 2016-08-22 08:20:01 +00:00
Rafael Fontenelle
16a92214c7 Updated Brazilian Portuguese translation 2016-08-22 04:13:36 +00:00
Mario Blättermann
2a5b37de6b Updated German translation 2016-08-21 20:26:50 +00:00
Mario Blättermann
34cf1b189c Updated German translation 2016-08-21 09:37:59 +00:00
Timm Bäder
5c696a7ee3 popover: Clarify transitions-enabled deprecation
https://bugzilla.gnome.org/show_bug.cgi?id=769706
2016-08-20 20:54:20 +02:00
Balázs Úr
a0f5d4bec1 Updated Hungarian translation 2016-08-20 14:43:18 +00:00
Timm Bäder
73b949173e stylepropertyimpl: Remove double assignment 2016-08-20 09:54:44 +02:00
Carlos Garnacho
e3bbeb48bd gdk: Fix gdk_device_tool_get_serial() return value
This is a guint64, not just a guint.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-19 23:56:58 -04:00
Carlos Garnacho
7e11fcaa18 gdk: Fix GdkDevice::tool-changed signal marshaller
GdkDeviceTool is an object, not a boxed type.

https://bugzilla.gnome.org/show_bug.cgi?id=770026
2016-08-19 23:56:58 -04:00
Руслан Ижбулатов
09004b51a9 Update GTK+ Windows icon (now scles up to 256x256)
Also add the SVG file that was used to produce it (derived
from the old raster logo).

https://bugzilla.gnome.org/show_bug.cgi?id=768081
2016-08-19 23:55:19 -04:00
Olivier Fourdan
f9b91197c0 wayland: Use keyboard serial for implicit grab
An xdg-popup requires a serial that the compositor will compare against
its own serial and will dismiss the popup if it doesn't match.

gtk+ uses either a pointer or touch serial for its helper function
_gdk_wayland_seat_get_last_implicit_grab_serial() but if the menu is
triggered before the user has had any pointer or touch interaction with
the client, using a keyboard shortcut, there is neither pointer nor
touch serial available, and gtk+ will use 0 as the default.

As a result, the compositor will instantly dismiss the xdg-popup. In
this case, gtk+ should use the keyboard serial instead.

Track keyboard serial as well and use the keyboard serial as the value
if there is no newer pointer or touch serial available.

https://bugzilla.gnome.org/show_bug.cgi?id=768017
2016-08-19 23:50:14 -04:00
Matthias Clasen
967e2e0cd3 Minor doc cleanup
gtk-doc is smart about plural links, nowadays.
2016-08-19 23:24:47 -04:00
Matthias Clasen
88248e34b1 Remove an outdated comment
It described as TODO what the code right below it already does.
2016-08-19 23:24:08 -04:00
Balázs Úr
3b0d3d2513 Updated Hungarian translation 2016-08-19 21:58:57 +00:00
Christian Kirbach
9920ef0298 Updated German translation 2016-08-19 20:43:57 +00:00
Piotr Drąg
edce8f4d15 Update POTFILES.skip 2016-08-18 14:15:19 +02:00
Jonas Ådahl
cc019de6a5 wayland: Postpone processing move_to_rect params until showing
At the time of move_to_rect() is called, not all state may have been set
up on the impl gdk window, causing the position to sometimes be
slightly offset due to drap shadow margins. For now, work around this
by postponing the processing of the move_to_rect() parameters until
showing, when its more likely that all state (such as shadow margin)
has been set correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=769402
2016-08-18 04:52:03 -04:00
Jonas Ådahl
f6929cfef8 gdkwindow: Use toplevel for getting root cords in move_to_rect()
The Wayland backend manages a set of fake root coordinate spaces, where
each non-relative positioned toplevel (i.e. not popups, popovers,
tooltips etc) make up the basis of separate fake root coordinate spaces.

This means that the Wayland backend doesn't have the abilitiy get a
proper root coordinate when querying on a non-toplevel GdkWindow. To
avoid this issue, first find the toplevel, while translating the anchor
rect coordinates so that they are in the toplevel window coordinate
space. Then use this toplevel to translate the coordinates to root
window coordinate space.

https://bugzilla.gnome.org/show_bug.cgi?id=769402
2016-08-18 04:51:57 -04:00
Jonas Ådahl
4e0ebd0cdf wayland: Don't traverse transient-ofs when faking root coordinate space
The position of each transient-of will be in fake-root coordinate
space; thus we should not accumulate all the positions making it an
offset; each window is already in fake root coordinate space.

https://bugzilla.gnome.org/show_bug.cgi?id=769402
2016-08-18 04:51:51 -04:00
Jonas Ådahl
1f7094a3e5 wayland: Use effective toplevel as popup parent
When using the set transient-for as a popup parent, fetch the effective
toplevel instead, otherwise we will position against the wrong
coordinate.

https://bugzilla.gnome.org/show_bug.cgi?id=769402
2016-08-18 04:51:46 -04:00
Timm Bäder
a985e62b25 Use gtk_popover_popdown/popup where appropriate
https://bugzilla.gnome.org/show_bug.cgi?id=769706
2016-08-16 11:49:26 -04:00
Timm Bäder
a6b9b3648d GtkPopover: Deprecate transitions-enabled
The effect of transitions-enabled=true can now be
achieved using gtk_popover_popup/popdown and the effect
of transitions-enabled=false can be achieved using
gtk_widget_show/hide.

https://bugzilla.gnome.org/show_bug.cgi?id=769706
2016-08-16 11:49:26 -04:00
Timm Bäder
1f7b6c1d6f GtkPopover: Add gtk_popover_popdown/popup
Since not chaining up in gtk_widget_show/gtk_widget_hide is not allowed,
we can't just implicitly delay the hiding in GtkPopover's hide
implementation. Fix this by introducing gtk_popover_popup() and
gtk_popover_popdown() to show or hide a popover with transition and
revert GtkPopover's show/hide implementation to apply their effect
without the transition.

https://bugzilla.gnome.org/show_bug.cgi?id=769706
2016-08-16 11:49:26 -04:00
Andika Triwidada
a782d632f8 Updated Indonesian translation 2016-08-15 06:49:41 +00:00
Andika Triwidada
37e3407ee6 Updated Indonesian translation 2016-08-15 06:30:29 +00:00
William Hua
7665ee4208 mir: group DND, tooltips, and notifications with menu-type windows 2016-08-12 11:37:35 -04:00
Andreas Pokorny
b2719c0383 Remove outdated comments
https://bugzilla.gnome.org/show_bug.cgi?id=768138
2016-08-11 12:23:38 -04:00
Andreas Pokorny
3334e0a21d Use Menus to implement tooltips
The order in which tooltips are created, drawn, shown and then positioned,
always requires repositioning the surface. The tooltip window type only has
limited capability to do so. An alternative could be to use bufferstreams.

https://bugzilla.gnome.org/show_bug.cgi?id=768138
2016-08-11 12:23:38 -04:00
Andreas Pokorny
056ddf2567 Fix execution of dialog
When a dialog is created, the mir event source is already executed on the
call stack. So without the recurse flag it will not be run in the main loop
used for the dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=768138
2016-08-11 12:23:38 -04:00
Matthias Clasen
4e418ed71d file chooser: align date formatting with nautilus
We were treating 'yesterday' not quite the same way.

https://bugzilla.gnome.org/show_bug.cgi?id=769568
2016-08-11 12:22:01 -04:00
Matthias Clasen
64c15545c3 docs: Fix a dangling link
https://bugzilla.gnome.org/show_bug.cgi?id=769601
2016-08-11 09:28:58 -04:00
Matthias Clasen
007ac65f19 Really fix unlinkage for shm_open
Reported in https://bugzilla.gnome.org/show_bug.cgi?id=769603
2016-08-11 07:07:05 -04:00
Andreas Pokorny
f95d270372 Only apply type hint if it would map to a different mir surface type
Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
2016-08-10 13:41:27 -04:00
Andreas Pokorny
da17eae747 Apply geometry hints to mir surface
Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
2016-08-10 13:36:38 -04:00
Andreas Pokorny
96dcf89155 Apply and forward title changes of gdk windows
Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
2016-08-10 13:36:38 -04:00
Andreas Pokorny
6dfb554558 Only update surface spec when there is no spec change pending 2016-08-10 13:36:38 -04:00
Andreas Pokorny
5a8af1af75 Rework window construction - only recreate surface when necessary
Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
2016-08-10 13:36:38 -04:00
Andreas Pokorny
83471052cf Forward repeated key presses as further down keys
Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
2016-08-10 13:36:38 -04:00
Andreas Pokorny
097ed2b40a Fix warning on newer version so mir 0.22 and newer
Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
2016-08-10 13:36:38 -04:00
Andreas Pokorny
bc4df6d4b3 Fix gcc warning on potentially uninitialized gdk_event. 2016-08-10 13:36:38 -04:00
Andreas Pokorny
252ccb846f Use the surface output event to keep track of the suggested scale value
The event will be sent when the surface becomes visible on an output. With this change the GdkMirWindowImpl keeps track of the scale value and sends a configure event on change.

Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
2016-08-10 13:36:38 -04:00
Timm Bäder
bdb77b6cc2 widget-factory: Don't initially show popover
It'll  be set as the popover of a GtkMenuButton later anyway which will
hide it again.
2016-08-10 16:37:17 +02:00
Timm Bäder
0d17421ffd popover: Make some public API NULL-safe
Instad of potentially dereferencing a NULL-pointer, use the NULL-safe
gtk_popover_get_instance_private before the g_return_if_fail
precondition check.
2016-08-10 16:37:17 +02:00
Timm Bäder
57ef631216 label: Remove some useless casts
These were casts of a const GdkEvent* to GdkEvent* even though the
function they are passed to takes a const GdkEvent*.
2016-08-10 16:37:17 +02:00
Ignacio Casal Quinteiro
b0f793c8e7 Use g_snprintf instead of snprintf.
snprintf is not compatible with msvc.
2016-08-10 12:45:39 +02:00
Emmanuele Bassi
da2e612fa8 git.mk: Add config.rpath to the list of ignored files
This finally cleans up the `git status` output.
2016-08-09 17:21:04 +01:00
Emmanuele Bassi
2d2f8e3fa3 Remove config.rpath from EXTRA_DIST
The config.rpath script was added by running gettextize, but it's not
really needed, as config.rpath is generated by autotools and it's
included in the dist tarball automatically.

Upstream gettextize has been fixed so it does not happen any more:
http://savannah.gnu.org/bugs/index.php?48729
2016-08-09 17:19:48 +01:00
Marek Černocký
0be9adc5a3 Updated Czech translation 2016-08-09 12:19:03 +02:00
Dušan Kazik
1c9154b291 Updated Slovak translation 2016-08-08 07:38:30 +00:00
Matthias Clasen
a12ee84ec3 wayland: Link against librt
This is required for shm_open.

https://bugzilla.gnome.org/show_bug.cgi?id=769603
2016-08-07 16:11:55 -04:00
Matthias Clasen
5fefc7a714 headerbar: Fix size allocation
The GtkHeaderBar gadget implementation was subtly broken: it called
gtk_widget_set_allocation both in gtk_header_bar_size_allocate (with
the actual allocation) and in gtk_header_bar_allocate_contents (with
the content allocation of the main gadget). Dropping the second call
fixes the render node conversion for GtkHeaderBar.
2016-08-07 15:08:44 -04:00
Yosef Or Boczko
cb3fc956c5 Updated Hebrew translation 2016-08-07 16:05:42 +03:00
Yosef Or Boczko
6a2cba08c9 Updated Hebrew translation 2016-08-07 15:56:25 +03:00
Philip Withnall
7b40fdbc21 gdkwindow: Fix potential NULL pointer dereferences in event code
The event code could potentially dereference pointer_info if the
invariant that ENTER_NOTIFY and LEAVE_NOTIFY events are only emitted on
devices which have pointers is violated elsewhere.

Found with scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=712760
2016-08-07 08:17:50 +01:00
Philip Withnall
76721e736e gtkicontheme: Don’t emit warning about fallback theme when in unit tests
In order to eliminate g_test_expect_message() (which doesn’t work with
G_LOG_USE_STRUCTURED), make the warning about the fallback theme not
existing be conditional on the icon theme search path containing a
system path. Any application code which modifies the search path does so
through appends and prepends, so this should not affect whether the
warning is emitted in production.

https://bugzilla.gnome.org/show_bug.cgi?id=769485
2016-08-06 17:13:25 -04:00
Matthias Clasen
1306f780ab tests: Avoid g_test_expect_message
Instead of using g_test_expect_message, just ignore the warning.
2016-08-06 17:13:25 -04:00
Colomban Wendling
64521345b9 GtkMenuButton: use :toggled instead of :clicked
:toggled is triggered on :clicked, so using :toggled lead to the menu
to be popped up at the same time, while allowing to use the toggle state
and avoiding any need to a hack to prevent recursion, which somehow
wasn't enough for double emission of GtkMenuToolButton:show-popup.

https://bugzilla.gnome.org/show_bug.cgi?id=769287
2016-08-04 23:31:42 +02:00
Piotr Drąg
41be1e7e1f Updated Polish translation 2016-08-04 21:09:57 +02:00
Timm Bäder
2f9b22243a csslookup: Remove useless cast
The style passed to _gtk_css_lookup_resolve is already a
GtkCssStaticStyle.
2016-08-04 20:40:34 +02:00
Bernd Homuth
be2e0e0baf Updated German translation
(cherry picked from commit 070c4f7486)
2016-08-04 18:38:21 +00:00
Руслан Ижбулатов
5e6c1928b4 W32: Prefer the deadkey combinations that the OS uses
Pick the W32 API for possible deadkey+<something> combinations
and prefer these to other sources of deadkey combos.
Specifically, if W32 API supports at least one combo for a particular
deadkey, only use that data and do not attempt to do other, unsupported
combinations, even if they make sense otherwise.
This is needed to, for example, correctly support US-International
keyboard layout, which produces a combined character for <' + a>
combo, but not for <' + s>, for example.

This is achieved by stashing all the deadkeys that we find in
an array, then doing extra loop through all virtual key codes and
trying to combine them with each of these deadkeys. Any combinations
that produce a single character are cached for later use.

In GTK Simple IM context, call a new GDK W32 function to do a lookup
on that cached combination table early on, among the "special cases"
(which are now partially obsolete).

A limitation of this code is that combinations with more than
one deadkey are not supported, except for combinations that consist
entirely of 2 known deadkeys. The upshot is that lookups should
be relatively fast, as deadkey array stays small and the combination
tree stays shallow.

Note that the use of ToUnicodeEx() seems suboptimal, as it should
be possible to just load a keyboard library (KBD*.DLL) manually
and obtain and use its key table directly. However, that is much more
complicated and would result in a significant rewrite of gdkkeys-win32.
The code from this commit, though hacky, is a direct addition to
existing code and should cover vast majority of the use-cases.

https://bugzilla.gnome.org/show_bug.cgi?id=569581
2016-08-04 16:37:19 +00:00
Руслан Ижбулатов
52c7e07948 GDK W32: Cache multiple keyboard layouts simultaneously
This changes the group/level semantic.
Previously W32 backend used "group 0/1" to denote "AltGr OFF/ON"
and "level 0/1" to denote "Shift is OFF/ON".
Now "group" means "keyboard layout" and there can be up to 255 groups,
while AltGr and Shift are combined into a single level enum that
takes values between 0 and 4.
Unlike X, W32 doesn't do effective group overriding, meaning that
it will never tell the caller that a different group was actually
used (even for universal keys, such as Enter), because key symbol
table is completely fabricated and there's no point in trying to
save a few of kilobytes of RAM by not duplicating universal key
records for all groups.

Also contains many whitespace changes (tab elimination, fixed
indentation) and cleanup (axed a few global variables, these are
now accessed via the default keymap).

https://bugzilla.gnome.org/show_bug.cgi?id=768722
2016-08-04 16:37:18 +00:00
Timm Bäder
60f3c02080 shortcutlabel: Make parameter names match 2016-08-04 13:33:07 +02:00
Timm Bäder
50a0c5f242 widget: remove some unneeded function prototypes 2016-08-04 13:09:08 +02:00
Timm Bäder
6032e7b216 filechooserwidget: Remove unused enum 2016-08-04 13:09:01 +02:00
Timm Bäder
41c8446631 label: Destroy the popup menu on unmap 2016-08-04 13:07:23 +02:00
Daniel Mustieles
6107e50c98 Updated Spanish translation 2016-08-03 12:28:56 +00:00
Emmanuele Bassi
445286c2c3 Modify git.mk to handle our split NLS directories
GTK+ has two directories for translations: the default 'po' and the
additional 'po-properties' for the GObject properties translation
domain.

Since the content of the translations directories are filled by
autoreconf and gettext, and are duplicated between the two gettext
domains we use, we should handle this ad hoc inside git.mk, instead of
trying to catch up by adding po-properties files in GITIGNOREFILES.
2016-08-03 11:52:08 +01:00
Emmanuele Bassi
9e1afd7ba8 Add ignore file for macro dir
The contents of the macro directory are too complicated for git.mk to
handle: the contents are filled by autotools and may change between
systems or autotools releases; and we additionally ship our own m4
macros.

To avoid unnecessary noise on the `git status` output we should simply
add an ignore file specifically for the macro directory.
2016-08-03 11:49:15 +01:00
Matthias Clasen
80d329a3e7 Skip GtkShortcutLabel::accelerator in notify test
This property is not freely settable, since the string
gets parsed.
2016-08-02 23:59:34 -04:00
Matthias Clasen
2de6b0800d menu: Fix up new properties
The new positioning-related properties had some quality of
implementation issues, such as incorrect initial values and
excessive change notification. This broke the notify test.
2016-08-02 23:57:37 -04:00
Matthias Clasen
5ab2b8f562 Make icontheme test work with structured logging
Since we've opted in to G_LOG_USE_STRUCTURED, this test
now needs to do its thing using a log writer function.
2016-08-02 23:23:43 -04:00
Matthias Clasen
d9c07c0a6a Skip GdkDrawingContext in default value tests
GdkDrawingContext objects can't be freely constructed.
2016-08-02 22:32:25 -04:00
Emmanuele Bassi
43a5331125 Require a new version of GLib
We need GLib 2.49.4 because of the new API requirements introduced by
commit 936c1649.

https://bugzilla.gnome.org/show_bug.cgi?id=769451
2016-08-02 22:15:26 +01:00
Daniel Mustieles
60c393d32f Updated Spanish translation 2016-08-02 16:52:29 +02:00
Daniel Mustieles
55a9568264 Updated Spanish translation 2016-08-02 16:52:19 +02:00
Emmanuele Bassi
831d8b1261 Update the docs for gtk_window_get_position()
Drop mentions of GnomeClient, and add mentions of different windowing
systems instead of just assuming that we're using X11.
2016-08-02 12:29:26 +01:00
Matthias Clasen
0989614d2d Add a release not about GtkTable expand flags 2016-08-01 09:09:19 -04:00
Christoph Reiter
4556d0f0fe gtkbox: remove unnecessary queue_compute_expand()
The expand child property does not have any effect on the
expand state of the GtkBox, so queuing a compute_expand
when changing it is not needed.

https://bugzilla.gnome.org/show_bug.cgi?id=769162
2016-08-01 09:02:04 -04:00
Christoph Reiter
a72f1c76c8 gtktable: don't try to propagate expand related child props in compute_expand()
It tried to set the expand state if either xexpand/yexpand where true.
Due to a missing queue_compute_expand when adding a child it actually
only computed the expand state in case a child queued after being added
or in case a child had the expand property set (see optimization in
gtk_widget_set_parent)

In my case this broke layouts as a child of GtkCombBox started setting
an exand flag with 3.20 which queued a compute_expand, which in turn
propagated an expand child props set for a cell in the same table up
and overrode the expand child prop of a parent GtkBox.

This removes the custom compute_expand implementation to match the
behaviour of GtkBox (don't propagate child prop expand flags
but let child expand flags override the child props) and not get random
expand behaviour depending on whether and when child widgets set their
expand state.

https://bugzilla.gnome.org/show_bug.cgi?id=769162
2016-08-01 09:02:04 -04:00
Aurimas Černius
e4c072fc11 Updated Lithuanian translation 2016-07-31 19:58:56 +03:00
Bastien Nocera
64739f46fc demos: Fix build failure
gtk+/demos/gtk-demo/css_blendmodes.c: In function ‘update_css_for_blend_mode’:
gtk+/demos/gtk-demo/css_blendmodes.c:49:26: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
                          blend_mode);
                          ^~~~~~~~~~

https://bugzilla.gnome.org/show_bug.cgi?id=769236
2016-07-29 11:02:50 -04:00
Sébastien Wilmet
331af2afb6 docs: trivial build fix
The error was:
gtk3-scan.c:193: undefined reference to `gtk_shortcuts_label_get_type'
collect2: error: ld returned 1 exit status

It's since commit 7543cd8ce4, which made
the GtkShortcutLabel class public.
2016-07-28 21:15:09 +02:00
Matthias Clasen
b01e975667 Port GtkPrintOperationPortal to gtk_window_export_handle 2016-07-28 13:01:22 -04:00
Matthias Clasen
936c1649de Port gtk_show_uri_on_window to gtk_window_export_handle
As part of this, make it use the new
g_app_info_launch_default_for_uri_async, since we need a way
to unexport the window handle afterwards.
2016-07-28 13:01:22 -04:00
Matthias Clasen
237df66a33 Port GtkFileChooserNativePortal to gtk_window_export_handle 2016-07-28 13:01:22 -04:00
Matthias Clasen
18aa05110f Put window exporting behind a display protocol agnostic API
Introduce a private API meant for abstracting how to get a handle
of a window that can be shared with other processes. The API is
async, since some implementations will require that. Currently,
only X11 is supported, which doesn't.

Based on a patch by Jonas Adahl.
2016-07-28 13:01:22 -04:00
Руслан Ижбулатов
2233566f48 GDK W32: Support UTF-16 surrogate pairs passed via VK_PACKET
This is, essentially, a piece of g_utf16_to_ucs4() built into GDK
W32 keyboard message processing.

https://bugzilla.gnome.org/show_bug.cgi?id=769126
2016-07-28 15:55:11 +00:00
Benjamin Otte
5ccc0e40f5 css: Fix case where we didn't convert pt => px
Fixes gtk_widget_override_font() not behaving properly since commit
df08fc91bd.

https://bugzilla.gnome.org/show_bug.cgi?id=768902
2016-07-28 11:42:54 -04:00
Benjamin Otte
f422208040 css: Rename functions
I don't want to use a generic function for font sizes as font sizes are
special. Plus, the function is only used in one place.
2016-07-28 11:42:54 -04:00
Emilio Pozuelo Monfort
ca6c928c5b Properly declare the font CSS property
https://bugzilla.gnome.org/show_bug.cgi?id=769004
2016-07-28 17:13:15 +02:00
Emilio Pozuelo Monfort
b9f61e3a8e Don't use one-stop gradients
They are deprecated, which causes a warning that makes
the test fail.

https://bugzilla.gnome.org/show_bug.cgi?id=769004
2016-07-28 17:12:25 +02:00
Murray Cumming
0fd69ce99a Fix tiny typo. 2016-07-28 11:12:54 +02:00
Lapo Calamandrei
15b2dbf9a8 Adwaita: use a transition to animate checks and radios
see https://bugzilla.gnome.org/show_bug.cgi?id=762260
2016-07-27 23:00:35 +02:00
Georges Basile Stavracas Neto
ddee89f4a3 shortcut-label: add 'disabled-text' property
When there's no useful shortcut accelerator set,
GtkShortcutLabel doesn't show any useful information.

To work around that, add a new property to set the
text to be displayed when there's no accelerator
available.

https://bugzilla.gnome.org/show_bug.cgi?id=769205
2016-07-27 16:30:43 -03:00
Georges Basile Stavracas Neto
7543cd8ce4 shortcut-label: make it public
GtkShortcutLabel is a widget that displays a single
shortcut accelerator or gesture in the user interface,
and is currently used by the shortcuts window.

This widget, however, has public value as other applications
also may want to expose their own shortcuts. For instance,
it'll be useful for the Keyboard panel on Control Center and
the new shortcut editor in Pitivi, among others.

This patch exposes GtkShortcutLabel as a public widget,
and adds the necessary documentation.

https://bugzilla.gnome.org/show_bug.cgi?id=769205
2016-07-27 16:30:31 -03:00
Carlos Garnacho
8e6a68c5fc GtkScrolledWindow: reset scroll history if it contained no real history
Scroll history must refer to a timespan for the values to be valid, otherwise
we return FALSE, in this case the stored event(s) should be discarded anyway.
2016-07-27 20:29:38 +02:00
Carlos Garnacho
9eb356d9f2 GtkScrolledWindow: Always uninstall scroll cursor when starting deceleration
It could be the case that the last scroll event is received long after any
previous scroll event, in this case the last scroll event discards all "old"
scroll events, and scroll_history_finish() returns FALSE because there's no
time/offset deltas in the scroll history.

This is desired so we don't trigger the deceleration effect if there was no
effective velocity, we still must reset the installed scroll cursor, so take
it out of this if() condition.
2016-07-27 20:28:23 +02:00
Tiago Santos
c0f66ed1ea Updated Portuguese translation 2016-07-27 07:35:14 +00:00
Matthias Clasen
0f32919503 Stop using one-stop gradients in reftests
This is causing warnings now that make the tests fail.
2016-07-26 07:25:01 -04:00
Matthias Clasen
45957100b0 Revert a mistaken change
I thought I needed ot rearrange the ordering of the animation-direction
values for the parser, overlooking the fact that we already parse them
backwards to address this very problem.
2016-07-26 00:21:48 -04:00
Sébastien Wilmet
af5ef152b1 docs: GtkWidget::style-updated vs GtkStyleContext::changed
Explain the difference between those two signals.

Add "Since: 3.0" for GtkStyleContext::changed, since that signal has
been added in commit 9f84e101bf, present
since 2.91.6.

https://bugzilla.gnome.org/show_bug.cgi?id=769047
2016-07-25 09:26:41 -04:00
Sébastien Wilmet
3432587f89 docs: add missing info for gtk_widget_get_style_context()
It is important to know whether the returned object can or cannot
change, for a certain widget. For example to connect to the
GtkStyleContext::changed signal.

https://bugzilla.gnome.org/show_bug.cgi?id=769047
2016-07-25 09:26:41 -04:00
Matthias Clasen
f089d7503b GtkApplication: some cleanups
Always return an error if we fail to get a dbus proxy; the callers
are only looking whether error is set, not whether the return value
is NULL.

Use the same function for the inhibit proxy as well, and clean up
the sm_proxy in finalize.
2016-07-25 09:11:21 -04:00
Simon McVittie
f65c116d2a Don't apply GDK_HINT_RESIZE_INC to GDK_WINDOW_STATE_TILED windows
This matches the behaviour of Mutter, Metacity and traditional X11
window managers on the window manager side, and is what we want
for at least gnome-terminal. I can't think of any reason why we'd
want incremental resize in any other tiled window.

Signed-off-by: Simon McVittie <smcv@debian.org>
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=760944

https://bugzilla.gnome.org/show_bug.cgi?id=755947
2016-07-25 09:00:01 -04:00
Cosimo Cecchi
d9dd7eb757 reftests: override GSETTINGS_SCHEMA_DIR when running tests
The reftest depends on a schema we install ourselves. Instruct GIO to
look in the build directory to avoid a cyclic dep.

https://bugzilla.gnome.org/show_bug.cgi?id=768930
2016-07-25 08:34:52 -04:00
Matthias Clasen
f44baf51d9 Avoid a division by zero
It appears that xvfb returns nonsense in its xrandr resources.
Avoid a crash when that happens.

https://bugzilla.gnome.org/show_bug.cgi?id=768999
2016-07-25 08:32:24 -04:00
Matthias Clasen
8db8891c66 Use g_clear_object in a few more places 2016-07-25 08:32:08 -04:00
Lapo Calamandrei
bab906f838 Adwaita: use margins for entry image spacing
there used to be a padding, since it was the only option in the
past, that makes little sense now, hence use margins.
2016-07-24 19:11:27 +02:00
Lapo Calamandrei
bc070a70a5 HC: export unfocused_insensitive_color...
...to reflect Adwaita changes.
2016-07-24 18:59:58 +02:00
Lapo Calamandrei
f84b8c1c26 Adwaita: export yet another named color for insensitive bg/fg...
...which was needed, but not there, use responsibly.
2016-07-24 18:04:51 +02:00
Timm Bäder
dd09e252c9 Fix a few documentation parameter names 2016-07-23 14:07:47 +02:00
Matthias Clasen
82fd72a477 Opt in to structured logging
Define G_LOG_USE_STRUCTURED, so that all our g_debug, g_warning,
etc calls directly use structured logging and provide source information.
2016-07-22 23:13:20 -04:00
Carlos Garnacho
4a9f17c690 wayland: Fix build
Missing include pointing to tablet-unstable-v1-client-protocol.h,
pays me for not testing on a clean checkout.
2016-07-22 20:58:55 +02:00
Carlos Garnacho
9fe0c1e126 wayland: Use wl_fixed_t on wp_tablet_tool angle arguments
This is an incompatible change in tablet protocol v2.
2016-07-22 19:35:28 +02:00
Carlos Garnacho
536017646e wayland: Update current tablet support to using v2
Only update to using v2 headers/structs. The incompatible changes
to tool events are dealt with in the next commit. Pads aren't handled
in this commit either.
2016-07-22 19:35:09 +02:00
Lapo Calamandrei
1b0ade8bdd Adwaita: dim calendar uninteresting days some more
see https://bugzilla.gnome.org/show_bug.cgi?id=769003
2016-07-22 14:10:56 +02:00
Lapo Calamandrei
80b28a17f7 Adwaita: clean calendar styling
remove some non working props and generally simplify and clean up
the code, in the process address:

https://bugzilla.gnome.org/show_bug.cgi?id=769003
2016-07-20 22:48:25 +02:00
Daniel Mustieles
d266b39407 Updated Spanish translation 2016-07-20 10:38:39 +00:00
Piotr Drąg
4185e9eaa3 Updated POTFILES.skip 2016-07-19 17:14:30 +02:00
William Hua
748ebd3d72 mir: implement gdk_window_move_to_rect ()
https://bugzilla.gnome.org/show_bug.cgi?id=756579
2016-07-19 09:38:54 -04:00
William Hua
8701e34f74 port to new gtk_menu_popup_at_* () functions
https://bugzilla.gnome.org/show_bug.cgi?id=756579
2016-07-19 09:38:54 -04:00
William Hua
05b9bc5cff add demo for testing gtk_menu_popup_at_* ()
https://bugzilla.gnome.org/show_bug.cgi?id=756579
2016-07-19 09:38:54 -04:00
William Hua
b03361366a gtkmenu: add gtk_menu_popup_at_* ()
Adds the following functions:

gtk_menu_popup_at_rect ()
gtk_menu_popup_at_widget ()
gtk_menu_popup_at_pointer ()

https://bugzilla.gnome.org/show_bug.cgi?id=756579
2016-07-19 09:38:54 -04:00
William Hua
b3a530cb72 gdkwindow: add gdk_window_move_to_rect ()
https://bugzilla.gnome.org/show_bug.cgi?id=756579
2016-07-19 09:38:54 -04:00
William Hua
48108c401e gdkwindow: store transient_for window
https://bugzilla.gnome.org/show_bug.cgi?id=756579
2016-07-19 09:38:54 -04:00
William Hua
0a5bee2751 gdkwindow: store shadow sizes
https://bugzilla.gnome.org/show_bug.cgi?id=756579
2016-07-19 09:38:54 -04:00
Daniel Mustieles
2235f211e3 Updated Spanish translation 2016-07-18 16:48:16 +02:00
Daniel Mustieles
718b3a9ad4 Updated Spanish translation 2016-07-18 16:48:06 +02:00
Руслан Ижбулатов
2465493237 Try to delete any existing W32 status icons when DPI changes
Fixes some or all of the issues reported in
https://github.com/hexchat/hexchat/issues/1423
2016-07-18 10:32:04 +00:00
Matthias Clasen
02c89f7e8f 3.21.4 2016-07-17 23:27:35 -04:00
Matthias Clasen
16dbc0fd10 Updates 2016-07-17 14:07:47 -04:00
Chao-Hsiung Liao
e9078e3abb Updated Chinese (Taiwan) translation 2016-07-16 02:46:17 +00:00
Chao-Hsiung Liao
6906252b38 Updated Chinese (Taiwan) translation 2016-07-16 02:45:07 +00:00
Piotr Drąg
01129a0ba0 Add Language headers to po files
Future versions of gettext will fail if this header is missing.
2016-07-14 17:06:21 +02:00
Javier Jardón
846087fcff Add LINGUAS file to po-properties 2016-07-13 21:15:15 +01:00
Tiago Santos
473ae67a13 Updated Portuguese translation 2016-07-13 16:49:10 +00:00
Tiago Santos
45a9aed721 Updated Portuguese translation 2016-07-13 16:47:18 +00:00
Matthias Clasen
793d5291d9 link button: Use gtk_show_uri_on_window
This gives slightly better behavior in the sandboxed case and
makes no difference otherwise.
2016-07-13 11:24:16 -04:00
Patrick Griffis
6184edc318 GtkFileChooserNativePortal: Use correct response code for accept
As per the documentation of GtkFileChooserNative.

https://bugzilla.gnome.org/show_bug.cgi?id=768756
2016-07-13 07:02:15 -04:00
Chun-wei Fan
d8815f3e4e gtk/gtkfilechoosernativeportal.c: Don't use g_autoptr()
This code is also built by non-GCC/CLang compilers, so use the normal
ref/unref steps for the GVariant.

https://bugzilla.gnome.org/show_bug.cgi?id=768659
2016-07-13 11:26:35 +08:00
Matthias Clasen
500c9dbe96 Remove a few mentions of GtkVBox in the docs
We only have GtkBox nowadays.
2016-07-12 21:58:11 -04:00
Emmanuele Bassi
8f1fd7d964 docs: Fix typo. 2016-07-12 18:09:20 +01:00
Emmanuele Bassi
c0dae6c146 docs: Attempt a better explanation for gtk_widget_destroy()
Clarify the nature of this function, and the expectations after it's
been called.
2016-07-12 12:44:23 +01:00
Piotr Drąg
3831b2a725 placesview: fix spelling of WebDAV in a translatable string 2016-07-12 13:31:21 +02:00
Razvan Chitu
9747312e6c placesview: fix open action for locations without a mount or volume
In the "Other Locations" view, locations can be opened from the context menu
based on their mount or volume. However, some locations, like "Computer", do not
have either of those so they cannot be opened from the context menu. In order to
fix this, the file associated with the location can be used as well.

https://bugzilla.gnome.org/show_bug.cgi?id=768657
2016-07-12 12:56:04 +03:00
Emmanuele Bassi
b5a2bba840 docs: Improve gdk_window_create_similar_image_surface()
The sizes passed are in device pixels and do not take into account the
scaling factor of the window itself. We cannot change the semantics of
the function, so let's at least add a warning for this trap door.
2016-07-11 16:55:10 +01:00
Lapo Calamandrei
53a1f0ba78 Adwaita: remove old popover checkbutton/radiobutton style
remove some now disfunctional style regarding checkbuttons and
radiobuttons inside popovers which shouldn't be needed anymore.
2016-07-09 00:56:32 +02:00
Lapo Calamandrei
725d5b1477 Adwaita: remove some check and radio related cruft
remove superfluous padding which was there before the css node
conversion of the widget.
2016-07-08 22:11:07 +02:00
Piotr Drąg
ae8c13753e Updated POTFILES.in 2016-07-08 21:49:21 +02:00
Matthias Clasen
3756a1eca2 Fix up the documentation of GtkTextView::move-viewport
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=768546
2016-07-08 10:26:22 -04:00
Matthias Clasen
25fed03420 Add portal support to GtkPrintOperation
Make GtkPrintOperation talk to org.freedesktop.portal.Print when
running in a sandbox.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:09:05 -04:00
Matthias Clasen
56ebfc6ca5 print job: Add api to send data from an fd
This will be useful for portalized print support.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:09:02 -04:00
Matthias Clasen
cc97e55f8a page setup: Add api to serialize to a GVariant
This will be useful for portalized print support.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:57 -04:00
Matthias Clasen
42ae48a23e Add api to serialize a GtkPaperSize to a GVariant
This will be useful in portalized printing.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:53 -04:00
Matthias Clasen
a3764e27a4 print settings: Add api to serialize to a GVariant
This will be useful for portalized print support.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:47 -04:00
Matthias Clasen
04cec61aa1 Support the Inhibit portal
xdg-desktop-portal now has a portal for inhibiting session status
changes. We don't need to use it if we can talk to the session
manager, but if can't, try org.freedesktop.portal.Inhibit.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:37 -04:00
Matthias Clasen
4600209962 Implement combobox apis for GtkFileChooserNativePortal
https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:33 -04:00
Matthias Clasen
5839c13843 Implement combobox apis in GtkFileChooserWidget
https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:28 -04:00
Matthias Clasen
6fc7485077 GtkFileChooser: Add abstract api for comboboxes and checkbuttons
This commit adds API for adding combo boxes and check buttons to
GtkFileChooser, and getting the selected value back in ::response.

In contrast to gtk_file_chooser_set_extra_widget, these APIs are
abstract and suitable for implementation in GtkFileChooserNative.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:21 -04:00
Matthias Clasen
2b77eaa1ae Adapt to simplified file chooser portal api
OpenFiles is gone, just set the 'multiple' option instead.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:17 -04:00
Matthias Clasen
445d12e5cb file chooser portal: Port to new Request API
The portal API has changed, we need to adapt.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:11 -04:00
Matthias Clasen
6cf71ed6bb Use the portal when sandboxed
Use the sandbox helper api to find out whether to use
the file chooser portal.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:08:05 -04:00
Matthias Clasen
3b3e1eca2b portal: Sent more data along
Send the current_name, current_folder or current_file fields to
the portal.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:07:59 -04:00
Matthias Clasen
0acb6a0e98 portal: Send file filters to the portal
https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:07:54 -04:00
Matthias Clasen
35181e793d Add api to serialize GtkFileFilter to a variant
This will be used to send filters over D-Bus in future commits.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:07:49 -04:00
Alexander Larsson
01d0bac83e Initial version of file chooser portal support
Implement GtkFileChooserNative for sandboxed applications
by talking to org.freedesktop.portal.FileChooser. Currently,
this supports OPEN and SAVE mode.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:07:42 -04:00
Matthias Clasen
e47957406d about dialog: Use gtk_show_uri_on_window
This allows us to handle things slightly better in
the portal case.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:07:11 -04:00
Matthias Clasen
c6416aec74 Add gtk_show_uri_on_window
The gtk_show_uri API doesn't let us specify a parent window. With
portals, there may be an intermediate dialog, for which it is nice
to have parent window information, to place it properly.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:07:07 -04:00
Matthias Clasen
96d8afbccb Add a portal helper
Instead of open-coding checks for sandboxing in multiple
places, add a helper function that caches the information.

https://bugzilla.gnome.org/show_bug.cgi?id=768499
2016-07-08 00:06:14 -04:00
Owen W. Taylor
b840a59766 Change the priority of the window-close idle to G_PRIORITY_DEFAULT
If we have an application that never goes idle (or takes a long time to
go idle), the close buttons in CSD decoration don't work properly.
While it's not clear why the usage of an idle was added in the first
place, keep on using it to avoid unexpected reentrancy problems, but
change the priority to G_PRIORITY_DEFAULT.

https://bugzilla.gnome.org/show_bug.cgi?id=768485
2016-07-06 09:50:21 -04:00
Matthias Clasen
c7654c737c Add a css parser test for background-blend-mode 2016-07-05 13:16:43 -04:00
Matthias Clasen
93f20315d1 gtk3-demo: Simplify the blendmodes example a bit
Just put all of the template into the resource.
2016-07-04 09:59:25 -04:00
Olivier Fourdan
e032c83822 wayland: remove unneeded statement
seat->pointer_info.focus is already set to NULL 2 lines above, no need to
repeat it there.
2016-07-04 09:46:24 +02:00
Olivier Fourdan
298221bfba wayland: return child only in device_query_state()
On X11, device_query_state() uses XIQueryPointer() which will return a
child window only if the pointer is within an actual child of the given
window.

Wayland backend would return the pointer->focus window independently of
the given window, but that breaks the logic in get_device_state() and
later in gdk_window_get_device_position_double() because the window is
searched based on coordinates from another window without sibling
relationship, breaking gtkmenu sub-menus further down the line.

Fix the Wayland backend to mimic X11's XIQueryPointer() to return a
child only if really a child of the given window.

That's the most sensible thing to do to fix the issue, but the API here
seems to be modeled after the X11 implementation and the description of
gdk_window_get_device_position_double() is not entirely accurate.

https://bugzilla.gnome.org/show_bug.cgi?id=768016
2016-07-04 09:46:18 +02:00
Piotr Drąg
4c01ab8945 Updated POTFILES.skip 2016-07-04 00:41:24 +02:00
Matthias Clasen
507e58df4e gtk3-demo: Make blendmodes example non-resizable
It doesn't need to.
2016-07-03 18:29:21 -04:00
Matthias Clasen
3c4be3c912 Fix parsing of some css properties
Our property parser stops at the first match when looking for
enums, so we need to order our values so that we don't end up
with prefixes of longer names being found first.

I noticed this when the parser tried to interpret
background-blend-mode: color-burn; as "color, with junk at the end".

It also affects animation-direction, which is also fixed here.
2016-07-03 17:54:19 -04:00
Matthias Clasen
34986231f4 css parser: Improve an error message
Say what property we are dealing with when we complain about the
value.
2016-07-03 17:46:30 -04:00
Georges Basile Stavracas Neto
1d93cc2b0b demo: add a demo for blend modes
After introducing the CSS blend mode enum values and including
the background-blend-mode CSS property, it is very important to
actually provide an example of the new feature.

This patch adds a new demo to gtk3-demo which shows how the
background-blend-mode CSS property works.

https://bugzilla.gnome.org/show_bug.cgi?id=768305
2016-07-03 17:24:47 -04:00
Georges Basile Stavracas Neto
27fea1c4fc css: add documentation for background-blend-mode
After introducing the new CSS property, it is natural to
add some documentation explaining the behavior of it and
our support coverage.

https://bugzilla.gnome.org/show_bug.cgi?id=768305
2016-07-03 17:24:47 -04:00
Georges Basile Stavracas Neto
369db4a406 css: add background-blend-mode support
CSS supports blend modes, in which a series of layers are
merged together according to the given operation or set of
operations.

Support for blend modes landed on Cairo, which exposes all
the commons and also the exquisites blend modes available.
Adding support for blend modes, then, is just a matter of
using the available Cairo operations.

This patch adds the background-blend-mode CSS enum property,
and adapts the background rendering code to blend the backgrounds
using the available blend modes when they're set.

https://bugzilla.gnome.org/show_bug.cgi?id=768305
2016-07-03 17:24:47 -04:00
Matthias Clasen
c8a74a1f50 Simplify the xfce session manager support
We don't have to check name owners twice; reuse the information
we already have.
2016-07-03 17:22:14 -04:00
Eric Koegel
3c7cd7ac23 GtkApplication: Add support for the Xfce session manager
Xfce4-session-manager added support for managing dbus based clients.
This patch adds support for checking if Xfce session manager is
around after trying the gnome one.
https://bugzilla.gnome.org/show_bug.cgi?id=693203
2016-07-03 14:56:48 -04:00
Matthias Clasen
22b6df025e Fix example Makefiles
Put OBJS before LIBS on the commandline to make things
work better.

https://bugzilla.gnome.org/show_bug.cgi?id=768142
2016-07-03 13:54:11 -04:00
Matthias Clasen
a43fce058c print dialog: Apply initial capabilities
I was struggling to understand why calling
gtk_print_unix_dialog_set_manual_capabilities (...,0)
was not having the expected effect of hiding the preview
button. The initial capabilities were not applied at all.
2016-07-02 18:08:38 -04:00
Carlos Garnacho
0d30ad279f wayland: Separate selection buffers and other per-selection atom data
This has most notably impact in selection buffers, because those were
shared across all selection atoms. This turned out wrong on 2 situations:
- Because the selection atom was set at SelectionBuffer creation time, the
  GDK_SELECTION_NOTIFY events generated will have unexpected info if the
  buffer is attempted to be reused for another selection.
- Anytime different selections imply different stored content for the same
  target.

This is better separated into per-selection buffers, so it's not possible
to get collisions if a same target is used across different selections.

https://bugzilla.gnome.org/show_bug.cgi?id=768177
2016-06-30 14:10:26 +02:00
Carlos Garnacho
4b003a75aa wayland: Implement gdk_utf8_to_string_target
The sanitize_utf8() function has been copied from X11 so both
backends behave the same. This allows interaction with older clients
(mainly through Xwayland, and the STRING selection target) that
request non-utf8 text.

https://bugzilla.gnome.org/show_bug.cgi?id=768082
2016-06-30 14:10:26 +02:00
Chun-wei Fan
51444b7909 gtk/gtkstylecascade.c: Fix formatting
My previous patch on this file did not take into the account of the
formatting, sorry!
2016-06-30 18:00:47 +08:00
Ray Strode
386d17db6d headerbar: don't throw a warning if title widget is hidden
commit 0015ebc4a8 reworked
some of the titlebar size allocation code.  Those changes
inadvertently introduced a warning when the application sets
the headerbar title widget to be hidden.

This commit fixes that warning.

https://bugzilla.gnome.org/show_bug.cgi?id=768184
2016-06-29 09:27:33 -04:00
Ignacio Casal Quinteiro
b480d9c2ed configure: fix "AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS" 2016-06-29 15:16:54 +02:00
Ignacio Casal Quinteiro
46748b420a gdk: actually fix the previous commit
We do not want it on windows
2016-06-29 15:10:39 +02:00
Ignacio Casal Quinteiro
38fbe68e83 gdk: do not provide display command line argument on windows
There is no need to specify a display on windows.
2016-06-29 15:07:17 +02:00
Timm Bäder
92de947d5e GtkWindow: Check for GtkWidget-window-dragging in multipress gesture
This partly reverts 9f5b9c0e07, which
removed the check for GtkWidget-window-dragging in the multipress
gesture. This check is still needed for widgets which have this style
property set (e.g. menubars and toolbars) can maximize the window on
double click -- but those widgets which have it set to FALSE shouldn't
maximize the window.
2016-06-28 21:42:55 +02:00
Ondrej Holy
0c1cc9832f gtkfilesystem: Improve heuristics to detect remote filesystem
Use G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE to detect remote filesystems
instead of hardcoded list of filesystem types.

Bump required GLib version accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=767965
2016-06-28 10:55:06 +02:00
Timm Bäder
9f5b9c0e07 GtkWindow: Fix dragging on non-titlebar widgets 2016-06-27 19:23:12 +02:00
Timm Bäder
d52f6ff710 widget: Don't unnecessarily export function
_gtk_widget_get_translation_to_window is only used in gtkwidget.c
2016-06-27 14:43:53 +02:00
Chun-wei Fan
5f525839da gtk/gtkstylecascade.c: Declare variables at beginning of block 2016-06-27 11:58:42 +08:00
Chun-wei Fan
cd44f6d875 Fix build of commit f23e99b
Commit f23e99b made use of snprintf(), which is not universally available.
Fix this by using g_snprintf().
2016-06-27 11:53:30 +08:00
Andika Triwidada
325fc60931 Updated Indonesian translation 2016-06-26 22:25:51 +00:00
Andika Triwidada
0587f250c3 Updated Indonesian translation
(cherry picked from commit 23673851b7)
2016-06-26 22:21:34 +00:00
Yosef Or Boczko
4731be0942 Updated Hebrew translation 2016-06-26 16:15:06 +03:00
Lapo Calamandrei
ebccc8b23f Adwaita: color the selection of entries with error...
...or warning style class applied.
This particular style bit wasn't converted to the saner 3.20 way
so `entry:selected` used in place of `entry selection`.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=768025
2016-06-25 18:29:51 +02:00
Lapo Calamandrei
d74e4af1a2 Adwaita: restrict infobar styling to, well, infobars
we used to style infobars by using the .info, .question, .warning
and .error selectors directly, which used to be ok when we had just
styleclasses all over the place, now it needs to be more specific
or it interferes with everything with those styleclasses applied
like entries.
2016-06-25 18:17:59 +02:00
Andika Triwidada
b5920a22e6 Updated Indonesian translation 2016-06-25 07:57:53 +00:00
Andika Triwidada
21c94dea5e Updated Indonesian translation
(cherry picked from commit 3abb9ffa91)
2016-06-25 03:19:08 +00:00
Ray Strode
0015ebc4a8 headerbar: support expand property for children
The header bar currently ignores the expand property on its
children. This commit changes the code to honor that property.

It divvies up any free space and distributes it equally to packed
children (with any left over space given out a pixel at a time
on a first come, first serve basis).

This commit also adds support for the title widget to be made
expandable.

It accomplishes this by using up the padding the title widget
is centered with.

https://bugzilla.gnome.org/show_bug.cgi?id=724332
2016-06-24 20:58:41 -04:00
Ray Strode
847a43c431 headerbar: compute nominal size of sides up front
In order to support the expand property on children, we're
going to need to look at the size of the packed children
on each side of the title widget, up front, before allocating
them (to compute how much extra allocation each expanded child
gets).

This commit lays the groundwork for that analysis by splitting
the size calculation of each side of the header bar outside
of the loop that allocates each child of the header bar.

https://bugzilla.gnome.org/show_bug.cgi?id=724332
2016-06-24 20:24:43 -04:00
Ray Strode
eccfce50d6 headerbar: simplify some size allocation code
With a headerbar, the widget in the center may be a label, constructed
internally, or a custom widget, constructed externally.  The size
allocation code needs to handle either case the same way for the most
part.  There's more than one place in the code that checks which of
the two widgets to use and does some operation on the selected one.

This commit simplifies the code by checking up front which one is the
center (title) widget and storing that in a temporary variable,
This allows reducing duplicated logic later on in the function.

https://bugzilla.gnome.org/show_bug.cgi?id=724332
2016-06-24 20:20:22 -04:00
Ray Strode
e0bebba470 headerbar: simplify calculation in size allocation code
There's some extraneous MIN() calls that have predetermined answers.

This commit drops them and then simplifies a few redudant checks into
one MIN call.

https://bugzilla.gnome.org/show_bug.cgi?id=724332
2016-06-24 20:19:32 -04:00
Matthias Clasen
8430be75ed Fix an array overrun
When I introduced the new input source enum value for
track points, I forgot that there is a fixed-size array
with names for those in the inspector.
2016-06-23 15:47:47 -04:00
Ray Strode
78eccd0db9 headerbar: don't use GTK_PACK_* as indices into array
The size allocation code maintains an array of two elements,
to track the allocation of children packed into the two sides
of a header bar. Sometimes this array is indexed with 0 and 1,
and sometimes its indexed with GTK_PACK_START and GTK_PACK_END.
The latter happen to have the values 0 and 1, respectively, but
that's not really obvious.

For clarity, this commit changes the code to index those arrays
consistently, sticking to 0 and 1 across the board.
2016-06-23 14:32:33 -04:00
Ray Strode
01eda209e1 headerbar: don't allocate both label and custom title
It's only possible to have a label or a custom title, not both.
The size allocate code confusingly treats them as independent.

That is confusing, because, as the code is written, it makes it
look like the space for the custom title isn't getting accounted
for.

This commit else-ifies some parts of the size allocate code for
clarity.
2016-06-23 14:32:33 -04:00
Tiago Santos
3947ff44c9 Updated Portuguese translation 2016-06-22 13:12:03 +00:00
Emmanuele Bassi
40ee61a686 gtk: Keep Firefox working in the DrawingContext world
Firefox does a bunch of interesting things with GTK.

If the top-level GtkWindow does not have a "csd" style class associated,
Firefox will happily draw the contents of the container used to render
HTML and XUL directly on the top level's GdkWindow; on the other hand,
if a "csd" style class is found, the MozContainer will create a new
child window, and draw on it.

Then, Firefox will proceed to disable double buffering on both the
top-level window and the MozContainer (unless they are backed by the
same GdkWindow, in which case only the top-level will be
single-buffered) *and* it will add a GDK_EXPOSURE_MASK flag to the
MozContainer events for good measure (even if this is only needed for
GTK+ 2.x).

After landing the GdkDrawingContext API in GdkWindow, GTK enabled
automatic double buffering on all top-level windows backed by a native
surface, ad most users of single buffering rely on child widgets instead
of top-levels, and we'd still like to have the same double buffering
behaviour for all top-levels on all backends. Obviously, with Firefox
disabling double buffering on the top-level window, the change broke
their drawing mechanism.

Ideally, Firefox could be fixed to not disable double buffering on the
top-level window when MozContainer has a separate GdkWindow — i.e. the
CSD case — but since we did introduce a slight change of behaviour in
fringe users of the GTK+ API, let's keep backwards compatibility with
the old code for a little while longer, and create an intermediate Cairo
context unbound from the GdkDrawingContext, like we used to do until
GTK+ 3.20.
2016-06-22 11:41:59 +01:00
Chun-wei Fan
c2ba9ca810 Visual Studio builds: Make .pc generation more flexible
Allow the use of ${exec_prefix} for libdir and includedir when passing
them in as arguments to the script.
2016-06-22 15:22:58 +08:00
Carlos Garnacho
f44b9ef1f0 GtkColorEditor: Keep ref on pre-popup focus widget
And ensure it's still visible before returning the keyboard focus to it.
Because of the extra ref, add a dispose handler that will ensure the
ref is lost (by popping down), although this should be already ensured
through other paths (eg. when the popup widget loses visibility).

This fixes a possible crash in dispose paths, where we might be restoring
focus on an already destroyed widget, and at a time where, if the toplevel
is being itself disposed, no new focus should be set.

https://bugzilla.gnome.org/show_bug.cgi?id=767849
2016-06-21 17:56:34 +02:00
Carlos Garnacho
3b98a2d935 demos: Simplify popovers demo
Don't do much unconventional stuff here. This is a demo, not a test.

https://bugzilla.gnome.org/show_bug.cgi?id=767851
2016-06-21 17:56:21 +02:00
Carlos Garnacho
ed227f9e7b GtkPopover: Honor widget margins when calculating tail position
If there are widget margins set, the whole popover will be displaced.
However the calculation of the tail position doesn't have this into
account, ending up with the tail being detached from the popover if
the margin grew too big.

We should not render the arrows invariably next to the GdkWindow edge,
but optionally displaced inside it depending on the widget margins.
Fixes the gtk3-demo "Popovers" demo case, whose GtkEntry popovers set
widget margins for some reason.

https://bugzilla.gnome.org/show_bug.cgi?id=767851
2016-06-21 17:54:42 +02:00
Christian Hergert
3724592efb listbox: short-circuit if no sort function is set
do_sort will crash if sort_func is not defined. Instead of adding a check
there in the hot path, just check for sort_func before invalidating the
sort of the underlying GSequence.
2016-06-20 18:51:42 -07:00
Matthias Clasen
49bd5a97ce 3.21.3 2016-06-20 15:27:20 -04:00
Matthias Clasen
1ebfe1db56 Skip GdkDrawingContext in some tests
GdkDrawingContext is not freely constructible, so we need
to skip it in the notify and finalize tests.
2016-06-20 15:27:20 -04:00
Olivier Fourdan
0eeaa935b9 wayland: do not set PRIMARY selection if focus is lost
If keyboard focus is (already) lost, do not advertise PRIMARY selection.

https://bugzilla.gnome.org/show_bug.cgi?id=767848
2016-06-20 14:13:29 -04:00
Matthias Clasen
dff61b02ba Updates 2016-06-20 00:20:01 -04:00
Matthias Clasen
e01f35ef5f gtk3-demo: Make the filter model example more interesting
Allow editing values in the first treeview, to see the derived
models update in real time.
2016-06-19 23:54:07 -04:00
Matthias Clasen
8a2812217b shortcuts: Try harder to disambiguate search items
I noticed that some of the gestures did not show up in the
search results in the builder example in gtk3-demo, because
they share the same title and don't have an accelerator to
disambiguate. Include the shortcut type to handle this case.
2016-06-19 23:24:44 -04:00
Matthias Clasen
815cc23c4c gtk-demo: Use max-content-height in the popover example
This is what the property was invented for.
2016-06-19 23:07:17 -04:00
Matthias Clasen
c2534af15e gtk3-demo: Fix the modelbutton example
The color menu buttons didn't have the necessary target property
to be successfully activated.
2016-06-19 22:56:20 -04:00
Matthias Clasen
2fd984987d gtk-demo: Fix up some warnings
The search entry example was a bit sloppy in cleaning up its
sources, causing warnings.
2016-06-19 22:47:57 -04:00
Matthias Clasen
76af907676 Add a release note for scrolled windows
Mention the changed sizing behavior and how to address it.
2016-06-19 22:23:06 -04:00
Matthias Clasen
37e913d76b widget factory: Adapt to new scrolled window behavior
Set a max-content-width on some of the scrolled windows to
keep things looking mostly the same, now that GtkScrolledWindow
passes along the natural size of its child.
2016-06-19 22:16:11 -04:00
Carlos Garnacho
e33e23a6d9 treeview: Ensure the treeview has the implicit grab before grabbing focus
The cellrenderer signals might be taking the grab somewhere else, at which
point it's dubious we should attempt to take the keyboard focus into the
treeview.

This concretely breaks popovers triggered from cellrenderer signals on
button press, because the treeview will attempt to grab focus
inconditionally then.

https://bugzilla.gnome.org/show_bug.cgi?id=767468
2016-06-19 20:54:18 -04:00
Matthew Leeds
51799d41e4 GtkActionHelper: Change a message to a warning
It's almost certainly a programmer error if an action isn't
activatable because its target and parameter type don't match.
This commit changes the existing g_message to a g_warning.

https://bugzilla.gnome.org/show_bug.cgi?id=767705
2016-06-19 20:06:13 -04:00
Philip Chimento
76bacfde6e style cascade: Allow cascades with more ancestors
Previously a style cascade's parent could not have a parent itself. That
represented the two levels at which you could add a style provider: at
the screen level, with gtk_style_context_add_provider_for_screen(), and
at the style context level, with gtk_style_context_add_provider().

This commit changes no functionality, but this change will be necessary
for adding style providers in the future that apply to a subtree of the
widget tree. It relaxes the requirement that a style cascade's parent
must not have a parent, since in the future a style context may be
affected by any number of parent widgets' style contexts.

https://bugzilla.gnome.org/show_bug.cgi?id=751409
2016-06-19 19:47:05 -04:00
Matthias Clasen
1c6b878e09 shortcuts window: Fix handling of significant xml chars
We are using markup in the labels, so we need to escape things
like < and >.

https://bugzilla.gnome.org/show_bug.cgi?id=767795
2016-06-19 17:49:03 -04:00
Rafael Fontenelle
ed2bb7e012 Updated Brazilian Portuguese translation 2016-06-18 00:29:01 +00:00
Rafael Fontenelle
552e436128 Updated Brazilian Portuguese translation 2016-06-17 23:53:20 +00:00
Misty De Meo
631f6b5364 configure: fix detecting CUPS 2.x
https://bugzilla.gnome.org/show_bug.cgi?id=767766
2016-06-17 14:46:21 +02:00
Ray Strode
2f3cb31e55 wayland: fall back to shm_open if memfd unavailable
Debian stable currently ships with a 3.16 kernel, so
it doesn't have memfd available.

This commit adds shm_open fall back code for that case
(for now).

https://bugzilla.gnome.org/show_bug.cgi?id=766341
2016-06-16 12:02:51 -04:00
Ray Strode
bb2ca3b94d wayland: fix error handling for memfd_create
We currently use syscall() directly to invoke memfd_create,
since the function isn't available in libc headers yet.

The code, though, mishandles how errors are passed from syscall().
It assumes syscall returns the error code directly (but negative),
when in fact, syscall() uses errno.

Also, the code fails to retry on EINTR.

This commit moves the handling of memfd create to a helper function,
and changes the code to use errno and handle EINTR.

https://bugzilla.gnome.org/show_bug.cgi?id=766341
2016-06-16 12:00:24 -04:00
Krzesimir Nowak
080fdfa7f9 docs: Fix a typo in GDK sections file 2016-06-16 12:20:05 +02:00
Matthias Clasen
847f9f40cf Mention single-stop gradients in the release notes
This is something people stumble over in their custom CSS.
2016-06-15 19:11:41 -04:00
Daniel Mustieles
7246538a9c Updated Spanish translation 2016-06-13 13:17:11 +00:00
Emmanuele Bassi
0ca59bf85a gdk: Unset the DrawingContext <-> cairo_t link on dispose
When disposing a GdkDrawingContext we should unset the association
between the instance and the Cairo context; this avoids stale pointers
in case a reference that has acquired on the Cairo context survives the
lifetime of the GdkDrawingContext.
2016-06-12 18:55:34 +01:00
Emmanuele Bassi
222bcf1a71 gdk: Try harder at tracking drawing contexts
If gdk_cairo_create() is called within a frame draw operation, we can
still associate the Cairo context with a GdkDrawingContext.
2016-06-12 17:27:44 +01:00
GNOME Translation Robot
32a37351cf Updated Scottish Gaelic translation 2016-06-11 07:54:43 +00:00
GNOME Translation Robot
2118b838d1 Updated Scottish Gaelic translation 2016-06-10 15:35:34 +00:00
GNOME Translation Robot
beb3fd6621 Updated Scottish Gaelic translation 2016-06-10 15:15:27 +00:00
Emmanuele Bassi
c3f4fe334d Deprecate gtk_widget_send_expose()
We have various replacements for what this function does, and we are not
calling it internally any more.
2016-06-10 16:13:27 +01:00
Tristan Van Berkom
a9a59ac55e scrolledwindow: Fix calls to gdk_window_move_resize()
This is a bit of fallout from 34feba1, now that we resolve
the has_indicators value earlier than realize, it becomes
possible to call gdk_window_move_resize() before realization.

Just added the appropriate checks.
2016-06-10 21:16:53 +09:00
Stefan Sauer
32675db490 docs: point to suggested api for deprecated functions
We deprecated a bunch of _focus_on_click() functions. Point to the new API
in GtkWidget.
2016-06-09 22:44:44 +02:00
Emmanuele Bassi
c9916fbc58 docs: Add deprecation notice for GtkButton.set_focus_on_click()
To match the deprecation annotation on the function declaration.
2016-06-09 21:35:36 +01:00
Emmanuele Bassi
ddfe3374e3 Avoid a deprecation warning
Some debugging code in GdkWindow still calls gdk_cairo_create().
2016-06-09 21:00:13 +01:00
Emmanuele Bassi
ad78daaf80 gdk: Deprecate gdk_cairo_create()
We have GdkDrawingContext, now, which is in charge of creating Cairo
contexts for drawing on a GdkWindow.

https://bugzilla.gnome.org/show_bug.cgi?id=766675
2016-06-09 17:45:40 +01:00
Emmanuele Bassi
2d38c40f78 gdk: Explicitly create a cairo context inside GdkDrawingContext
Instead of using gdk_cairo_create(), which we'll soon deprecate.

https://bugzilla.gnome.org/show_bug.cgi?id=766675
2016-06-09 17:45:40 +01:00
Emmanuele Bassi
c5d0522a23 Deprecate the gdk_window_begin/end_paint family of functions
They are replaced by the more appropriate gdk_window_begin_draw_frame()
and gdk_window_end_draw_frame() functions.

https://bugzilla.gnome.org/show_bug.cgi?id=766675
2016-06-09 17:45:40 +01:00
Emmanuele Bassi
dda6a0d385 Associate the drawing context to the Cairo context
Instead of associating the GdkWindow that created the GdkDrawingContext
we can directly bind the Cairo context to the GDK drawing context.

Cairo contexts created via gdk_cairo_create() go back to not having a
GdkWindow associated to them, like they did before we introduced the
gdk_window_begin_draw_frame() API.

https://bugzilla.gnome.org/show_bug.cgi?id=766675
2016-06-09 17:45:40 +01:00
Emmanuele Bassi
01b4bf1920 docs: Add GdkDrawingContext to the GDK API reference
https://bugzilla.gnome.org/show_bug.cgi?id=766675
2016-06-09 17:45:40 +01:00
Emmanuele Bassi
a7ef37da2a Add GdkDrawingContext
Instead of giving out Cairo contexts, GdkWindow should provide a
"drawing context", which can then create Cairo contexts on demand; this
allows us to future proof the API for when we're going to use a
different rendering pipeline, like OpenGL.

https://bugzilla.gnome.org/show_bug.cgi?id=766675
2016-06-09 17:45:40 +01:00
Emmanuele Bassi
2c7b21718f Simplify the widget rendering entry point
Now that GDK has the appropriate API, we can simplify the widget drawing
code into a single function.

https://bugzilla.gnome.org/show_bug.cgi?id=766675
2016-06-09 17:45:40 +01:00
Emmanuele Bassi
fc569f1ac6 Add frame drawing API to GdkWindow
Existing code drawing on a GDK window has to handle the direct drawing
and the buffered drawing by itself, by checking the window type and
whether or not the window is backed by a native windowing surface. After
that, the calling code has to create a Cairo context from the window and
keep an association between the context and the window itself.

This is completely unnecessary: GDK can determine whether or not it
should use a backing store to draw on a GdkWindow as well as create a
Cairo context, and keep track of it.

This allows to simplify the calling code, and enforce some of the
drawing behavior we want to guarantee to users.

https://bugzilla.gnome.org/show_bug.cgi?id=766675
2016-06-09 17:45:40 +01:00
Tristan Van Berkom
d6187c9a02 scrolledwindow test: Check natural width for max content size
The maximum content size does not increase the minimum request
but only ensures that both minimum and natural requests do not
exceed the maximum setting.
2016-06-09 14:57:10 +09:00
Tristan Van Berkom
34feba1e7c scrolledwindow: Resolve whether we use overlay scrollbars early.
Widgets should support size requests before being realized in general,
otherwise this can cause flicker/resize at initial display time as
the toplevel window can make a request before realize/allocate.

This also makes the added testsuite/gtk/scrolledwindow.c test work again,
this was broken because we only ever calculate whether we are going
to use overlay scrollbars once the scrolled window is realized (and
the test case does not realize any window).
2016-06-09 14:57:10 +09:00
Tristan Van Berkom
d7e242eec0 scrolledwindow: Bug 766569 - General size request fixes.
This patch does a couple of things:

  o Removes the obscure 'extra_width' and 'extra_height' variables
    making the request code exceedingly difficult to read

  o Fixes the max-content-size properties introduced in bug 742281
    so that they do not grow the minimum request.

  o Cleanup of request code in general:
    - min/max content sizes are clamped around the child request as needed
    - scrollbar requests are only added in one place, after child request
      sizes are calculated and without the extra_width/height thing.
2016-06-09 14:57:10 +09:00
Emmanuele Bassi
32885605c7 Fix build
Commit 023f406c96 has a typo that results
in this error:

../../../testsuite/gtk/notify.c: In function 'test_type':
../../../testsuite/gtk/notify.c:679:54: error: expected expression
before ')' token
    (g_str_equal (pspec->name, "max-content-width") ||)
                                                      ^
2016-06-08 14:20:02 +01:00
Timm Bäder
d9a6517d5f wayland: Make sure window titles fit into a wl_buffer
A wl_buffer has a max size of 4096 bytes, of which 8 are needed for the
header and another 4 for the string argument length (in this case), so
make sure the we only save the first 4083 bytes that are still valid
UTF8.

https://bugzilla.gnome.org/show_bug.cgi?id=767241
2016-06-08 15:06:51 +02:00
Matthias Clasen
023f406c96 test: Skip GtkScrolledWindow::max-content- properties
The allowed values for the max-content- properties depend
on the value of the min-content- properties, in a way that
our simple test is not prepared to deal with. Just skip
them for now.
2016-06-08 09:04:33 -04:00
Olivier Fourdan
85407180cf wayland: add extended state for tiled
xdg-shell allows desktop environments to extend the list of states
within a given range.

Use this possibility to add a new state for tiled so that gtk+ can
benefit from this.

https://bugzilla.gnome.org/show_bug.cgi?id=766860
2016-06-08 14:46:37 +02:00
Jakub Steiner
6de0ecb78e HC: focus outline more prominent
- make visible regardless of colors used
- make larger and more inset

https://bugzilla.gnome.org/show_bug.cgi?id=767310
2016-06-08 08:38:19 -04:00
Lapo Calamandrei
199ad2c14b Adwaita: .osd button.color
remove box-shadow from colorbutton colorswatch when an ancestor has
the osd styleclass applied.
2016-06-08 13:39:39 +02:00
Lapo Calamandrei
a0ee8f7f0a Adwaita: centralize outline-color
define outline-color generally using alpha(currentColor, 0.3),
which avoids setting it in a bunch of different places.
2016-06-08 13:28:07 +02:00
Kjell Ahlstedt
ff5304ee13 Make gtk_scrolled_window_remove() smart
If gtk_scrolled_window_add() has added a GtkViewport,
  gtk_container_remove (GTK_CONTAINER (scrolled_window), child_widget);
or
  gtk_container_remove(GTK_CONTAINER(scrolled_window),
                       gtk_bin_get_child(GTK_BIN(scrolled_window)));
removes both the added child widget and the viewport.

https://bugzilla.gnome.org/show_bug.cgi?id=710471
2016-06-08 10:30:22 +02:00
Matthias Clasen
3f3a226090 Update GtkLabel::angle docs
We can have wrapped or ellipsized labels at an angle nowadays.
Still no selections though.
2016-06-07 23:40:32 -04:00
Matthias Clasen
f23e99b063 scale, spinbutton: Avoid -0.0
This is a very longstanding bug; time to finally put it to rest.

https://bugzilla.gnome.org/show_bug.cgi?id=118959
2016-06-07 23:04:40 -04:00
Matthias Clasen
7f06f2818a Ensure that GtkRange allocates enough space for the value
This is a long-standing problem of GtkScale.

https://bugzilla.gnome.org/show_bug.cgi?id=766372
https://bugzilla.gnome.org/show_bug.cgi?id=578626
https://bugzilla.gnome.org/show_bug.cgi?id=79229
2016-06-07 21:28:44 -04:00
Matthias Clasen
dce4003c20 Fix preconditions in set_max_content_size setters
We must allow resetting the properties to -1.
2016-06-07 16:37:09 -04:00
Benjamin Otte
775e277ab9 widget: Add classes to widget path even if no style context exists yet
This removes leftover code from when classes where added to the style
context.
Now that they get added directly to css nodes, the classes can exist
without a style context.

https://bugzilla.gnome.org/show_bug.cgi?id=767312
2016-06-07 16:12:18 +02:00
Carlos Garnacho
0d407bcd6c searchenginetracker: Fix prefix searches
With the FTS5 query syntax, when using quotes to delimit the search phrase
the '*' token must happen after the quote, or will otherwise be considered
a character to match, go through the tokenizer, and end up ignored in
result.
2016-06-07 00:56:38 +02:00
Matthias Clasen
289fc9640b Revert "scrolledwindow: Bug 766569 - Report child natural size unconditionally"
This reverts commit 0943c9f6b2.

The commit caused unexpected breakage in gtk3-widget-factory,
and also broke the just-added max-content-size properties.
2016-06-06 14:35:46 -04:00
Matthias Clasen
5892bd72fa widget-factory: Use max-content-size in a popover
This gives a nice example of these properties in action,
in the "Open" popover on page 3.
2016-06-06 14:35:46 -04:00
Tristan Van Berkom
03742e83fb scrolledwindow: Bug 767238 - Fixing up for max content sizes
Needed to adjust this again after applying commit 4e5ecb7
for bug 742281. Now that we also have max content size properties,
pushed the addition of possible scrollbar sizes to after the
clause which clamps the child request size into min/max content
sizes.
2016-06-06 12:04:58 +09:00
Phillip Wood
72ea348ad6 Fix hiding popover when focus moves outside
Commit a01fe14 changed the behaviour of popovers when the focus leaves
them to stop child popovers being hidden when the focus leaves their
parent. However they are now a bit too reluctant to hide - if the
focus passes to an unrelated popover the first popover is not
hidden. Also if the focus passes to another widget that does not
perform a gtk grab then the popover isn't hidden until the user
presses a non-movement key or clicks outside the popover.

The solution is to go back to checking if the focused widget is a
descendant of the popover, but to include popovers and their related
widgets in the ancestry chain.

https://bugzilla.gnome.org/show_bug.cgi?id=765595
2016-06-05 22:54:00 -04:00
Tristan Van Berkom
0943c9f6b2 scrolledwindow: Bug 766569 - Report child natural size unconditionally
This patch causes the scrolled window default behavior to change in
such a way that the natural size request of the child is unconditionally
reported, which probably should have been the case since day 1.

This should not cause significant fallout since a scrolled window is
normally used to expand/fill, eating up remaining space for scrollable
content - it will however cause the scrolled window to compete for
additional space with siblings, proportionally to the size of the
scrolled window's content.
2016-06-06 11:37:21 +09:00
Matthias Clasen
c4224bf9d0 treeview: fix an off-by-one error
gtk_tree_view_get_path_at_pos() mistakenly identifies the first
pixel of all but the first column in a tree view as belonging to
the previous column.

https://bugzilla.gnome.org/show_bug.cgi?id=708148
2016-06-05 22:20:38 -04:00
Christian Dywan
b97c490b87 object test: Also test object type properties
Old patch found in bugzilla, it still applies and doesn't
cause the test to fail.

https://bugzilla.gnome.org/show_bug.cgi?id=556254
2016-06-05 22:15:00 -04:00
Matthias Clasen
321ddb8697 Make gtk_tooltip_trigger_tooltip_query work again
This was broken ever since we started looking at the
source device of the event.

https://bugzilla.gnome.org/show_bug.cgi?id=674215
2016-06-05 21:47:16 -04:00
Matthias Clasen
57d00e004a inspector: Ellipsize accessible description.
This string can be long, and we don't want to break the ui
2016-06-05 20:56:52 -04:00
Matthias Clasen
c8cab6a79a viewport: Free gadgets in finalize
This is the right place for this.
2016-06-05 20:00:43 -04:00
Matthias Clasen
b4ebe4e5c1 scrolled window: Free gestures and gadgets in finalize
This is the right place for this.
2016-06-05 20:00:43 -04:00
Matthias Clasen
9a8335a135 range: Free gadgets in finalize
This is the right place for this.
2016-06-05 20:00:43 -04:00
Matthias Clasen
ca43f6ee28 notebook: Free gadgets in finalize
This is the right place for this.
2016-06-05 20:00:43 -04:00
Matthias Clasen
eff09fabfa menu: Free gadgets in finalize
This is the right place to do this.
2016-06-05 20:00:43 -04:00
Matthias Clasen
9c50b8bc2f button: Free gadgets and gestures in finalize
This is the right place to free them.
2016-06-05 20:00:43 -04:00
Georges Basile Stavracas Neto
3962b907bb testsuite: add tests for scrolledwindow
This patch adds a set of tests for scrolled window
sizing, covering both min- and max-content width and
height.

https://bugzilla.gnome.org/show_bug.cgi?id=742281
2016-06-05 11:04:41 -03:00
Georges Basile Stavracas Neto
657fcd0717 tests: adapt testscrolledwindow to have max content sizes
This patch adpats the current test to show a popover with
max-content-width and -height properties set.

https://bugzilla.gnome.org/show_bug.cgi?id=742281
2016-06-05 11:03:11 -03:00
Georges Basile Stavracas Neto
4e5ecb7052 scrolledwindow: add ::max-content-width and -height properties
The GtkScrolledWindow has support to set the minimum content size (both
width and height) which controls the minimum space allocated, but does
not exposes any way to control the maximum size the content can grow.

After the introduction of GtkPopover, which always uses the minimum
size of it's children widgets, the lack of max-content-width and -height
properties became a concrete use case.

This patch introduces the GtkScrolledWindow::max-content-width and
-height properties. The properties will alter the minimum size of
the scrolled window, making it grow up to the set value. They also
respect the previously set ::min-content-width and -height.

https://bugzilla.gnome.org/show_bug.cgi?id=742281
2016-06-05 11:02:59 -03:00
Руслан Ижбулатов
bd86715ed3 GDK W32: Fix dragging AeroSnap application
The original patch for commit b420c53773
was applied incorrectly, doing the actual snapping in the wrong place.
Move the code.
2016-06-05 09:00:40 +00:00
Matthias Clasen
b42d4b5b9a progressbar: Render text with the text css node
This is the same fix that was just applied to GtkScale.
2016-06-03 16:30:00 -04:00
Matthias Clasen
3f3c1768c9 scale: Also queue a resize if font changes
As Benjamin pointed out, what AFFECTS_FONT can also affect size,
but the implication is not automatic, so queue a resize manually.
2016-06-03 10:49:29 -04:00
Pavel Grunt
b18ebbb164 gdktypes: Update docs for GDK_GRAB_FAILED
Mention in documentation that it is available since 3.16

https://bugzilla.gnome.org/show_bug.cgi?id=767165
2016-06-03 00:44:45 -04:00
Matthias Clasen
fd9f7babf6 scale: Apply css style to text
Use the new functions we have to apply CSS styles to the
value and marks text from their respective subnodes.
2016-06-03 00:30:59 -04:00
Matthias Clasen
db50849d79 Add a function to get a font from a css style
Similar in spirit to
gtk_style_context_get (ctx, state, "font", ...)
but avoids the need for a style context.
This will be used to for css-styled text rendering
from css subnodes.
2016-06-03 00:30:29 -04:00
Matthias Clasen
7b0929ad38 Add a function to turn a css style into pango attributes
This is _gtk_style_context_get_pango_attributes, decoupled
from the GtkStyleContext. This will be used to drive css-styled
text rendering from css subnodes of widgets, e.g. for the value
in GtkScale.
2016-06-03 00:26:55 -04:00
Timm Bäder
a961b05200 widget: Avoid a deprecation warning 2016-06-02 21:52:11 +02:00
Matthias Clasen
de8af76897 Show a scroll cursor when appropriate
When doing two-finger scrolling or click scrolling using a
trackpoint, show the all-scroll cursor to indicate what is
going on.

https://bugzilla.gnome.org/show_bug.cgi?id=753202
2016-06-01 21:47:31 -04:00
Matthias Clasen
3d0f76801d wayland: Provide information about scroll devices
The Wayland protocol does not share XI2's wealth of information
about individual devices, but it does provide discriminating
information about the source for scroll events. Pass this on to
the application by creating separate slave devices for these,
and setting them as source device on the scroll events.

These devices can be discriminated by their input-source property:
wheel      - GDK_SOURCE_MOUSE
finger     - GDK_SOURCE_TOUCHPAD
continuous - GDK_SOURCE_TRACKPOINT

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

fix up
2016-06-01 14:51:33 -04:00
Matthias Clasen
5264209bf1 a11y tests: Update expected output
These changes were caused by the introduction of GtkStackAccessible.
2016-06-01 14:18:46 -04:00
Matthias Clasen
1dbbe7f251 button css node test: Update for switch style changes
We no longer add the redundant .slider style class in GtkSwitch.
Update expected results to reflect that.
2016-06-01 13:12:19 -04:00
Matthias Clasen
28b9e16272 css node tests: Update expected results
We were not propagating direction changes in some places,
evidently. Now we do.
2016-06-01 13:11:27 -04:00
Matthias Clasen
f3f64d17c2 popover menu: Improved labeled separators
Embed the label in the middle of the separators instead of
putting it above the separator.

https://bugzilla.gnome.org/show_bug.cgi?id=767108
2016-06-01 11:52:20 -04:00
Bastien Nocera
bb6cce4e6f Separators not correctly placed
What it should look like:
  Bold
----
/Size/
  x 0.5
  x 1.0

What it looks like:
  Bold
  /Size/
----
  x 0.5
  x 1.0

https://bugzilla.gnome.org/show_bug.cgi?id=767108
2016-06-01 10:03:19 -04:00
Matthias Clasen
743d18c0f8 scrolled window: Remove trackpoint heuristics
This is now done in GDK, so we can just use the input type here.

https://bugzilla.gnome.org/show_bug.cgi?id=767100
2016-06-01 09:31:18 -04:00
Matthias Clasen
660c8b8f9b x11: Mark trackpoints as GDK_SOURCE_TRACKPOINT
This uses the same heuristics that are currently used in
GtkScrolledWindow.

https://bugzilla.gnome.org/show_bug.cgi?id=767100
2016-06-01 09:31:18 -04:00
Matthias Clasen
a9f14846e4 gdk: Add GDK_SOURCE_TRACKPOINT
Having this as an input source type will let us do the heuristics
in the GDK backends.

https://bugzilla.gnome.org/show_bug.cgi?id=767100
2016-06-01 09:31:17 -04:00
Matthias Clasen
3ab7645ac1 Avoid a deprecation warning 2016-06-01 09:27:24 -04:00
Olivier Fourdan
7c397c621c headerbar: do not show buttons for modals/transients
GtkHeadeBar checks the window type hint to determine if the regular
buttons such as menu, maximize or iconify should be visible in the
header bar.

However, an application may very well use a "normal" toplevel window and
set it transient and modal afterwards. In such a case, the iconify
button would remain visible, and the user can hide the window, but being
a modal, the parent window would remain insensitive.

Check for the window type, modality and transient relationship to decide
whether or not the regular toplevel buttons should be visible in the
header bar.

https://bugzilla.gnome.org/show_bug.cgi?id=767052
2016-06-01 09:47:23 +02:00
Matthias Clasen
11e22aadda wayland: Better debug info for scroll axes
Print human readable names for axes and axis sources.
2016-05-31 22:18:08 -04:00
Matthias Clasen
dbe499bcfe docs: Add a release note about GtkSizeGroup::ignore-hidden 2016-05-31 16:34:22 -04:00
Matthias Clasen
430916973a GtkShortcutsSection: avoid deprecation warnings
We could just as well remove these calls here, since they
have no effect.
2016-05-31 16:34:22 -04:00
Matthias Clasen
d76c07836b Document GtkSizeGroup::ignore-hidden as broken
...and deprecate it, recommending GtkStack as an alternative.
2016-05-31 16:34:22 -04:00
Lapo Calamandrei
69f8b4bb77 Adwaita: ensure menuitem labels are not overridden
see https://bugzilla.gnome.org/show_bug.cgi?id=767058
2016-05-31 20:59:23 +02:00
Timm Bäder
4dbe7c99c2 entry: Fix undershoot position wrt entry icons
Draw them inside of the icons, which is where the text scrolls.
2016-05-31 09:41:08 +02:00
Matthias Clasen
14e33ab0f5 README: Refer to release notes online
We don't want to maintain this information in two places,
so just link to the online documentation here.
2016-05-30 20:24:13 -04:00
Matthias Clasen
3bed458723 docs: Fix a duplicate ID
This was causing navigation in the online docs to be confused.
2016-05-30 20:21:48 -04:00
Matthias Clasen
f168de3ada Add a warning for a broken situation
When we emit ::draw, the widget should not have alloc_needed set
anymore. If this happens, it indicates a broken situation. Add a
warning to help tracking down why this might occur.

See https://bugzilla.gnome.org/show_bug.cgi?id=765410
2016-05-30 16:19:29 -04:00
Matthias Clasen
d36f866b27 gtk3-demo: Fix some css warnings
Update the font: syntax to follow css.
2016-05-30 16:19:19 -04:00
Timm Bäder
9d5fe26420 build: add GtkStack accessible private header at the right place 2016-05-30 20:41:49 +02:00
Daniel Mustieles
1a9845c176 Updated Spanish translation 2016-05-30 19:16:21 +02:00
Timm Bäder
6301827dac range: Properly indent closing brace
Make sure it's obvious what if block it belongs to.
2016-05-30 19:15:49 +02:00
Timm Bäder
0b0d4765a0 Add GtkStackAccessible
Show only the currently visible child to a11y.
2016-05-30 19:12:52 +02:00
Timm Bäder
5029e11473 tests/scrolling-performance: Define MyTextView
The type is used in widget-factory.ui, so add a dummy definition here to
keep the test working.
2016-05-30 19:11:27 +02:00
Cédric Valmary
106bc95771 Updated Occitan translation 2016-05-30 16:59:28 +00:00
Cédric Valmary
73708b39ac Updated Occitan translation 2016-05-30 16:58:07 +00:00
Lapo Calamandrei
0c387b27ee Adwaita: explicitelly set label caret-color to currentColor
since it doesn't always inherit 'color' color as it should.
2016-05-30 14:20:33 +02:00
Lapo Calamandrei
f54e28177c Adwaita: make selection on infobars visible
see https://bugzilla.gnome.org/show_bug.cgi?id=745622
2016-05-30 13:56:23 +02:00
Theppitak Karoonboonyanan
77ef33b095 Updated Thai translation 2016-05-30 12:45:19 +07:00
Jordi Mas
e13f04a9fa Fixes to Catalan translation 2016-05-28 07:27:51 +02:00
Jordi Mas
1fcf9c8f6d Update Catalan translation 2016-05-28 07:21:39 +02:00
Lapo Calamandrei
d1d763ce58 Adwaita: remove textview border
see https://bugzilla.gnome.org/show_bug.cgi?id=764203
2016-05-27 11:38:20 +02:00
Theppitak Karoonboonyanan
a7e0695093 Updated Thai translation 2016-05-27 15:49:58 +07:00
Rico Tzschichholz
694ba1298e x11: Replace RROutput with XID as used in GdkX11Monitor
This avoids an unconditional use of XRandr symbol.
2016-05-27 09:32:14 +02:00
Thomas Lange
e7765daf64 placesview: Do not mark icon name as translatable
https://bugzilla.gnome.org/show_bug.cgi?id=766878
2016-05-26 22:05:41 -04:00
Matthias Clasen
abdd7137b3 3.21.2 2016-05-26 14:41:14 -04:00
Matthias Clasen
8fb0950398 Updates 2016-05-26 14:41:14 -04:00
Matthias Clasen
73a47181fa Teach gtk-builder-tool to leave GtkDialog::border-width alone
This is one of the properties that need to be explicitly set.
2016-05-26 14:41:14 -04:00
Tiago Santos
d08cc01b3c Updated Portuguese translation 2016-05-26 13:44:51 +00:00
Emmanuele Bassi
7fe6510800 Silence a compiler warning
Initialize the `nearest` variable.
2016-05-26 12:46:54 +01:00
Руслан Ижбулатов
fcd3321fa7 GtkFileChooser: don't override already opened folder
When filechooer is re-used (instead of being created and destroyed
every time it's needed), it might happen that the directory the
application wishes to initially show is the same directory that
was shown last time the filechooser was used. In that case, make sure
filechooser knows that it does not need to do its default "select $pwd
or $home" routine.

https://bugzilla.gnome.org/show_bug.cgi?id=766122
2016-05-26 11:44:13 +00:00
Matthias Clasen
0fa3c3b731 Mention CSS font property in the release notes 2016-05-25 19:31:09 -04:00
576 changed files with 77392 additions and 54621 deletions

View File

@@ -22,7 +22,6 @@ EXTRA_DIST += \
sanitize-la.sh \
po/README.translators \
po/po2tbl.sed.in \
build-aux/config.rpath \
make-pot
MAINTAINERCLEANFILES = \
@@ -104,13 +103,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
--enable-introspection \
--enable-installed-tests
GITIGNOREFILES = \
po-properties/Makefile.in.in \
po-properties/Makefile.in \
po-properties/Makefile \
po-properties/*.gmo \
po-properties/*.mo \
po-properties/POTFILES \
po-properties/stamp-it
GITIGNORE_TRANSLATION_DIRS = po-properties
GITIGNOREFILES = po-properties/gtk30-properties.pot
-include $(top_srcdir)/git.mk

355
NEWS
View File

@@ -1,3 +1,358 @@
Overview of Changes in GTK+ 3.22.0
==================================
* Reduce some noisy warnings
* Improve positioning and sizing of popups on Wayland
* Update Adwaita assets
* Bugs fixed:
602773 GdkEventKey.is_modifier is 0 for Shift, Ctrl, Alt keys
771117 gtk3 3.21.5 broke displaying drop-down lists, need to scrol...
771349 gdk_screen_get_monitor_scale_factor on X11 always returns 1...
771568 Holding down a modifier key results in 100% cpu usage
771561 Epiphany application mode on Wayland broken with WebKit...
* Translation updates:
Brazilian Portuguese
British English
Catalan
Danish
French
Galician
Greek
Kazakh
Persian
Slovak
Spanish
Swedish
Ukrainian
Overview of Changes in GTK+ 3.21.6
==================================
* GtkScrolledWindow sizing behavior has been changed back to the
previous behavior, with new API to change it
* Some GtkPopover size allocation problems have been fixed
* Wayland:
- We require xdg-shell version 6 now
* Bugs fixed:
764979 Connect to server is unusable after cancelling a password dialog
766569 Better size requisition for GTK_SCROLL_NATURAL children
767391 cross-fade() not cross-fading
769498 Scrollbars are broken
770278 modernize example applications
770508 Recent change in GtkTreeView::grab_focus_and_unset_draw_keyfocus()...
770614 GtkScale in HighContrast theme with value = 0: WARNING: allocates ...
770624 Fix typos
770703 Fix crash when using page-down on GtkListBox
770745 wayland: Warn when an application tries to map popup incorrectly
770849 GtkLabel with padding brokenness
770906 Wayland: Unmapping a toplevel from a menu/popup can lead to a prot...
771033 GtkStatusIcon cannot show activate menu in VirtualBox since 3.21.2
* Translation updates:
Brazilian Portuguese
British English
Czech
Danish
Finnish
French
Galician
German
Hebrew
Hungarian
Kazakh
Korean
Latvian
Lithuanian
Persian
Polish
Portuguese
Russian
Scottish Gaelic
Serbian
Slovak
Swedish
Overview of Changes in GTK+ 3.21.5
==================================
* Make GtkShortcutLabel public
* Add an API to obtain window IDs for sharing
* Add explicit API to show/hide popovers with animation
* Wayland:
- Switch to xdg-shell v6
- Use tablet pad protocol to support Wacom tablets fully
- Use the xdg_foreign protocol to export window handles
- Improve menu positioning
- Improve handling of tiled window state
* Add GtkPadController to bind GActions to tablet pad events
* Bugs fixed:
569581 Using the US-Intl keyboard layout causes unexpected character comb...
712760 Clang static analysis fixes
755947 wayland: gnome-terminal does not fill entire area when tiled
756579 GTK should let GDK position menus
762260 Check boxes and radio buttons animate when inside a popover that i...
764413 Wayland: not fullscreenable gtk+ apps can be fullscreened
768017 Wayland: menus opened from access keys (mnemonic menu items) hide ...
768081 Enable HiDPI support for GDK-Win32
768138 Update the GDK-Mir backend to fix a few problems
768722 Keyboard shortcuts for russian characters doesn't work
768902 Font too small when using gtk_widget_override_font()
768930 reftests: override GSETTINGS_SCHEMA_DIR when running tests
768999 Floating point exception (division by zero) when running under Xvfb
769003 Adwaita: GtkCalendar uses a confusing style for week of year
769004 ss test suite failures in 3.21.4
769047 GtkWidget <-> GtkStyleContext API not clear
769126 Can't type astral plane characters into a GtkEntry using the Windo...
769162 GtkTable: compute_expand buggy
769205 Expose GtkShortcutLabel as a public widget
769236 demos: Fix build failure
769287 GtkMenuToolButton:show-menu is emitted twice and breaks dynamic menus
769402 regression in menu positioning on wayland
769451 Build failure of 3.21 (master) in Debian Unstable since 7-26-2016
769485 Eliminate use of g_test_expect_message()
769568 Modification date display incorrectly wraps calendar days (and is ...
769601 Dead link in faq on gtk-question-index.html
769603 gtk+-3.20.8: underlink issue with ld.gold - build fails: ./.libs/l...
769706 Add show/hide API to GtkPopover
769937 wayland: Port backend to use xdg-shell unstable v6
770026 review comments for wip/wayland-tablet-v2
770166 Can GtkButtons of arbitrary size be circular? The style class only...
770236 gtkbindings: Add an example for gtk_binding_entry_add_signal()
770242 gtkbindings: Clarify that widgets need has-focus for bindings to work
770332 Notebook arrow icon wrong color after creating new tab
770374 Gtk Treeview Editable overshoots column width when column width is...
769788 Fix stacking order of flatpak portals on Wayland
770458 GtkAboutDialog issue with long credit lists and GtkScrolledWindow
770550 gtkplacessidebar: fix signal marshal
770307 Crash when closing a glade project
* Translation updates:
Brazilian Portuguese
Catalan
Czech
French
German
Hebrew
Indonesian
Lithuanian
Polish
Portuguese
Serbian
Slovak
Slovenian
Spanish
Overview of Changes in GTK+ 3.21.4
==================================
* GtkHeaderBar supports expanding children
* GtkPrintDialog respects initially set capabilities
* GtkApplication supports registering with the Xfce session manager
* Keep firefox working after the introduction of GdkDrawingContext
* css:
- Support for background-blend-mode has been added
* Wayland:
- Fix some interoperability issues in clipboard handling
* Sandboxing
- GtkFileChooserNative gained portal support
- GtkPrintOperation gained portal support
- gtk_show_uri gained portal support
- GtkApplication gained portal support for inhibiting
* New APIs:
- gtk_show_uri_on_window
- gtk_file_filter_to/from_gvariant
- gtk_file_chooser_add/remove/set/get_choice
- gtk_print_settings_to/from_gvariant
- gtk_paper_size_to/from_gvariant
- gtk_page_setup_to/from_gvariant
* Bugs fixed:
693203 GtkApplication does not support Xfce session manager
724332 GtkHeaderBar need to support an expand property
767849 crash in focus handling
767851 Adwaita: popover arrows broken in some orientations
767965 Improve heuristics to detect remote filesystem
768016 [Wayland] Submenus often get closed after ~2 seconds
768025 entry.warning & entry.error broken
768082 wayland: copying from Wayland to NEdit (Xwayland/Motif) doesn't work
768142 Incorrect order of $(LIBS) and $(OBJS) in Makefile.example caused...
768184 headerbar: don't throw a warning if title widget is hidden
768485 Change the priority of the window-close idle to G_PRIORITY_DEFAULT
768499 portal support for gtk+
768546 Wrong documentation for the "move-viewport" signal of GtkTextView
768657 places-view: fix open action for locations without mount or volume
768659 gtk/gtkfilechoosernativeportal.c: Don't use g_autoptr()
768756 GtkFileChooserNativePortal uses incorrect response id
* Translation updates:
Chinese (Taiwan)
Hebrew
Indonesian
Portuguese
Overview of Changes in GTK+ 3.21.3
==================================
* GtkStack now has its own accessible implementation which only
shows the currently visible child
* The GtkSizeGroup::ignore-hidden property has been documented as
not working.
* GDK_SOURCE_TRACKPOINT has been added to the GdkInputSource enumeration
to allow special-casing this kind of input device
* Wayland:
- Use separate devices to differentiate between various sources of
scroll events
- Fall back to using shm_open if memfds are unavailable
* Styling of text in GtkScale and GtkProgressBar can now be influenced
by the proper CSS nodes
* GtkScrolledWindow has new max-content-width/height properties to
control its size
* GtkFileChooser search has been fixed to work with trackers FTS5 syntax
* Bugs fixed:
79229 GtkScale with a big number of digits and value pos set to...
118959 GtkScale value '-0'
556254 Test properties of type GObject in the 'object' test
578626 Vertical Scale Widget sometimes not allocating enough room...
674215 [patch] regression with updating tooltips
708148 gtk_tree_view_get_path_at_pos mistakenly identifies column...
710471 Make gtk_scrolled_window_remove() smart
742281 GtkScrolledWindow should have max-content-height and max-c...
745622 Selected text not highlighted in GtkInfoBar
751409 gtk_style_context_add_provider() does not propagate to chi...
753202 change cursor for click scrolling
764203 Default background color for the 'textview border' node
765410 Scrollbar does not update since 3.20
765595 Modal popover does not close when focus leaves it
766341 Do not rely on memfd as it requires a fairly recent kernel
766372 Scale omits value in various size calculations, causing in...
766569 Better size requisition for GTK_SCROLL_NATURAL children
766675 Add appropriate frame drawing API to GdkWindow
766860 tiled (snapped, half-maximized) windows in Wayland aren't ...
766878 placesview: Do not mark icon name as translatable
767052 Wayland: Iconifying a modal dialog makes the app unusable
767058 GtkInfoBar: right-click/context menu all white
767093 wayland: Provide information about scroll devices
767100 Add an input source type for trackpoints
767108 Separators not correctly placed in GtkPopover
767238 Fix long standing regression in min-content-width/min-conte...
767241 wayland: Long window titles crash clients
767310 High-contrast theme doesn't show focus rectangle in default...
767312 gtk_widget_path_append_for_widget() misses classes unless g...
767468 Popover over a treeview cellrenderer is hidden immediately ...
767705 GtkActionHelper: Change a message to a warning
767766 CUPS 2.X detected incorrectly by configure
767795 Warning when the "accelerator" property of GtkShortcutsShor...
Translation updates:
Thai
Catalan
Occitan
Spanish
Scottish Gaelic
Brazilian Portuguese
Overview of Changes in GTK+ 3.21.2
==================================
* GTK+ is now using upstream gettext instead of the GLib wrappers.
This adds a requirement for the fairly recent gettext 0.19.7 release
* GDK has a new GdkMonitor api that offers richer information about
connected outputs
* Bugs fixed:
373745 Do not use AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR) and use gettext...
682080 Gtk:ERROR:gtktoolbar.c:2271:logical_to_physical: assertion failed:...
747206 gtktextview: note on how to get line spacing between two paragraphs
756570 gtkplacesview no longer provides guidance on address formats
759037 GtkInfoBar: documentation not updated wrt background colors and me...
763852 gdk/wayland: event source is not multi-thread aware
764395 nautilus crashed on double clicking 'other locations'
765471 CellRendererText shows edit entry in a wrong position for small cells
765579 wayland: cache frequently accessed GtkSettings in wayland screen
765676 gtk_paned_set_position doesn't work as advertised
765700 GtkPaned use causes "How does the code know the size to allocate?"
765742 GtkRedioButton and GtkCheckButton doesn't aligned right to left la...
765790 W32: configure does not tell which cairo version to use
765793 configure script failure (cairo_win32_surface_create_with_format i...
765858 file chooser generates a warning about a network path
765907 [Wayland] Reversed scrolling GDK_SCROLL_UP/GDK_SCROLL_DOWN in Wayl...
765922 GtkScale labels extend past edge of widget and overlap neighboring...
765924 Improve external drives detection
765939 [Wayland] very slow scrolling in GtkMenu using the touchpad
765966 settings: fix initial value for gtk-font-name
765973 GtkRevealer need to always send "child-revealed" signal at end of ...
765981 fts warning from tracker when searching for files with "-" in name
766049 wayland: use g_signal_handler_disconnect()
766120 Scale draw_value() align changed from centre/right (H/V) to left, ...
766166 key bindings in gtk.css are ignored
766175 Translation of quotes may misinterpreted by GTK sidebar
766207 Fix build on pre-C99 compilers
766233 Crash when server does not support XI2
766314 Spurious leave-notify event after touch up
766323 GTKPopover gives warnings if visible when reparented
766336 Crash when selecting rows with rubberbanding
766405 Stack shows incorrect frame in widget factory on wayland
766440 Scale slider button has stopped discerning & rendering appropriate...
766442 Broken drag & drop between windows
766458 widget: fix GtkLabelAccessible NULL links.
766530 scrolledwindow: Fix typo in get_preferred_height calculation
766566 Wayland: gdk_screen_get_monitor_at_window() unreliable under Wayland
766569 Better size requisition for GTK_SCROLL_NATURAL children
766642 Switches in HeaderBars Are Badly Integrated
766643 Frozen windows when unmapped with pending configure event
766737 stack: Only map children when necessary
766782 OpenGL in broadway leads to segmentation fault
767848 crash in the window test
* Translation updates:
Arabic
Brazilian Portuguese
German
Hungarian
Kazakh
Lithuanian
Norwegian bokmål
Occitan
Portuguese
Scottish Gaelic
Slovak
Spanish
Swedish
Overview of Changes in GTK+ 3.21.1
==================================

291
README.in
View File

@@ -73,291 +73,10 @@ Patches should be in unified diff form. (The -up option to GNU diff)
Even better are git-formatted patches. (Use git format-patch)
Release notes for 3.20
======================
Release notes
=============
* The way theming works in GTK+ has been reworked fundamentally, to
implement many more CSS features and make themes more expressive.
As a result, custom CSS that is shipped with applications and third-
party themes will need adjustments. Widgets now use element names much
more than style classes; type names are no longer used in style matching.
Every widget now documents the element names it has and the style classes
it uses. The GTK+ inspector can also help with finding this information.
Release notes for releases of GTK+ 3.x are part of the migration
guide in the GTK+ documentation. See
* GTK+ now uses internal subobjects (also known as gadgets) for allocating
and drawing widget parts. Applications that subclass GTK+ widgets may see
warnings if they override the size_allocate vfunc and don't chain up.
The proper way to subclass is to chain up in size_allocate. If you do not
want to do that for some reason, you have to override the draw vfunc as
well.
* Several fixes for window sizing and window placement with client-side
decorations may affect applications that are saving and restoring window
sizes. The recommended best practice for this which is known to work with
client-side and server-side decorations and with older and newer versions
of GTK+ is to use gtk_window_get_size() to save window sizes and
gtk_window_set_default_size() to restore it.
See https://wiki.gnome.org/HowDoI/SaveWindowState for a detailed example.
* Geometry handling in GtkWindow has been removed. If you are using the
functions gtk_window_resize_to_geometry, gtk_window_set_default_geometry,
gtk_window_parse_geometry or gtk_window_set_geometry_hints, you may need
to make some changes to your code.
* GtkDrawingArea used to implicitly render the theme background before
calling the ::draw handler. This is no longer the case. If you rely
on having a theme-provided background, call gtk_render_background()
from your ::draw handler.
* The GtkFileChooser interface prerequisite changed from GtkWidget
to GObject, allowing non-widget implementations of this interface.
This is a minor change in ABI, as applications are no longer guaranteed
that a GtkFileChooser also supports all GtkWidget methods. However, all
previously existing implementations still derive from GtkWidget, so no
existing code should break.
* The way in which GtkLevelBar determines the offset to apply was a bit
inconsistent in the past; this has been fixed. Applications that are using
custom offsets should double-check that their levels look as expected.
Release notes for 3.18
======================
* The GtkListBox model support that was introduced in 3.16 has been
changed to no longer call gtk_widget_show_all on rows created by
the create_widget_func. You need to manage the visibility of child
widgets yourself in your create_widget_func.
* The alpha component of foreground colors that are applied to
GtkCellRendererText is no longer ignored. If you don't want your
text to be translucent, use opaque colors.
Release notes for 3.16
======================
* GTK+ now includes an OpenGL rendering widget. To support GL on various
platforms, GTK+ uses libepoxy.
* GTK+ no longer uses gtk-update-icon-cache during its build. The
--enable-gtk2-dependency configure option has been removed.
* The introspection annotations for the x and y parameters of
GtkMenuPositionFunc have been corrected from 'out' to 'inout'.
If you are using such a function from language-bindings, this
may require adjustments.
* The lookup order for actions that are activated via keyboard
accelerators has been changed to start at the currently focused
widget. If your application is making use fo nested action groups
via gtk_widget_insert_action_group, you may want to check that
this change does not upset your accelerators.
* The GtkScrollable interface has gained a new vfunc, get_border,
that is used to position overshoot and undershoot indications that
are drawn over the content by GtkScrolledWindow. Unless your scrollable
has non-scrolling parts similar to treeview headers, there is no need
to implement this vfunc.
* The GtkSearchEntry widget has gained a number of new signals that
are emitted when certain key sequences are seen. In particular, it
now handles the Escape key and emits ::stop-search. Applications that
expect to handle Escape themselves will need to be updated.
Release notes for 3.14
======================
* A new state, GTK_STATE_FLAG_CHECKED, has been added for checked states
of radio and check buttons and menuitems. Applications that are using
GTK+ styles without widgets will need adjustments.
* Adwaita is now the default theme on all platforms.
* The icon theme code has become a little pickier about sizes and is not
automatically scaling icons beyond the limits defined in the icon theme
unless explicitly asked to do so with GTK_ICON_LOOKUP_FORCE_SIZE.
* GTK+ now includes an interactive debugger which can be activated with
the keyboard shortcuts Ctrl-Shift-d or Ctrl-Shift-i. If these shortcuts
interfere with application keybindings, they can be disabled with the
setting org.gtk.Settings.Debug.enable-inspector-keybinding.
* Most widgets have been ported to use the new gesture framework internally
for event handling. Traditional event handlers in derived widgets are still
being called.
* Using GTK+ under X11 without the X Render extension has been observed
to be problematic. This combination is using code paths in cairo and
graphics drivers which are rarely tested and likely buggy.
* GtkTextView is now using a pixel-cache internally, and is drawing
a background underneath the text. This can cause problems for applications
which assumed that they could draw things below and above the text
by chaining up in the ::draw implementation of their GtkTextView subclass.
As a short-term workaround, you can make the application apply a
custom theme to the text view with a transparent background. For
a proper fix, use the new ::draw_layer vfunc.
Release notes for 3.12
======================
* GtkWidget had a hack where if opacity is 0.999 we set up an opacity
group when rendering the widget. This is no longer needed in 3.10,
and GtkStack doesn't use it anymore. It has been removed in 3.12.
GdStack is using it, so applications should be ported from GdStack
to GtkStack in 3.12.
* GtkHeaderBar in 3.10 was not ordering its pack-end children in
the right way. This has been fixed in 3.12. Applications which
pack multiple widgets at the end of a headerbar will have to
be updated.
* gtk_text_view_add_child_in_window has changed behaviour a bit.
It now always positions the child in buffer coordinates, where
it used to inconsistently scroll with the buffer but then go
reposition to a window-relative position on redraw.
* A number of container widgets have been made more compliant with
the uniform CSS rendering model by making them render backgrounds
and borders. This may require some adjustments in applications that
were making assumptions about containers never rendering backgrounds.
Release notes for 3.10
======================
* GDK has been changed to allow only a single screen per display.
Only the X11 backend had multiple screens before, and multi-screen
setups (not multi-monitor!) are very rare nowadays. If you really
need multiple X screens, open them as separate displays.
* The behavior of GtkBox::expand has been changed to never propagate
up. Previously, this was happening inconsistently. If you want the
expand to propagate, use the GtkWidget h/v expand properties.
If you experience sizing problems with widgets in ported code,
carefully check the expand and fill flags of your boxes.
* GtkBin no longer provides default implementations for
get_height_for_width, subclasses now have to provide their own
implementation if they need height-for-width functionality.
* Widget state propagation has been changed. Historically, all of
active, prelight, selected, insensitive, inconsistent and backdrop
have been propagated to children. This has now been restricted
to just the insensitive and backdrop states. This mostly affects
theming.
* The way widget drawing happens has changed. Earlier versions handled
one expose event per GdkWindow, each with a separate cairo_t. Now we
only handle the expose event on the toplevel and reuse the same
cairo_t (with the right translation and clipping) for the entire
widget hierarchy, recursing down via the GtkWidget::draw signal.
Having all rendering in the same call tree allows effects like
opacity and offscreen rendering of entire widget sub-hierarchies.
Generally this should not require any changes in widgets, but
code looking at e.g. the current expose event may see different
behavior than before.
* The Gtk+ scrolling implementation has changed. gdk_window_scroll()
and gdk_window_move_region() no longer copy the region on the
window, but rather invalidate the entire scrolled region. This is
slightly slower, but allowed us to implement a offscreen surface
scrolling method which better fits modern hardware. Most scrolling
widgets in Gtk+ have been converted to use this model for scrolling,
but external widgets implementing scrolling using GdkWindow may see
some slowdown.
Release notes for 3.8
=====================
* GtkIconInfo has changed from being a boxed type to a GObject. This
is technically an ABI change, but basically all existing code
will keep working if its used as a boxed type, and its not
possible to instantiate GtkIconInfos outside Gtk, so this is not
expected to be a big problem.
Release notes for 3.6
=====================
* The accessibility bridge code that exports accessible objects
on the bus is now used by default; atk-bridge has been converted
into a library that GTK+ links against. To void the linking,
pass --without-atk-bridge when configuring GTK+.
* GDK threading support has been deprecated. It is recommended to
use g_idle_add(), g_main_context_invoke() and similar funtions
to make all GTK+ calls from the main thread.
* GTK+ now follows the XDG Base Directory specification for
user configuration and data files. In detail,
* $XDG_CONFIG_HOME/gtk-3.0/custom-papers is the new location
for $HOME/.gtk-custom-papers
* $XDG_CONFIG_HOME/gtk-3.0/bookmarks is the new location
for $HOME/.gtk-bookmarks
* $XDG_DATA_HOME/themes is preferred over $HOME/.themes
* $XDG_DATA_HOME/icons is preferred over $HOME/.icons.
Existing files from the old location will still be read
if the new location does not exist.
* $HOME/.gtk-3.0 is no longer in the default module load path.
If you want to load modules from there, add it to the GTK_PATH
environment variable.
Release notes for 3.4
=====================
* Scroll events have been separated from button events, and smooth
scrolling has been added with a separate event mask. Widgets now
need to have either GDK_SCROLL_MASK or GDK_SMOOTH_SCROLL_MASK in
their event mask to receive scroll events. In addition, the
GdkScrollDirection enumeration has gained a new member,
GDK_SCROLL_SMOOTH, so switch statements will have to be amended
to cover this case.
* GTK+ now uses <Primary> instead of <Control> in keyboard accelerators,
for improved cross-platform handling. This should not affect
applications, unless they parse or create these accelerator
manually.
* The tacit assumption that the Alt key corresponds to the MOD1
modifier under X11 is now a hard requirement.
* The beagle search backend for the file chooser has been dropped.
Tracker is the only supported search backend on Linux now.
* GtkNotebook has been changed to destroy its action widgets when
it gets destroyed itself. If your application is using action
widgets in notebooks, you may have to adjust your code to take
this into account.
* GtkApplication no longer uses the gtk mainloop wrappers, so
it is no longer possible to use gtk_main_quit() to stop it.
* The -uninstalled variants of the pkg-config files have been dropped.
* Excessive dependencies have been culled from Requires: lines
in .pc files. Dependent modules may have to declare dependencies
that there were getting 'for free' in the past.
Release notes for 3.2
=====================
* The accessible implementations for GTK+ widgets have been integrated
into libgtk itself, and the gail module does not exist anymore. This
change should not affect applications very much.
Release notes for 3.0
=====================
* GTK+ 3 is a major new version of GTK+, which is parallel installable
with GTK+ 2.x. For information about porting applications from GTK+ 2.x
to GTK+ 3, see the file:
docs/reference/gtk/html/migrating.html
Or online at:
http://library.gnome.org/devel/gtk/3.0/migrating.html
* Note that the library sonames in this release have been changed from
libgtk-3.0 and libgdk-3.0 to libgtk-3 and libgdk-3, to prevent the
library versions from going backwards, compared to the 2.90/91/99
releases. Applications will have to be recompiled.
https://developer.gnome.org/gtk3/unstable/gtk-migrating-2-to-3.html

View File

@@ -50,15 +50,27 @@ class BasePCItems:
if not os.path.exists(args.prefix):
raise SystemExit('Specified prefix \'%s\' is invalid' % args.prefix)
# use absolute paths for prefix
self.prefix = os.path.abspath(args.prefix).replace('\\','/')
# check and setup the exec_prefix
if getattr(args, 'exec_prefix', None) is None:
input_exec_prefix = args.prefix
exec_prefix_use_shorthand = True
self.exec_prefix = '${prefix}'
else:
input_exec_prefix = args.exec_prefix
if not os.path.exists(input_exec_prefix):
raise SystemExit('Specified exec-prefix \'%s\' is invalid' %
input_exec_prefix)
if args.exec_prefix.startswith('${prefix}'):
exec_prefix_use_shorthand = True
input_exec_prefix = args.prefix + args.exec_prefix[len('${prefix}'):]
else:
exec_prefix_use_shorthand = False
input_exec_prefix = args.exec_prefix
if not os.path.exists(input_exec_prefix):
raise SystemExit('Specified exec_prefix \'%s\' is invalid' %
args.exec_prefix)
if exec_prefix_use_shorthand is True:
self.exec_prefix = args.exec_prefix.replace('\\','/')
else:
self.exec_prefix = os.path.abspath(input_exec_prefix).replace('\\','/')
# check and setup the includedir
if getattr(args, 'includedir', None) is None:
@@ -68,8 +80,12 @@ class BasePCItems:
includedir_use_shorthand = True
input_includedir = args.prefix + args.includedir[len('${prefix}'):]
else:
includedir_use_shorthand = False
input_includedir = args.includedir
if args.includedir.startswith('${exec_prefix}'):
includedir_use_shorthand = True
input_includedir = input_exec_prefix + args.includedir[len('${exec_prefix}'):]
else:
includedir_use_shorthand = False
input_includedir = args.includedir
if not os.path.exists(input_includedir):
raise SystemExit('Specified includedir \'%s\' is invalid' %
args.includedir)
@@ -86,8 +102,12 @@ class BasePCItems:
libdir_use_shorthand = True
input_libdir = args.prefix + args.libdir[len('${prefix}'):]
else:
libdir_use_shorthand = False
input_libdir = args.libdir
if args.libdir.startswith('${exec_prefix}'):
libdir_use_shorthand = True
input_libdir = input_exec_prefix + args.libdir[len('${exec_prefix}'):]
else:
libdir_use_shorthand = False
input_libdir = args.libdir
if not os.path.exists(input_libdir):
raise SystemExit('Specified libdir \'%s\' is invalid' %
args.libdir)
@@ -96,10 +116,6 @@ class BasePCItems:
else:
self.libdir = os.path.abspath(input_libdir).replace('\\','/')
# use absolute paths for prefix and exec_prefix
self.prefix = os.path.abspath(args.prefix).replace('\\','/')
self.exec_prefix = os.path.abspath(input_exec_prefix).replace('\\','/')
# setup dictionary for replacing items in *.pc.in
self.base_replace_items.update({'@VERSION@': self.version})
self.base_replace_items.update({'@prefix@': self.prefix})

View File

@@ -9,9 +9,9 @@
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
m4_define([gtk_major_version], [3])
m4_define([gtk_minor_version], [21])
m4_define([gtk_micro_version], [1])
m4_define([gtk_interface_age], [1])
m4_define([gtk_minor_version], [22])
m4_define([gtk_micro_version], [0])
m4_define([gtk_interface_age], [0])
m4_define([gtk_binary_age],
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
m4_define([gtk_version],
@@ -43,7 +43,7 @@ m4_define([gtk_binary_version], [3.0.0])
# required versions of other packages
m4_define([glib_required_major], [2])
m4_define([glib_required_minor], [49])
m4_define([glib_required_micro], [1])
m4_define([glib_required_micro], [4])
m4_define([glib_required_version],
[glib_required_major.glib_required_minor.glib_required_micro])
m4_define([glib_min_required_minor],
@@ -60,8 +60,8 @@ m4_define([cairo_required_version], [1.14.0])
m4_define([gdk_pixbuf_required_version], [2.30.0])
m4_define([introspection_required_version], [1.39.0])
m4_define([wayland_required_version], [1.9.91])
m4_define([wayland_protocols_required_version], [1.3])
m4_define([mirclient_required_version], [0.11.0])
m4_define([wayland_protocols_required_version], [1.7])
m4_define([mirclient_required_version], [0.22.0])
m4_define([mircookie_required_version], [0.17.0])
m4_define([epoxy_required_version], [1.0])
GLIB_REQUIRED_VERSION=glib_required_version
@@ -161,6 +161,9 @@ AC_PROG_MKDIR_P
AC_PROG_INSTALL
AC_PROG_MAKE_SET
# Define _GNU_SOURCE etc. where appropriate, e.g. for strptime() on glibc
AC_USE_SYSTEM_EXTENSIONS
# i18n stuff
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.19.7])
@@ -208,9 +211,6 @@ case $host in
;;
esac
# Define _GNU_SOURCE etc. where appropriate, e.g. for strptime() on glibc
AC_USE_SYSTEM_EXTENSIONS
dnl
dnl Check for a working C++ compiler, but do not bail out, if none is found.
dnl We use this for an automated test for C++ header correctness.
@@ -810,6 +810,9 @@ LIBS="$LIBS $GLIB_LIBS"
AC_CHECK_FUNCS(bind_textdomain_codeset)
LIBS=$gtk_save_LIBS
AC_CHECK_HEADERS(linux/memfd.h,
AC_DEFINE(HAVE_LINUX_MEMFD_H, 1,
[Define to 1 if memfd.h is available]))
AC_CHECK_HEADERS(sys/mman.h,
AC_DEFINE(HAVE_SYS_MMAN_H, 1,
[Define to 1 if mman.h is available]))
@@ -1488,7 +1491,7 @@ else
CUPS_API_MAJOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $1}'`
CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $2}'`
if test $CUPS_API_MAJOR -gt 1 -o \
if test $CUPS_API_MAJOR -lt 1 -o \
$CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -lt 2; then
AC_MSG_ERROR([CUPS >= 1.2 not found])
fi

View File

@@ -14,6 +14,7 @@ demos_base = \
combobox.c \
css_accordion.c \
css_basics.c \
css_blendmodes.c \
css_multiplebgs.c \
css_pixbufs.c \
css_shadows.c \

View File

@@ -0,0 +1,392 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow" id="window">
<property name="can_focus">False</property>
<property name="resizable">False</property>
<property name="title">CSS Blend Modes</property>
<property name="default_width">400</property>
<property name="default_height">300</property>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">12</property>
<property name="row_spacing">12</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Blend mode:</property>
<property name="xalign">0</property>
<style>
<class name="dim-label"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="vexpand">True</property>
<property name="shadow_type">in</property>
<property name="min_content_width">150</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkStackSwitcher">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="hexpand">True</property>
<property name="stack">stack</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkStack" id="stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="hhomogeneous">False</property>
<property name="vhomogeneous">False</property>
<property name="transition_type">crossfade</property>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="hexpand">False</property>
<property name="vexpand">True</property>
<property name="row_spacing">12</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Duck</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Background</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="duck"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="gradient"/>
</style>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">
Blended picture</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<style>
<class name="blend0"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
<property name="width">2</property>
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">Ducky</property>
</packing>
</child>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="hexpand">False</property>
<property name="vexpand">True</property>
<property name="row_spacing">12</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Red</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Blue</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="red"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="blue"/>
</style>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">
Blended picture</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<style>
<class name="blend1"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
<property name="width">2</property>
</packing>
</child>
</object>
<packing>
<property name="name">page1</property>
<property name="title" translatable="yes">Blends</property>
</packing>
</child>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="cyan"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="magenta"/>
</style>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="yellow"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<style>
<class name="blend2"/>
</style>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Cyan</property>
<property name="xalign">0</property>
<style>
<class name="dim-label"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Magenta</property>
<property name="xalign">0</property>
<style>
<class name="dim-label"/>
</style>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Yellow</property>
<property name="xalign">0</property>
<style>
<class name="dim-label"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Blended picture</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
</packing>
</child>
</object>
<packing>
<property name="name">page2</property>
<property name="title" translatable="yes">CMYK</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<placeholder/>
</child>
</object>
</interface>

BIN
demos/gtk-demo/blends.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

View File

@@ -193,7 +193,7 @@ button_press (GtkWidget *widget,
gtk_widget_show (item);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 3, button->time);
gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) button);
return TRUE;
}

BIN
demos/gtk-demo/cmy.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -4,7 +4,7 @@
transition-property: color, background-color, border-color, background-image, padding, border-width;
transition-duration: 1s;
font: Cantarell 20px;
font: 20px Cantarell;
}
window {

View File

@@ -0,0 +1,146 @@
/* Theming/CSS Blend Modes
*
* You can blend multiple backgrounds using the CSS blend modes available.
*/
#include <gtk/gtk.h>
#define WID(x) ((GtkWidget*) gtk_builder_get_object (builder, x))
/*
* These are the available blend modes.
*/
struct {
gchar *name;
gchar *id;
} blend_modes[] =
{
{ "Color", "color" },
{ "Color (burn)", "color-burn" },
{ "Color (dodge)", "color-dodge" },
{ "Darken", "darken" },
{ "Difference", "difference" },
{ "Exclusion", "exclusion" },
{ "Hard Light", "hard-light" },
{ "Hue", "hue" },
{ "Lighten", "lighten" },
{ "Luminosity", "luminosity" },
{ "Multiply", "multiply" },
{ "Normal", "normal" },
{ "Overlay", "overlay" },
{ "Saturate", "saturate" },
{ "Screen", "screen" },
{ "Soft Light", "soft-light" },
{ NULL }
};
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
static void
update_css_for_blend_mode (GtkCssProvider *provider,
const gchar *blend_mode)
{
GBytes *bytes;
gchar *css;
bytes = g_resources_lookup_data ("/css_blendmodes/css_blendmodes.css", 0, NULL);
css = g_strdup_printf ((gchar*) g_bytes_get_data (bytes, NULL),
blend_mode,
blend_mode,
blend_mode);
gtk_css_provider_load_from_data (provider, css, -1, NULL);
g_bytes_unref (bytes);
g_free (css);
}
#pragma GCC diagnostic pop
static void
row_activated (GtkListBox *listbox,
GtkListBoxRow *row,
GtkCssProvider *provider)
{
const gchar *blend_mode;
blend_mode = blend_modes[gtk_list_box_row_get_index (row)].id;
update_css_for_blend_mode (provider, blend_mode);
}
static void
setup_listbox (GtkBuilder *builder,
GtkStyleProvider *provider)
{
GtkWidget *normal_row;
GtkWidget *listbox;
gint i;
normal_row = NULL;
listbox = gtk_list_box_new ();
gtk_container_add (GTK_CONTAINER (WID ("scrolledwindow")), listbox);
g_signal_connect (listbox, "row-activated", G_CALLBACK (row_activated), provider);
/* Add a row for each blend mode available */
for (i = 0; blend_modes[i].name != NULL; i++)
{
GtkWidget *label;
GtkWidget *row;
row = gtk_list_box_row_new ();
label = g_object_new (GTK_TYPE_LABEL,
"label", blend_modes[i].name,
"xalign", 0.0,
NULL);
gtk_container_add (GTK_CONTAINER (row), label);
gtk_container_add (GTK_CONTAINER (listbox), row);
/* The first selected row is "normal" */
if (g_strcmp0 (blend_modes[i].id, "normal") == 0)
normal_row = row;
}
/* Select the "normal" row */
gtk_list_box_select_row (GTK_LIST_BOX (listbox), GTK_LIST_BOX_ROW (normal_row));
g_signal_emit_by_name (G_OBJECT (normal_row), "activate");
gtk_widget_grab_focus (normal_row);
}
GtkWidget *
do_css_blendmodes (GtkWidget *do_widget)
{
static GtkWidget *window = NULL;
if (!window)
{
GtkStyleProvider *provider;
GtkBuilder *builder;
builder = gtk_builder_new_from_resource ("/css_blendmodes/blendmodes.ui");
window = WID ("window");
gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget));
g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
/* Setup the CSS provider for window */
provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ());
gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
provider,
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
setup_listbox (builder, provider);
}
if (!gtk_widget_get_visible (window))
gtk_widget_show_all (window);
else
gtk_widget_destroy (window);
return window;
}

View File

@@ -0,0 +1,77 @@
/*
* First page.
*/
image.duck {
background-image: url('resource://css_blendmodes/ducky.png');
background-size: cover;
min-width: 200px;
min-height: 200px;
}
image.gradient {
background-image: linear-gradient(to right, red 0%%, green 50%%, blue 100%%);
min-width: 200px;
min-height: 200px;
}
/*
* Second page.
*/
image.red {
background: url('resource://css_blendmodes/blends.png') top center;
min-width: 200px;
min-height: 200px;
}
image.blue {
background: url('resource://css_blendmodes/blends.png') bottom center;
min-width: 200px;
min-height: 200px;
}
/*
* Third page.
*/
image.cyan {
background: url('resource://css_blendmodes/cmy.jpg') top center;
min-width: 200px;
min-height: 200px;
}
image.magenta {
background: url('resource://css_blendmodes/cmy.jpg') center center;
min-width: 200px;
min-height: 200px;
}
image.yellow {
background: url('resource://css_blendmodes/cmy.jpg') bottom center;
min-width: 200px;
min-height: 200px;
}
image.blend0 {
background-image: url('resource://css_blendmodes/ducky.png'),
linear-gradient(to right, red 0%%, green 50%%, blue 100%%);
background-size: cover;
background-blend-mode: %s;
min-width: 200px;
min-height: 200px;
}
image.blend1 {
background: url('resource://css_blendmodes/blends.png') top center,
url('resource://css_blendmodes/blends.png') bottom center;
background-blend-mode: %s;
min-width: 200px;
min-height: 200px;
}
image.blend2 {
background: url('resource://css_blendmodes/cmy.jpg') top center,
url('resource://css_blendmodes/cmy.jpg') center center,
url('resource://css_blendmodes/cmy.jpg') bottom center;
background-blend-mode: %s;
min-width: 200px;
min-height: 200px;
}

View File

@@ -1,7 +1,7 @@
/* Make the text editor has a nice style */
.view {
color: #2e3436;
font: Monospace;
font-family: Monospace;
background-color: alpha(white, 0.30);
}

View File

@@ -20,6 +20,13 @@
<file>css_basics.css</file>
<file>reset.css</file>
</gresource>
<gresource prefix="/css_blendmodes">
<file>css_blendmodes.css</file>
<file>blendmodes.ui</file>
<file>blends.png</file>
<file>ducky.png</file>
<file>cmy.jpg</file>
</gresource>
<gresource prefix="/css_multiplebgs">
<file>css_multiplebgs.css</file>
<file>brick.png</file>
@@ -130,6 +137,7 @@
<file>combobox.c</file>
<file>css_accordion.c</file>
<file>css_basics.c</file>
<file>css_blendmodes.c</file>
<file>css_multiplebgs.c</file>
<file>css_pixbufs.c</file>
<file>css_shadows.c</file>

BIN
demos/gtk-demo/ducky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

View File

@@ -1,11 +1,12 @@
/* Event Axes
/* Touch and Drawing Tablets
*
* Demonstrates advanced handling of event information from exotic
* input devices.
*
* On one hand, this snippet demonstrates management of input axes,
* On one hand, this snippet demonstrates management of drawing tablets,
* those contain additional information for the pointer other than
* X/Y coordinates.
* X/Y coordinates. Tablet pads events are mapped to actions, which
* are both defined and interpreted by the application.
*
* Input axes are dependent on hardware devices, on linux/unix you
* can see the device axes through xinput list <device>. Each time
@@ -20,6 +21,7 @@
* touchpoints can be tracked.
*/
#include <glib/gi18n.h>
#include <gtk/gtk.h>
typedef struct {
@@ -51,7 +53,30 @@ const gchar *colors[] = {
"burlywood"
};
static GtkPadActionEntry pad_actions[] = {
{ GTK_PAD_ACTION_BUTTON, 1, -1, N_("Nuclear strike"), "pad.nuke" },
{ GTK_PAD_ACTION_BUTTON, 2, -1, N_("Release siberian methane reserves"), "pad.heat" },
{ GTK_PAD_ACTION_BUTTON, 3, -1, N_("Release solar flare"), "pad.fry" },
{ GTK_PAD_ACTION_BUTTON, 4, -1, N_("De-stabilize Oort cloud"), "pad.fall" },
{ GTK_PAD_ACTION_BUTTON, 5, -1, N_("Ignite WR-104"), "pad.burst" },
{ GTK_PAD_ACTION_BUTTON, 6, -1, N_("Lart whoever asks about this button"), "pad.lart" },
{ GTK_PAD_ACTION_RING, -1, -1, N_("Earth axial tilt"), "pad.tilt" },
{ GTK_PAD_ACTION_STRIP, -1, -1, N_("Extent of weak nuclear force"), "pad.dissolve" },
};
static const gchar *pad_action_results[] = {
"",
"",
"",
"",
"",
"💫",
"",
""
};
static guint cur_color = 0;
static guint pad_action_timeout_id = 0;
static AxesInfo *
axes_info_new (void)
@@ -488,12 +513,108 @@ draw_cb (GtkWidget *widget,
return FALSE;
}
static void
update_label_text (GtkWidget *label,
const gchar *text)
{
gchar *markup = NULL;
if (text)
markup = g_strdup_printf ("<span font='48.0'>%s</span>", text);
gtk_label_set_markup (GTK_LABEL (label), markup);
g_free (markup);
}
static gboolean
reset_label_text_timeout_cb (gpointer user_data)
{
GtkWidget *label = user_data;
update_label_text (label, NULL);
pad_action_timeout_id = 0;
return G_SOURCE_REMOVE;
}
static void
update_label_and_timeout (GtkWidget *label,
const gchar *text)
{
if (pad_action_timeout_id)
g_source_remove (pad_action_timeout_id);
update_label_text (label, text);
pad_action_timeout_id = g_timeout_add (200, reset_label_text_timeout_cb, label);
}
static void
on_action_activate (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GtkWidget *label = user_data;
const gchar *result;
gchar *str;
result = g_object_get_data (G_OBJECT (action), "action-result");
if (!parameter)
update_label_and_timeout (label, result);
else
{
str = g_strdup_printf ("%s %.2f", result, g_variant_get_double (parameter));
update_label_and_timeout (label, str);
g_free (str);
}
}
static void
init_pad_controller (GtkWidget *window,
GtkWidget *label)
{
GtkPadController *pad_controller;
GSimpleActionGroup *action_group;
GSimpleAction *action;
gint i;
action_group = g_simple_action_group_new ();
pad_controller = gtk_pad_controller_new (GTK_WINDOW (window),
G_ACTION_GROUP (action_group),
NULL);
for (i = 0; i < G_N_ELEMENTS (pad_actions); i++)
{
if (pad_actions[i].type == GTK_PAD_ACTION_BUTTON)
{
action = g_simple_action_new (pad_actions[i].action_name, NULL);
}
else
{
action = g_simple_action_new_stateful (pad_actions[i].action_name,
G_VARIANT_TYPE_DOUBLE, NULL);
}
g_signal_connect (action, "activate",
G_CALLBACK (on_action_activate), label);
g_object_set_data (G_OBJECT (action), "action-result",
(gpointer) pad_action_results[i]);
g_action_map_add_action (G_ACTION_MAP (action_group), G_ACTION (action));
g_object_unref (action);
}
gtk_pad_controller_set_action_entries (pad_controller, pad_actions,
G_N_ELEMENTS (pad_actions));
g_object_set_data_full (G_OBJECT (window), "pad-controller",
pad_controller, g_object_unref);
g_object_unref (action_group);
}
GtkWidget *
do_event_axes (GtkWidget *toplevel)
{
static GtkWidget *window = NULL;
EventData *event_data;
GtkWidget *box;
GtkWidget *box, *label;
if (!window)
{
@@ -524,6 +645,12 @@ do_event_axes (GtkWidget *toplevel)
G_CALLBACK (event_cb), event_data);
g_signal_connect (box, "draw",
G_CALLBACK (draw_cb), event_data);
label = gtk_label_new ("");
gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
gtk_container_add (GTK_CONTAINER (box), label);
init_pad_controller (window, label);
}
if (!gtk_widget_get_visible (window))

View File

@@ -6,6 +6,7 @@
*/
#include <gtk/gtk.h>
#include <stdlib.h>
enum {
WIDTH_COLUMN,
@@ -83,6 +84,28 @@ visible_func (GtkTreeModel *model,
return width < 10;
}
static void
cell_edited (GtkCellRendererSpin *cell,
const char *path_string,
const char *new_text,
GtkListStore *store)
{
int val;
GtkTreePath *path;
GtkTreeIter iter;
int column;
path = gtk_tree_path_new_from_string (path_string);
gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, path);
gtk_tree_path_free (path);
column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column"));
val = atoi (new_text);
gtk_list_store_set (store, &iter, column, val, -1);
}
GtkWidget *
do_filtermodel (GtkWidget *do_widget)
{
@@ -106,15 +129,21 @@ do_filtermodel (GtkWidget *do_widget)
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
store = (GtkListStore*)gtk_builder_get_object (builder, "liststore1");
column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn1");
cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext1");
gtk_tree_view_column_set_cell_data_func (column, cell,
format_number, GINT_TO_POINTER (WIDTH_COLUMN), NULL);
g_object_set_data (G_OBJECT (cell), "column", GINT_TO_POINTER (WIDTH_COLUMN));
g_signal_connect (cell, "edited", G_CALLBACK (cell_edited), store);
column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn2");
cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext2");
gtk_tree_view_column_set_cell_data_func (column, cell,
format_number, GINT_TO_POINTER (HEIGHT_COLUMN), NULL);
g_object_set_data (G_OBJECT (cell), "column", GINT_TO_POINTER (HEIGHT_COLUMN));
g_signal_connect (cell, "edited", G_CALLBACK (cell_edited), store);
column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn3");
cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext3");
@@ -135,7 +164,6 @@ do_filtermodel (GtkWidget *do_widget)
cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrendererpixbuf1");
gtk_tree_view_column_add_attribute (column, cell, "visible", SQUARE_COLUMN);
store = (GtkListStore*)gtk_builder_get_object (builder, "liststore1");
tree = (GtkWidget*)gtk_builder_get_object (builder, "treeview2");
types[WIDTH_COLUMN] = G_TYPE_INT;

View File

@@ -24,6 +24,12 @@
</row>
</data>
</object>
<object class="GtkAdjustment" id="adj">
<property name="lower">5</property>
<property name="upper">50</property>
<property name="step-increment">1</property>
<property name="page-increment">5</property>
</object>
<object class="GtkWindow" id="window1">
<property name="title" translatable="yes">Filter Model</property>
<child>
@@ -63,7 +69,10 @@
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
<property name="title" translatable="yes">Width</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext1"/>
<object class="GtkCellRendererSpin" id="cellrenderertext1">
<property name="editable">1</property>
<property name="adjustment">adj</property>
</object>
</child>
</object>
</child>
@@ -71,7 +80,10 @@
<object class="GtkTreeViewColumn" id="treeviewcolumn2">
<property name="title" translatable="yes">Height</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext2"/>
<object class="GtkCellRendererSpin" id="cellrenderertext2">
<property name="editable">1</property>
<property name="adjustment">adj</property>
</object>
</child>
</object>
</child>

View File

@@ -966,7 +966,7 @@ end_cb (GtkMenuItem *item, GtkWidget *scrollbar)
static gboolean
scrollbar_popup (GtkWidget *scrollbar, GtkWidget *menu)
{
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time ());
gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL);
return TRUE;
}
@@ -1144,6 +1144,33 @@ out:
return 0;
}
static void
print_version (void)
{
g_print ("gtk3-demo %d.%d.%d\n",
gtk_get_major_version (),
gtk_get_minor_version (),
gtk_get_micro_version ());
}
static int
local_options (GApplication *app,
GVariantDict *options,
gpointer data)
{
gboolean version = FALSE;
g_variant_dict_lookup (options, "version", "b", &version);
if (version)
{
print_version ();
return 0;
}
return -1;
}
int
main (int argc, char **argv)
{
@@ -1169,6 +1196,7 @@ main (int argc, char **argv)
app_entries, G_N_ELEMENTS (app_entries),
app);
g_application_add_main_option (G_APPLICATION (app), "version", 0, 0, G_OPTION_ARG_NONE, "Show program version", NULL);
g_application_add_main_option (G_APPLICATION (app), "run", 0, 0, G_OPTION_ARG_STRING, "Run an example", "EXAMPLE");
g_application_add_main_option (G_APPLICATION (app), "list", 0, 0, G_OPTION_ARG_NONE, "List examples", NULL);
g_application_add_main_option (G_APPLICATION (app), "autoquit", 0, 0, G_OPTION_ARG_NONE, "Quit after a delay", NULL);
@@ -1176,6 +1204,7 @@ main (int argc, char **argv)
g_signal_connect (app, "startup", G_CALLBACK (startup), NULL);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
g_signal_connect (app, "command-line", G_CALLBACK (command_line), NULL);
g_signal_connect (app, "handle-local-options", G_CALLBACK (local_options), NULL);
g_application_run (G_APPLICATION (app), argc, argv);

View File

@@ -66,6 +66,7 @@
<object class="GtkModelButton">
<property name="visible">1</property>
<property name="action-name">win.color</property>
<property name="action-target">'red'</property>
<property name="text">Red</property>
<property name="inverted">1</property>
</object>
@@ -74,6 +75,7 @@
<object class="GtkModelButton">
<property name="visible">1</property>
<property name="action-name">win.color</property>
<property name="action-target">'green'</property>
<property name="text">Green</property>
<property name="inverted">1</property>
</object>
@@ -82,6 +84,7 @@
<object class="GtkModelButton">
<property name="visible">1</property>
<property name="action-name">win.color</property>
<property name="action-target">'blue'</property>
<property name="text">Blue</property>
<property name="inverted">1</property>
</object>

View File

@@ -51,13 +51,6 @@ create_complex_popover (GtkWidget *parent,
popover = create_popover (parent, content, GTK_POS_BOTTOM);
g_object_unref (content);
gtk_widget_set_size_request (popover, 200, -1);
gtk_widget_set_vexpand (popover, TRUE);
gtk_widget_set_margin_start (popover, 10);
gtk_widget_set_margin_end (popover, 10);
gtk_widget_set_margin_bottom (popover, 10);
return popover;
}

View File

@@ -59,6 +59,7 @@
<property name="visible">1</property>
<property name="can_focus">1</property>
<property name="shadow_type">in</property>
<property name="max-content-height">100</property>
<child>
<object class="GtkTreeView" id="treeview1">
<property name="visible">1</property>

View File

@@ -4,14 +4,20 @@
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">4</property>
<property name="value">2</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
<property name="upper">4</property>
<property name="value">2</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
<property name="upper">4</property>
<property name="value">2</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
<object class="GtkWindow" id="window1">
<property name="title" translatable="yes">Scales</property>

View File

@@ -43,8 +43,11 @@ static gboolean
finish_search (GtkButton *button)
{
show_find_button ();
g_source_remove (search_progress_id);
search_progress_id = 0;
if (search_progress_id)
{
g_source_remove (search_progress_id);
search_progress_id = 0;
}
return G_SOURCE_REMOVE;
}
@@ -71,7 +74,11 @@ static void
stop_search (GtkButton *button,
gpointer data)
{
g_source_remove (finish_search_id);
if (finish_search_id)
{
g_source_remove (finish_search_id);
finish_search_id = 0;
}
finish_search (button);
}
@@ -150,8 +157,7 @@ icon_press_cb (GtkEntry *entry,
gpointer data)
{
if (position == GTK_ENTRY_ICON_PRIMARY)
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL,
event->button, event->time);
gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) event);
}
static void

View File

@@ -289,7 +289,6 @@ add_columns (GtkTreeView *treeview)
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
/* havoc column */
@@ -311,7 +310,6 @@ add_columns (GtkTreeView *treeview)
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
/* tim column */
@@ -334,7 +332,6 @@ add_columns (GtkTreeView *treeview)
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
/* owen column */
@@ -356,7 +353,6 @@ add_columns (GtkTreeView *treeview)
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
/* dave column */
@@ -378,7 +374,6 @@ add_columns (GtkTreeView *treeview)
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
}

View File

@@ -1626,11 +1626,17 @@ reset_icon_size (GtkWidget *iv)
}
static gchar *
scale_format_value (GtkScale *scale, gdouble value)
scale_format_value_blank (GtkScale *scale, gdouble value)
{
return g_strdup (" ");
}
static gchar *
scale_format_value (GtkScale *scale, gdouble value)
{
return g_strdup_printf ("%0.*f", 1, value);
}
static void
activate (GApplication *app)
{
@@ -1697,6 +1703,7 @@ activate (GApplication *app)
gtk_builder_add_callback_symbol (builder, "decrease_icon_size", (GCallback)decrease_icon_size);
gtk_builder_add_callback_symbol (builder, "reset_icon_size", (GCallback)reset_icon_size);
gtk_builder_add_callback_symbol (builder, "scale_format_value", (GCallback)scale_format_value);
gtk_builder_add_callback_symbol (builder, "scale_format_value_blank", (GCallback)scale_format_value_blank);
gtk_builder_connect_signals (builder, NULL);
@@ -1908,6 +1915,33 @@ activate (GApplication *app)
g_object_unref (builder);
}
static void
print_version (void)
{
g_print ("gtk3-widget-factory %d.%d.%d\n",
gtk_get_major_version (),
gtk_get_minor_version (),
gtk_get_micro_version ());
}
static int
local_options (GApplication *app,
GVariantDict *options,
gpointer data)
{
gboolean version = FALSE;
g_variant_dict_lookup (options, "version", "b", &version);
if (version)
{
print_version ();
return 0;
}
return -1;
}
int
main (int argc, char *argv[])
{
@@ -1935,6 +1969,9 @@ main (int argc, char *argv[])
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
g_application_add_main_option (G_APPLICATION (app), "version", 0, 0, G_OPTION_ARG_NONE, "Show program version", NULL);
g_signal_connect (app, "handle-local-options", G_CALLBACK (local_options), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);

View File

@@ -1242,6 +1242,8 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
<property name="restrict_to_fill_level">0</property>
<property name="fill_level">75</property>
<property name="draw_value">1</property>
<property name="digits">-1</property>
<signal name="format-value" handler="scale_format_value"/>
</object>
</child>
<child>
@@ -1255,7 +1257,8 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
<property name="restrict_to_fill_level">0</property>
<property name="fill_level">75</property>
<property name="draw_value">1</property>
<signal name="format-value" handler="scale_format_value"/>
<property name="digits">-1</property>
<signal name="format-value" handler="scale_format_value_blank"/>
</object>
<packing>
<property name="position">1</property>
@@ -4092,7 +4095,6 @@ bad things might happen.</property>
</action-widgets>
</object>
<object class="GtkPopover" id="open_popover">
<property name="visible">1</property>
<child>
<object class="GtkGrid">
<property name="visible">1</property>
@@ -4127,8 +4129,10 @@ bad things might happen.</property>
<property name="valign">start</property>
<property name="visible">1</property>
<property name="shadow-type">in</property>
<property name="hscrollbar-policy">never</property>
<property name="min-content-height">70</property>
<property name="max-content-height">120</property>
<property name="min-content-width">100</property>
<property name="max-content-width">100</property>
<child>
<object class="GtkTextView" id="open_popover_textview">
<property name="visible">1</property>

View File

@@ -25,6 +25,7 @@
<xi:include href="xml/gdkseat.xml" />
<xi:include href="xml/gdkmonitor.xml" />
<xi:include href="xml/gdkdevice.xml" />
<xi:include href="xml/gdkdevicepad.xml" />
<xi:include href="xml/regions.xml" />
<xi:include href="xml/pixbufs.xml" />
<xi:include href="xml/rgba_colors.xml" />
@@ -33,6 +34,7 @@
<xi:include href="xml/windows.xml" />
<xi:include href="xml/gdkframeclock.xml" />
<xi:include href="xml/gdkframetimings.xml" />
<xi:include href="xml/gdkdrawingcontext.xml" />
<xi:include href="xml/gdkglcontext.xml" />
<xi:include href="xml/events.xml" />
<xi:include href="xml/event_structs.xml" />

View File

@@ -341,6 +341,7 @@ GdkWindowWindowClass
GdkWindowHints
GdkGeometry
GdkGravity
GdkAnchorHints
GdkWindowEdge
GdkWindowTypeHint
GdkWindowAttr
@@ -412,6 +413,9 @@ gdk_window_get_clip_region
gdk_window_begin_paint_rect
gdk_window_begin_paint_region
gdk_window_end_paint
gdk_window_begin_draw_frame
gdk_window_end_draw_frame
gdk_window_should_draw
gdk_window_get_visible_region
GdkWindowInvalidateHandlerFunc
gdk_window_set_invalidate_handler
@@ -622,6 +626,7 @@ gdk_window_create_similar_surface
gdk_window_create_similar_image_surface
gdk_cairo_create
gdk_cairo_get_clip_rectangle
gdk_cairo_get_drawing_context
gdk_cairo_set_source_color
gdk_cairo_set_source_rgba
gdk_cairo_set_source_pixbuf
@@ -791,6 +796,25 @@ gdk_device_type_get_type
GDK_MAX_TIMECOORD_AXES
</SECTION>
<SECTION>
<TITLE>GdkDevicePad</TITLE>
<FILE>gdkdevicepad</FILE>
GdkDevicePad
GdkDevicePadFeature
gdk_device_pad_get_n_groups
gdk_device_pad_get_group_n_modes
gdk_device_pad_get_n_features
gdk_device_pad_get_feature_group
<SUBSECTION Standard>
GDK_TYPE_DEVICE_PAD
GDK_DEVICE_PAD
GDK_IS_DEVICE_PAD
<SUBSECTION Private>
gdk_device_pad_get_type
</SECTION>
<SECTION>
<TITLE>GdkSeat</TITLE>
<FILE>gdkseat</FILE>
@@ -936,6 +960,9 @@ GdkEventOwnerChange
GdkEventGrabBroken
GdkEventTouchpadSwipe
GdkEventTouchpadPinch
GdkEventPadButton
GdkEventPadAxis
GdkEventPadGroupMode
<SUBSECTION>
GdkScrollDirection
@@ -1245,6 +1272,10 @@ gdk_wayland_display_get_wl_display
gdk_wayland_display_get_xdg_shell
gdk_wayland_window_get_wl_surface
gdk_wayland_window_set_use_custom_surface
GdkWaylandWindowExported
gdk_wayland_window_export_handle
gdk_wayland_window_unexport_handle
gdk_wayland_window_set_transient_for_exported
<SUBSECTION Standard>
GDK_TYPE_WAYLAND_DEVICE
@@ -1409,3 +1440,19 @@ GDK_TYPE_MONITOR
GDK_MONITOR
GDK_IS_MONITOR
</SECTION>
<SECTION>
<FILE>gdkdrawingcontext</FILE>
GdkDrawingContext
gdk_drawing_context_get_window
gdk_drawing_context_get_clip
gdk_drawing_context_get_cairo_context
gdk_drawing_context_is_valid
<SUBSECTION Standard>
gdk_drawing_context_get_type
GdkDrawingContextClass
GDK_TYPE_DRAWING_CONTEXT
GDK_DRAWING_CONTEXT
GDK_IS_DRAWING_CONTEXT
</SECTION>

View File

@@ -4,9 +4,11 @@ gdk_app_launch_context_get_type
gdk_cursor_get_type
gdk_device_get_type
gdk_device_manager_get_type
gdk_device_pad_get_type
gdk_display_get_type
gdk_display_manager_get_type
gdk_drag_context_get_type
gdk_drawing_context_get_type
gdk_frame_clock_get_type
gdk_gl_context_get_type
gdk_keymap_get_type

View File

@@ -387,6 +387,9 @@ HTML_IMAGES = \
$(srcdir)/images/panes.png \
$(srcdir)/images/pagesetupdialog.png \
$(srcdir)/images/placessidebar.png \
$(srcdir)/images/popup-anchors.png \
$(srcdir)/images/popup-flip.png \
$(srcdir)/images/popup-slide.png \
$(srcdir)/images/printdialog.png \
$(srcdir)/images/progressbar.png \
$(srcdir)/images/radio-group.png \

View File

@@ -1109,6 +1109,15 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
<ulink url="http://www.w3.org/TR/css3-background/#background-image">CSS3</ulink></entry>
<entry>not supported: urls without quotes, CSS radial gradients, colors in crossfades</entry>
</row>
<row>
<entry>background-blend-mode</entry>
<entry><code>〈blend-mode〉 [ , 〈blend-mode〉 ]*</code></entry>
<entry><code>normal</code></entry>
<entry></entry>
<entry></entry>
<entry></entry>
<entry>only affects multiple backgrounds</entry>
</row>
<row>
<entry>boxshadow</entry>
<entry><code>none | 〈box shadow〉 [ , 〈box shadow〉 ]*</code></entry>
@@ -1144,6 +1153,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
<code>〈bg-image〉 = 〈image〉 | none</code>
<code>〈bg-layer〉 = 〈bg-image〉 || 〈position〉 [ / 〈bg-size〉 ]? || 〈bg-repeat〉 || 〈box〉 || 〈box〉</code>
<code>〈final-bg-layer〉 = 〈bg-image〉 || 〈position〉 [ / 〈bg-size〉 ]? || 〈bg-repeat〉 || 〈box〉 || 〈box〉|| 〈color〉</code>
<code>〈blend-mode〉 = color || color-burn || color-dodge || darken || difference || exclusion || hard-light || hue || lighten || luminosity || multiply || normal || overlay || saturate || screen || soft-light</code>
<code>〈box shadow〉 = inset? &amp;&amp; 〈length〉{2,4}? &amp;&amp; 〈color〉?</code>
</literallayout>
@@ -1152,6 +1162,10 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
background images are absent or have transparency.
</para>
<para>
Alternatively, multiple backgrounds can be blended using the <code>background-blend-mode</code> property.
</para>
<table pgwide="1">
<title>Transition properties</title>
<tgroup cols="7">

View File

@@ -299,7 +299,7 @@
</chapter>
<chapter id="Gestures">
<title>Gestures</title>
<title>Gestures and event handling</title>
<xi:include href="xml/gtkeventcontroller.xml" />
<xi:include href="xml/gtkgesture.xml" />
<xi:include href="xml/gtkgesturesingle.xml" />
@@ -310,6 +310,7 @@
<xi:include href="xml/gtkgestureswipe.xml" />
<xi:include href="xml/gtkgesturerotate.xml" />
<xi:include href="xml/gtkgesturezoom.xml" />
<xi:include href="xml/gtkpadcontroller.xml" />
</chapter>
<chapter id="DeprecatedObjects">

View File

@@ -1528,6 +1528,11 @@ gtk_file_filter_add_pixbuf_formats
gtk_file_filter_add_custom
gtk_file_filter_get_needed
gtk_file_filter_filter
<SUBSECTION Serialization>
gtk_file_filter_new_from_gvariant
gtk_file_filter_to_gvariant
<SUBSECTION Standard>
GTK_FILE_FILTER
GTK_IS_FILE_FILTER
@@ -2241,6 +2246,9 @@ gtk_menu_new_from_model
gtk_menu_set_screen
gtk_menu_reorder_child
gtk_menu_attach
gtk_menu_popup_at_rect
gtk_menu_popup_at_widget
gtk_menu_popup_at_pointer
gtk_menu_popup_for_device
gtk_menu_popup
gtk_menu_set_accel_group
@@ -3231,6 +3239,10 @@ gtk_scrolled_window_set_capture_button_press
gtk_scrolled_window_get_capture_button_press
gtk_scrolled_window_set_overlay_scrolling
gtk_scrolled_window_get_overlay_scrolling
gtk_scrolled_window_set_propagate_natural_width
gtk_scrolled_window_get_propagate_natural_width
gtk_scrolled_window_set_propagate_natural_height
gtk_scrolled_window_get_propagate_natural_height
<SUBSECTION Standard>
GTK_SCROLLED_WINDOW
@@ -7264,10 +7276,12 @@ GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION
<SUBSECTION Serialization>
gtk_print_settings_new_from_file
gtk_print_settings_new_from_key_file
gtk_print_settings_new_from_gvariant
gtk_print_settings_load_file
gtk_print_settings_load_key_file
gtk_print_settings_to_file
gtk_print_settings_to_key_file
gtk_print_settings_to_gvariant
<SUBSECTION Standard>
GTK_TYPE_PRINT_SETTINGS
@@ -7316,7 +7330,9 @@ gtk_paper_size_get_default
<SUBSECTION Serialization>
gtk_paper_size_new_from_key_file
gtk_paper_size_new_from_gvariant
gtk_paper_size_to_key_file
gtk_paper_size_to_gvariant
<SUBSECTION Standard>
GTK_TYPE_PAPER_SIZE
@@ -7364,10 +7380,13 @@ gtk_page_setup_get_page_height
<SUBSECTION Serialization>
gtk_page_setup_new_from_file
gtk_page_setup_new_from_key_file
gtk_page_setup_new_from_gvariant
gtk_page_setup_load_file
gtk_page_setup_load_key_file
gtk_page_setup_to_file
gtk_page_setup_to_key_file
gtk_page_setup_to_gvariant
<SUBSECTION Standard>
GTK_TYPE_PAGE_SETUP
GTK_PAGE_SETUP
@@ -7514,6 +7533,7 @@ gtk_mount_operation_get_parent
gtk_mount_operation_set_screen
gtk_mount_operation_get_screen
gtk_show_uri
gtk_show_uri_on_parent
<SUBSECTION Standard>
GTK_IS_MOUNT_OPERATION
GTK_IS_MOUNT_OPERATION_CLASS
@@ -8143,6 +8163,8 @@ GtkPopover
gtk_popover_new
gtk_popover_new_from_model
gtk_popover_bind_model
gtk_popover_popup
gtk_popover_popdown
gtk_popover_set_relative_to
gtk_popover_get_relative_to
gtk_popover_set_pointing_to
@@ -8432,6 +8454,28 @@ GTK_GESTURE_ZOOM_GET_CLASS
gtk_gesture_zoom_get_type
</SECTION>
<SECTION>
<FILE>gtkpadcontroller</FILE>
<TITLE>GtkPadController</TITLE>
GtkPadController
gtk_pad_controller_new
gtk_pad_controller_set_action_entries
gtk_pad_controller_set_action
GtkPadActionType
GtkPadActionEntry
<SUBSECTION Standard>
GTK_TYPE_PAD_CONTROLLER
GTK_PAD_CONTROLLER
GTK_PAD_CONTROLLER_CLASS
GTK_IS_PAD_CONTROLLER
GTK_IS_PAD_CONTROLLER_CLASS
GTK_PAD_CONTROLLER_GET_CLASS
<SUBSECTION Private>
gtk_pad_controller_get_type
</SECTION>
<SECTION>
<FILE>gtkstacksidebar</FILE>
GtkStackSidebar

View File

@@ -133,6 +133,7 @@ gtk_numerable_icon_get_type
gtk_offscreen_window_get_type
gtk_orientable_get_type
gtk_overlay_get_type
gtk_pad_controller_get_type
gtk_page_setup_get_type
@DISABLE_ON_W32@gtk_page_setup_unix_dialog_get_type
gtk_paned_get_type
@@ -173,6 +174,7 @@ gtk_separator_get_type
gtk_separator_menu_item_get_type
gtk_separator_tool_item_get_type
gtk_settings_get_type
gtk_shortcut_label_get_type
gtk_shortcuts_window_get_type
gtk_shortcuts_section_get_type
gtk_shortcuts_group_get_type

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -3,7 +3,7 @@
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<chapter id="gtk-migrating-2-to-3">
<chapter id="gtk-migrating-3-x-to-y">
<title>Migrating from one GTK+ 3 release to another</title>
<para>
@@ -392,4 +392,52 @@
custom offsets should double-check that their levels look as expected.
</para>
</section>
<section>
<title>Changes in GTK+ 3.22</title>
<para>
The CSS parser has gotten a bit more selective in what it accepts as
valid values for the font: shorthand. Following the CSS specification,
at least a size and a family name are required now. If you want to
change an individual facet of the font, like the weight, use the
individual CSS properties: font-weight, font-size, font-family, etc.
</para>
<para>
The CSS parser now warns about some more constructs that are not according
to the CSS spec, such as gradients with a single color stop. Instead,
you can just use image(&lt;color&gt;).
</para>
<para>
The #GtkSizeGroup:ignore-hidden property has not been working properly
for a long time, and we've not documented it as broken and deprecated.
The recommended alternative for reserving space of widgets that are not
currently shown in the UI is to use a #GtkStack (with some 'filler'
widget, e.g. an empty #GtkBox, in another page).
</para>
<para>
GtkHeaderBar now respects the hexpand property for its custom title
widget and its packed children. This change may inadvertently cause the
layout of those children to change, if they unintentionally had hexpand
set before.
</para>
<para>
The behavior of the expand flag in #GtkTables #GtkAttachOptions has been
changed to (again) match the behavior in #GtkBox and in GTK+ 2.x. These
options don't cause the table itself to expand.
</para>
<para>
The way GtkPopover behaved during a call to gtk_widget_hide() violated
some of the internal assumptions GTK+ makes about widget visibility.
gtk_popover_popup() and gtk_popover_popdown() have been introduced to
show or hide the popover with a transition, while gtk_widget_show()
and gtk_widget_hide() on a GtkPopover now work the same way they do
on any other widget and immediately hide (or show) the popover.
</para>
</section>
</chapter>

View File

@@ -36,7 +36,7 @@ How do I get started with GTK+?
<answer><para>
The GTK+ <ulink url="http://www.gtk.org">website</ulink> offers some
<ulink url="http://www.gtk.org/documentation">tutorials</ulink> and other
<ulink url="http://www.gtk.org/documentation.php">tutorials</ulink> and other
documentation (most of it about GTK+ 2.x, but mostly still applicable).
More documentation ranging from whitepapers to online books can be found at
the <ulink url="http://developer.gnome.org">GNOME developer's site</ulink>.

View File

@@ -13,7 +13,7 @@ all: exampleapp
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS)
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f $(OBJS)

View File

@@ -8,11 +8,6 @@ struct _ExampleApp
GtkApplication parent;
};
struct _ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,8 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct _ExampleApp ExampleApp;
typedef struct _ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -8,11 +8,6 @@ struct _ExampleAppWindow
GtkApplicationWindow parent;
};
struct _ExampleAppWindowClass
{
GtkApplicationWindowClass parent_class;
};
G_DEFINE_TYPE(ExampleAppWindow, example_app_window, GTK_TYPE_APPLICATION_WINDOW);
static void

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
#define EXAMPLE_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_WINDOW_TYPE, ExampleAppWindow))
G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
typedef struct _ExampleAppWindow ExampleAppWindow;
typedef struct _ExampleAppWindowClass ExampleAppWindowClass;
GType example_app_window_get_type (void);
ExampleAppWindow *example_app_window_new (ExampleApp *app);
void example_app_window_open (ExampleAppWindow *win,
GFile *file);

View File

@@ -25,7 +25,7 @@ resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --source
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS) gschemas.compiled
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f org.gtk.exampleapp.gschema.valid

View File

@@ -9,11 +9,6 @@ struct _ExampleApp
GtkApplication parent;
};
struct _ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,9 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct _ExampleApp ExampleApp;
typedef struct _ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -9,11 +9,6 @@ struct _ExampleAppPrefs
GtkDialog parent;
};
struct _ExampleAppPrefsClass
{
GtkDialogClass parent_class;
};
typedef struct _ExampleAppPrefsPrivate ExampleAppPrefsPrivate;
struct _ExampleAppPrefsPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ())
#define EXAMPLE_APP_PREFS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_PREFS_TYPE, ExampleAppPrefs))
G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog)
typedef struct _ExampleAppPrefs ExampleAppPrefs;
typedef struct _ExampleAppPrefsClass ExampleAppPrefsClass;
GType example_app_prefs_get_type (void);
ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win);

View File

@@ -8,11 +8,6 @@ struct _ExampleAppWindow
GtkApplicationWindow parent;
};
struct _ExampleAppWindowClass
{
GtkApplicationWindowClass parent_class;
};
typedef struct _ExampleAppWindowPrivate ExampleAppWindowPrivate;
struct _ExampleAppWindowPrivate

View File

@@ -6,14 +6,8 @@
#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
#define EXAMPLE_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_WINDOW_TYPE, ExampleAppWindow))
G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
typedef struct _ExampleAppWindow ExampleAppWindow;
typedef struct _ExampleAppWindowClass ExampleAppWindowClass;
GType example_app_window_get_type (void);
ExampleAppWindow *example_app_window_new (ExampleApp *app);
void example_app_window_open (ExampleAppWindow *win,
GFile *file);

View File

@@ -18,7 +18,7 @@ resources.c: exampleapp.gresource.xml window.ui
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS)
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f $(BUILT_SRC)

View File

@@ -8,11 +8,6 @@ struct _ExampleApp
GtkApplication parent;
};
struct _ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,9 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct _ExampleApp ExampleApp;
typedef struct _ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -8,11 +8,6 @@ struct _ExampleAppWindow
GtkApplicationWindow parent;
};
struct _ExampleAppWindowClass
{
GtkApplicationWindowClass parent_class;
};
G_DEFINE_TYPE(ExampleAppWindow, example_app_window, GTK_TYPE_APPLICATION_WINDOW);
static void

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
#define EXAMPLE_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_WINDOW_TYPE, ExampleAppWindow))
G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
typedef struct _ExampleAppWindow ExampleAppWindow;
typedef struct _ExampleAppWindowClass ExampleAppWindowClass;
GType example_app_window_get_type (void);
ExampleAppWindow *example_app_window_new (ExampleApp *app);
void example_app_window_open (ExampleAppWindow *win,
GFile *file);

View File

@@ -18,7 +18,7 @@ resources.c: exampleapp.gresource.xml window.ui
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS)
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f $(BUILT_SRC)

View File

@@ -8,11 +8,6 @@ struct _ExampleApp
GtkApplication parent;
};
struct _ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,9 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct _ExampleApp ExampleApp;
typedef struct _ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -8,11 +8,6 @@ struct _ExampleAppWindow
GtkApplicationWindow parent;
};
struct _ExampleAppWindowClass
{
GtkApplicationWindowClass parent_class;
};
typedef struct _ExampleAppWindowPrivate ExampleAppWindowPrivate;
struct _ExampleAppWindowPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
#define EXAMPLE_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_WINDOW_TYPE, ExampleAppWindow))
G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
typedef struct _ExampleAppWindow ExampleAppWindow;
typedef struct _ExampleAppWindowClass ExampleAppWindowClass;
GType example_app_window_get_type (void);
ExampleAppWindow *example_app_window_new (ExampleApp *app);
void example_app_window_open (ExampleAppWindow *win,
GFile *file);

View File

@@ -18,7 +18,7 @@ resources.c: exampleapp.gresource.xml window.ui app-menu.ui
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS)
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f $(BUILT_SRC)

View File

@@ -8,11 +8,6 @@ struct _ExampleApp
GtkApplication parent;
};
struct _ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,9 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct _ExampleApp ExampleApp;
typedef struct _ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -8,11 +8,6 @@ struct _ExampleAppWindow
GtkApplicationWindow parent;
};
struct _ExampleAppWindowClass
{
GtkApplicationWindowClass parent_class;
};
typedef struct _ExampleAppWindowPrivate ExampleAppWindowPrivate;
struct _ExampleAppWindowPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
#define EXAMPLE_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_WINDOW_TYPE, ExampleAppWindow))
G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
typedef struct _ExampleAppWindow ExampleAppWindow;
typedef struct _ExampleAppWindowClass ExampleAppWindowClass;
GType example_app_window_get_type (void);
ExampleAppWindow *example_app_window_new (ExampleApp *app);
void example_app_window_open (ExampleAppWindow *win,
GFile *file);

View File

@@ -25,7 +25,7 @@ resources.c: exampleapp.gresource.xml window.ui app-menu.ui
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS) gschemas.compiled
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f org.gtk.exampleapp.gschema.valid

View File

@@ -8,11 +8,6 @@ struct _ExampleApp
GtkApplication parent;
};
struct _ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,9 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct _ExampleApp ExampleApp;
typedef struct _ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -8,11 +8,6 @@ struct _ExampleAppWindow
GtkApplicationWindow parent;
};
struct _ExampleAppWindowClass
{
GtkApplicationWindowClass parent_class;
};
typedef struct _ExampleAppWindowPrivate ExampleAppWindowPrivate;
struct _ExampleAppWindowPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
#define EXAMPLE_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_WINDOW_TYPE, ExampleAppWindow))
G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
typedef struct _ExampleAppWindow ExampleAppWindow;
typedef struct _ExampleAppWindowClass ExampleAppWindowClass;
GType example_app_window_get_type (void);
ExampleAppWindow *example_app_window_new (ExampleApp *app);
void example_app_window_open (ExampleAppWindow *win,
GFile *file);

View File

@@ -25,7 +25,7 @@ resources.c: exampleapp.gresource.xml window.ui app-menu.ui
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS) gschemas.compiled
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f org.gtk.exampleapp.gschema.valid

View File

@@ -4,16 +4,11 @@
#include "exampleappwin.h"
#include "exampleappprefs.h"
struct ExampleApp
struct _ExampleApp
{
GtkApplication parent;
};
struct ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,9 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct ExampleApp ExampleApp;
typedef struct ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -9,11 +9,6 @@ struct _ExampleAppPrefs
GtkDialog parent;
};
struct _ExampleAppPrefsClass
{
GtkDialogClass parent_class;
};
typedef struct _ExampleAppPrefsPrivate ExampleAppPrefsPrivate;
struct _ExampleAppPrefsPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ())
#define EXAMPLE_APP_PREFS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_PREFS_TYPE, ExampleAppPrefs))
G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog)
typedef struct _ExampleAppPrefs ExampleAppPrefs;
typedef struct _ExampleAppPrefsClass ExampleAppPrefsClass;
GType example_app_prefs_get_type (void);
ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win);

View File

@@ -3,16 +3,11 @@
#include "exampleapp.h"
#include "exampleappwin.h"
struct ExampleAppWindow
struct _ExampleAppWindow
{
GtkApplicationWindow parent;
};
struct ExampleAppWindowClass
{
GtkApplicationWindowClass parent_class;
};
typedef struct ExampleAppWindowPrivate ExampleAppWindowPrivate;
struct ExampleAppWindowPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
#define EXAMPLE_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_WINDOW_TYPE, ExampleAppWindow))
G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
typedef struct ExampleAppWindow ExampleAppWindow;
typedef struct ExampleAppWindowClass ExampleAppWindowClass;
GType example_app_window_get_type (void);
ExampleAppWindow *example_app_window_new (ExampleApp *app);
void example_app_window_open (ExampleAppWindow *win,
GFile *file);

View File

@@ -25,7 +25,7 @@ resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --source
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS) gschemas.compiled
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f org.gtk.exampleapp.gschema.valid

View File

@@ -9,11 +9,6 @@ struct _ExampleApp
GtkApplication parent;
};
struct _ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,9 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct _ExampleApp ExampleApp;
typedef struct _ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -9,11 +9,6 @@ struct _ExampleAppPrefs
GtkDialog parent;
};
struct _ExampleAppPrefsClass
{
GtkDialogClass parent_class;
};
typedef struct _ExampleAppPrefsPrivate ExampleAppPrefsPrivate;
struct _ExampleAppPrefsPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ())
#define EXAMPLE_APP_PREFS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_PREFS_TYPE, ExampleAppPrefs))
G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog)
typedef struct _ExampleAppPrefs ExampleAppPrefs;
typedef struct _ExampleAppPrefsClass ExampleAppPrefsClass;
GType example_app_prefs_get_type (void);
ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win);

View File

@@ -8,11 +8,6 @@ struct _ExampleAppWindow
GtkApplicationWindow parent;
};
struct _ExampleAppWindowClass
{
GtkApplicationWindowClass parent_class;
};
typedef struct _ExampleAppWindowPrivate ExampleAppWindowPrivate;
struct _ExampleAppWindowPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
#define EXAMPLE_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_WINDOW_TYPE, ExampleAppWindow))
G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
typedef struct _ExampleAppWindow ExampleAppWindow;
typedef struct _ExampleAppWindowClass ExampleAppWindowClass;
GType example_app_window_get_type (void);
ExampleAppWindow *example_app_window_new (ExampleApp *app);
void example_app_window_open (ExampleAppWindow *win,
GFile *file);

View File

@@ -25,7 +25,7 @@ resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --source
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS) gschemas.compiled
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f org.gtk.exampleapp.gschema.valid

View File

@@ -9,11 +9,6 @@ struct _ExampleApp
GtkApplication parent;
};
struct _ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,9 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct _ExampleApp ExampleApp;
typedef struct _ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -9,11 +9,6 @@ struct _ExampleAppPrefs
GtkDialog parent;
};
struct _ExampleAppPrefsClass
{
GtkDialogClass parent_class;
};
typedef struct _ExampleAppPrefsPrivate ExampleAppPrefsPrivate;
struct _ExampleAppPrefsPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ())
#define EXAMPLE_APP_PREFS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_PREFS_TYPE, ExampleAppPrefs))
G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog)
typedef struct _ExampleAppPrefs ExampleAppPrefs;
typedef struct _ExampleAppPrefsClass ExampleAppPrefsClass;
GType example_app_prefs_get_type (void);
ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win);

View File

@@ -8,11 +8,6 @@ struct _ExampleAppWindow
GtkApplicationWindow parent;
};
struct _ExampleAppWindowClass
{
GtkApplicationWindowClass parent_class;
};
typedef struct _ExampleAppWindowPrivate ExampleAppWindowPrivate;
struct _ExampleAppWindowPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
#define EXAMPLE_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_WINDOW_TYPE, ExampleAppWindow))
G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
typedef struct _ExampleAppWindow ExampleAppWindow;
typedef struct _ExampleAppWindowClass ExampleAppWindowClass;
GType example_app_window_get_type (void);
ExampleAppWindow *example_app_window_new (ExampleApp *app);
void example_app_window_open (ExampleAppWindow *win,
GFile *file);

View File

@@ -25,7 +25,7 @@ resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --source
$(CC) -c -o $(@F) $(CFLAGS) $<
exampleapp: $(OBJS) gschemas.compiled
$(CC) -o $(@F) $(LIBS) $(OBJS)
$(CC) -o $(@F) $(OBJS) $(LIBS)
clean:
rm -f org.gtk.exampleapp.gschema.valid

View File

@@ -9,11 +9,6 @@ struct _ExampleApp
GtkApplication parent;
};
struct _ExampleAppClass
{
GtkApplicationClass parent_class;
};
G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION);
static void

View File

@@ -5,14 +5,9 @@
#define EXAMPLE_APP_TYPE (example_app_get_type ())
#define EXAMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_TYPE, ExampleApp))
G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
typedef struct _ExampleApp ExampleApp;
typedef struct _ExampleAppClass ExampleAppClass;
GType example_app_get_type (void);
ExampleApp *example_app_new (void);

View File

@@ -9,11 +9,6 @@ struct _ExampleAppPrefs
GtkDialog parent;
};
struct _ExampleAppPrefsClass
{
GtkDialogClass parent_class;
};
typedef struct _ExampleAppPrefsPrivate ExampleAppPrefsPrivate;
struct _ExampleAppPrefsPrivate

View File

@@ -6,14 +6,9 @@
#define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ())
#define EXAMPLE_APP_PREFS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_APP_PREFS_TYPE, ExampleAppPrefs))
G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog)
typedef struct _ExampleAppPrefs ExampleAppPrefs;
typedef struct _ExampleAppPrefsClass ExampleAppPrefsClass;
GType example_app_prefs_get_type (void);
ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win);

Some files were not shown because too many files have changed in this diff Show More