Compare commits

...

11542 Commits

Author SHA1 Message Date
Emmanuele Bassi
258233efa9 WIP: Import the GTK 2 treeview tutorial
The tree view tutorial at http://scentric.net/tutorial should be part of
the GTK API reference.

This is a work in progress import; the tutorial needs heavy editing, and
the overall state of the docbook markup is pretty dire.
2019-01-14 15:49:45 +00:00
Timm Bäder
59bf76dce1 gl renderer: Force blur shadow node children offscreen
This broke the overlay blur demoe when resizing the window to a size
that would completely move the image below a button, causing the
GtkSnapshot code to remove the clip node below the blur node.
2019-01-13 08:41:37 +01:00
Timm Bäder
44a2a49f31 overlay: Directly create cairo_region
Instead of doing a cairo_region_create + union, just pass the rect
directly to cairo_region_create_rectangle
2019-01-13 08:41:37 +01:00
Timm Bäder
69bc42f444 rendernodepaintable: Don't try to snapshot 0×0 nodes
Considering the operations that some of the rendernode constructors
do, nodes with width or height 0 (or both of course) are very well
possible. This would break in the rendernodepaintable when adding a
transform, which divides by width/height of the rendernode.
2019-01-13 08:39:05 +01:00
Timm Bäder
269535c844 overlay: Blur the clipped node, not clip the blurred node
Blurring is a lot more expensive than clipping, so try to blur less by
clipping first.
2019-01-13 08:23:25 +01:00
Timm Bäder
c7f773f3e3 overlay: Trivial indentation fix 2019-01-13 08:23:25 +01:00
Timm Bäder
c6da0c9a7a demo: Fix tranparency overlay demo
We'd like the rose picture to be bigger than 16×16. Also remove the
scrolledwindow since the GtkPicture now automatically scales down the
rose image. This also fixes the picture always being allocated at y=0.
2019-01-13 08:23:25 +01:00
Timm Bäder
d098cd5865 overlay: Don't offset the main window snapshot
We need the node without an offset applied.

Fixes the rose picture being offset in tests/testoverlay
2019-01-13 08:23:25 +01:00
Timm Bäder
4dc8ab58a3 testoverlay: Re-enable blurring
Accidentally disabled in 8b14c8d0a8
2019-01-13 08:23:25 +01:00
Timm Bäder
5680393f9d label: Add missing nullable annotation 2019-01-13 08:23:25 +01:00
Piotr Drąg
aadcec3d1e Update Polish translation 2019-01-12 13:19:35 +01:00
Timm Bäder
5fd936beef spinbutton: Use increment/decrement icon names
And add list-{remove,add}-symbolic as fallback.

Fixes #1569
2019-01-11 18:29:20 +01:00
Timm Bäder
563b80d434 label: Skip updating link state if we have no layout
This can happen whenever the ::activate-link handler sets different
markup on the label, causing all links to be recreated. In this case,
the GtkLabelLink* passed to emit_activate_link is garbage after the
g_signal_emit call and we shouldn't try to do anything with it.

Fixes #1498
2019-01-11 17:46:12 +01:00
Timm Bäder
f4f0f0e6a0 snapshot: Get new GArray item directly
Instead of building it up ourselves, then coping it into the GArray and
then getting the last element of that array.
2019-01-11 17:02:23 +01:00
Emmanuele Bassi
ba9b0c6f7d Use the IEC power symbols for GtkSwitch labels
Unicode 9.0 introduced glyps for the "on" and "off" power states, in the
form of:

 - U+23FD POWER ON SYMBOL, or ⏽
 - U+2B58 HEAVY CIRCLE, or ⭘

With `HEAVY CIRCLE` as "power off symbol" selected to avoid adding yet
another circle to the standard.

Since we moved GtkSwitch to always show glyphs instead of (translatable)
strings, asking the localisation teams to either come up with a suitable
short string to replace the English "ON" and "OFF", or to fall back to
Unicode glyphs, we should ensure we're using the appropriate symbols to
begin with.

See also: gtk!503 for the corresponding gtk-3-24 change.
2019-01-11 15:25:30 +00:00
Timm Bäder
3ce3de98da Merge branch 'wip/muktupavels/listbox-master' into 'master'
listbox: set selected_row before emitting signal

See merge request GNOME/gtk!502
2019-01-11 11:38:27 +00:00
Alberts Muktupāvels
1cd934e105 listbox: set selected_row before emitting signal
Signal emittion was added in 6f857f87dc commit and it seems that
this is only place where selected_row is set after emitting signal.

Because of this gtk_list_box_get_selected_row currently returns NULL
as selected row if selection mode is set to GTK_SELECTION_BROWSE.
2019-01-11 13:19:28 +02:00
Timm Bäder
dc1d3824a2 Merge branch 'wip/dboles/EventControllerKey-docs-4' into 'master'
EventControllerKey: Add missing documentation bits

See merge request GNOME/gtk!454
2019-01-11 09:39:25 +00:00
Matthias Clasen
927e49ed86 switch: Always use I/O
This allows for smaller switches, and goes better with
modern themes that have round switches.
2019-01-10 17:21:48 -05:00
Timm Bäder
d55fc8b7b1 gl renderer: Dont't try to draw glyphs at scale 0
Fixes #1475
2019-01-10 17:14:48 +01:00
Timm Bäder
e72d0a9118 gl glyphcache: Only support one dirty glyph per atlas 2019-01-10 16:49:19 +01:00
Timm Bäder
8b14c8d0a8 testoverlay: Fix fancy effect 2019-01-10 16:49:19 +01:00
Timm Bäder
913b4fcc49 iconcache: Remove unused defines 2019-01-10 16:49:19 +01:00
Timm Bäder
fb7d033953 gl renderer: Remove debug code 2019-01-10 16:49:19 +01:00
Timm Bäder
cfa440bbae gl renderer: Fix hidpi transform nodes 2019-01-10 16:49:19 +01:00
Timm Bäder
7ac9fe3b60 shadowvalue: Remove unused API 2019-01-10 16:49:19 +01:00
Timm Bäder
b0a8b7da63 gl renderer: Only compile the vertex shader once
All our programs use the same vertex shader, so don't compile it over
and over again. This improves startup times by at least 0.001%, I swear.
2019-01-10 16:49:19 +01:00
Timm Bäder
b2ff6e91cd gl renderer: Don't forget the offset when rendering blur nodes 2019-01-10 16:49:19 +01:00
Daniel Mustieles
b4d906c464 Update Spanish translation 2019-01-10 08:50:55 +00:00
Timm Bäder
ae03caacc4 Merge branch 'patch-1' into 'master'
Fix a typo in “popup-context-menu” documentation.

See merge request GNOME/gtk!500
2019-01-10 06:23:09 +00:00
bodqhrohro
ec22646210 Fix a typo in “popup-context-menu” documentation. 2019-01-09 14:24:29 +00:00
Timm Bäder
ba1644cba1 Merge branch 'wip/sadiq/750-gtk4' into 'master'
gtkpopover: Fix popover when parent widget is partially visible

Closes #750

See merge request GNOME/gtk!496
2019-01-09 11:53:45 +00:00
Mohammed Sadiq
d11bc68b27 gtkpopover: Fix popover when parent widget is partially visible
fixes https://gitlab.gnome.org/GNOME/gtk/issues/750
2019-01-09 17:12:23 +05:30
Daniel Mustieles
5720e406b9 Updated Spanish translation 2019-01-09 09:52:53 +01:00
Emmanuele Bassi
b3f8f358b5 Merge branch 'meson-warning' into 'master'
build: Avoid a Meson deprecation warning

See merge request GNOME/gtk!493
2019-01-08 14:59:21 +00:00
Emmanuele Bassi
e458ea2f3d build: Avoid a Meson deprecation warning
Using an empty `configuration_data` object to copy a configuration file
is deprecated since Meson 0.47 (released July 2018); the equivalent
behaviour is available by using `copy: true`.
2019-01-08 14:46:46 +00:00
Benjamin Otte
b6d8d3975e revealer: Handle child-visible properly
The target position is irrelevant for determining if the child should be
visible. When the current position is 0, it needs to be hidden, period.

Fixes #1355
2019-01-08 01:29:41 +01:00
Benjamin Otte
5e96129be1 settings: Don't special case IM modules
The previous fixes made it unnecessary to hardcode IM modules for
different display types. The code now automatically skips system IM
modules for other displays.
2019-01-08 00:41:12 +01:00
Benjamin Otte
0ef7d07880 immodule: Check if module matches display
When loading IM modules from environment variables or GtkSettings, we
would accept "xim" on Wayland. That is a bad idea.
2019-01-08 00:41:12 +01:00
Benjamin Otte
545e95bb5c immodule: Don't load unsupported IM module
The code would technically allow loading the xim module when X11 support
was not compiled in.

This is probably an artificial concern, because it's pretty hard to
compile XIM support without X11 support, but it makes the code clearer,
so there we go.
2019-01-08 00:41:12 +01:00
Benjamin Otte
ca76675a69 immodule: Pass a GdkDisplay for default context ID
After all, the context depends on the display - we want to use the
wayland context for Wayland,  xim for X11 and so on.
2019-01-08 00:41:12 +01:00
Benjamin Otte
16d4ce4d03 immulticontext: Don't have a global_context_id
Context IDs are dependant on the display - both because displays can use
different backends, but also because changing the GtkSetting is a
per-display operation.

So just remove the cache.
If it turns out we need a per-display cache, we can add one to
GtkSettings.
2019-01-08 00:41:12 +01:00
Olivier Fourdan
58e273d056 a11y: Check display in *grab_cell_focus()
Calling the accessibility function `grab_focus()` on a `GtkCell` under
Wayland will cause the client to crash.

This is another case of `gdk_x11_get_server_time()` being called
regardless of the actual windowing backend used.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1507
2019-01-07 21:06:57 +00:00
Carlos Garnacho
1c14285dee flowbox: Accept multipress gesture late
So it's able to operate properly with the DnD gesture set by
gtk_drag_source_set(). We usually just react on button release,
that's the right time to claim the gesture.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1557
2019-01-07 21:01:59 +00:00
Daniel Boles
cd69570e78 searchenginequartz: Fix naming of Beagle @ comment
As funny as that is, it's not very instructive. :P

https://gitlab.gnome.org/GNOME/gtk/merge_requests/490#note_400993
2019-01-07 20:46:08 +00:00
John Ralls
52b9e4703b [GtkSearchEngineQuartz] Limit the returned hits.
When the result set is larger than the limit.
2019-01-07 20:46:08 +00:00
Daniel Boles
d7193eaf8b [GtkSearchEngineQuartz] Resolve the path to a GtkFile* for the hit list.
Instead of a char* path, which the search_hit parser doesn't expect,
causing a crash.

Closes: $https://gitlab.gnome.org/GNOME/gtk/issues/815
2019-01-07 20:46:08 +00:00
Carlos Garnacho
b52dea7a10 Merge branch 'fix-corner-resize' into 'master'
Fix resize corners

See merge request GNOME/gtk!481
2019-01-07 18:14:33 +00:00
Matthias Clasen
7bb5888272 Merge branch 'commit-docs' into 'master'
docs: Move commit style docs to the contribution guide

See merge request GNOME/gtk!358
2019-01-07 16:44:41 +00:00
Ryuta Fujii
4404afc9f3 Update Japanese translation 2019-01-05 01:16:56 +00:00
Ryuta Fujii
dadac6a9e1 Update Japanese translation
(cherry picked from commit 69ddfcf1ed)
2019-01-04 22:21:43 +00:00
Aurimas Černius
210a06174d Updated Lithuanian translation 2019-01-04 23:23:00 +02:00
Timm Bäder
f9a5a474f0 imcontextwayland: (Hopefully) fix if expression 2019-01-04 05:55:26 +01:00
Piotr Drąg
c51f1fda28 Update POTFILES.in 2019-01-03 19:21:09 +01:00
Timm Bäder
ea3d0c0f01 buttonbox: Remove redundant if statement
This used to do something in the past.
2019-01-03 08:57:16 +01:00
Timm Bäder
2c1198f6c2 colorchooser: Remove extra custom color 2019-01-03 08:56:46 +01:00
Timm Bäder
9d3120cc1e popover demo: Fix size-allocate callback signature 2019-01-03 08:56:40 +01:00
Timm Bäder
66d3aa8101 window: Fix state_flags_changed impl name
This is unrelated to GdkSurface and was changed by accident.
2019-01-03 08:56:34 +01:00
Timm Bäder
0530637fef stack: Don't queue an unnecessary redraw
Both queue_allocate and queue_resize already queue a draw.
2019-01-03 08:52:35 +01:00
Timm Bäder
3d6bdb9af3 entry: Remove unused struct 2019-01-03 08:52:08 +01:00
Matthias Clasen
7e7c90961c Check for the session bus before using it
Patch by Chris Allen, #475
2019-01-02 20:35:19 -05:00
Matthias Clasen
3da9280a8a Merge branch 'wip/nbenitezl/move-bookmark-placeholder-index-4' into 'master'
gtkplacessidebar.c: move bookmark at the placeholder index

See merge request GNOME/gtk!459
2019-01-03 01:27:49 +00:00
Matthias Clasen
ed17a8ddd7 Merge branch 'patch-1' into 'master'
Zero-fill new GtkTextIter

See merge request GNOME/gtk!455
2019-01-03 01:02:07 +00:00
Matthias Clasen
cd7e70680c Merge branch 'wip/carlosg/imwayland-for-master' into 'master'
Use zwp_text_input_v3 on gtk4

Closes #1317 and #1525

See merge request GNOME/gtk!462
2019-01-03 00:36:35 +00:00
Matthias Clasen
a80007ac12 Fix XChangeProperty calls
They must be long...

Closes: #1556
2019-01-02 19:26:56 -05:00
Matthias Clasen
dc68d04c32 Fix resize corners
I was stuck in an X session and noticed that my resize corners
all got east or north cursors. It turns out that gnome-shell
does not properly advertise support for edge constraints under X11,
and the absence of that makes the code for determining the edge
under the cursor misbehave.

This change should fix that.
2019-01-02 19:08:02 -05:00
Timm Bäder
bd95e16372 Merge branch 'wip/carlosg/revealer-fix-interrupted-animations-master' into 'master'
revealer: Fully set the target state if unmapped during animation

See merge request GNOME/gtk!466
2019-01-02 08:50:25 +00:00
Timm Bäder
c1e1e2da80 image: Avoid some unnecessary signal connections
Equivalent if fd9879e5ff but for GtkImage.
2018-12-31 12:44:02 +01:00
Timm Bäder
ea8f1469c1 image: Indentation fix 2018-12-31 12:44:02 +01:00
Timm Bäder
1d3aa9207c gl renderer: Add a clip stack
So we can check that the currently set clip is the first one and now
intersect with it. This first clip is always the entire viewport or the
entire render_area and we don't want to end up drawing things to a
texture because of it.
2018-12-31 12:44:02 +01:00
Timm Bäder
b4f2a3416e picture: Avoid some unnecessary signal connections
We don't need to ever invalidate the picture size if the paintable tells
us its size is static. Same for the contents.
2018-12-31 12:44:02 +01:00
Timm Bäder
3b46e2a558 image: Remove private struct from public header 2018-12-31 12:44:02 +01:00
Daniel Boles
480a04131c CellAccessible: Fix return type of row|column_span
See:
 * c876c74eb7
 * 63e0eb5de5
2018-12-30 18:15:11 +00:00
Jordi Mas
171a710a23 Update Catalan translation 2018-12-29 09:31:36 +01:00
Emmanuele Bassi
4f532a414c docs: Clarify the section on dependencies 2018-12-28 18:44:36 +00:00
Emmanuele Bassi
3f567781dd docs: Clarify the section on commit access
The section is about rules for direct commit access to the upstream
repository, so let's be more clear about it.
2018-12-28 18:44:36 +00:00
Emmanuele Bassi
0397c8b628 docs: Clarify autoclosing issues syntax
Link to the GitLab documentation, and clarify that if no single commit
in a merge requests closes an issue, you should add a reference to the
issue in the commit message anyway.
2018-12-28 18:44:36 +00:00
Emmanuele Bassi
3939824d11 docs: Make the contribution guide slightly more friendly
This is an important document for newcomers, so we should err on the
side of being more detailed on what kind of contributions we expect,
and how we expect them.

The text is heavily modelled on the contributing-template by Nadia
Eghbal available here:

  https://github.com/nayafia/contributing-template
2018-12-28 18:44:36 +00:00
Emmanuele Bassi
d7cafca118 docs: Move commit style docs to the contribution guide
There's no point in having a separate file detailing how commits ought
to work, considering we already have a contribution guide.
2018-12-28 18:28:52 +00:00
Jordi Mas
d10709c917 Update Catalan translation 2018-12-28 09:55:51 +01:00
Jordi Mas
e9d4823c57 Update Catalan translation 2018-12-25 09:57:57 +01:00
Jordi Mas
06d764d046 Update Catalan translation 2018-12-24 17:38:01 +01:00
Christoph Reiter
325badc3eb Merge branch 'fix-typo-win32-compilation-speedup-macro-gtk4' into 'master'
Win32: Fix typo on compilation speedup macro define [Gtk4]

See merge request GNOME/gtk!473
2018-12-22 17:54:08 +00:00
Tomasz Miąsko
c665a1d5a5 Annotate values of PRIORITY constants
g-ir-scanner incorrectly evaluates macro definition that include
references to other macro definitions. Provide a correct value as an
annotation.

Differences in generated gir files:

```diff
@@ -19017 +19017 @@
-    <constant name="PRIORITY_REDRAW" value="20" c:type="GDK_PRIORITY_REDRAW">
+    <constant name="PRIORITY_REDRAW" value="120" c:type="GDK_PRIORITY_REDRAW">
@@ -74229,3 +74229,3 @@
     </constant>
-    <constant name="PRIORITY_RESIZE" value="10" c:type="GTK_PRIORITY_RESIZE">
+    <constant name="PRIORITY_RESIZE" value="110" c:type="GTK_PRIORITY_RESIZE">
       <doc xml:space="preserve">Use this priority for functionality related to size allocation.
@@ -106786,3 +106786,3 @@
     <constant name="TEXT_VIEW_PRIORITY_VALIDATE"
-              value="5"
+              value="125"
               c:type="GTK_TEXT_VIEW_PRIORITY_VALIDATE">
```

See !472
2018-12-22 18:52:20 +01:00
Jordi Mas
c7f1a275ac Update Catalan translation 2018-12-22 10:33:41 +01:00
Luca Bacci
a52989842e Win32: Fix typo on compilation speedup macro define
There is a typo, the correct macro to define is WIN32_LEAN_AND_MEAN.
After this change <shellapi.h> must be included in order to use
ExtractIconExW().
2018-12-22 01:18:17 +01:00
Mohammed Sadiq
1df276f263 mediastream: Fix possible memory leak
@error is (transfer full).  So the error passed should be freed if not used
2018-12-20 10:26:56 +05:30
Carlos Garnacho
615f10f7c8 revealer: Fully set the target state if unmapped during animation
If the revealer is told do animate and then unrealize itself, we do
(correctly) stop the animation, but used to do a shortcut where we
just set the target state as current.

Other things are dependent on the animation properly finishing though,
like the contained widget child visibility. This may lead to inconsistent
state where gtk_revealer_get_child_revealed() returns TRUE but the child
widget is unmapped, or vice-versa.

Fully finish the animation here, so the child state is coherent the next
time the revealer is mapped. We can also skip notifying on the property
since it will be handled by gtk_revealer_set_position().
2018-12-19 20:53:40 +01:00
Peter Hutterer
38cba6895a x11: make the tool lookup dependent on the hw id as well
Tools on the same physical item have the same serial number, so the eraser
and the pen part of a single pen share that serial number. With the current
lookup code, we'll always return whichever tool comes first into proximity.

Change the code to use the hw id in addition to the serial number, this way we
can differ between two tools.
2018-12-18 21:41:49 +01:00
Peter Hutterer
e95e045898 x11: don't add unknown tools to our list
Generic tools (Bamboo, built-in tablets) always have the same serial number
assigned by the wacom driver. This includes the touch tool when the wacom
driver handles the touch evdev node (common where users require the wacom
gestures to work).

When the first device is the touch device, a tool is created with that serial.
All future tools now return the touch tool on lookup since they all share the
same serial number. Worse, this happens *across* devices, so the pen
event node gets assigned the touch tool because they all have the same serial.

Since we don't actually care about the touch as a tool, let's skip any unknown
tool. This captures pads as well.
2018-12-18 21:41:09 +01:00
Peter Hutterer
1b730dcf31 x11: get the tool type from the wacom driver properties
Any wacom device currently sets the tool type to UNKNOWN. The wacom driver has
a property that exports the tool type as one of stylus, eraser, cursor, pad or
touch. Only three of those are useful here but that's better than having all
of them as unknown.
2018-12-18 21:41:08 +01:00
Carlos Garnacho
beb9ee6d4a build: wrap IM protocol building under have_wayland altogether
We poke variables that might not be defined if the wayland backend
is disabled.
2018-12-18 20:51:53 +01:00
Carlos Garnacho
8ce6d03c7b imwayland: Respect maximum length of 4000 Bytes on strings being sent.
Hitting the limit will raise protocol errors.
2018-12-18 20:38:44 +01:00
Carlos Garnacho
904202a636 imwayland: Plug leaks
The various strings (pending/current preedit, surrounding, and commit
buffer) are being leaked in the case of GtkIMContext destruction.
2018-12-18 20:38:44 +01:00
Dorota Czaplejewicz
7a0b6a3639 imwayland.c: fix formatting 2018-12-18 20:38:44 +01:00
Dorota Czaplejewicz
b465e04ae2 imwayland: rearrange functions to remove prototypes 2018-12-18 20:38:41 +01:00
Dorota Czaplejewicz
f67627875f imwayland: Handle enter and leave events
Before this patch, imwayland would assume that text-input enter and leave events follow the general (wl_keyboard) focus, and was unable to handle the situation where they would not be provided at the same time.
2018-12-18 20:27:12 +01:00
Carlos Garnacho
8912dc226c imwayland: Collect return value from ::delete-surrounding signal
There's not much we can do about the signal not being handled, but
we should fetch the return value anyway.
2018-12-18 20:27:12 +01:00
Dorota Czaplejewicz
12ac9f351e imwayland: Don't reset serial while text-input is alive
The serial number is a persistent property of the text-input object.
2018-12-18 20:27:12 +01:00
Dorota Czaplejewicz
c4b4e90f98 imwayland: Fix clearing of preedit text in webkitgtk
Fixes webkitgtk misbehaviour as outlined in https://gitlab.gnome.org/GNOME/gtk/issues/1316#note_312942 , which was introduced in 49b17e6c.
The preedit will be cleared on exit only if it is already present.
2018-12-18 20:27:12 +01:00
Dorota Czaplejewicz
fcf28ded42 imwayland: Fix clearing of preedit text
Fixes terminal emulator misbehaviour as outlined in https://gitlab.gnome.org/GNOME/gtk/issues/1316, which was introduced in 49b17e6c. The original commit cleared preedit text by setting it to an empty string, which still counted as existing preedit. The fix sets preedit string to null, which is correctly understood as not present.
2018-12-18 20:27:12 +01:00
Carlos Garnacho
1e69d248cb modules: Check current context before retrieving surrounding
There may be situations where this might get called while the
currently focused context just went away (eg. after setting the
text widget unsensitive).

Closes: #1317
2018-12-18 20:27:12 +01:00
Dorota Czaplejewicz
c49b29fa53 imwayland: clear preedit on focus out 2018-12-18 20:27:12 +01:00
Dorota Czaplejewicz
024220aee8 imwayland: Add text-input-unstable-v3 support
The wayland input module now represents text-input-unstable-v3 support, while the old module supporting gtk-text-input was renamed to gtkwayland.
2018-12-18 20:27:12 +01:00
Benjamin Otte
1423265610 gstmedia: Implement error handling.
I wonder who forgot that.
Whoops.
2018-12-18 02:04:54 +01:00
Benjamin Otte
89c48a08a0 mediastream: Allow multiple calls to gtk_media_stream_error()
Just ignore all further ones.
2018-12-18 02:04:16 +01:00
Benjamin Otte
c30968861f a11y: Fix function return type
Typo right there.
2018-12-18 01:20:36 +01:00
Daniel Boles
a8ac6f833c RGBA: tiny grammar improvements in to_string doc 2018-12-17 20:49:34 +00:00
Daniel Boles
271acaff53 RGBA: Consistently use “” around inline arg names
instead of being inconsistent and not using them later, which leaves a
bunch of single letters floating among real words, not the prettiest.
2018-12-17 20:49:34 +00:00
Daniel Boles
c35e0cba39 RGBA: Fix example to_string output for reality/CSS
* We don't output spaces anywhere in the code, unlike the doc suggested.
* CSS explicitly forbids whitespace between function names and lparens:
  https://stackoverflow.com/questions/13877198
2018-12-17 20:49:34 +00:00
Nelson Benítez León
65240967e4 gtkplacessidebar.c: move bookmark at the placeholder index
As that index is set in drag_motion_callback() and visually shown
on the widget as a drop target hint.

https://bugzilla.gnome.org/show_bug.cgi?id=787356
https://gitlab.gnome.org/GNOME/gtk/issues/904
2018-12-17 19:19:20 +00:00
Christoph Reiter
a99bd2a422 ci: Update Docker image to Fedora 29 and meson to 0.49.0 2018-12-16 21:33:22 +01:00
Orivej Desh
3ec2d5fa38 Zero-fill new GtkTextIter
iter_init_common() is used on uninitialized GtkTextIter, and since neither it
nor its callers initiliaze its padding fields, they contain garbage.

This is a problem for Go - which checks that structs passed to C functions do
not contain pointers to Go-allocated memory - when the garbage happens to be
such a pointer.  Although Go zero-fills all GtkTextIter that it allocates, this
does not help when GTK functions such as insert_pixbuf_or_widget_segment called
for gtk_text_buffer_create_child_anchor copy garbage from their stack-allocated
GtkTextIter into a clean iter.  To work around this a GtkTextIter has to be
discraded after use in text buffer anchor inserting functions:
https://github.com/gotk3/gotk3/pull/307
2018-12-16 17:03:47 +00:00
Andre Klapper
a0b5b39bbd Replace git.gnome.org by Gitlab URL in <GitRepository> in DOAP file 2018-12-16 00:45:41 +01:00
Andre Klapper
ab52862a5d Replace Bugzilla by Gitlab URL in DOAP file 2018-12-15 23:32:24 +01:00
Daniel Boles
a350192ea2 EventControllerKey: Add missing documentation bits 2018-12-14 23:28:54 +00:00
Emmanuele Bassi
cb0d8d6d90 Remove gtk_widget_show_all() call
Extraneous chunk from 7601bca758.

Cherry picked from gtk-3-24, which has a gtk_widget_show_all() function.
2018-12-14 20:38:03 +00:00
Matthias Clasen
86ad3e8f2a Merge branch 'master' into 'master'
A11y: Add support for AtkTableCell

See merge request GNOME/gtk!411
2018-12-14 19:25:27 +00:00
Mike Gorse
8f29a0633b A11y: Add support for AtkTableCell 2018-12-14 19:25:27 +00:00
António Fernandes
7601bca758 placesview: List only available protocols as available
We display a list of supported protocols in the server_addresses_popover.

However, this curated list contains protocols which may or may not be
available, depending on the respective gvfs backend being installed.

So, populate the list only with protocols which are available.

https://gitlab.gnome.org/GNOME/gtk/issues/1476
2018-12-14 12:30:52 -05:00
António Fernandes
3bbfff9280 placesview: Set .error style if unsupported protocol
When the user types an address with a schema that is not supported,
the Connect button doesn't become sensitive, but there is no visible
feedback at all.

This feels unresponsive and leaves the user clueless.

While it doesn't help explain why the address doesn't work, this will
provide a hint that the input was acknowledged but doesn't work.

https://gitlab.gnome.org/GNOME/gtk/issues/1476
2018-12-14 12:28:47 -05:00
Matthias Clasen
5b049364dc Merge branch 'fix-polygon-svg-recolor' into 'master'
icontheme: Recolor <polygon> elements in SVGs too

See merge request GNOME/gtk!443
2018-12-14 17:02:30 +00:00
Timm Bäder
7997bdc5d7 Merge branch 'demo-combobox-typo-gtk4' into 'master'
demos/gtk-demo/combobox: fix typo

See merge request GNOME/gtk!444
2018-12-13 12:05:14 +00:00
LRN
04aebda1e9 Merge branch 'win32-honest-clipboard-gtk4' into 'master'
GDK W32: Be honest about supported clipboard formats (GTK4)

See merge request GNOME/gtk!399
2018-12-11 13:47:57 +00:00
Jakub Steiner
77792b6475 Revert "Adwaita: GNOME 3.32"
This reverts all GNOME 3.32 styling from master
2018-12-10 21:22:56 +01:00
Christoph Reiter
5612e84551 GDK W32: Always set gtk-font-name to the active UI font. Fixes #1484
This makes apps use "Segoe UI 9" by default instead of whatever matches "Sans 10".
It also cleans up the code and uses some new pango API while at it.

This was previously disabled in 9e686d1fb5 because it led to a poor glyph coverage
on certain versions of Windows which don't default to "Segoe UI 9" (Chinese, Korean, ..)
because the font fallback list was missing in pango.

This is about to get fixed in https://gitlab.gnome.org/GNOME/pango/merge_requests/34
so enable it again when we detect a new enough pango version.

(See !436 for the original MR)
2018-12-10 09:00:50 +01:00
Jeremy Bicha
462193ae26 demos/gtk-demo/combobox: fix typo
Fix typo that prevented the P-S submenu from displaying correctly
2018-12-09 23:30:38 -05:00
Matej Urbančič
80a90a084e Updated Slovenian translation 2018-12-09 21:26:33 +01:00
Christoph Reiter
2f29cb9e6f win32: Don't multiply the scroll event deltas by the Windows scroll lines setting. See #1408
GTK widgets expect the scroll deltas to be 1 or -1 and calculate a scroll value from that.
Multiplying the delta by the Windows scroll line setting (which defaults to 3) results
in a much larger delta and vastly different behaviour for running a GTK app on Windows
vs on Linux. For example text view and tree view scroll by 9 lines per scroll wheel tick
per default this way while on Linux it is around 3.

Remove the multiplication for now.

See !426 for the gtk3 MR
2018-12-08 15:28:37 +01:00
Christoph Reiter
67fdfca3ba GDK W32: set default settings for fontconfig.
Enables hinting, antialiasing and set the subpixel orientation according to the
active clear type setting. This ensures that font rendering with the fontconfig backend
looks similar to the win32 backend, at least with the default system font.

See !437
2018-12-08 14:54:15 +01:00
Philip Chimento
284d909347 icontheme: Recolor <polygon> elements in SVGs too
Otherwise, it's possible to have a symbolic icon where some of the
shapes keep the #bebebe chroma key color.
2018-12-08 01:40:32 +00:00
Timm Bäder
43ef4d7b53 menushell: Listen to non-primary button clicks
Menus should also be deactivated on right-button clicks.
2018-12-07 17:03:45 +01:00
Timm Bäder
3ce45508e1 gl renderer: Track border width state separately 2018-12-07 16:36:10 +01:00
Timm Bäder
57efdcfbbe gl renderer: Ignore subsequent render target ops 2018-12-07 16:36:10 +01:00
Timm Bäder
df817bd118 gl renderer: Ignore viewport ops to the same viewport 2018-12-07 16:36:10 +01:00
Timm Bäder
82a1d4f280 gesturestylus: Use proper syntax when refering to signals 2018-12-07 16:36:10 +01:00
Jakub Steiner
80f2660838 Adwaita: regenerate CSS
- for the previous patch
2018-12-07 12:00:21 +01:00
Jakub Steiner
edd4d2918a Merge branch 'context_menus' into 'master'
Adwaita GTK Theme: Add bigger shadow and border-radius to menus

See merge request GNOME/gtk!432
2018-12-07 09:58:56 +00:00
Jakub Steiner
320d272ec8 Adwaita: buttons & headerbar tweaks
- tone down the button z-depth
- flatter headerbars
2018-12-05 16:21:45 +01:00
Daniel Boles
72d09d22e9 Box, Grid: Improve various bits of documentation
Issue #1495 showed that the docs of GtkGrid retain outdated implications
that (as was once, but is no longer, the case) it is intended to replace
GtkBox, by discussing HfW and widget properties in a way that suggests
GtkBox can't handle them. But of course it does, and it's preferable for
simple single-row/column cases. Worse, we said GtkGrid “provides exactly
the same functionality” for the latter case, but the original point of
that Issues was that it doesn’t, at least for CSS positional selectors!

Box:
• Use an actually meaningful @Short_description.
• Remove unhelpful @See_also references to unrelated containers.
• Remove references to “rectangular area”: it might be another shape
  via CSS, or “rectangular” might falsely imply 2 dimensions of children.
• Mention Orientable:orientation.
• Emphasise usefulness of :[hv]align for allocating in the other axis.
• Don’t say that Grid “provides exactly the same functionality” for a
  single row or column, since (A) it is overkill for that case and (B)
  said Issue proved that it *doesn’t* for CSS child order, for example.

Grid:
• Don’t dwell on widget properties and height-for-width in a way that
  wrongly implies that Box can’t handle those (or Grid can better). In
  fact, just get rid of that bit altogether: Box handles them fine, and
  such wording was only needed years ago for migration from GTK+ 2 to 3.
• Point to GtkBox as being preferred for the simple row/column use case.
2018-12-04 20:43:19 +00:00
Timm Bäder
a2a4603329 Merge branch 'bye-app-menu-gtk4' into 'master'
widget-factory: move app menu contents to primary menu (gtk4)

Closes #916

See merge request GNOME/gtk!365
2018-12-04 14:32:22 +00:00
Timm Bäder
8de1ba2cc4 application: Remove dead assignment 2018-12-04 06:30:47 +01:00
Timm Bäder
2644da106b button: Remove some dead code 2018-12-04 06:30:47 +01:00
Timm Bäder
4860410c4a button: Remove some unnecessary includes 2018-12-04 06:30:47 +01:00
Timm Bäder
4b3a94f382 gl renderer: Fix remaining TODO about offset nodes
All of the nodes should now support offsets.
2018-12-04 06:30:47 +01:00
Timm Bäder
d67dacedba gl renderer: transform nodes: offset 2018-12-04 06:30:47 +01:00
Timm Bäder
e1feb1b712 gl renderer: Clip nodes: offset 2018-12-04 06:30:47 +01:00
Timm Bäder
e8670c89ae gl renderer: Linear gradients: offset 2018-12-04 06:30:47 +01:00
Timm Bäder
b4f918904c gl renderer: Outset shadow nodes: offset 2018-12-04 06:30:47 +01:00
Timm Bäder
aead150ce2 gl renderer: Care about offset when rendering border nodes 2018-12-04 06:30:47 +01:00
Timm Bäder
fd47e57e4b gl renderer: care about offset when rendering shadow nodes 2018-12-04 06:30:47 +01:00
Matthias Clasen
1e129c1dd2 emoji chooser: Actually force Emoji presentation
The previous commit was using the text presentation selector
instead of the Emoji one. Oops.
2018-12-03 21:47:53 -05:00
Timm Bäder
e0a7d28339 testuite Add translucent offscreen rendering test case 2018-12-02 16:15:17 +01:00
Timm Bäder
ad93806005 showrendernode: Fix GtkImage size
Make sure we show the paintable unscaled.
2018-12-02 16:14:31 +01:00
Timm Bäder
2b95a5daee gl renderer: Remove blend shader
It's unused.
2018-12-02 16:04:40 +01:00
Timm Bäder
0681c5d5bc gl renderer: Reset opacity when rendering to a texture
The opacity will already be applied when rendering the final texture.
2018-12-02 16:03:08 +01:00
Timm Bäder
b19926c079 gl renderer: Add function to draw debug rectangle 2018-12-02 14:31:57 +01:00
Timm Bäder
692ed4f994 gl renderer: Refactor render op builder 2018-12-02 14:17:18 +01:00
Timm Bäder
ad759307f8 gl renderer: Add more node types to print_render_node_tree
debugging ++
2018-12-02 13:39:55 +01:00
Timm Bäder
fb6adaaa62 window: Don't try to size-allocate unmapped popovers
The gtk_widget_size_allocate call won't do anything anyway.
2018-12-02 13:25:43 +01:00
Timm Bäder
58a4ae94e9 gl renderer: Use ops_transform_bounds_modelview in more places 2018-12-02 13:25:43 +01:00
Timm Bäder
9df9087a13 gl renderer: Add NodeSample
As a quick way of checking what a particular sample of nodes (e.g. all
offset node children) are made up of.
2018-12-02 13:25:43 +01:00
Timm Bäder
f8df527c68 sizerequest: Directly query new request_mode
We are already inside the function that populates the size request
cache, so do it here instead of implicitly in get_request_mode.
2018-12-02 13:25:43 +01:00
Timm Bäder
71512cf9ad gl renderer: Move geometry calculation further down
We don't need it above, so move it to where it belongs.
2018-12-02 13:25:43 +01:00
Timm Bäder
79cc8fb261 gl renderer: Apply offset with scale 2018-12-02 13:25:43 +01:00
Timm Bäder
2831dbb110 gl renderer: Refactor add_offscreen_ops
Use a graphene_rect_t for the node bounds instead of 4 floats.
This makes it simpler to pass the size in without the offset applied.
2018-12-02 13:25:43 +01:00
Timm Bäder
933acb3682 gl renderer: Add offscreen ops without offset applied
When doing color matrix nodes. This fixes color matrix node with scale =
2.
2018-12-02 13:25:43 +01:00
Timm Bäder
574ebafa46 gl renderer: Reset offset when rendering offscreen
We want to apply the offset to the rendered texture, not to the
offscreen-rendered content.
2018-12-02 13:25:43 +01:00
Timm Bäder
74dd05b45e gl renderer: add render ops for dumping the framebuffer
So offscreen rendering can be properly debugged.
2018-12-02 13:25:43 +01:00
Timm Bäder
3eb2cef421 gl renderer: Set the render region as initial clip
So we avoid creating render ops for things outside of it.
2018-12-02 13:25:43 +01:00
Timm Bäder
94745241c2 GdkGLContext: Fix damage computation with buffer_age
As per the spec:

> The back buffer can
> either be reported as invalid (has an age of 0) or it may be
> reported to contain the contents from n frames prior to the
> current frame.

So a  buffer age of 1 means that the buffer was used in the last frame.
We were handling buffer_age==1 the same as buffer_age==0, i.e. we
returned the full damage for the surface.

[1] https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_buffer_age.txt
2018-12-02 13:25:43 +01:00
Timm Bäder
538491efa1 gl renderer: Fix only_translation check 2018-12-02 13:25:43 +01:00
Matthias Clasen
6f8c4f873d Merge branch 'force-emoji' into 'master'
Force emoji presentation

See merge request GNOME/gtk!431
2018-11-30 21:38:02 +00:00
Matthias Clasen
7a4e9fa4d3 Force emoji presentation
Append a variation selector to the Emoji sequences,
to force Emoji presentation. Without this, some
Emoji come out with text presentation by default.

Closes: Pango #334
2018-11-30 16:20:44 -05:00
Jakub Steiner
f3c704b82e Adwaita: updated switch control
- might be nasty to hide labels with CSS. We can fix properly later.
- the blue border seesm aliased when :checked
2018-11-30 20:55:00 +01:00
frederik.feichtmeier
a6a69dd567 Adapt border-radius and box-shadow of menus to popovers 2018-11-30 11:54:22 +01:00
Jakub Steiner
8921c868a5 Adwaita: shade buttons
- it was a bit too flat
2018-11-29 21:56:45 +01:00
Jakub Steiner
3f8598baa4 Adwaita: button tweaks
- step back on toning down the borders. Flatness !> legibility.
- darker active state for light
- draw gradinets from bottom up, to keep px sized shading regardless
  of button size.
2018-11-29 20:19:41 +01:00
Jakub Steiner
b5fd7b3211 Adwaita: headerbar backdrop state 2018-11-29 14:34:53 +01:00
Jakub Steiner
e9fe9410e0 Adwaita: sync headerbar styling for devel mode 2018-11-29 13:12:44 +01:00
Timm Bäder
904fd5f1fc Remove gtk_widget_intersect
It's been broken for quite a while now and doesn't make sense anymore
these days.
2018-11-29 11:14:26 +01:00
Timm Bäder
f598836d6c popover: Don't recalculate position if unmapped 2018-11-29 08:50:18 +01:00
Timm Bäder
5907ff694f gl renderer: Render non-trivial transforms to a texture
This way we can e.g. render rotated clips, borders, etc.
2018-11-29 08:50:18 +01:00
Timm Bäder
7c020bfaaa inspect-button: Remove custom pick() implementation
This was added to work around the fact that pick() does not look at
insensitive widgets at all, but the replacement didn't properly work
either.
2018-11-29 08:50:18 +01:00
Timm Bäder
2bd02d9185 popover: Get rid of a gtk_widget_get_allocation call
Use _compute_bounds instead.
2018-11-29 08:50:18 +01:00
Timm Bäder
c0cf592336 gl renderer: Cache offscreen textures per node, not size 2018-11-29 08:50:16 +01:00
Timm Bäder
12378f0afa gl renderer: Expand matrix metadata extraction
Instead of getting the translation x/y everytime we use the modelview,
get it once, when extracting the metadata. Do the same with the scale.
And save if the matrix is "simple" at all, i.e. if it only consists of a
translation and/or scale. This will be helpful later when we start
drawing transformed nodes on textures.
2018-11-29 08:23:42 +01:00
Timm Bäder
5ea211bbb1 Revert "gldriver: Don't create surfaces to upload textures"
This reverts commit 6466e53bfc.

This breaks GtkGLArea.
2018-11-29 07:39:11 +01:00
Timm Bäder
c17c18f1ae widget: Remove one translate_coordinates copy
Just use the double version in the integer version.
2018-11-29 07:39:11 +01:00
Jakub Steiner
dbde7b68c0 Adwaita: flatten the headerbar again 2018-11-28 20:28:56 +01:00
frederik.feichtmeier
95f06f6e75 Add bigger shadow and border-radius to menus
Increase the visibility of the box-shadow for menus
Introduce a border-radius variable for menus
Use this variable for all corners of menus except top for the top menus
2018-11-28 17:43:55 +01:00
Jakub Steiner
a26edd59d1 Adwaita: tune button & hederbar colors 2018-11-28 14:22:21 +01:00
Mohammed Sadiq
dcd21e12cd texttag: Replace gtk3-demo reference with gtk4-demo 2018-11-28 16:51:45 +05:30
Jakub Steiner
e5efc84eda Adwaita: buttons & headerbars
- tone down the bottom border contrast (increase bottom lightness,
  decrease overall lightness)
- darken headerbars slightly (might require darkening wm colors when
  dust settles)
2018-11-28 00:16:20 +01:00
Matthias Clasen
8035969860 Merge branch 'master-escape-included-svg' into 'master'
(#1471): base64-encode included SVGs to avoid mis-escaped characters

Closes #1471

See merge request GNOME/gtk!430
2018-11-27 20:25:28 +00:00
Federico Mena Quintero
e5f9bf2e9b (#1471): base64-encode included SVGs to avoid mis-escaped characters
We wrap SVG data from icons within another SVG with extra styling
information.  The wrapped SVG may contain characters that cannot be
part of a data: URL (https://fetch.spec.whatwg.org/#data-urls).

Librsvg 2.45 got more strict in its parsing of data: URLs; whereas
previously it ignored '#' characters in them, now it considers them to
be the start of a fragment identifier, which is not allowed in data:
URLs anyway.

To avoid unallowed characters, we now create a data: URL with a
base-64 encoded SVG.

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1471
2018-11-27 13:57:21 -06:00
Timm Bäder
0be4d31217 headerbar: Remove superfluous parentheses 2018-11-27 06:06:28 +01:00
Timm Bäder
eebb849760 widget: Query CSS values later in size_allocate
Move it below the "this widget only changed its position" check.
2018-11-27 06:00:30 +01:00
Timm Bäder
f92745aacf widget: Save baseline without CSS values applied
Similar to what we do with width/height.
2018-11-27 05:59:47 +01:00
Timm Bäder
7aee30bfc2 adwaita: icon-shadow -> -gtk-icon-shadow 2018-11-27 05:41:53 +01:00
Timm Bäder
ef751bc809 gl renderer: Use stack to keep track of modelview matrix
So we can avoid calculating metadata for matrices all the time.
2018-11-27 05:39:27 +01:00
Timm Bäder
fe49f83982 colorplane: Convert crosshair rendering to snapshot
This is slightly different than the cairo version since the
half-transparent lines now overlap but nobody can see that anyway.
2018-11-27 05:37:38 +01:00
Timm Bäder
059d9376da colorscale: Cache hue texture
Otherwise we regenerate a new one on every snapshot() call.
2018-11-27 05:37:38 +01:00
Timm Bäder
6466e53bfc gldriver: Don't create surfaces to upload textures 2018-11-27 05:37:38 +01:00
Timm Bäder
b7963a06ab widget: Parent widgets may also consume motions
This is important when the target widget of an event is not the one that
would otherwise receive the gesture. For example, the GtkSwitch
implementation currently attaches a pan gesture to the switch itself,
but the target widget below the pointer might be the switch slider or
label.

See #1465
2018-11-27 05:37:38 +01:00
Timm Bäder
eeeefb40c7 switch: Shorten size_allocate impl a bit 2018-11-27 05:37:38 +01:00
Jakub Steiner
97d8676b40 Adwaita: help fullcolor app icons
- draw a large dropshadow for aboutboxes
- draw an outline for low res

See issues #1434 and #1445.
2018-11-26 17:33:28 +01:00
Jakub Steiner
6e28d004ae Adwaita: tone down broders, buttons
- very contrasty lines feel dated in today's flat world
- tone down the contrast a little
2018-11-23 17:32:46 +01:00
Jakub Steiner
8d7bf3ad0c Adwaita: list buttons
- tone down buttons when inside lists

Fixes issue #1473
2018-11-22 13:24:49 +01:00
Timm Bäder
d76a0feef6 widget: gdk_display_get_monitor can return NULL
Fixes #1466
2018-11-20 12:45:18 +01:00
Timm Bäder
08a07d4ae5 entry: Shorten finalize implementation
By using g_clear_pointer and g_clear_object where appropriate.
2018-11-20 12:45:18 +01:00
Timm Bäder
b42d99b37e Merge branch 'zbrown/emit-transient-for' into 'master'
window: Actually emit notify::transient-for

See merge request GNOME/gtk!424
2018-11-20 11:29:18 +00:00
Zander Brown
ea487b2233 window: Actually emit notify::transient-for
Because it seems we weren't doing that
2018-11-19 21:17:01 +00:00
Timm Bäder
40ae5c1319 Merge branch 'benzea/foreach-documentation' into 'master'
container: Document that removal from foreach is permissible

Closes #1461

See merge request GNOME/gtk!423
2018-11-19 13:38:34 +00:00
Benjamin Berg
8c9c3e4426 container: Document that removal from foreach is permissible
It is permissable to remove a widget using gtk_container_remove from the
gtk_container_foreach callback handler. Document this fact to make it
more discoverable.

Fixes #1461
2018-11-19 13:58:34 +01:00
Timm Bäder
d0f4fcb6fd Merge branch 'akitouni/gdkvulkan-doc-typo' into 'master'
vulkancontext: fix typos in documentation

See merge request GNOME/gtk!417
2018-11-19 07:41:36 +00:00
Timm Bäder
4142d0a69a Merge branch 'more-nullable' into 'master'
g-i: Add some nullable annotations

See merge request GNOME/gtk!419
2018-11-19 07:40:39 +00:00
Christoph Reiter
b061821f24 g-i: Add some nullable annotations
Based on grepping arg docs for NULL.
See https://gitlab.gnome.org/GNOME/pygobject/issues/261
2018-11-18 13:36:50 +01:00
Abderrahim Kitouni
e0833e492c vulkancontext: fix typos in documentation 2018-11-17 19:35:47 +01:00
Timm Bäder
55faaf1aa1 Merge branch 'jjardon/no_G_TYPE_INSTANCE_GET_PRIVATE' into 'master'
Stop using G_TYPE_INSTANCE_GET_PRIVATE completely

See merge request GNOME/gtk!402
2018-11-15 09:59:01 +00:00
Timm Bäder
7aa02b9e95 Merge branch 'include-ft2build.h' into 'master'
font chooser: Properly include freetype headers

Closes #1432

See merge request GNOME/gtk!413
2018-11-14 13:30:28 +00:00
Timm Bäder
c65c6ba11f widget: Fix size-allocate signal docs 2018-11-13 20:54:18 +01:00
Timm Bäder
359d874ddb Use g_clear_pointer to unparent widgets 2018-11-13 20:53:14 +01:00
Timm Bäder
ade171a2ed widget: Don't pass a position to ->size_allocate
The values have been 0/0 for a long time now, so just drop the
GtkAllocation argument and replace it with width and height.
2018-11-13 16:28:54 +01:00
Timm Bäder
1f1306a53b docs: Add GtkEventControllerLegacy 2018-11-13 15:40:42 +01:00
Timm Bäder
ce3d5fcb0a vulkancontext: Add missing error switch 2018-11-13 15:28:46 +01:00
Timm Bäder
28bd56454d appchooserbutton: Remove priv pointer 2018-11-13 15:19:07 +01:00
Timm Bäder
75deff035b testappchooserbutton: Fix for class hierarchy change 2018-11-13 15:19:07 +01:00
Timm Bäder
87ee7e31a4 appchooserbutton: Inherit from GtkWidget 2018-11-13 15:19:05 +01:00
Timm Bäder
5a3ecb9703 render: Fix a position/size mixup
Fixes the foreigndrawing demo.
2018-11-13 14:10:17 +01:00
Timm Bäder
e656f66720 toolbar: Remove dead code
The size definitely changes, otherwise ->size_allocate does not get
called.
2018-11-13 14:10:17 +01:00
Timm Bäder
0d47a6c970 toolbar: Remove some unused defines 2018-11-13 14:10:16 +01:00
Matthias Clasen
39f8e1e137 wayland: Adapt to settings portal api change
ReadAll now accepts an array of patterns.
2018-11-12 13:51:56 -05:00
Carlos Garnacho
d7c2e5844b Merge branch 'scroll-event-propagation' into 'master'
eventcontrollerscroll: Conditionally propagate ::scroll

Closes #45

See merge request GNOME/gtk!250
2018-11-12 10:05:46 +00:00
Ernestas Kulik
edc4b2f7d0 eventcontrollerscroll: Conditionally propagate ::scroll
Currently, gtk_event_controller_scroll_handle_event() always returns
TRUE if it is handled, which stops the propagation of the event. If
there’s a single GtkEventControllerScroll in the widget hierarchy, that
means that no others will run, depending on the propagation phase. In
Nautilus, this can be observed when adding a scroll controller to the
GtkScrolledWindow (ctrl-scrolling controls the zoom level) - either the
scrolling or the zooming breaks.

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/45
2018-11-12 10:35:37 +01:00
Leonardo Taccari
b3ba2961d2 font chooser: Properly include freetype headers
freetype headers should be included via <ft2build.h> and then
indirectly via FT_*_H macros.

Fixes issue #1432.
2018-11-09 22:13:30 +01:00
Timm Bäder
c2c1acc73e calendar: Remove unused struct member 2018-11-09 20:18:13 +01:00
Timm Bäder
c44728282c scrolledwindow: Remove some useless code
This is all being done already be the add_class/remove_class calls
before.
2018-11-09 19:37:55 +01:00
Timm Bäder
85a002bf9f scale: Don't set label css name to "label"
That's already the css name of all labels.
2018-11-09 18:59:30 +01:00
Timm Bäder
6eba544ad4 colorscale: Remove x/y arguments from snapshot_scale
We only pass 0 anyway.
2018-11-09 18:01:58 +01:00
Jakub Steiner
f610fbfc0e Adwaita: use HIG grey for bg_color
- refresh with a light bg color, use the new color palette
2018-11-09 15:37:08 +01:00
Jakub Steiner
1e2d11cc62 Adwaita: fix osd bg color
- don't try deriving from bg_color, osd should be consistent
  for light & dark.

FIxes issue #1449
2018-11-09 11:19:41 +01:00
Adrien Plazas
f1e24ca30a Adwaita: Propagate bg color to titlebar separator descendants
Gives the same background color to all separators descending from a
title bar than to its direct childrens.

This prevents separators which are in a titlebar but not direct children
from the widget with the titlebar style class from being almost
transparent and hence it prevent them from revealing the clear color of
the window's titlebar (black).

https://gitlab.gnome.org/GNOME/gtk/issues/1231
2018-11-09 08:49:38 +01:00
Jakub Steiner
1787f04097 Merge branch 'wip/jimmac/insensitive-progress' into 'master'
Adwaita: draw insensitive progressbars

See merge request GNOME/gtk!360
2018-11-09 07:27:49 +00:00
Jakub Steiner
671f69c6ca Merge branch 'wip/jimmac/hig-colors-gtk4' into 'master'
Adwaita: use new HIG colors

See merge request GNOME/gtk!407
2018-11-09 07:25:05 +00:00
Jakub Steiner
7b51de6bbd Adwaita: use new HIG colors
- blue selection color, success & destructive colors updates
- blueish tint for dark

Addresses issue #1443
2018-11-08 16:58:13 +01:00
Timm Bäder
45b909f2c5 testpopup: Fix GtkEventControllerMotion::motion callback signature 2018-11-08 05:48:14 +01:00
Timm Bäder
0b4ee06f8e eventcontrollerlegact: Fix ::event docs
As discussed in !388.
2018-11-08 05:48:14 +01:00
Timm Bäder
797739198f icontheme: Stop exporting gtk_icon_info_new_for_file 2018-11-08 05:48:14 +01:00
Timm Bäder
0c017ff109 icontheme: Stop exporting gtk_icon_theme_color_symbolic_pixbuf 2018-11-08 05:48:14 +01:00
Timm Bäder
aad3686726 icontheme: Drop remaining emblem code 2018-11-08 05:48:14 +01:00
Timm Bäder
fe7a2635d0 icontheme: Don't reference nonexistent parameter in docs 2018-11-08 05:48:14 +01:00
Timm Bäder
2834b38d2c icontheme: Use a bit field in AsyncSymbolicData
176 -> 144 bytes
2018-11-08 05:48:14 +01:00
Timm Bäder
29563a33ba icontheme: Stop strdup'ing css colors when loading
... symbolic icons.
2018-11-08 05:48:10 +01:00
Timm Bäder
5936d7f8f2 gl renderer: Properly retrieve matrix scale
So rotating offscreen nodes works.
2018-11-08 05:13:50 +01:00
Timm Bäder
481a78eee7 widget: Avoid some more ->priv accesses 2018-11-08 05:13:50 +01:00
Timm Bäder
ac4134c298 range: Remove multipress_gesture member
We don't need it in the instance struct since we only set it up and then
access it in its signal callbacks.
2018-11-08 05:13:50 +01:00
Timm Bäder
145659af93 widget: Some whitespace fixes 2018-11-08 05:13:50 +01:00
Daniel Boles
31b8e0f109 Popover: Minimally document the ::closed signal
This is better than nothing at all. The wording is taken from Carlos's
commit message when he added this shortly before 3.12 (but skip Since).
Skip the bit from his commit message explaining what this replaced; we
don't need to say all the less good things our convenience API replaces.
2018-11-07 20:33:15 +00:00
Daniel Boles
18199a3cef testtreelistmodel: Don't use non-standard function
as per efd3758f6a strcasecmp() is not a C
standard thing (not that we bothered including any header for it anyway)
and so this test failed to build on Windows with Microsoft Visual C.
2018-11-07 20:32:55 +00:00
Daniel Boles
3194c39471 TreeMenu: Don't manually reinvent g_list_index()
g_list_index() "Gets the position of the element containing the given
data (starting from 0)." That is exactly what we were manually doing.
2018-11-07 20:32:55 +00:00
Javier Jardón
9d51a8f53a gtk/gtktoolbutton.c: Document why we need to still use G_TYPE_INSTANCE_GET_PRIVATE
This is the excellent explanation from Emmanuele at
https://gitlab.gnome.org/GNOME/gtk/merge_requests/402#note_361210:
"
Every time you instantiate a type, the instance_init() function is called for each
parent type T_p of your type T; to preserve invariants, the class pointer inside
the instance data is set to the parent type before each invocation, until you hit
your type T. This means that calling GET_CLASS() inside an instance_init() function
will give you a pointer to the class vtable for the parent type T_p while you're
iterating over parent types. What if you want to access the actual class vtable of
the type T, though? Well, you can because the actual signature of instance_init() is:

  void (* GInstanceInitFunc) (GTypeInstance *instance, gpointer g_class);

i.e. all instance_init() functions get passed the instance they are initialising
and the class vtable of the real type you're instantiating.

This is how GtkToolButton works: it "peeks ahead" at instance initialisation time,
to use the button_type class field of the actual type you're instantiating,
and calls g_object_new() with it to store the resulting object in its own private
data structure.

This whole contrived mechanism is needed to allow out-of-tree tool buttons to just
set the button type on their class init, and have their parent class create the
button they want, instead of asking all tool buttons to do this themselves and have
a virtual function called get_button() for GtkToolButton to call whenever it needs
to operate on the button instance.

Now we're coming to a close: we cannot use the G_DEFINE_TYPE macro because the
instance_init() function it creates internally will not pass the class pointer
to your custom instance_init(). Since we cannot use G_DEFINE_TYPE, we also cannot use
G_ADD_PRIVATE either.

This is the reason why, when I ported GTK 3 to the new private instance data structure
macros, I left GtkToolButton alone. I should have left a comment there, because @matthiasc
tried doing that as well, and then had to revert it in commit 1c4a7bd5. So: my bad,
sorry about that.

If we want to drop the G_TYPE_INSTANCE_GET_PRIVATE and the g_type_class_add_private() calls,
we cannot use G_DEFINE_TYPE, but what we can do is unrolling what the macros do themselves:

- add a global GtkToolButton_private_offset variable
- add a static inline gtk_tool_button_get_instance_private() that does return
(G_STRUCT_MEMBER_P (self, GtkToolButton_private_offset));
- call g_type_add_instance_private (g_define_type_id, sizeof (GtkToolButtonPrivate)) inside
gtk_tool_button_get_type() and store the result in GtkToolButton_private_offset
- replace g_type_class_add_private() inside gtk_tool_button_class_init() with
g_type_class_adjust_private_offset (klass, &GtkToolButton_private_offset)
"
2018-11-07 17:50:04 +00:00
Javier Jardón
c37c86a9bf gtk/gtktextview.c: Remove unused GTK_TEXT_VIEW_GET_PRIVATE() macro 2018-11-06 13:45:58 +00:00
Timm Bäder
b4b30b4951 Merge branch 'wip/3v1n0/recent-info-cleanup' into 'master'
gtk-autocleanups: add cleanup function for GtkRecentInfo

See merge request GNOME/gtk!409
2018-11-06 09:52:11 +00:00
Matthias Clasen
54830a2af3 wayland: Fix a thinko in settings portal support
When we decide to fall back because the settings portal
is not present, adhere to that decision elsewhere. And
treat the fontconfig-timestamp like the other special-cased
settings, with G_TYPE_NONE.
2018-11-05 18:34:13 -05:00
Marco Trevisan
9946dd2ab7 gtk-autocleanups: add cleanup function for GtkRecentInfo 2018-11-05 21:37:42 +00:00
Matthias Clasen
5028cb35bc Merge branch 'wip/settings-portal' into 'master'
settings portal

See merge request GNOME/gtk!403
2018-11-04 20:57:26 +00:00
Matthias Clasen
48b569eae0 wayland: Support the settings portal
Under Wayland, we are currently directly using GSettings
for desktop settings. But in a sandbox, we may not have
access to dconf, so this may fail. Use the new settings
portal instead.
2018-11-04 15:44:50 -05:00
Matthias Clasen
8099669466 Move the should_use_portal helper to gdk
We want to use it there too, in the future.
Update all callers.
2018-11-04 08:17:32 -05:00
Matthias Clasen
1c465604d5 Use a simpler sandbox check
No need to use the runtime dir and allocate a string.
We can just check in /.
2018-11-04 08:17:32 -05:00
Matthias Clasen
833442e1e2 Merge branch 'wip/fmuellner/deco-setting' into 'master'
wayland: Remove GNOME Classic-specific workaround

See merge request GNOME/gtk!400
2018-11-02 16:18:25 +00:00
Florian Müllner
1e39f999e3 wayland: Remove GNOME Classic-specific workaround
As GSettings now supports session-specific defaults, GNOME Classic
no longer uses a separate schema and the decoration layout is always
determined by the regular schema.

This essentially reverts commit add67b516c (although the code was
moved since then).

https://gitlab.gnome.org/GNOME/gtk/merge_requests/400
2018-11-02 16:44:33 +01:00
John Ralls
e31187e1cf GdkQuartz: Handle NULL from [NSGraphicsContext currentContext].
By returning a default surface. The situation where there's no
currentContext arises when GtkCSS is trying to determine the
layout sizes so no actual display is necessary.

Closes: #1411
2018-11-01 15:39:27 -07:00
John Ralls
e457a7823c Use [NSGraphicsContext CGContext] instead of graphicsPort after Yosemite. 2018-11-01 15:38:43 -07:00
John Ralls
88c77eb7be Update GDK_OSX versions to current MacOS release. 2018-11-01 15:38:29 -07:00
Piotr Drąg
f57d337fac Update POTFILES.in 2018-10-31 18:46:48 +01:00
Timm Bäder
60b0f48fbc Merge branch 'wip/carlosg/public-legacy-controller' into 'master'
Make legacy controller public

See merge request GNOME/gtk!388
2018-10-31 13:39:08 +00:00
Руслан Ижбулатов
4c6d60ce2b GDK W32: Be honest about supported clipboard formats
Do not lie to W32 about the formats that we provide or accept.

Originally the logic behind such lies was that GdkPixbuf allows us to
convert any supported image to BMP or PNG, and therefore we should
announce that we always provide/accept BMP and PNG along with other
formats.

But that's not how it works. GDK has built-in serializers and
deserializers for all pixbuf formats (where it just invokes GdkPixbuf
API) and will use them automatically to read or write GdkTexture
objects (internally wrapping GdkPixbuf objects where necessary). The
encoding and decoding of images is handled
by GdkContent(De)Serializers, backend has nothing to do with it.

Therefore W32 GDK backend should only offer formats that it can
actually do conversion for by itself (such as image/bmp <-> CF_DIB,
or text/uri-list <-> CFSTR_SHELLIDLIST).
2018-10-31 08:40:50 +00:00
Timm Bäder
b4acf81609 Merge branch '1422-gtkentry-s-minimum-width-is-hardcoded-to-150px-GTK4' into 'master'
gtkentry: set minimum-width to 0 instead of 150

Closes #1422 and evince#1002

See merge request GNOME/gtk!393
2018-10-26 09:25:36 +00:00
Matej Urbančič
62871400b1 Updated Slovenian translation 2018-10-25 22:06:19 +02:00
Matej Urbančič
c4b3337569 Added Slovenian translation 2018-10-25 22:03:51 +02:00
Nelson Benítez León
45e6e0cd04 gtkentry: set minimum-width to 0 instead of 150
and use 150 as natural-width.

Currently there's no way for a GtkEntry to be less
than 150px wide (apart from using "width-chars" property),
this is too much for a default minimum-width, an app
developer may need to have a shorter GtkEntry, for example
when the UI it's been shrunk by the user (see [1]) or when
you want to match the size of another widget (which is less
than 150px) see [2] for Evince bug on using
gtk_combo_box_new_with_model_and_entry() for PDF forms where
GtkEntry of ComboBox is too wide and doesn't match the combo
list width.

Using "width-chars" property may be a workaround to obtain
a short minimum-width for the entry, but is not a proper
solution for the mentioned cases as you may not know how
short your GtkEntry will be, or the fact that using "chars"
as a width unit is not pixel accurate.

Curious note: the commit that introduced the GtkEntry
minimum-width to be 150px is from 20 years ago, see
https://bit.ly/2ySEfK4

[1] This change was already suggested by Benjamin Otte
in a blog comment https://bit.ly/2J96wRo

[2] Fixes issue evince#1002
2018-10-24 23:02:31 +05:00
Timm Bäder
98dd53c2c3 Merge branch 'nirbheek/meson-fallback-dep-fixes' into 'master'
Misc meson fixes for using subproject dependencies

See merge request GNOME/gtk!232
2018-10-24 09:42:12 +00:00
Kristjan SCHMIDT
ad7eaf2bb8 Update Esperanto translation 2018-10-24 08:14:41 +00:00
Jakub Steiner
ef82f1799f Adwaita: prevent devel styling break selection mode
- Selection mode does not get the special devel styling.

- removed teh last-child() selector for it doesn't work anymore.
  Better style all section of the headerbar than none. Proper fix pending.

https://source.puri.sm/Librem5/libhandy/issues/57
2018-10-22 10:31:20 +02:00
Ignacio Casal Quinteiro
1729da8a3e quartz: do not cache the screen in the gdkmonitor
Instead we just cache the monitor number and get
out of it the nsscreen when it is needed. This is
a requirement since it nsscreen it is not supposed
to be cached.

Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/1312
2018-10-17 10:10:44 +02:00
Matthias Clasen
a3ac3b61ef Merge branch '1397-gtknotebook-built-in-popup-menu-listing-tabs-doesn-t-use-tab-label-text-for-the-last-tab-4' into 'master'
Notebook: Ensure menu label updates with tab_label

Closes #1397

See merge request GNOME/gtk!386
2018-10-16 20:49:42 +00:00
LRN
532a48aa92 Merge branch 'lrn/zorder-gtk4' into 'master'
Don't let the OS maintain relative Z-order for windows (GTK4)

See merge request GNOME/gtk!197
2018-10-15 22:48:14 +00:00
Carlos Garnacho
f3674688bf tests: Drop "saved positions" test in testgtk
This test solely relies on configure events, which aren't supported anymore.
2018-10-15 20:05:54 +02:00
Carlos Garnacho
dd6aa7b870 tests: Drop ::event handler in testgtk
We can use ::size-allocate for it, as window positions in root coordinates
are neither supported nor crucial here.
2018-10-15 17:39:04 +02:00
Carlos Garnacho
21d0e30903 testsuite: Fix gestures tests for the legacy controller
Let it create one with the right propagation phase, so the event propagation
chain stays the same.
2018-10-15 17:39:04 +02:00
Carlos Garnacho
3c73f70dae tests: Use GtkEventControllerMotion in testpopup
Track motion through it, instead of a GtkWidget::event handler.
2018-10-15 17:39:04 +02:00
Carlos Garnacho
65fbd0af4e tests: Remove ::event handler in testwindowsize
We just want widget size here, not windowing configuration events.
2018-10-15 17:39:04 +02:00
Carlos Garnacho
55b32c8a8f gtkwidget: Drop obsolete code
This path is not being hit anymore, gtkmain.c does handle those events
itself.
2018-10-15 17:39:04 +02:00
Carlos Garnacho
bb0e964f56 testsuite: Fix gestures test
Was broken by the removal of the default GtkEventControllerLegacy.
2018-10-15 17:39:04 +02:00
Carlos Garnacho
0f4a6bfbf8 gtkeventcontrollerlegacy: Make public
And move ::event into it, dropping the GtkWidget::event signal.
2018-10-15 17:39:04 +02:00
Daniel Boles
4e884b6056 Notebook: Ensure menu_label updates with tab_label
This was noticed in Firefox and demonstrated using a GtkBuilder ui file.
buildable_add_child() calls set_tab_label(), but the latter did nothing
to update the menu_label corresponding to that tab with the new text.
Using Builder to populate the tab child, only tabs other than last got
the right non-default labels, and even that was mostly coincidental, as
adding the main child called update_labels() via real_insert_page(), so
it took effect when the 2nd last main child is added, updating the rest
but leaving the last with the default label, not that given in Builder.

Fix by factoring out the code from child_reordered() to a new helper
menu_item_recreate() and calling that in set_tab_label(), so that
whenever the tab_label is updated, so is its corresponding menu_label.

This fixes the reported case and presumably others that we could write.

fixes https://gitlab.gnome.org/GNOME/gtk/issues/1397
2018-10-12 23:50:12 +01:00
Daniel Boles
f252bbc02c Notebook: Don't notify 2x from set_tab_label_text
It calls set_tab_label(), which already does that.
2018-10-12 23:40:16 +01:00
Daniel Boles
9cbd3ac017 gtk-demo/main: Suppress implicit fallthru warning
Comments matched to reassure the compiler that fallthrough is
intentional are supposed to precede the case or default keywords, at
least in GCC, so the one here did not suppress the warning with GCC. We
can just the if condition and put the comment at the end to solve that.

https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/
2018-10-12 22:19:25 +01:00
Nirbheek Chauhan
4bae7fb0fd .gitignore: Ignore all subdirs in the subprojects dir 2018-10-12 14:23:53 +05:30
Nirbheek Chauhan
b98f5a0823 meson: Always fetch pangoft2_dep from the pango subproject
This ensures that we will use pangoft2 if it is available, and not if
it is not available.

See: https://gitlab.gnome.org/GNOME/pango/merge_requests/6
2018-10-12 13:08:48 +05:30
Nirbheek Chauhan
00c29e1fbe meson: Use proxy-libintl subproject when needed and available
Such as on Windows with MSVC.
2018-10-12 13:08:48 +05:30
Nirbheek Chauhan
de3e5be235 meson: Add a fallback for the harfbuzz dependency
This meson port is not upstream yet, so a wrap file is not included.
Upstream has expressed interest but the port hasn't been tested on all
platforms yet. Will be added when it gets upstreamed.

Link to WIP port: https://github.com/centricular/harfbuzz
2018-10-12 13:08:48 +05:30
Timm Bäder
ae3e6d1949 emojichooser: Pass chooser to add_emoji 2018-10-11 12:27:56 +02:00
Timm Bäder
114efa83c6 widget: Stop adding a legacy event controller
The only event signal left is ::event and everything needing that
connects to it directly.
2018-10-11 12:27:56 +02:00
Timm Bäder
d15df65a9d gl renderer: Save some matrix multiplications
We do this for every single node, which is a little costly, especially
since the common case for the modelview matrix these days is a simple
translation. So, check whether the new modelview matrix is only a
translation matrix and if so, don't do a full matrix multiplication per
node.
2018-10-11 12:27:56 +02:00
Timm Bäder
e0a1311e5b spinbutton: Don't use gfloat in a code sample 2018-10-11 12:27:56 +02:00
Timm Bäder
48e88c6ea4 Merge branch 'file-sealing' into 'master'
gdk: seal in-memory files when possible

See merge request GNOME/gtk!353
2018-10-10 11:12:03 +00:00
Timm Bäder
50c63fc39a Merge branch 'gtkbuilder-tag-end-wrong-type' into 'master'
GtkBuildable: Fix the type of the user_data in GtkBuildable.custom_tag_end

See merge request GNOME/gtk!378
2018-10-10 11:09:25 +00:00
Chun-wei Fan
1ca5b41571 gtkimcontextime.c: Fix Korean input
Commit 64a489ad inadvertently introduced a regression that broke Korean
text input because the changes there resulted that only the last input
string that we have from ImmGetCompositionStringW() for each time the
commit signal is emitted is kept, and also as a result the final Korean
character that is input by hitting space is also lost as a result, as we
didn't check for whether we are done with preediting.

Fix these issues by doing the following when we receive the
WM_IME_COMPOSITION message with GCS_RESULTSTR from Windows:
-Do not emit the commit signal during WM_IME_ENDCOMPOSITION, and...
-Emit the commit signal anyways, as we did before c255ba68, however...
-We still save up the string to commit, because we need to re-compute
 the cursor position when we do ->get_preedit_string(), which needs to
 take the GCS_RESULTSTR string we get from WM_IME_COMPOSITION into
 account as well, so that we avoid getting the Pango criticals that
 occur during Chinese (and most likely Japanese) input as the cursor
 position is out-of-range.

Fixes issue #1350.
2018-10-09 17:10:23 +08:00
Chun-wei Fan
cebf5ed46c testsuite/gtk/filterlistmodel.c: Avoid GCCism
Pointer arithmetic on gpointers (void *) is a GCCism, so avoid that by
being more explicit with things.
2018-10-09 16:26:36 +08:00
Chun-wei Fan
1ca906008e testsuite/gtk/[flatten|sort]listmodel.c: Avoid VLA usage
Visual Studio is unlikely to support VLAs at any point, so avoid using
them and use g_newa() instead.
2018-10-09 16:26:21 +08:00
Robert Ancell
dd69c4e0f2 GtkBuildable: Fix the type of the user_data in GtkBuildable.custom_tag_end
The previous type was a pointer to a pointer, which seems to be a copy-paste
error from GtkBuildable.custom_tag_start which is an out parameter. It was
always cast in use so this is an API break, but not an ABI one.
2018-10-08 11:38:20 +13:00
Daniel Boles
cbb0d7ba69 Merge branch 'master' into 'master'
gtkstack: fix null pointer dereference

See merge request GNOME/gtk!361
2018-10-07 17:28:31 +00:00
Aurimas Černius
cbdb744c40 Updated Lithuanian translation 2018-10-07 16:57:01 +03:00
LRN
10fef2fbb4 Merge branch 'win32-runtime-immodule-swap-gtk4' into 'master'
GDK W32: Support switching IM contexts at runtime (GTK4)

See merge request GNOME/gtk!372
2018-10-07 09:05:16 +00:00
Benjamin Otte
8e2fb9c2be docs: Update GtkSliceListModel 2018-10-07 02:23:40 +00:00
Mohammed Sadiq
f48ed12e78 slicelistmodel: Fix typos in docs 2018-10-07 07:46:58 +05:30
Руслан Ижбулатов
66c0336ead GDK W32: Support switching IM contexts at runtime
This leverages the normal input context switching mechanism in GTK
by making it think that the gtk-im-module setting changed.
The backend returns gtk-im-module value as "ime" if W32
IME API says that an IME is in use. Otherwise it returns
and empty string - this still triggers an input context
switching code, which, not being able to create the desired context
(which is and empty string), falls back to looking at current
keyboard layout (currently that code is still a FIXME).

Paired with the code that signals gtk-im-module change on keyboard layout
switches, this is sufficient to make GTK capable of switching to
the appropriate IM context at runtime. At least, the kinds of context
that specify languages for which they are used automatically by default
(once locale matching is implemented), and the IME context.

Loading other kinds of IM context might still work via specifying
the gtk-im-module setting in gtk ini file, but doing so will likely
make GTK incapable of using the IME context that is used
for Korean, Chinese and Japanese (and some other languages).

Until someone figures out a way to actually change gtk-im-module
setting on Windows at runtime with meaningful values, the behaviour
introduced by this commit seems like a sufficient workaround.
2018-10-06 17:45:30 +00:00
Benjamin Otte
0657a53940 inspector: Highlight CSS node on selection
Fixes #1383
2018-10-06 00:29:31 +02:00
Benjamin Otte
eecd5823d0 docs: Put subsection into right section
The widget observer APIs belong into the widget docs, not the window
docs. Oops.
2018-10-06 00:29:31 +02:00
Benjamin Otte
99b769706c video: Add header include guard 2018-10-06 00:29:31 +02:00
Jakub Steiner
39843ebb3f Adwaita: fix devel styling for sidebar apps
- don't put the gradient/cogged wheel on apps that have a split headerbar
  due to having a sidebar
2018-10-04 20:36:44 +02:00
Jeremy Bicha
52bcf7fd46 widget-factory: Add Keyboard Shortcuts menu item
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/916
2018-09-30 20:43:53 -04:00
Jeremy Bicha
43997fb550 widget-factory: Rename About menu item to About Widget Factory
This follows the recommendation in
https://gitlab.gnome.org/GNOME/Initiatives/wikis/App-Menu-Retirement
2018-09-30 20:43:51 -04:00
Jeremy Bicha
c59669d376 widget-factory: Move app menu contents to primary menu
GNOME Shell 3.32 will remove support for the app menu
so we need to move its contents to the primary (hamburger)
menu.

widget-factory already had a primary menu.

The only item in the app menu was About.

https://gitlab.gnome.org/GNOME/Initiatives/issues/4
2018-09-30 20:43:41 -04:00
Kristjan SCHMIDT
ac97d2be0c Update Esperanto translation 2018-09-30 10:24:25 +00:00
emersion
e9a67cc6d0 gdk: seal in-memory files when possible
This can be used by compositors to mmap memory without having to
handle SIGBUS.
2018-09-27 23:35:18 +02:00
Hugo Lefeuvre
44655932c4 gtkstack: fix null pointer dereference
The gtk_stack_snapshot_slide() function dereferences the
last_visible_child pointer without proper != NULL ckeck. This might
result in NULL pointer dereference and crash if last_visible_child is
invalid.

Add a != NULL check before dereferencing the pointer.
2018-09-27 09:53:22 -04:00
Jakub Steiner
278f9a9eda Adwaita: draw insensitive progressbars
- keep inheriting stuff from scales, but
  do draw highlights

Addresses issue #1191
2018-09-26 22:43:31 +02:00
Matthias Clasen
a28c7e8839 Merge branch 'wip/sadiq/fixes' into 'master'
docs: Fix inclusion of source files in tutorial

See merge request GNOME/gtk!341
2018-09-26 18:28:23 +00:00
Matthias Clasen
77c8d2df00 Merge branch 'wip/jimmac/nightly-headerbar' into 'master'
Adwaita: tone down the 'devel' styling

See merge request GNOME/gtk!357
2018-09-26 16:11:43 +00:00
Jakub Steiner
aeca5858d8 Adwaita: tone down the 'devel' styling
The selected bg was too prominent and intefered with button styling.
2018-09-26 15:50:58 +02:00
Timm Bäder
89b96a864e Merge branch 'wip/arnaudb/fix-dashed-border-4' into 'master'
Make dashed border-style work correctly

See merge request GNOME/gtk!355
2018-09-25 07:12:58 +00:00
Timm Bäder
26302cada5 Update expected node files
We don't technically hide the arrow nodes anymore.
2018-09-24 21:05:07 +02:00
Arnaud B
42d064c62f Make dashed border-style work correctly
There’s a short-path done for focus rectangles, but it can be taken in other conditions, and then fail occasionally to render a dashed line if the border-width is too big.
2018-09-24 09:39:55 +02:00
Piotr Drąg
273189fc1a Update Polish translation 2018-09-23 18:27:30 +02:00
Timm Bäder
d51abaea2e scalebutton: Remove unused define 2018-09-23 18:01:59 +02:00
Timm Bäder
248708c282 button: Remove key_controller member
Unneeded now.
2018-09-23 17:59:37 +02:00
Timm Bäder
0e2748006a assistant: Remove some unused defines 2018-09-23 17:34:03 +02:00
Timm Bäder
e89bd7dfa2 menu: Remove useless if statement 2018-09-23 17:34:03 +02:00
Timm Bäder
2f6e998a27 menu: Show scroll arrows if necessary 2018-09-23 17:34:03 +02:00
Timm Bäder
7b7296410e menu: Remove arrow visibility flags 2018-09-23 17:34:03 +02:00
Jan Alexander Steffens (heftig)
d90e2733ea GtkApplication: Fix CRITICAL on shutdown when register_session=FALSE
Close https://gitlab.gnome.org/GNOME/gtk/issues/1323#note_327705
2018-09-22 17:56:38 +01:00
Daniel Boles
19bf502fde Merge branch 'master' into 'master'
flattenlistmodel: Fix uninitialized variable warning

See merge request GNOME/gtk!347
2018-09-22 16:52:49 +00:00
Piotr Drąg
2b8e30a8ed Use Unicode apostrophes in new strings
See https://developer.gnome.org/hig/stable/typography.html

https://bugzilla.gnome.org/show_bug.cgi?id=772371
2018-09-20 19:01:14 +02:00
Yi-Soo An
4ad8dcebd8 flattenlistmodel: Fix uninitialized variable warning
Variable, added, would be a garbage value if model is NULL and
the following code, if condition, use the uninitialized variable.
A side effect could be occurred by that.

To avoid, the variable is initialized to zero.
2018-09-20 12:45:33 +09:00
Matthias Clasen
a966b90e51 Merge branch 'master' into 'master'
Remove some duplication in testfilechooserbutton

See merge request GNOME/gtk!342
2018-09-19 13:46:50 +00:00
Matthias Clasen
5b2a451e75 Merge branch 'installed-tests' into 'master'
Get GTK+ 4 installed-tests closer to working

See merge request GNOME/gtk!348
2018-09-19 11:59:16 +00:00
Emin Tufan Çetin
8105bde835 Update Turkish translation 2018-09-19 11:13:18 +00:00
Emin Tufan Çetin
2329b62c14 Update Turkish translation 2018-09-19 11:05:05 +00:00
Emin Tufan Çetin
1e1bed056f Update Turkish translation 2018-09-19 10:56:13 +00:00
Simon McVittie
a0d83bdfa7 testsuite: Install accessibility-dump executable alongside tests
The installed-tests want to run this.

Signed-off-by: Simon McVittie <smcv@debian.org>
2018-09-19 09:41:49 +01:00
Simon McVittie
fa8190328d testsuite: Fix installed-test metadata for autotestkeywords
The executable is called autotestkeywords, so we shouldn't try to run
an executable named keywords. Also rename the metadata file to match.

Signed-off-by: Simon McVittie <smcv@debian.org>
2018-09-19 09:40:37 +01:00
Simon McVittie
d19cba429d reftests: Fix path to installed-tests in .test metadata
The installed-tests are now namespaced as gtk-4.0 to avoid colliding
with GTK+ 3, but these files weren't updated.

Signed-off-by: Simon McVittie <smcv@debian.org>
2018-09-19 09:37:06 +01:00
Benjamin Otte
be2609a271 inspector: Handle case where there's no default application 2018-09-19 04:31:29 +02:00
Benjamin Otte
5bf009a203 cssrbtree: Fix a crasher
After removing elements, there were a few cases where the tree wasn't
properly balanced which could further down violate assumptions about the
layout.

Attached is the original testcase that triggered it. I didn't bother
simplifying it.
2018-09-19 04:31:29 +02:00
LRN
93a89a371e Merge branch 'win32-scroll-both-gtk4' into 'master'
GDK W32: send both smooth and discrete scrolling events (GTK4)

See merge request GNOME/gtk!337
2018-09-18 16:43:37 +00:00
Benjamin Otte
60cb315be6 Merge branch 'revealer-support-min-size-master' into 'master'
gtkrevealer: support minimum size of child

Closes #635

See merge request GNOME/gtk!317
2018-09-18 15:19:12 +00:00
Eduard Braun
73728814b0 GDK W32: fix direction of horizontal smooth scrolling events
Commit 359df028be changed the
code to send GDK_SCROLL_SMOOTH with deltas instead of
GDK_SCROLL_(UP|DOWN|LEFT|RIGHT).

Windows defines deltas inversed for vertical direction
(positive values mean the wheel was turned forward)
but not for horizontal direction
(positive values mean the wheel was turned towards the right).

This commit fixes behavior as both axes were inverted previously.
2018-09-18 13:52:36 +00:00
Руслан Ижбулатов
d4098099dd GDK W32: send both smooth and discrete scrolling events
Commit d64467b334 changed the
code to send GDK_SCROLL_SMOOTH with deltas instead of
GDK_SCROLL_(UP|DOWN|LEFT|RIGHT). Change it again, to send
both the GDK_SCROLL_SMOOTH and the GDK_SCROLL_(UP|DOWN|LEFT|RIGHT)
event separately (with the discrete event marked as emulated),
as this is what other backends (such as wayland) do.
2018-09-18 13:52:35 +00:00
Carlos Soriano
57ef793e6d revealer: Support minimum size of child
Up until now when allocating the child it only used the natural size
while the measuring also used the minimum size, resulting in a clipped
child when animating if the child had different minimum size and
natural size. This was an obvious case when using labels that had
ellipsization.

This commit gives full allocation to the child by inverting the size
the revealer reduces from its animation progress.

Code done by Benjamin Otte.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/635
2018-09-18 11:36:29 +02:00
Christoph Reiter
58cdd5139e ci/docker: add lcov so we can create coverage reports
This was requested on IRC; the docker image in the registry is updated already.
2018-09-18 09:55:50 +02:00
Benjamin Otte
2c84049769 treelistmodel: Improve naming a bit
The complexity with model items vs row items is really confusing. Add to
that treelistmodel position vs child model position vs parent position,
and you're so confused, even the best naming can't help.

And once you're there, consider passthrough vs non-passthrough...
2018-09-18 08:03:03 +02:00
Benjamin Otte
29c700d1c7 listmodels: Clarify documentation for function prototypes
Fixes #1341
2018-09-18 08:02:21 +02:00
Mohammed Sadiq
0d7c987b1a Revert "listlistmodel: Fix documentation comment"
This reverts commit 03679d4342.

listlistmodel is private
2018-09-18 10:01:12 +05:30
Mohammed Sadiq
03679d4342 listlistmodel: Fix documentation comment 2018-09-18 09:56:19 +05:30
Georges Basile Stavracas Neto
1a4b60fb36 tree-list-model: Return the correct item type
When passthrough is enabled, it should return the GType
of the child GListModels; when disabled, it should be
GTK_TYPE_TREE_LIST_ROW.

The conditions are inverted however, causing a few
warnings to trigger.

Fix that by returning the correct GType.
2018-09-18 00:51:57 -03:00
Mohammed Sadiq
05b2ae0f31 Merge branch 'wip/sadiq/model-fixes' into 'master'
treelistmodel: Fix memory leak

See merge request GNOME/gtk!344
2018-09-18 02:54:30 +00:00
Mohammed Sadiq
f211d71f74 treelistmodel: Fix memory leak
gtk_tree_list_model_init_node() increases the reference count
of the model passed. Let's not do that, and let it take the
model passed.
2018-09-18 07:50:44 +05:30
Mohammed Sadiq
691ab421fb Merge branch 'wip/sadiq/model-fixes' into 'master'
treelistmodel: Fix signal emission on row destroy

See merge request GNOME/gtk!343
2018-09-18 02:03:58 +00:00
Mohammed Sadiq
9e3e9e83ef treelistmodel: Fix signal emission on row destroy 2018-09-18 07:11:27 +05:30
Manu Cornet
a0056d5ca8 Remove some duplication in testfilechooserbutton
Most of the code creating the two types of dialogs (open file,
choose folder) is the same. This refactors the common code into a
helper method. This also makes it easier to add other chooser types
for this test (e.g. save file).
2018-09-17 12:27:46 +00:00
Rico Tzschichholz
f3e6d00db1 gtk: Fix some g-i annotations warnings 2018-09-17 13:00:36 +02:00
Robert Ancell
e55df03fe2 Merge branch 'toolbar-expand' into 'master'
toolbar: Use hexpand/vexpand Gtk+ properties

See merge request GNOME/gtk!334
2018-09-17 08:59:19 +00:00
Robert Ancell
c8a13a2d8a toolbar: Use hexpand/vexpand Gtk+ properties 2018-09-17 10:25:59 +02:00
Mohammed Sadiq
6971e2923d docs: Fix inclusion of source files in tutorial 2018-09-17 13:39:22 +05:30
Matthias Clasen
231b76bdd1 tree list model: Add docs 2018-09-16 23:07:00 -04:00
Matthias Clasen
57ba4048de Minor doc fix
Clarify some wording.
2018-09-16 23:07:00 -04:00
Benjamin Otte
545c5f18b2 testsuite: Disable some tests for older glib 2018-09-17 04:30:28 +02:00
Benjamin Otte
5571217218 testsuite: Add tests for GtkSortListModel 2018-09-17 03:57:37 +02:00
Benjamin Otte
b92c328425 sortlistmodel: Actually insert unsorted items at the wrong place
We were adding items in reverse order, oops.
2018-09-17 03:57:37 +02:00
Piotr Drąg
8bdcff3320 Update POTFILES.in 2018-09-16 21:02:31 +02:00
Benjamin Otte
9ffd88012d docs: Add missing TreeListModel docs 2018-09-16 19:39:39 +02:00
Matthias Clasen
563fb97f90 Merge branch 'wip/sadiq/fixes' into 'master'
gdkselectioninputstream-x11: Fix memory leak

See merge request GNOME/gtk!340
2018-09-16 17:06:29 +00:00
Benjamin Otte
ee5708f543 testtreelistmodel: Display the file icon, because why not 2018-09-16 18:50:17 +02:00
Benjamin Otte
b7bf04fabd inspector: Update the controllers list to show parent controllers
Now we show all the controllers that are relevant when widget gets sent
events.
2018-09-16 18:50:17 +02:00
Benjamin Otte
b94b8ac38d testtreelistmodel: Make the statusbar display more info
Now display how many items were filtered (if any) and how many
directories remain to be sanned (if any).
2018-09-16 18:50:17 +02:00
Benjamin Otte
afd69db678 testtreelistmodel: Sort files by name 2018-09-16 18:50:17 +02:00
Benjamin Otte
f3834138f7 GtkSortListModel: Add 2018-09-16 18:50:17 +02:00
Benjamin Otte
64b7c123cc testtreelistmodel: Add search
Add a simple search that does a case insensitive substring search of the
file paths.
2018-09-16 18:50:17 +02:00
Benjamin Otte
fcb780ee13 testtreelistmodel: Make the directory loading async
This is way more complicated than it should be, because it requires
manually limiting the number of open file enumerators.

On the other hand, it exhaustively tests the items-changed emission of
all involved listmodels because those signals come in pretty much
randomly.

It's also 50% slower than the sync version, with the caeat that the sync
version only shows the UI after it's done loading, while this version
shows it right away.
2018-09-16 18:50:17 +02:00
Benjamin Otte
65b795b861 testtreelistmodel: Add a hack to handle LONG lists
... and make the lists long by autoexpanding the tree.
2018-09-16 18:50:17 +02:00
Benjamin Otte
64d97b233b GtkSliceListModel: add 2018-09-16 18:50:17 +02:00
Benjamin Otte
db8474e5b1 inspector: Make controllers page use gtk_list_box_bind_model() 2018-09-16 18:50:17 +02:00
Benjamin Otte
5e8983883e inspector: Rename "Gestures" page to "Controllers"
And rename GtkInspectorGestures => GtkInspectorControllers, too.
2018-09-16 18:50:17 +02:00
Benjamin Otte
59006e2e03 inspector: Make gestures page handle all controllers
This requires removing support for gesture groups.
2018-09-16 18:50:17 +02:00
Benjamin Otte
b6acc31d44 GtkMapListModel: add 2018-09-16 18:50:17 +02:00
Benjamin Otte
6d0fe46cba propertylookuplistmodel: Add
This model just takes an object and a property name and recursively
looks it up. In particular, I want it for:

widget, widget.parent, widget.parent.parent, ...
2018-09-16 18:50:17 +02:00
Benjamin Otte
05e752e096 inspector: Turn object tree into a GtkListBox
The code gets rid of the GtkTreeView and replaces it with a GtkListBox.

Most of the logic is now done via GListModel subclasses.

A big change is that this new list is now tracking updates itself and
doesn't need to be manually updated. All code that used to cause rescans
or add forgotten objects to the tree has been removed.

If objects are missing from the object tree, the logic for tracking them
needs to be added.
2018-09-16 18:50:17 +02:00
Benjamin Otte
2237009983 testsuite: Disable some tests with older glib
Fixes CI.
2018-09-16 18:50:17 +02:00
Benjamin Otte
417ac4ab43 inspector: Use a GtkPicture to display render nodes
Instead of the outdated render node view, use modern GTK APIs.
2018-09-16 18:50:17 +02:00
Benjamin Otte
4495eaae84 inspector: Add an icon to the render node list 2018-09-16 18:50:17 +02:00
Benjamin Otte
aba76fe8e9 inspector: Make the render node tree use a ListBox
It used to be a treeview.
2018-09-16 18:50:17 +02:00
Benjamin Otte
867042f88f widget: Add gtk_widget_observe_controllers()
This mirrors gtk_widget_observe_children() - just that it observes the
controllers, not the children.
2018-09-16 18:50:17 +02:00
Benjamin Otte
32ec7dec61 gtk: Add GtkFlattenListModel
We can flatten lists of lists into lists now!
2018-09-16 18:50:17 +02:00
Benjamin Otte
d6161e09cd treelistmodel: Add more API to navigate the tree
This adds functionality from GtkTreeIter into GtkTreeListRow that allows
finding items in the model and getting their position for use in
GtkListBox.
2018-09-16 18:50:17 +02:00
Benjamin Otte
4b5fb5ec79 treelistmodel: Refactor to add GtkTreeListRow
This patch does multiple things:

1. Add a custom persistent per-row object.
2. Move all per-row API to that object. This means notifications are now
   possible.
3. Add a "passthrough" construct-only property to the TreeListModel that
   influences if the model returns these new object or passes through
   the ones from the model.

This greatly simplifies the code needed to be written for widgetry,
because one can just connect the per-row object to the expanders that
expand and collapse rows.

As an added power feature, these objects can also be passed through
further models (like filter models).

It also adds kind of a hack to Adwaita to make the test look neat.
2018-09-16 18:50:17 +02:00
Benjamin Otte
4f70f72349 gtk: Add GtkFilterListModel
This is a GListModel implementation that filters the given source model.
2018-09-16 18:50:17 +02:00
Benjamin Otte
dd94129e27 widget: Add gtk_widget_observe_children()
This creates a listmodel that tracks a widget's children. Doing so turns
adding/removing children from O(1) to O(N) though, so use with caution.
2018-09-16 18:50:17 +02:00
Benjamin Otte
63e5b827ed window: Add gtk_window_get_toplevels()
This one returns a list of all toplevel windows.
2018-09-16 18:50:17 +02:00
Benjamin Otte
573c63973a gtk: Add GtkTreeListModel
This is a GListModel implementation with a neat API that can be used to
implement trees inside GtkListBox.
2018-09-16 18:50:17 +02:00
Mohammed Sadiq
1ce960c85b gdkselectioninputstream-x11: Fix memory leak 2018-09-16 20:08:25 +05:30
Matthias Clasen
d7a5dcba0b gtk_application_inihit: allow no reason
We document this argument as nullable, so treat it as such.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1327
2018-09-13 23:31:48 -04:00
Emin Tufan Çetin
a4b1c6b384 Update Turkish translation 2018-09-11 20:17:29 +00:00
Jakub Steiner
0edec9bcae Merge branch 'adwaita-fixes' into 'master'
Adwaita fixes

See merge request GNOME/gtk!333
2018-09-10 14:29:54 +00:00
Adrien Plazas
7d12a843f2 Adwaita: Set selection mode to headerbars if it's on ancestors
This allows to set the container of the headerbars in selection mode
rather than having to set the mode to each element of the title bar.
2018-09-10 15:51:12 +02:00
Adrien Plazas
867efe2e33 Adwaita: Style separator.sidebar
Let separators be declared as sidebars to have the same style as those
drawn by GtkStackSidebar. This also let them handle the selection-mode
class, whether they are assigned it or they descend from something in
selection mode.

Also drop setting the selection mode color for non-sidebar separators.

This is convenient when building a custom sidebar using a GtkSeparator
and to extend a sidebar to the title bar.
2018-09-10 15:50:43 +02:00
Adrien Plazas
a121bfa7ec Adwaita: Drop the background of nested headerbars
This is needed to work around headerbar sliding animation issues without
refactoring Adwaita's support of titlebars and headerbars as it may
break applications.

https://gitlab.gnome.org/GNOME/gtk/issues/1264
2018-09-10 15:49:37 +02:00
Jakub Steiner
02758cd48d Merge branch 'wip/adwaita/linked-entry-error-state-fix-master' into 'master'
Adwaita: Fix linked elements in error state

See merge request GNOME/gtk!315
2018-09-10 10:47:05 +00:00
Jakub Steiner
005f932d13 Merge branch 'css-fix' into 'master'
win32 theme: Fix css syntax error

See merge request GNOME/gtk!324
2018-09-07 20:35:07 +00:00
Peter Simonyi
4e8c06eb7a win32 theme: Fix css syntax error 2018-09-07 08:31:22 -04:00
Matthias Clasen
ca9aa23619 Add devel style to demos
Lets show this off. Its cool.
2018-09-05 20:10:41 -04:00
Matthias Clasen
ae2c765ffd Fix portal path handling
This was broken when I recently introduced this helper
function.
2018-09-05 19:54:32 -04:00
Benjamin Otte
ab9455ea1b rendernodepaintable: Fix clipping
We need to translate before clipping, otherwise we clip in totally the
wrong place.
2018-09-05 16:25:07 +02:00
Benjamin Otte
89522e6923 iconhelper: Fix drawing of empty and paintable helpers
Empty helpers did try to draw a NULL paintable (not good) and in the
non-null case code used the wrong width/height.
2018-09-05 06:34:32 +02:00
Timm Bäder
506a4ddad5 Merge branch 'gtkbbox-doc-fix' into 'master'
Minor fixes in documentation of gtkbbox

See merge request GNOME/gtk!318
2018-09-04 10:02:05 +00:00
Lennart Buhl
272e4a0a9d Minor fixes in documentation of gtkbbox 2018-09-03 19:53:16 +02:00
Ask Hjorth Larsen
16deffb48d Updated Danish translation of gtk-properties 2018-09-02 23:46:33 +02:00
Ask Hjorth Larsen
a60e951941 Updated Danish translation of gtk 2018-09-02 23:45:47 +02:00
Ask Hjorth Larsen
05306470b0 Updated Danish translation of gtk 2018-09-02 23:19:35 +02:00
Ask Hjorth Larsen
803a8cf333 Updated Danish translation of gtk-properties 2018-09-02 21:42:45 +02:00
Alex Monday
3e5746356e themes: Fix linked elements in error state
Add instructions for color of linked elements border which ajoints
entry, when parent linked entry is in error state.
2018-09-02 14:48:53 +05:00
Daniel Boles
c9f1c56776 Adwaita: Regenerate CSS to get window.devel styles
This step was missed before, again.

SASS 3.6 emits rgba(0, 0, 0, 0) instead of transparent, so it wants to
change those too, but that patch was only committed in March and isn't
being backported to the previous stable, so I don't know if others'
versions will do the same - so until it's shown that anyone else (A) is
regenerating CSS and (B) also has 3.6, I'm skipping those changes. See:
c287f312ac
2018-09-02 09:27:38 +01:00
Piotr Drąg
fc026b95dd Update Polish translation 2018-08-31 19:47:44 +02:00
Matthias Clasen
2bb97bc136 GtkApplication: Improve the docs
Expand the docs for ::register-session a bit.
2018-08-31 13:38:01 -04:00
Matthias Clasen
d4d12171f4 Avoid a pointless goto
We can just return here.
2018-08-31 13:24:17 -04:00
Matthias Clasen
21e484731a Add a helpful comment 2018-08-31 13:23:25 -04:00
Matthias Clasen
b82a32676b GtkApplication: track screensaver state
A number of applications want to track the state of the screensaver.
Make this information available as a boolean property. We only listen
for state changes when ::register-session is set to TRUE.

This is implemented for unsandboxed D-Bus access by talking
directly to org.gnome.ScreenSaver or org.freedesktop.ScreenSaver,
and for sandboxed D-Bus by using a (new) portal API.
A Quartz implementation is missing.
2018-08-30 22:53:36 -04:00
Matthias Clasen
d7228ae025 GtkApplication: Respect GTK_USE_PORTAL
When the environment variable is set, don't connect
to the session manager, but instead rely on the
inhibit portal.
2018-08-30 22:53:36 -04:00
Matthias Clasen
04c02e9aec file chooser portal: use request path utilities
Less code duplication, more sticky toffee!
2018-08-30 22:53:36 -04:00
Matthias Clasen
d6945d81f0 print portal: use request path utilities
Less code duplication, more cookies!
2018-08-30 22:53:36 -04:00
Matthias Clasen
6d6559f982 color picker portal: Add request path utility
Less code duplication, more cake!
2018-08-30 22:53:36 -04:00
Matthias Clasen
b271db253f Add utility functions for portal paths
The paths that we create for requests and sessions
need some icky code to create. Keep it in one place.
2018-08-30 22:53:36 -04:00
Marek Cernocky
eb9f95e9fa Updated Czech translation 2018-08-30 16:51:17 +02:00
Marek Cernocky
d7a5723d66 Updated Czech translation 2018-08-30 14:45:16 +02:00
Jakub Steiner
72498b9e28 Merge branch 'selection-mode-separator' into 'master'
Adwaita: Add color to separator.selection-mode

See merge request GNOME/gtk!309
2018-08-30 07:40:46 +00:00
Matthias Clasen
b904fc6ee0 Add a missing cast
This fixes a warning introduced in the previous commit.
2018-08-29 19:55:58 -04:00
Aurimas Černius
9622ba8a0d Updated Lithuanian translation 2018-08-29 22:23:47 +03:00
Matthias Clasen
3b8d206143 The file chooser is no box anymore
Don't treat it as one, it does not like it.

Closes https://gitlab.gnome.org/GNOME/gtk/issues/1297
2018-08-29 13:11:06 -04:00
Anders Jonsson
e027fc9272 Update Swedish translation 2018-08-28 21:11:58 +00:00
Kai Willadsen
ba6c5ef201 FileChooserWidget: Don't show recent items with private hint set 2018-08-28 16:15:45 -04:00
Piotr Drąg
6a8013735d Update Polish translation 2018-08-28 18:49:34 +02:00
Matthias Clasen
c3e72c4d7e Fix a typo
Its Hieroglyphs!

Closes: #1292
2018-08-28 12:24:13 -04:00
Timm Bäder
a6c47cb3ab Merge branch 'revealer-clipping' into 'master'
revealer: Only clip child when animating

See merge request GNOME/gtk!301
2018-08-28 14:49:37 +00:00
Rafael Fontenelle
cc129e564a Update Brazilian Portuguese translation 2018-08-28 03:28:14 +00:00
Timm Bäder
9fbcbc55d7 Revert "paned: Use a GtkIcon as separator"
This reverts commit 749ef4d71c.

The GtkIcon and GtkGizmo measure code is different, the former uses
-gtk-icon-size.
2018-08-27 18:55:31 +02:00
Timm Bäder
00a27c1e28 box: Remove gtk_box_get_size
One function to measure the box in the opposite of its internal
direction is enough.
2018-08-27 18:53:56 +02:00
Timm Bäder
f5f6597abc box: Rename avail_size to for_size everywhere
So we call it like we call it everywhere else.
2018-08-27 18:48:09 +02:00
Timm Bäder
fade0afbef box: Simplify compute_size_for_orientation 2018-08-27 18:45:03 +02:00
Timm Bäder
0082675de8 testoverlaystyleclass: Fix CSS snippet 2018-08-27 18:13:01 +02:00
Timm Bäder
ed8e784879 remove tests/testinput
It's broken and almost the exact same thing as the drawing demo in
gtk4-demo.
2018-08-27 17:56:02 +02:00
Adrien Plazas
a4790b7eaa Adwaita: Add color to separator.selection-mode
This makes separators to look good when separating two header bars in
selection mode.

https://gitlab.gnome.org/GNOME/gtk/issues/1286
2018-08-27 14:07:17 +02:00
Matthias Clasen
ed434519d2 Merge branch 'robertroth/readme-fix' into 'master'
docs: README.commits converted to markdown

See merge request GNOME/gtk!304
2018-08-26 23:48:51 +00:00
Robert Roth
4ed4b4fd6a docs: README.commits converted to markdown 2018-08-26 23:48:51 +00:00
Christian Kirbach
369cb702e4 Update German translation 2018-08-26 17:21:13 +00:00
Timm Bäder
d246abd085 fishbowl: Use a GtkPicture for videos 2018-08-25 08:06:37 +02:00
Timm Bäder
911627fa0b menuitem: Remove duplicate include 2018-08-25 08:06:34 +02:00
Timm Bäder
ec576088bb picture: Fix doc typo 2018-08-25 08:06:28 +02:00
Timm Bäder
ab0b54db76 spinner: Remove private struct
Since priv->active is equivalent to the widget state being CHECKED, we
can as well use that everywhere.
2018-08-25 08:06:21 +02:00
Timm Bäder
fb51f8be9a colorswatch: Remove dead assignment 2018-08-25 08:06:18 +02:00
Timm Bäder
eb22c7c9c3 image: Fix gtkdoc property syntax 2018-08-25 08:06:14 +02:00
Timm Bäder
749ef4d71c paned: Use a GtkIcon as separator
And save a few lines that way.
2018-08-25 08:06:11 +02:00
Timm Bäder
f6fae1dd09 menubutton: Remove outdated line
.menu-button is not a style class we use anywhere.
2018-08-25 08:06:07 +02:00
Timm Bäder
f21abba82f renderborder: Remove unused function 2018-08-25 08:06:03 +02:00
Timm Bäder
bf222a9292 renderborder: Pull some locals into the closest scope
Especially the bounds graphene_rect_t, which is unused in the
non-border-image case.
2018-08-25 08:05:57 +02:00
Timm Bäder
96e465b6d9 checkbutton: Remove snapshot implementation
It just does when the default GtkWidget implementation does anyway:
snapshot all child widgets
2018-08-25 08:05:52 +02:00
Timm Bäder
016de68ceb radiobutton: Save signal IDs like everything else 2018-08-25 08:05:48 +02:00
Timm Bäder
d2178bcb94 fixed: Remove unused struct member 2018-08-25 08:04:43 +02:00
Ernestas Kulik
f40eb8a1fe revealer: Only clip child when animating
Currently, GtkRevealer clips the child if the transition type is
sliding, regardless of whether the animation had already ended. An
example where that is a problem would be in Nautilus: the file
operations popover button is animated on reveal to draw attention, but,
given that the button is in turn stashed inside a revealer with a
sliding animation, things suddenly fall apart.
2018-08-23 11:13:36 +03:00
Matthias Clasen
9e0f43e8cb entry completion: Avoid critical warnings
We must not call move-to-rect unless we have
a transient parent.
2018-08-20 19:15:27 +00:00
Matthias Clasen
3e4d7250a0 Merge branch 'fix-shifted-scrolling' into 'master'
gtkscrolledwindow: Consider shift key presses when decelerating

Closes #770

See merge request GNOME/gtk!286
2018-08-20 18:26:28 +00:00
Rico Tzschichholz
4ebd14c045 gesturestylus: Add missing array g-i annotation for *_get_axes params 2018-08-20 16:57:54 +02:00
Piotr Drąg
ca39b35e2f Update POTFILES.in 2018-08-19 22:05:06 +02:00
Matthias Clasen
a32fb5b849 Merge branch 'kill-subsurface' into 'master'
Kill subsurfaces

See merge request GNOME/gtk!299
2018-08-19 03:50:40 +00:00
Matthias Clasen
eed19c9269 Move tools to a subdirectory
A small step towards splitting up gtk/
2018-08-19 03:41:25 +00:00
Matthias Clasen
e2d691bdb1 gdk: Drop GDK_SURFACE_SUBSURFACE
None of the backends supports this type anymore.
2018-08-18 23:25:12 -04:00
Matthias Clasen
a73f961e65 wayland: drop subsurfaces
We don't use them in GTK+ anymore.
2018-08-18 23:25:05 -04:00
Matthias Clasen
a7aed5af4b Drop gtk_window_set_use_subsurface
This is no longer used.
2018-08-18 23:24:59 -04:00
Matthias Clasen
220a51e7cb entry completion: stop using subsurfaces
Instead, use a popup and gdk_surface_move_to_rect.
I have not tried to reproduce all details of the old
positioning logic, but moving the popup above/below
the entry works as before.
2018-08-18 23:24:53 -04:00
Jonas Ådahl
6df28420d7 tooltip: Implement positioning using gdk_window_move_to_rect()
In order to make tooltip positioning portable, make use of the
move_to_rect API. Some semantical changes are made, as identical
semantics cannot be implemented using the move-to-rect API.

Primarily the implemented semantics are:

Position the tooltip in the center pixels slightly below (defaults to 4
units below) the tooltipped widget. This is always the case for keyboard
driven tooltips; the case where it tries to avoid the pointer cursor is
not implemented.

For pointer position triggered tooltips, implement the following
additional semantics:

Use the current cursor size to determine the padding used to enlarge the
anchor rectangle. This is to try to avoid the cursor overlapping the
tooltip.

If the anchor rectangle is too tall (meaning if we'd be constrained
and flip on the Y axis, it'd flip too far away from the originally
intended position), rely only on the pointer position to position the
tooltip. The approximate pointer cursor rectangle is used as a anchor
rectangle. Ideally we should use the actual pointer cursor rectangle
(image used as well as hotspot coordinate), but we don't have API to
get that information.

If the anchor rectangle isn't to tall, just make sure the tooltip isn't
too far away from the pointer position on the X axis.

Closes: #134
Closes: #432
Closes: #574
Closes: #579
Closes: #878
2018-08-19 01:26:20 +00:00
Matthias Clasen
081b45399f gdk/wayland: Avoid idempotent wl_subsurface.set_position calls
These may not result on wl_surface.frame callbacks, yet we do trigger
a frame clock tick that would get stuck on the lack of such callback.

https://bugzilla.gnome.org/show_bug.cgi?id=784314
https://gitlab.gnome.org/GNOME/gtk/issues/844

Closes: #844
2018-08-19 01:26:20 +00:00
Matthias Clasen
0874a54708 gdk/wayland: Always map windows 'moved-to-rect' as popups
Only popups can make use of the move-to-rect semantics so it makes no
sense to try anything other surface type.
2018-08-19 01:26:20 +00:00
Matthias Clasen
cd40ec2200 gdk/wayland: Don't remap non-subsurface as subsurface
Let's just use the fact that a window was mapped as a subsurface to
remap it above another transient parent instead of relying on the more
complicated 'should-map-as-subsurface' helper function.
2018-08-19 01:26:20 +00:00
Matthias Clasen
62b887e064 Merge branch 'win32-smooth-scrolling-gtk4' into 'master'
GDK W32: Support smooth scrolling (GTK4)

See merge request GNOME/gtk!298
2018-08-18 20:39:56 +00:00
Timm Bäder
ce9ce8a5bc menu: Remove key_controller member
Unused.
2018-08-18 20:54:29 +02:00
Timm Bäder
2322f38bf9 menu: Remove initially_pushed_in flag
Unused.
2018-08-18 20:54:29 +02:00
Timm Bäder
dcb6c9b4cf menu: Remove seen_item_enter flag
Unused.
2018-08-18 20:54:29 +02:00
Timm Bäder
afdeffd820 menu: Remove have_position flag
It's always FALSE.
2018-08-18 20:54:29 +02:00
Timm Bäder
10439aaefe menu: Remove an unnecessary gtk_widget_destroy() call
The unref will already properly free the menu item's resources.
2018-08-18 20:54:29 +02:00
Руслан Ижбулатов
d64467b334 GDK W32: Support smooth scrolling
Set delta_x or delta_y for GdkScrollEvent.
HIWORD (wParam) in WM_MOUSE(H)WHEEL is the scroll delta.
A delta value of WHEEL_DELTA (which is 120) means scrolling
one full unit of something (for example, a line).

The delta should also be multiplied by the value that the
SystemParametersInfo (SPI_GETWHEELSCROLL(LINES|CHARS), 0, &value, 0)
call gives back, unless it gives back 0xffffffff, in which case
it indicates that scrolling is page- or screen-based, not line-based
(GDK doesn't support that at the moment).

Also, all deltas should be inverted, since MS sends negative deltas
when scrolling down (rotating the wheel back, in the direction of
the user).

With deltas set the mode should be set to GDK_SCROLL_SMOOTH.

Fixes issue 1263.
2018-08-18 17:02:39 +00:00
Matthias Clasen
099b967885 Don't fail the build if c++ isn't found
The intention of this check was to skip the keyword
test if no c++ compiler is found. But the meson
docs say that add_languages() will abort unless we
pass required: false.
2018-08-18 02:14:56 +00:00
Matthias Clasen
d13cd9cb67 Merge branch 'fix-shell-colorpicker' into 'master'
colorpickershell: Unpack the tuple returned from PickColor()

See merge request GNOME/gtk!296
2018-08-17 12:35:46 +00:00
Matthias Clasen
79b87cc543 print portal: don't leak window handles
Pointed out by Christian Persch.

Closes https://gitlab.gnome.org/GNOME/gtk/issues/1274
2018-08-15 23:21:15 +00:00
Matthias Clasen
3c2aceba63 print portal: Plug a memory leak
Pointed out by Christian Persch.

Closes https://gitlab.gnome.org/GNOME/gtk/issues/1271
2018-08-15 23:13:15 +00:00
Matthias Clasen
a01feae15b Use defines for bus names
This helps eradicate typos (we had some here).

Closes https://gitlab.gnome.org/GNOME/gtk/issues/1267
2018-08-15 15:54:34 -07:00
Matthias Clasen
b4d4f73d9f Merge branch 'sort' into 'master'
updateiconcache: Sort list of entries

See merge request GNOME/gtk!297
2018-08-15 22:00:13 +00:00
Matthias Clasen
c1de6219ed font chooser: Remove an unneeded ifdef
We can just always create the axes hashtable.
2018-08-15 14:52:37 -07:00
Bernhard M. Wiedemann
b364827a5b updateiconcache: Sort list of entries
because filesystem readdir order is indeterministic.

Without this patch, building openSUSE's balsa package
had variations between builds in /usr/share/balsa/icon-theme.cache
2018-08-15 03:15:14 +02:00
Matthias Clasen
bbe362d015 Merge branch 'master' into 'master'
window: Fix memory leak

See merge request GNOME/gtk!295
2018-08-13 19:33:56 +00:00
Iain Lane
08f32c6560 colorpickershell: Unpack the tuple returned from PickColor()
When calling PickColor on org.gnome.Shell, we get back an "a{sv}", which
GDBus provides to us as "(a{sv})".

At the minute we're not unpacking this tuple, and so picking fails with
messages like:

  GLib-CRITICAL **: 13:38:19.439: g_variant_lookup_value: assertion 'g_variant_is_of_type (dictionary, G_VARIANT_TYPE ("a{s*}")) || g_variant_is_of_type (dictionary, G_VARIANT_TYPE ("a{o*}"))' failed

  Gtk-WARNING **: 13:38:19.439: Picking color failed: No color received

Let's unpack it.
2018-08-13 13:52:41 +01:00
Yi-Soo An
b3c8c8e592 window: Fix memory leak
https://gitlab.gnome.org/GNOME/gtk/issues/1268
2018-08-13 17:21:42 +09:00
Emin Tufan Çetin
ed36933232 Update Turkish translation 2018-08-12 10:47:44 +00:00
Piotr Drąg
a90fc088f2 Update Polish translation 2018-08-12 00:01:28 +02:00
Matthias Clasen
ff6c4ed07e Merge branch 'gtk-4-improve-error-message' into 'master'
gtkplacessidebar: Improve error message when unlocking volume fails

See merge request GNOME/gtk!267
2018-08-07 10:01:09 +00:00
Piotr Drąg
201f635559 Update Polish translation 2018-08-06 19:01:40 +02:00
Matthias Clasen
59077e4843 migration guide: Mention GtkEventBox
Its gone.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1243
2018-08-05 19:53:02 -04:00
Carlos Soriano
3e6a473082 README: Fix Gdk doc website link 2018-08-05 21:59:27 +00:00
Carlos Soriano
580d96620e README: Document nightly docs location
Useful for exposing the documentation early.
2018-08-05 20:41:29 +00:00
segfault
61f50f2410 gtkplacessidebar: Improve error message when unlocking volume fails 2018-08-05 18:59:40 +02:00
Aurimas Černius
61b2f3c996 Updated Lithuanian translation 2018-08-05 16:06:33 +03:00
Timm Bäder
ab30850aad widget: Rename width and height member to {width,height}_request
Because that's much closer to the meaning of those values.
2018-08-05 10:22:11 +02:00
Timm Bäder
f5e04b59e9 main: Pass toplevel_widget directly to GtkWidget API
We already have the toplevel as GtkWidget: toplevel_widget.
2018-08-05 10:22:10 +02:00
Timm Bäder
c67bcf09b9 sizerequestcache: Inline out-var assignments
The additional assignment to the old result variable just adds an
indirection even though we know the point where we assign it in all
cases. Just pass the values out and return in those cases instead.
2018-08-05 10:22:10 +02:00
Timm Bäder
5eba0bc932 widgetprivate: Remove useless prototype
We implement that function lower down in that header file.
2018-08-05 10:22:10 +02:00
Timm Bäder
ff2ba52bc6 pathbar: Remove priv pointer 2018-08-05 10:22:10 +02:00
Timm Bäder
a822d6fce9 menuitem: Don't redraw unnecessarily
The gtk_widget_(un)set_state_flags calls before will do this if
necessary.
2018-08-05 10:22:10 +02:00
Timm Bäder
b749fe4270 menu: Use correct content height 2018-08-05 10:22:10 +02:00
Timm Bäder
933cb857cf menu: Allocate children according to scroll_offset
This was done by simply moving the bin_window before but now we have to
do it ourselves.
2018-08-05 10:22:10 +02:00
Timm Bäder
dde535bbdf levelbar: Don't return a double value from a gboolean function 2018-08-05 10:22:10 +02:00
Timm Bäder
71b36db88d acitonbar: Remove snapshot implementation 2018-08-05 10:22:10 +02:00
Timm Bäder
b5576397f7 modelbutton: Remove snapshot implementation
Previously, GtkBin was only snapshot'ing its one and only child, but
nowadays it doesn't implement snapshot at all and the default
implementation in GtkWidget just snapshots all child widgets, which is
exactly what the implementation in gtkmodelbutton.c was doing.
2018-08-05 10:22:10 +02:00
Matthias Clasen
4e86858405 Make color picker circular
The need for center alignment was pointed out by Timm Baeder.
2018-08-04 21:42:28 -04:00
Sebastian Keller
14b21d78db gtkscrolledwindow: Consider shift key presses when decelerating
Otherwise horizontal scrolling using the shift key would decelerate
vertically.

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/770
2018-08-04 16:24:33 +02:00
Mario Blättermann
35829a7272 Update German translation 2018-08-04 11:25:21 +00:00
Ernestas Kulik
0eb60fb03e Merge branch 'sidebar-spinner-visibility' into 'master'
sidebarrow: Hide busy_spinner by default

See merge request GNOME/gtk!285
2018-08-03 10:45:04 +00:00
Ernestas Kulik
94162197a1 sidebarrow: Hide busy_spinner by default
Since the original implementation was likely based on GTK+ 3, the change
in default visibility might have not been considered, which results in
all rows suddenly sporting a visible spinner when opening a fresh file
chooser.
2018-08-03 13:29:07 +03:00
Matthias Clasen
877fffdd5e Merge branch 'fix-app-id' into 'master'
Make xdg-shell's app_id match GApplication's application-id property

Closes #653

See merge request GNOME/gtk!284
2018-08-03 02:09:09 +00:00
Matthias Clasen
8669d31c30 color picker: Also try kwin
use a kwin color picker when we run under kwin.
2018-08-02 20:55:07 -04:00
Matthias Clasen
e76d17a786 Only use the portal color picker when appropriate
This is just moving this check around.
2018-08-02 20:54:21 -04:00
Matthias Clasen
5ab90f1a80 Add a kwin color picker
This uses the org.kde.kwin.ColorPicker interface.
2018-08-02 20:53:37 -04:00
Benjamin Otte
5b1fd111d1 Merge branch 'gbsneto/issue-1258' into 'master'
listbox: Unparent child after removing from sequence

Closes #1258

See merge request GNOME/gtk!283
2018-08-02 14:14:10 +00:00
Georges Basile Stavracas Neto
5596feae9b listbox: Store child iter in a variable when removing
Unparenting a GtkListBoxRow can drop its last reference, which
will free its memory. Right after unparenting, though, we were
accessing the row's iter - which assumes that the row is still
alive. This causes a crash when, for example, binding two or
more models to the listbox.

Fix that by storing the iter in a variable, and not trying to
access it after unparenting. After unparenting, the variables
that are potentially garbage were explicitly assigned NULL for
clarity.

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1258
2018-08-02 10:24:12 -03:00
Guido Günther
8fb8303ba0 demos: Make desktop file names match the application id 2018-08-02 12:15:43 +02:00
Guido Günther
06e4c3c991 examples: Use appliction id as desktop file base name 2018-08-02 11:10:21 +02:00
Guido Günther
f25f3b3c47 docs: Explain desktop file id == application_id in migration guide 2018-08-02 11:10:21 +02:00
Guido Günther
72ec8963d7 gdk: Use application_id as xdg_shell's app_id if available
This (manually) reverts commit e1fd87728d

This makes sure xdg_shell's app_id matches the DBus name of the the
appliation when using GtkApplication. It also allows the compositor to
derive the desktop file ID from the app_id:

   https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml?id=298d888ac718eae57ff2245d373d4327074506ea#n598

Closes #653
2018-08-02 11:03:41 +02:00
Benjamin Otte
50d5666db0 container: Remove focus chains
They're prectically unused.

Widgets who want to influcence the focus chain behavior should implement
GtkWidgetClass::focus and deal with focus there.
2018-07-31 22:34:27 +02:00
Benjamin Otte
e06044530f widgetfocus: Fix copy/paste error
This lead to erratic focus behavior with <Tab> in hboxes, where the
smallest child got focus first instead of the leftmost child.
2018-07-31 22:34:27 +02:00
Benjamin Otte
7ce7e5503f colorpicker: Fix gcc warning 2018-07-31 22:34:27 +02:00
Matthias Clasen
0ba307995d Mention gtk_widget_show_all in the migration guide
This function is gone.

Closes https://gitlab.gnome.org/GNOME/gtk/issues/1242
2018-07-31 13:38:10 -04:00
Matthias Clasen
ce7956cd50 Merge branch 'issue1214-tooltips-win32-gtk4' into 'master'
Gdk-Win32: Correct handling of transient state changes

See merge request GNOME/gtk!280
2018-07-31 11:37:28 +00:00
Luca Bacci
d29b378fa0 Gdk-Win32: Correct handling of transient state changes
See merge request !248
2018-07-31 11:11:26 +02:00
Benjamin Otte
1129febd7d bindings: Remove GTK_TYPE_IDENTIFIER
bindings now treat identifiers and strings the same way.

The only difference was that one allowed lookup of enum/flags by name
while the other didn't and g_warning()ed. Now both work.
2018-07-31 06:46:36 +02:00
Matthias Clasen
47928b9e14 color picker: Better debug spew
This will help in debugging issues.
2018-07-30 18:12:14 -04:00
Marek Cernocky
01f17836ac Updated Czech translation 2018-07-30 23:14:21 +02:00
Benjamin Otte
7e919aaaa5 gdk: Fix Windows and OS X backend for keyevent.string removal 2018-07-30 20:15:16 +02:00
Benjamin Otte
03a6420c37 treeview: Fix compiler warning 2018-07-30 19:58:38 +02:00
Benjamin Otte
375fbd4e47 gdk: Remove key_event->string and key_event->length
They're unused.
2018-07-30 19:32:38 +02:00
Benjamin Otte
813957a92f gdk: Remove gdk_event_get_string()
You want to use an IM module to get strings out of keypresses, not some
crude hack that only works on X11 and Wayland anyway.
2018-07-30 19:32:38 +02:00
Piotr Drąg
36ed4c2a29 Update POTFILES.skip 2018-07-30 16:31:53 +02:00
Marek Cernocky
8e78b53378 Updated Czech translation 2018-07-30 15:11:26 +02:00
Mohammed Sadiq
76ed6cf9d8 colorpickerportal: Fix memory leak 2018-07-30 18:10:31 +05:30
Carlos Garnacho
a8c6f222ed inspector: Remove unnecessary cast
Pointed out by Timm.
2018-07-30 14:21:22 +02:00
Matthias Clasen
c5afea0c6b Merge branch 'gtk-4-add-spinner-to-sidebar-row' into 'master'
gtkplacessidebar: Show busy spinner in sidebar row during mount ops

See merge request GNOME/gtk!261
2018-07-30 12:04:05 +00:00
Carlos Garnacho
efa42a6932 Merge branch 'wip/carlosg/event-final-cleanup' into 'master'
Wip/carlosg/event final cleanup

See merge request GNOME/gtk!279
2018-07-30 11:25:24 +00:00
Carlos Garnacho
5d1b2f627c tests: Port testwidgetfocus to using a motion controller 2018-07-30 13:14:12 +02:00
Carlos Garnacho
8f6f980e49 demos: Update changedisplay demo to using GtkGesture 2018-07-30 13:14:12 +02:00
Carlos Garnacho
25b3b90920 tests: Port motion-compression to using a motion controller 2018-07-30 13:14:12 +02:00
Carlos Garnacho
71762d3b28 gtkscrolledwindow: Use controller for motion capturing
Perform scrollbar visibility checks through a motion controller,
always based on GtkScrolledView-relative coordinates. The captured
event handler remains though, for a tiny bit of GDK_SCROLL event
handling.
2018-07-30 13:14:12 +02:00
Carlos Garnacho
f15224926a gtkwindow: Replace captured event handler with motion controller 2018-07-30 13:14:12 +02:00
Carlos Garnacho
1570c41efa testsuite: Update window test to use gestures when interactive 2018-07-30 13:14:12 +02:00
Carlos Garnacho
5e0f2d7d20 tests: Use gesture in testtreepos 2018-07-30 13:14:12 +02:00
Carlos Garnacho
88743ab975 tests: Use gesture to popup menu in testiconview 2018-07-30 13:14:12 +02:00
Carlos Garnacho
6f15447633 tests: Update testgrid to use gestures 2018-07-30 13:14:12 +02:00
Carlos Garnacho
85f6995511 demos: Update hypertext demo to use controllers 2018-07-30 13:14:12 +02:00
Carlos Garnacho
4d59a00074 demos: Update search_entry2 demo to use key capturing API
No more GdkEvent juggling.
2018-07-30 13:14:12 +02:00
Carlos Garnacho
2dbb1509d8 demos: drop "Event axes" demo
It's too lowlevel to be practical anymore with gtk4, and there's
the Paint and Gestures demos to demonstrate input capabilities
better than this.
2018-07-30 13:14:12 +02:00
Carlos Garnacho
101c927c40 gtk-demo: Add pad controller handling to "Paint" demo
So it's more lifelike.
2018-07-30 13:14:12 +02:00
Carlos Garnacho
6d3eb18578 gtktreeview: Use key controller on search entry handling
Use a distinct key controller so we correctly handle navigation
across matches and search cancellation. As the events are forwarded
to the search_window, those need to be pushed down the entry manually.
2018-07-30 13:14:12 +02:00
Carlos Garnacho
d301695ba1 gtktreeview: Replace event vmethod with key controller 2018-07-30 13:14:12 +02:00
Carlos Garnacho
ca8008e2c9 gtkcombobox: Use keycontroller on GtkCellEditable implementation 2018-07-30 13:14:12 +02:00
Carlos Garnacho
0d7b4ecb14 gtkentry: Use keycontroller on GtkCellEditable implementation 2018-07-30 13:14:12 +02:00
Carlos Garnacho
9a541d9b91 inspector: Use gestures/controllers for inspect button 2018-07-30 13:14:12 +02:00
Carlos Garnacho
cdfde6673d gtkcombobox: Use controller to handle combobox keybindings in menus
Instead of an ::event callback.
2018-07-30 13:14:12 +02:00
Matthias Clasen
7ef95734af Merge branch 'fix-gs-issue-404' into 'master'
window: Fallback to CSD titlebar in focus-chain

Closes gnome-software#404

See merge request GNOME/gtk!271
2018-07-30 10:53:22 +00:00
Matthias Clasen
de17e3b525 Merge branch 'devel-styling' into 'master'
Devel styling

See merge request GNOME/gtk!168
2018-07-30 10:49:56 +00:00
Jakub Steiner
f8a971a7df Adwaita: devel style
- nightly/development versions of apps should get a styled
  headerbar.

https://gitlab.gnome.org/GNOME/gtk/merge_requests/142
2018-07-30 12:09:41 +02:00
Andrea Azzarone
e1a7629a85 window: Fallback to CSD titlebar in focus-chain
CSD titlebar are included in the focus-chain. The logic used makes sure that the
initial focus avoids the titlebar, but tabbing around will eventually get there.
This logic fails in case the window has no other focusable widgets apart from
the ones in the header-bar. If this happens keynav focus will be lost. To handle
the above scenario, we need to fallback to focus the header-bar (if any).

Fixes: https://gitlab.gnome.org/GNOME/gnome-software/issues/404
2018-07-30 09:30:26 +02:00
Matthias Clasen
7d3b8b0d09 treeview: Get rid of child surfaces
Drop the drag-highlight and drag surfaces. The highlighting
is broken anyway, so just drop it for now. And for dragging
the header button, we can just position it properly, that
works just as well as this reparenting approach.
2018-07-29 15:23:41 -04:00
Piotr Drąg
fff2fabd7a Update Polish translation 2018-07-29 20:33:24 +02:00
Matthias Clasen
73b45ec77e Migration guide: mention size-allocate
Document the new argument here.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1245
2018-07-29 09:11:39 -04:00
Matthias Clasen
8f95a5980e Remove an outdated comment
We no longer have semi-private headers.
2018-07-29 08:45:34 -04:00
Christian Hergert
87d33470ed vulkan: fix warning from g_clear_pointer() changes 2018-07-28 10:54:14 -07:00
Christian Hergert
002e48c469 imwayland: fix potential leak of attr list
This fixes a potential leak of a PangoAttrList that is set when chaining
up to the parent get_preedit_string(). We check to see if the attr list
was created and reuse it instead of leaking the previous value.
2018-07-28 10:54:14 -07:00
Aurimas Černius
f33549da91 Updated Lithuanian translation 2018-07-28 20:35:20 +03:00
Matthias Clasen
f3f32b47cc Merge branch 'wip/gtk-menu-popup-no-more' into 'master'
Remove legacy GtkMenu popup APIs

See merge request GNOME/gtk!270
2018-07-27 18:57:24 +00:00
Matthias Clasen
2c5f2a2bcb Merge branch 'color-picker' into 'master'
Color picker

See merge request GNOME/gtk!273
2018-07-27 18:35:05 +00:00
Matthias Clasen
b6d990af25 tests: Update a11y tests
Some things changed.
2018-07-27 14:23:20 -04:00
Matthias Clasen
16171a232a Add a color picker implementation for gnome-shell
This adds a GtkColorPicker implementation that talks
to gnome-shell to get a color.
2018-07-27 14:23:20 -04:00
Matthias Clasen
031b5cad46 Add a color picker implementation for portals
This adds a GtkColorPicker implementation that talks
to the screnshot portal to get a color.
2018-07-27 14:23:20 -04:00
Matthias Clasen
984274497d color editor: Add a color picker button
The button is shown if we have a GtkColorPicker implemenation.
Currently, there are none, so the button is never shown.
2018-07-27 14:23:20 -04:00
Matthias Clasen
0cc0714312 Add a color picker interface
This will be used in the color chooser, in subsequent commits.
2018-07-27 14:23:19 -04:00
Matthias Clasen
766e2b1e63 testsuite: Update the list of used icons
We use some more now...
2018-07-27 13:37:00 -04:00
Matthias Clasen
c8be597b7f Bring back gtk-orientation icons
These are used in the page setup dialog, so we can't
just drop them.
2018-07-27 13:35:29 -04:00
Jonas Ådahl
4497ac7d75 menu: Remove legacy popup APIs
Remove gtk_menu_popup_for_device() and gtk_menu_popup(), as they cannot
be implemented in a portable manner by all backends. They have been
deprecated for proper alternative APIs for some time, so lets remove
them now before its too late.

While at it, fix the example documentation for mapping a menu.
2018-07-27 17:16:44 +02:00
Jonas Ådahl
af21583d4d tests: Stop using legacy gtk_menu_popup API
Use the new portable APIs, so that menus will be positioned properly on
all backends.
2018-07-27 17:16:44 +02:00
segfault
791da76ae1 gtkplacessidebar: Show busy spinner in sidebar row during mount ops 2018-07-27 16:44:50 +02:00
Matthias Clasen
d398c00d20 Fix up the resource generation for icons
The script was looking in the wrong subdirectories.
2018-07-27 09:08:27 -04:00
Matthias Clasen
cb247276f5 Add emoji category icons
This is a temporary measure to make the check-icon-names
test not fail in ci. We still have to figure out the best
way to include a core icontheme with GTK+.
2018-07-27 08:05:55 -04:00
Matthias Clasen
c6141dffd2 Keep picking up icons as resources
We may need to revisit this at some point. For now,
keep the mechanism in place.

This is a partial revert of 806c659efe.
2018-07-27 08:05:55 -04:00
Daniel Mustieles
755d8f8332 Updated Spanish translation 2018-07-27 13:40:20 +02:00
Matthias Clasen
32de29bb68 testsuite: Sort icon names
This is easier to keep track of.
2018-07-27 07:12:23 -04:00
Timm Bäder
540cb58169 Merge branch 'patch-1' into 'master'
doc: Fix there/their typo

See merge request GNOME/gtk!274
2018-07-27 04:47:04 +00:00
Alcaro
a1a6e6a36a doc: Fix there/their typo 2018-07-27 02:28:45 +00:00
Timm Bäder
798ad9f62a Merge branch 'g-clear-pointer-propagate' into 'master'
Remove GDestroyNotify casts in g_clear_pointer() uses

See merge request GNOME/gtk!269
2018-07-26 07:34:12 +00:00
Matthias Clasen
ad6255a841 Merge branch 'xfixes-timestamp' into 'master'
x11: Ignore old XFixesSelectionNotify events

Closes #14

See merge request GNOME/gtk!259
2018-07-25 11:21:01 +00:00
Ernestas Kulik
6adaf7c33d Remove GDestroyNotify casts in g_clear_pointer() uses
GLib master propagates argument types in g_clear_pointer(), which causes
the usual function pointer casts to GDestroyNotify to trip compiler
warnings. Additionally, this commit changes some cleanup functions where
appropriate (wl_data_source_destroy ->
gtk_primary_selection_source_destroy for struct
gtk_primary_selection_source).
2018-07-25 10:05:39 +03:00
Benjamin Otte
95a4eff6ba render: Make gtk_render_icon() use the snapshot API
This removes a lot of duplicated code.
2018-07-24 20:55:45 +02:00
Benjamin Otte
9675c99043 render: Make gtk_render_frame() and gtk_render_focus() use the snapshot API
This removes a lot of duplicated code.
2018-07-24 20:55:45 +02:00
Benjamin Otte
76d0e1e398 API: Remove gtk_render_frame_gap()
That function does not make sense at all in a CSS world. So better don't
support it anymore.
2018-07-24 20:55:45 +02:00
Benjamin Otte
14408b7485 render: Make gtk_render_background() use the snapshot API
This removes a lot of duplicated code.
2018-07-24 20:55:45 +02:00
Benjamin Otte
2a11baf6ea render: Make gtk_render_check/arrow/handle() use the snapshot API
This removes a lot of duplicated code.
2018-07-24 20:55:45 +02:00
Benjamin Otte
51d40ca023 render: Make gtk_render_layout() use the snapshot API
This removes a lot of duplicated code.
2018-07-24 20:55:45 +02:00
Benjamin Otte
5d9d73b090 testsuite: Fix DragContext => Drag renaming 2018-07-24 20:55:45 +02:00
Benjamin Otte
5f7e093168 gtk: Move GtkGesture declaration to gtktypes.h
That way, headers can use the gesture type without having to include
gtkgesture.h
2018-07-24 20:55:45 +02:00
Benjamin Otte
0f70e6d70a docs: Remove remains of Mir backend 2018-07-24 20:55:45 +02:00
Benjamin Otte
259be23ff2 broadway: Remove unused variable 2018-07-24 20:55:45 +02:00
Daniel Șerbănescu
337eedb513 Update Romanian translation 2018-07-24 18:09:59 +00:00
Nirbheek Chauhan
185354555c Merge branch 'nirbheek/misc-meson-fixes' into 'master'
Fix broadway backend build and graphene as a subproject

Closes #1197 and #1218

See merge request GNOME/gtk!265
2018-07-24 08:29:34 +00:00
Daniel Mustieles
29905d1ce6 Updated Spanish translation 2018-07-24 10:03:20 +02:00
Timm Bäder
73dd73c859 Merge branch 'just-popover-menu-things' into 'master'
Post-gizmo GtkPopoverMenu fixes

See merge request GNOME/gtk!264
2018-07-23 18:55:55 +00:00
Nirbheek Chauhan
cfb0df14cc meson: Update pango and gdk-pixbuf wrap locations
See: https://gitlab.gnome.org/GNOME/gtk/issues/1219
2018-07-23 20:17:04 +05:30
Nirbheek Chauhan
b343abfa51 meson: Support graphene as a fallback dependency
Don't assume graphene_dep is always a pkg-config dependency.

Closes https://gitlab.gnome.org/GNOME/gtk/issues/1197
2018-07-23 20:17:04 +05:30
Nirbheek Chauhan
5df4d27752 meson: libgdk-broadway.a depends on broadwayjs.h
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1218

Also fix another dependency error I found.
2018-07-23 20:15:44 +05:30
Daniel Mustieles
bbf5d142b3 Updated Spanish translation 2018-07-23 12:10:24 +02:00
Ernestas Kulik
1fbbaef49e testpopover: Don’t set margin in menu box
The gizmo already provides sufficient padding.
2018-07-23 13:05:57 +03:00
Ernestas Kulik
d88268c142 gtkpopovermenu: Conditionally chain up in gtk_popover_menu_add()
Otherwise the stack gets parented to the wrong widget and the contents
are never drawn.
2018-07-23 13:01:01 +03:00
Ernestas Kulik
49ae68c2c7 gtkpopovermenu: Drop call to gtk_widget_show()
The stack is already visible.
2018-07-23 13:00:11 +03:00
Matthias Clasen
1d72e3e193 Drop builtin icon test
We don't have these icons anymore.
2018-07-22 17:16:20 +00:00
Jason Crain
77c3ef48cf x11: Ignore old XFixesSelectionNotify events
GtkEntryCompletion can rapidly release and claim ownership of the
primary selection. This generates multiple XFixesSelectionNotify events,
first stating that no one owns the selection, then another stating that
we own the selection. The notification that no one owns the selection
causes GtkEntryCompletion to deselect the text, breaking inline
autocompletion.

This fixes it by ignoring any XFixesSelectionNotify with a timestamp
earlier than our clipboard timestamp.

Fixes #14
2018-07-21 15:22:04 -05:00
Bruce Cowan
20deda2bd6 Update British English translation 2018-07-21 11:08:03 +00:00
Benjamin Otte
447b166ed3 Merge branch 'wip/muktupavels/remove-gtk-css-provider-get-default' into 'master'
gtkcssprovider: remove gtk_css_provider_get_default

See merge request GNOME/gtk!256
2018-07-20 14:03:51 +00:00
Christoph Reiter
1b230324ba ci: add hicolor-icon-theme to the docker image
The tests complain about it, not sure if this helps.
2018-07-20 15:04:26 +02:00
Matthias Clasen
806c659efe Drop unused old icons
We don't need to ship the deprecated old stock-id named
icons and the drag cursors - we don't use them from resources
anyway.
2018-07-20 08:06:07 -04:00
Emin Tufan Çetin
51873ebe37 Update Turkish translation 2018-07-20 11:18:15 +00:00
Matthias Clasen
827219e214 Emoji chooser: Also check for hex boxes
We don't want to see those either.
2018-07-19 17:57:19 -04:00
Matthias Clasen
5c9b25c66e moji chooser: Try harder to avoid fallback
We don't want to see any fallback rendering.
The current check was still letting some fallback
combinations through.

Based on work by Julian Sparber.
2018-07-19 17:50:54 -04:00
Matthias Clasen
37e4ae2fbd Quiet a compiler warning
We don't need to handle GDK_CONFIGURE here, so make the
compiler not warn about it.
2018-07-19 17:48:06 -04:00
Matthias Clasen
14f86ae24d testsuite: Add emoji icon names
We check for all icon names that are used in gtk.
2018-07-19 17:48:06 -04:00
Matthias Clasen
849ffebc21 Emoji chooser: Use icons for sections
This is more reliable than using text-style Emoji
which may not be present.

Based on work by Julian Sparber.
2018-07-19 17:47:50 -04:00
Matthias Clasen
7dabc2a42c Merge branch 'master' into 'master'
widgetfactory: add separator tool item to presentation

See merge request GNOME/gtk!249
2018-07-19 18:06:25 +00:00
Matthias Clasen
bef8a3a0e9 Merge branch 'content-provider-autoptr' into 'master'
gdk: Add auto cleanup func for GdkContentProvider

See merge request GNOME/gtk!251
2018-07-19 18:04:24 +00:00
Matthias Clasen
31d2638088 Merge branch 'content-provider-docs' into 'master'
docs: Fix GdkContentProvider documentation

See merge request GNOME/gtk!254
2018-07-19 17:46:36 +00:00
Ernestas Kulik
40019517cf docs: Fix GdkContentProvider documentation
Currently it’s lacking properties, signals and class vfuncs.
2018-07-19 20:05:19 +03:00
Alberts Muktupāvels
7a8f5ca970 gtkcssprovider: remove gtk_css_provider_get_default
This function is unused since cdc6e82720 commit and does not
contain fallback style.

https://gitlab.gnome.org/GNOME/gtk/issues/1226
2018-07-19 19:25:17 +03:00
Benjamin Otte
4063c3dc31 Merge branch 'content-deserializer-fixes' into 'master'
Content deserializer fixes

See merge request GNOME/gtk!252
2018-07-19 13:59:21 +00:00
Ernestas Kulik
96d0368290 gdk: contentdeserializer: Fix deserializer not returning
file_uri_deserializer does not return on success, only on failure. This
commit fixes clipboard reads never finishing for some types.
2018-07-19 15:55:58 +03:00
Ernestas Kulik
9a0ec5b1e0 gdk: contentdeserializer: Fix stream usage
file_uri_deserializer splices a memory stream, as opposed to
string_deserializer, which uses a converter and filter stream. This
commit fixes erroneous use of GMemoryOutputStream as
GFilterOutputStream.
2018-07-19 15:53:08 +03:00
Ernestas Kulik
7b5a0a829a gdk: Add auto cleanup func for GdkContentProvider 2018-07-19 11:28:21 +03:00
Matthias Clasen
1030d9e5b1 docs: Small updates to the migration guide
Mention that event controllers are available in 3.x, amongst others.
2018-07-18 20:22:18 -04:00
Matthias Clasen
0750b4fd28 Merge branch 'places-sidebar-dnd' into 'master'
placessidebar: Take a GdkDrag in _set_drop_targets_visible()

Closes #1220

See merge request GNOME/gtk!247
2018-07-18 00:23:08 +00:00
Günther Wutz
1d4ce5a544 widgetfactory: add separator tool item to presentation 2018-07-17 21:50:19 +02:00
Ernestas Kulik
4b2d63167e placessidebar: Take a GdkDrag in _set_drop_targets_visible()
Since the function is usually called from GtkWidget::drag-{begin,end} handlers,
taking a GdkDrop does not work, especially given that
::drag-action-requested is emitted without checking the type.

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1220
2018-07-17 19:19:14 +03:00
Timm Bäder
6fe0a8c6b3 gesturestylus: Clarify a documentation comment
Use the proper gtkdoc syntax for signals.
2018-07-17 17:33:47 +02:00
Timm Bäder
04eb7eef29 Remove icon extents API 2018-07-17 17:33:47 +02:00
Timm Bäder
480a2c2770 widget: Remove another ->priv usage 2018-07-17 17:33:47 +02:00
Timm Bäder
f699fff6e0 sizerequest: Pull locals into closest scope 2018-07-17 17:33:47 +02:00
Timm Bäder
4bc145549d Correctly mark an enum value in a doc comment 2018-07-17 17:33:47 +02:00
Timm Bäder
cf7fa931d3 sizerequest: Only check reported baselines if requested
If the passed-in store locations for the baselines are NULL anyway, we
don't need to check the reported baselines for correctness.
2018-07-17 17:33:47 +02:00
Timm Bäder
392b4d9ac5 gl renderer: Pull a few declarations into the closest scope 2018-07-17 17:33:47 +02:00
Timm Bäder
3f126c7fc8 Remove GTK_CSS_AFFECTS_CLIP
Clips don't exist anymore and this flag is unused outside of the style
property definitions in gtkcssstylepropertyimpl.c
2018-07-17 17:33:47 +02:00
Timm Bäder
960717b273 window: Don't queue an allocate if the css clip changes
clips don't exist anymore.
2018-07-17 17:33:47 +02:00
Timm Bäder
5386cf89f2 GskRoundedRect: Typo 2018-07-17 17:33:47 +02:00
Timm Bäder
b7d948af69 gl renderer: Use a GArray for the shadow cache
It's very small usually, in default Adwaita the only blurred outset
shadow we have is the one for the CSD'd toplevel window.
2018-07-17 17:33:46 +02:00
Timm Bäder
446b2e25d3 Avoid a g_object_get path
We can use gdk_device_get_n_axes instead and will get the same result.
2018-07-17 17:33:46 +02:00
Timm Bäder
17b1e7bae9 docs: Fix scroll and motion controller titles
Controller, not Controler.
2018-07-17 17:33:46 +02:00
Emmanuele Bassi
9dc679370c Merge branch 'legacy-gl' into 'master'
fix the OpenGL renderer for legacy contexts

See merge request GNOME/gtk!240
2018-07-17 11:07:27 +00:00
Piotr Drąg
033cf4bfb7 Update POTFILES.in 2018-07-16 16:35:52 +02:00
Matthias Clasen
bf5f27c6d5 Handle configure events in gdk
The previous attempt at removing configure events entirely
was causing some dialogs not to show up under Wayland.
Presumably due to ordering issues with emitting ::size-change
out of the backend.

Instead, keep configure events in the event queue, but handle
them on the gdk side. This keeps the ordering intact, while
still removing configure events from the api. The dialogs
show up now.
2018-07-15 20:23:45 -04:00
Matthias Clasen
7a1073c3ae Revert "gdk: Drop configure events"
This reverts commit a8926c9d87.
2018-07-15 20:23:45 -04:00
Matthias Clasen
e2fd33f78a Revert "broadway: Stop using configure events"
This reverts commit 9c827cbff4.
2018-07-15 20:23:45 -04:00
Matthias Clasen
89f25d1484 Merge branch 'dnd-cleanups' into 'master'
Dnd cleanups

See merge request GNOME/gtk!243
2018-07-15 22:18:11 +00:00
Matthias Clasen
3c8b3cbf41 win32: Stop accessing GdkDrag members 2018-07-15 16:58:22 -04:00
Matthias Clasen
410d4bca83 wayland: Set actions on drag
We should pass the actions to the newly created
drag in drag_begin.
2018-07-15 16:52:16 -04:00
Matthias Clasen
168523264c x11: Set actions on drag
We should pass the actions to the newly created
drag object in drag_begin.
2018-07-15 16:50:06 -04:00
Matthias Clasen
435f143e2e x11: Rename a file
Keep in line with the parent class.
2018-07-15 16:47:17 -04:00
Matthias Clasen
98ccb67277 drop: stop accessing GdkDrag fields 2018-07-15 16:43:28 -04:00
Matthias Clasen
2d83bb1b91 x11: Stop using GdkDrag fields 2018-07-15 16:43:28 -04:00
Matthias Clasen
298b6ee81a wayland: Stop accessing GdkDrag members 2018-07-15 16:43:28 -04:00
Matthias Clasen
5ce3520a2a Add a GdkDrag::surface property 2018-07-15 16:43:28 -04:00
Matthias Clasen
9cc3e2c8ef gdkdrag: remove an unused member
The drag surface is stored in the subclasses and obtained
by via the get_drag_surface vfunc.
2018-07-15 16:42:07 -04:00
Matthias Clasen
034f89b17f wayland: Drop an unused api
Nothing was calling gdk_wayland_drag_set_source_surface.
2018-07-15 16:42:07 -04:00
Matthias Clasen
1ea09a327a Add a private struct to GdkDrag
This will force subclasses to use proper api.
2018-07-15 16:42:00 -04:00
Matthias Clasen
bc2f484ae9 Revert "GdkDrop: drop the priv struct"
This reverts commit d927c3bee0.

I was wrong. Better to hide the struct fields from subclasses.
2018-07-15 15:58:05 -04:00
Matthias Clasen
228f813c43 dnd: Drop gdk_drag_drop
This is an inconsistently used private api, and just adds
a vfunc indirection for no other benefit.
2018-07-15 15:58:05 -04:00
Matthias Clasen
17386b5cf7 Merge branch 'wip/matthiasc/kill-non-input-events' into 'master'
Wip/matthiasc/kill non input events

See merge request GNOME/gtk!242
2018-07-15 19:50:37 +00:00
Matthias Clasen
288086b899 Fix up some doc mishaps
When GdkWindow was renamed to GdkSurface, 'window managers'
turned into 'surface managers'. Thats not cool.
2018-07-15 15:36:19 -04:00
Matthias Clasen
d148f26658 Drop gdk_surface_withdraw
'withdrawn' is an X11-centric concept, and the function
can just as well be replaced by gdk_surface_hide.
2018-07-15 15:29:58 -04:00
Matthias Clasen
7ca6440f4d gdk: Drop map events
We are really inconsistent about generating these,
and they are not actually used in GTK+. Instead,
add a boolean GdkSurface::mapped property.
2018-07-15 15:10:56 -04:00
Matthias Clasen
1172810768 win32: Stop using expose and configure events
These no longer exist.
2018-07-15 14:07:40 -04:00
Matthias Clasen
9c827cbff4 broadway: Stop using configure events
These no longer exist.
2018-07-15 14:01:59 -04:00
Matthias Clasen
da3aaf39b9 gdk: Drop expose events
Replace expose events with a GdkSurface::expose signal.
This is part of the move to use events only for input.
2018-07-15 13:13:07 -04:00
Matthias Clasen
a8926c9d87 gdk: Drop configure events
Replace configure events with a GdkSurface::size-changed signal.
This is part of the move to use events only for input.
2018-07-15 11:51:09 -04:00
Matthias Clasen
443f8ddf6b popover: Drop some dead code
This will be done differently, using xdg-popup instead
of subsurfaces, so no point in keeping this.
2018-07-15 08:18:08 -04:00
Matthias Clasen
6a7de806dd text display: correct a comment 2018-07-14 13:50:14 -04:00
Elias Aebi
19873e549a gl: implement clipping for legacy contexts 2018-07-14 14:31:50 +02:00
Elias Aebi
05ca6bc189 gl: fix compilation errors for legacy context shaders 2018-07-14 14:24:21 +02:00
Benjamin Otte
cbb1e74bb5 textview: Only create cairo context in gtktextdisplay.c
Everything else is done using GtkSnapshot now, including renaming the
draw_layer vfunc to snapshot_layer.
2018-07-14 05:27:54 +02:00
Benjamin Otte
6afb6bb9d2 x11: Set BackPixmap = None unconditionally
Makes it more obvious what we actually want.

Related: #1134
2018-07-14 05:27:54 +02:00
Piotr Drąg
60afd056e0 Update POTFILES.in 2018-07-13 15:11:45 +02:00
Benjamin Otte
4456b06853 window: Update opaque region if background-color changes
The opaque region is only set when the background color is opaque. So
we need to do something about it when the background color changes.

However, in the case where a size allocation is going to happen, we
already do this update in size_allocate(), so in that case avoid doing
it twice.
2018-07-13 14:56:04 +02:00
Benjamin Otte
2f72353e0e gtk-demo: Update aspect-ratio when selecting new puzzle 2018-07-13 14:56:04 +02:00
Benjamin Otte
88af7b44aa textview: Use snapshot on the sidebars 2018-07-13 14:56:04 +02:00
Benjamin Otte
a7cd1918a8 widgetpaintable: Add a hack to make recursion not infloop
Makes the GUADEC talk not crash that I'm supposed to give in 20 minutes.
2018-07-13 14:56:04 +02:00
Benjamin Otte
bcfd1bbd24 widgetpaintable: Redo implementation
Instead of instantly invalidating, we now cache the old render node and
do the update in an idle handler.
While that gives us a 1 frame delay, it avoids all the tricky things
like queueing resizes while resizing or queueing draws while drawing.

The only remaining issue (and a *big* one at that) is that a nested
widget paintable will now cause the widget to snapshot its previous
render node when creating a new one. And that one will snapshot its
previous render node, and that one will...
And nothing so far breaks this recursion.
2018-07-13 14:56:04 +02:00
Benjamin Otte
1a5e60be7c paintable: Fix return_if_fail() statements
I always switch them up...
2018-07-13 14:56:04 +02:00
Benjamin Otte
3ce3867403 gl: Don't accidentally use ints for float variables
The int was floor()ing the x/y coordinates of glyphs, which could cause
significant repositioning of glyphs when text was scaled via the MVP.
2018-07-13 14:56:04 +02:00
Matthias Clasen
00a61f92b6 docs: Small updates
Remove a few references to no-longer-existing APIs.
2018-07-13 10:13:00 +02:00
Matthias Clasen
986daa8225 Merge branch 'dnd-cleanups' into 'master'
Dnd cleanups

See merge request GNOME/gtk!228
2018-07-13 07:45:57 +00:00
Matthias Clasen
e72ca43a32 Merge branch 'fix-wayland' into 'master'
GtkIMContextSimple: Fix Wayland build when X11 support is disabled

See merge request GNOME/gtk!234
2018-07-12 12:18:59 +00:00
Matthias Clasen
f432c937cc dnd: Drop gdk_drag_abort
This function is never called, so drop it, its vfunc,
and all the backend implementations.
2018-07-12 13:57:45 +02:00
Matthias Clasen
1dd15b5237 dnd: Some documentation updates
Don't mention dnd protocols, and do mention the new,
split objects.
2018-07-12 13:57:45 +02:00
Matthias Clasen
5cdbbc6e61 win32: Build fixes 2018-07-12 13:02:42 +02:00
Matthias Clasen
0e2ac0ebf2 wayland: Rename a source file
Rename gdkdnd-wayland.c to gdkdrag-wayland.c to go along
with gdkdrop-wayland.c.
2018-07-12 13:02:42 +02:00
Matthias Clasen
c73cb2c154 wayland: Drop an unused field
Nothing was using the foreign_dnd_surface anymore, so no
need to create it in the first place.
2018-07-12 13:02:42 +02:00
Matthias Clasen
a756caa106 dnd: Drop suggested_action
The only user of this field was the x11 backend, and it
turns out that it does not need to store the value at all.
2018-07-12 13:02:42 +02:00
Matthias Clasen
da22ba3b86 drag: Split a setter
In preparation for moving the suggested action
to the x11 backend, split the setter off.
2018-07-12 13:02:42 +02:00
Matthias Clasen
7a0a92f2b6 win32: Stop using gdk_drag_get_suggested_action
The suggested action is not set or used in the win32
information, so don't put it in logs either.
2018-07-12 13:02:42 +02:00
Matthias Clasen
d927c3bee0 GdkDrop: drop the priv struct
Its not needed.
2018-07-12 13:02:42 +02:00
Matthias Clasen
59c2efbcd6 Add a GdkDrag::actions property
To go along the GdkDrop::actions property.
2018-07-12 13:02:42 +02:00
Matthias Clasen
94af080fb6 Rename a property
Change GdkDrag::action to GdkDrag::selected-action, which is
more clearly different from actions, and follows the existing
name of the struct field and getter.
2018-07-12 13:02:42 +02:00
Matthias Clasen
40841ec3be GdkDrag: Drop the priv struct
We don't need it.
2018-07-12 13:02:42 +02:00
Matthias Clasen
f69bb2fb2b wayland: set a cursor when starting a drag
Otherwise, we wont have one.
2018-07-12 13:02:42 +02:00
Matthias Clasen
db0b9f61ae dnd: Add a GdkDrag::action property
This lets us drop the ::action-changed signal for the
property change notification. But, can just as well move
the signal class handers which just update the cursor
to the ::action setter. No need to do this in the backends.
2018-07-12 13:02:42 +02:00
Matthias Clasen
63ab523146 wayland: Remove an unused field
GdkDragWayland.suggested_action was entirely unused, so drop it.
2018-07-12 13:02:42 +02:00
Matthias Clasen
b94c3166bf dnd: Rename gtk_drag_begin_with_coordinates
Now that the coordiate-less variant is gone,
rename this back to the shorter gtk_drag_begin.
2018-07-12 13:02:42 +02:00
Daniel Boles
7030e08f9c Merge branch 'master' into 'master'
HighContrast: Restore expander size

Closes #1046

See merge request GNOME/gtk!167
2018-07-09 17:28:49 +00:00
Timm Bäder
2cc6a3ee5c widget factory: Use GtkPicture for background selection
Showing those background images as 16×16 icons doesn't look very nice.
2018-07-08 21:50:59 +02:00
Timm Bäder
3dd188fe7e gl renderer: Cache blurred outset shadow nodes
Since these are particularly expensive to render and we have a pretty
big one used in every client-side decorated window.
2018-07-08 21:50:59 +02:00
Timm Bäder
d41603d82a aboutdialog: Remove priv pointer 2018-07-08 21:50:59 +02:00
Timm Bäder
f7aff03c72 layout: Remove priv pointer 2018-07-08 21:50:59 +02:00
Timm Bäder
a0b8e32462 rendernodes: Fix unconditionally impossible diffs
Some of the _diff implementations did a whole bunch of work just to
throw it away afterwards and invalidate the entire union of the two
render nodes, most notably the two clip nodes. Fix this to only call
gsk_render_node_diff_impossible if the previous if-condition is FALSE
and not always.
2018-07-08 21:50:59 +02:00
Timm Bäder
50f76eb8cc GskRenderer: Add missing nullable annotation 2018-07-08 21:50:59 +02:00
Timm Bäder
9959ea98cd Revert "snapshot: merge container nodes"
This reverts commit 622a150bb4.
2018-07-08 21:50:59 +02:00
Emmanuel Gil Peyrot
8ca3ac1970 GtkIMContextSimple: Fix Wayland build when X11 support is disabled. 2018-07-08 20:11:01 +02:00
Balázs Meskó
27ba2411f0 Update Hungarian translation 2018-07-08 14:04:15 +00:00
Timm Bäder
a6920855ea Implement GtkInspectorLayoutOverlay
To properly replace the old "show layout borders" option.
2018-07-08 11:26:12 +02:00
Timm Bäder
c85e2401fa treeview: Fix column visibility check
This is still fallout from the bin_window removal. We aren't moving the
GdkWindow/GdkSurface anymore so we have to account for the scrolling
ourselves.
2018-07-08 10:32:12 +02:00
Timm Bäder
6fdcafc94a treeview: Move column header widgets when scrolling
Since those are widgets and widgets need to be size-allocate'd properly,
we need to queue an allocate, as well as actually add the hadjustment's
value to the column x position.

Fixes #1202
2018-07-08 10:04:27 +02:00
Timm Bäder
9bab218314 aspectframe: Remove priv pointer 2018-07-08 10:02:43 +02:00
Timm Bäder
2854635850 scalebutton: Remove priv pointer 2018-07-08 09:41:15 +02:00
Timm Bäder
a976aa9740 searchbar: Ignore key presses when unmapped
The purpose of a searchbar is to start a search on visible widgets when
a key is pressed. Starting a search on e.g. a stack page that is not
visible at all is not very useful.
2018-07-08 09:41:15 +02:00
Timm Bäder
074eb2a19d accellabel: Add newline between consecutive if statements 2018-07-08 09:41:15 +02:00
Timm Bäder
96812450fa listbox demo: Hide extra_buttons_box by default
It should only show up when hovering the row.
2018-07-08 09:41:15 +02:00
Timm Bäder
93c688cd93 range: Remove has_origin flag
It's equivalent to the highlight_widget being !NULL.
2018-07-08 09:41:15 +02:00
Timm Bäder
53afc4a9d9 dialog: Remove priv pointer 2018-07-08 09:41:15 +02:00
Timm Bäder
c96077590b dialog: Remove some GtkVBox references 2018-07-08 09:41:15 +02:00
Timm Bäder
6e47d0bf4a GtkSeparatorToolItem: Remove draw flag
We can as well query the current value of the flag using
gtk_style_context_has_class.
2018-07-08 09:41:15 +02:00
Timm Bäder
50b79ae0ab GtkSeparatorToolItem: Remove priv pointer 2018-07-08 09:41:15 +02:00
Timm Bäder
6b4709ea3c GtkApplication: Remove priv pointer 2018-07-08 09:41:15 +02:00
Timm Bäder
f3a83abb54 colorswatch: Remove priv pointer 2018-07-08 09:41:15 +02:00
Timm Bäder
33166b7357 render: Remove gtk_render_slider
The only thing it was doing is render background and frame, which you
get from using a widget for your slider anyway.
2018-07-08 09:41:15 +02:00
Timm Bäder
bb31ce1168 renderborder: Remove some unused API 2018-07-08 09:41:15 +02:00
Timm Bäder
dbf32933bf main: Don't look at first GTK_DISPLAY_DEBUG_CHECK parameter...
... if none of the debug displays have any debug flags set. This way, we
can ignore the first parameter to e.g. GTK_DISPLAY_NOTE, which is
usually a call to gtk_widget_get_display.

Before this patch, gtk_widget_get_display was the slowest part of
gtk_widget_query_size_for_orientation.
2018-07-08 09:41:15 +02:00
Timm Bäder
af8fe182c8 Fix a few documentation warnings 2018-07-08 09:41:15 +02:00
Timm Bäder
731f0d4d01 Merge branch 'gtk-picture-docs' into 'master'
docs: Add GtkPicture to types list

See merge request GNOME/gtk!233
2018-07-07 06:30:37 +00:00
Thomas Bechtold
e42373df89 docs: Add GtkPicture to types list
We want signals, arguments/parameters and position in the hierarchy to
be shown in the documentation for GtkPicture. So fix the types list.

See
https://developer.gnome.org/gtk-doc-manual/unstable/metafiles_types.html.en
2018-07-06 22:14:26 +02:00
Timm Bäder
da8050979e fixed: Remove child list
Use the child widget list from GtkWidget and attach x/y positions via a
qdata.
2018-07-05 19:08:19 +02:00
Timm Bäder
4dd1ff6dd2 GtkLayout: Remove freeze_count member
Unused.
2018-07-05 19:08:19 +02:00
Timm Bäder
8c403c43f0 spinbutton: Keep GParamSpecs around
notify_by_pspec is more efficient and this way the source file is more
in line with the others.
2018-07-05 19:08:19 +02:00
Emmanuele Bassi
2feb5c93ca ci: Update the image for the Flatpak jobs
The gnome-nightly-oci registry was moved to gitlab.gnome.org, so we
need to change the image we use when building Flatpak bundles in our
CI pipeline.
2018-07-04 18:32:59 +01:00
Emmanuele Bassi
9924a92e70 Merge branch '1140-gtk_printer_get_hard_margins_for_paper_size-is-not-external' into 'master'
Resolve "gtk_printer_get_hard_margins_for_paper_size() is not external"

Closes #1140

See merge request GNOME/gtk!229
2018-07-04 16:55:34 +00:00
Kjell Ahlstedt
6c8988e445 gtkprinter: Make gtk_printer_get_hard_margins_for_paper_size() public
The declaration in gtkprinter.h shall be preceded by GDK_AVAILABLE_IN_ALL,
or else the function can't be used in application programs.

Closes #1140
2018-07-04 18:40:33 +02:00
Benjamin Otte
9fb3b84253 rendernode: Make offset nodes use floats
It's OpenGL stuff, use floats.
2018-07-04 15:05:37 +02:00
Benjamin Otte
3439862634 gtkmediafile: Don't leak all the images
We were leaking the GBytes for the image memory, which is a
noticeable memleak to anyone who's casually running a memory monitor.

Go KDE users!

Closes #1200
2018-07-04 15:05:02 +02:00
Benjamin Otte
93c5455796 iconhelper: Plug memleak 2018-07-04 15:04:04 +02:00
Benjamin Otte
e665667bff mediafile: Check if media files are open when trying to play
If no file is open, refuse to play.
2018-07-04 06:15:33 +02:00
Benjamin Otte
3ca59b8701 css: Don't do indirections
We don't need to look up the property by name to query its ID when we
know the ID already because it's inside an enum.
2018-07-04 06:15:33 +02:00
Benjamin Otte
fba0b359d4 css: Report sizes as absolute
All PangoFontDescriptions that GTK creates now use
pango_font_description_set_absolute_size().
2018-07-04 06:15:33 +02:00
Benjamin Otte
e1b6496af7 image: size request is always CONSTANT_SIZE
It's always -gtk-icon-size in both directions, even for paintables.
There's no width-for-height happening.
2018-07-04 06:15:33 +02:00
Daniel Boles
14620423e8 themes: Restore default progressbar min sizes
The min size on the oriented axis used to come from style props with
default values in the source file, used if the theme did not provide a
min size in CSS. When the style props were removed, so was any notion of
a minimal size for proressbars' main axis, meaning that now progressbars
without expand or any other source of min size were just tiny specks.

The right place to do that was always the theme, so in our themes now,
fix that by copying the old default values for the style properties; see:

https://gitlab.gnome.org/GNOME/gtk/issues/1191#note_259393
https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/gtk/gtkprogressbar.c#L92

The result should be the same in that (A) the min size is now what it is
in GTK+ 3 & (B) an app/user can override the theme exactly the same way.

Close https://gitlab.gnome.org/GNOME/gtk/issues/1192
2018-07-03 18:55:31 +01:00
Daniel Boles
55a1f8ccfd HC: merge dupe selectors; linebreaks for legibility 2018-07-03 18:55:17 +01:00
Timm Bäder
19afe454df Merge branch 'gdk4-dnd-docs' into 'master'
docs: Add new DnD types

See merge request GNOME/gtk!227
2018-07-03 17:28:44 +00:00
Piotr Drąg
7d842cb7fc Update POTFILES.in 2018-07-03 17:11:00 +02:00
Ernestas Kulik
3137d326c5 docs: Add new DnD types
7733f646d6 renamed GdkDragContext to
GdkDrag, which broke the docs, as a reference to
gdk_drag_context_get_type() still exists. This commit renames the type
accordingly and adds GdkDrop.
2018-07-03 12:32:41 +03:00
Matthias Clasen
12464731f1 Merge branch 'dnd-cleanups' into 'master'
Dnd cleanups

See merge request GNOME/gtk!226
2018-07-02 21:19:45 +00:00
Daniel Boles
269a9d8528 Adwaita: Drop some unneeded overrides
The pseudoclasses work fine on the subnodes without having to also apply
`parent:class subnode`.
2018-07-02 22:04:35 +01:00
Daniel Boles
c892d2767a Adwaita: Regenerate CSS for text handle overhaul
Commit b3e91b7111 forgot this.
2018-07-02 22:04:35 +01:00
Matthias Clasen
c8e082f296 win32: Adapt to dnd api changes
Follow the GdkDragContext -> GdkDrag change.
2018-07-02 22:52:59 +02:00
Daniel Boles
51981d562b ScrolledWindow: a couple of spelling/grammar fixes
(A) Put a space in "scrolled window" like the other doc comments
(B) Say "i.e." rather than "ie."
(C) Fix grammar from "makes [...] exactly reaches" to "exactly reach"
2018-07-02 20:14:41 +01:00
Daniel Boles
51b77a425a ScrolledWindow: Fix/improve doc of key bindings
Saying 'key + modifiers' is really weird, so reverse that, and explain
why there are 2 cited and what the difference between them is.
2018-07-02 20:14:41 +01:00
Daniel Boles
ae3163b5e0 ScrolledWindow: Add missing apostrophes 2018-07-02 20:14:41 +01:00
Matthias Clasen
af93646b3e Merge branch 'event-controller-key-docs' into 'master'
eventcontrollerkey: Document key-pressed and key-released

See merge request GNOME/gtk!225
2018-07-02 17:16:04 +00:00
Matthias Clasen
64f5afe608 dnd: Rename headers
Rename gdkdnd.h to gdkdrag.h, to go along with gdkdrop.h

This commit includes the necessary updates to the X11, Wayland
and Broadway backends. Other backends have to be updated separately.
2018-07-02 15:00:50 +02:00
Matthias Clasen
fb98f939a5 docs: Update dnd section
Add the separate drag and drop apis.
2018-07-02 15:00:50 +02:00
Matthias Clasen
7733f646d6 gdk: Rename GdkDragContext to GdkDrag
This is to go along with the newly introduced GdkDrop.

This commit includes the necessary updates to the X11, Wayland
and Broadway backends. Other backends have to be updated separately.
2018-07-02 14:59:26 +02:00
Ernestas Kulik
fd69f1cd79 eventcontrollerkey: Document key-pressed and key-released
None of the GtkEventControllerKey signals are documented; this commit
adds documentation for a couple of them.
2018-07-02 12:18:26 +03:00
Daniel Boles
ca94ff10ce testsuite/gtk/defaultvalue: Actually build...& fix
It looks like this got dropped during the move from autotools and never
restored. I can see why, since making it work wasn't a hugely fun task!

Notes on some less then obvious details:
 * PlacesSidebar is private now and didn't seem to be to be particularly
   easy to adapt to, so this moves to checking for it by name, not TYPE.
   I couldn't find a (fast) better way; if you know how, please clean up
 * added 2 casts to avoid warnings from the new type-propagating ref()
 * GdkClipboard and GdkContentProvider need some properties dodged
 * GtkToolItemGroup is gone
 * fixed indentation and used TypeName:property-name syntax in a print()
2018-06-29 20:05:21 +01:00
Matthias Clasen
9c3de51412 Merge branch 'wip/cursor-output-scale-changes' into 'master'
wayland: Update cursor surface scale when output scale changes

See merge request GNOME/gtk!224
2018-06-29 15:08:17 +00:00
Matthias Clasen
d9dcfffce3 Merge branch 'wip/aplazas/modelbutton-markup-master' into 'master'
ModelButton: Add 'use-markup' property

See merge request GNOME/gtk!222
2018-06-29 14:21:24 +00:00
Jonas Ådahl
dfd1372a9b wayland: Update cursor surface scale when output scale changes
Also update the cursor surfaces of every seat when an output changes
scale. This could for example happen when a monitor scale is changed via
Settings.
2018-06-28 12:44:22 +02:00
Benjamin Otte
f3c670ab0c widget: Move opactiy == 0 check
If we check it too early, we will not unset priv->draw_neeeded, which
will then cause queue_draw() calls to not have an effect later. And that
causes changes in opacity to not register.

Closes #1180
2018-06-27 21:50:07 +02:00
Daniel Boles
8aa4b5150e notify test: Remove more nonexistent properties 2018-06-27 17:17:05 +01:00
Timm Bäder
ecaa16c367 notify test: Remove some non-existant properties 2018-06-27 18:03:23 +02:00
Timm Bäder
2f8284a386 testsuite: Remove a GtkColorButton special case
The comment above explains neatly why subclassing GtkButton for
GtkColorButton was a bad idea. Nowadays it's a GtkWidget subclass
containing a GtkButton so let's remove the special case here.
2018-06-27 18:03:23 +02:00
Timm Bäder
73cad1e784 Remove some GtkRecentChooserMenu references
Doesn't exist anymore.
2018-06-27 18:03:23 +02:00
Adrien Plazas
0abd01e288 ModelButton: Add 'use-markup' property
Binds this property to the button's label, allowing a model button to
have text with markup.

This will be convenient for buttons like 'Online Accounts <sup>↗</sup>'.
2018-06-27 17:43:47 +02:00
Rico Tzschichholz
b80942ec88 gdk: Fix some g-i annotations warnings 2018-06-27 09:00:17 +02:00
Timm Bäder
165dab8265 gl renderer: Ignore 0-sized fallback nodes 2018-06-26 21:41:29 +02:00
Emmanuele Bassi
73d736d800 Do not modify a const GdkEvent in place
When deciding whether or not to emulate a press event, we're translating
the last event coordinates and mutating the given event structure
unconditionally.

We should modify the newly created GdkEvent copy, since it's what we're
going to use when emitting the press event.

This avoids mutating a constant GdkEvent and global state, and also
avoids a compiler warning.
2018-06-26 18:06:23 +01:00
Matthias Clasen
88b4076fe5 Docs: Remove more since markers
The idea is that GTK+ 4 will be an epoch, API-wise.
Everything that was around for 4.0 has been there
since the beginning of the epoch and doesn't need
markers.
2018-06-26 12:31:41 -04:00
Matthias Clasen
36396093e6 docs: Document GtkEventControllerKey
The long description was missing.
2018-06-26 12:20:47 -04:00
Matthias Clasen
faba0f0145 Bump version to 3.94.0 2018-06-25 19:55:04 -04:00
Matthias Clasen
8755d884f3 Remove a lot of Since annotations
4.0 will represent a clean epoch. We don't want to have
lots of noise in the docs about 2.x or 3.x.
2018-06-25 19:55:04 -04:00
Matthias Clasen
010f4e90e3 Some updates 2018-06-25 19:06:34 -04:00
Benjamin Otte
0c76264953 reftests: Fix compilation
FOREIGN surfaces are gone.
2018-06-26 00:53:39 +02:00
Benjamin Otte
d13843ee2a gdk: Remove GDK_SURFACE_FOREIGN
We don't create surfaces of that type anymore.
2018-06-26 00:47:40 +02:00
Michael Catanzaro
7869ffbb49 imwayland: Fix a small leak
If the parent get_preedit_string implementation returns a nonnull
zero-length string, then we ignore it, which is almost fine. We have to
free it, though.

Fixes #1174
2018-06-25 22:20:09 +01:00
Matthias Clasen
2f149c378a Merge branch 'master' into 'master'
gtk: also recolor circle and ellipse in symbolic SVG icons.

See merge request GNOME/gtk!214
2018-06-23 19:42:26 +00:00
Jehan
04367acf9b gtk: also recolor circle and ellipse in symbolic SVG icons. 2018-06-23 00:35:17 +02:00
Timm Bäder
1a2052a40e button: Remove unused variable 2018-06-21 20:57:18 +02:00
Timm Bäder
e079fad1d5 scrolledwindow: Avoid a queue_resize path in size-allocate 2018-06-21 20:54:47 +02:00
Samuel Thibault
bada3dbac6 HighContrast: Restore expander size
Expanders used to be 16px high. With the move from the gtk2 rendering
to gtk3 rendering they shrunk to 12px, making them hard to see, because
it's now the icon which is 16px high and the icon contains transparent
borders.

This makes the HighContrast theme use 24px icons instead, to restore
16px expanders. This may expander some containers a bit.

Closes #1046
2018-06-21 16:15:35 +02:00
Daniel Boles
9178423844 TreeView: Get expander size from CSS min-width|height
Rather than hard-coding this, get it from CSS. That way, themes will be
able to set larger expanders than a fixed 16 px, e.g. for accessibility.

See https://gitlab.gnome.org/GNOME/gtk/merge_requests/167
2018-06-21 15:49:00 +02:00
Carlos Garnacho
9df5171962 gtktreeviewcolumn: Implement column dragging through GtkGestureDrag
And remove ::event signal handler.
2018-06-21 12:54:03 +02:00
Carlos Garnacho
b3e91b7111 gtktexthandle: Update to gtk4 rendering/input
GtkTextHandle was neglected by whoever removed the ::draw signal,
leaving it entirely broken. Update to using GtkGizmo so we can
implement snapshot of text handles.

Input has received a revamp too, handling is done through a
GtkGestureDrag and coordinate calculations simplified by storing
the delta to the hotspot on ::begin instead of ::update, as this
value is constant throughout the gesture. Widget state management
on crossing events happens implicitly, so no longer needs to be
done here.

Last but not least, CSS has also been updated so handles are
rendered at the correct size and proportion, and with the padding
that code expects of it.
2018-06-21 12:54:03 +02:00
Carlos Garnacho
ffd89d29df gtkwindow: Queue popover resize on set_popover_position()
So the new position is eventually honored. Fixes magnifier and handles
staying in place after being shown.
2018-06-21 12:54:03 +02:00
Carlos Garnacho
686116ba61 gtkfilechooserwidget: Forward events to filechooser through key controller
Instead of manually calling gtk_binding_set_activate_event() on an ::event
callback in the save entry.
2018-06-21 12:54:03 +02:00
Carlos Garnacho
7fa3183d7f gtkfilechoooserentry: Handle tab completion through key controller 2018-06-21 12:54:03 +02:00
Carlos Garnacho
176fd2fab3 gtkemojicompletion: Use GtkEntry key controller to handle key presses 2018-06-21 12:54:03 +02:00
Carlos Garnacho
419ee6a451 gtkentrycompletion: Properly remove controller from entry
When disconnecting the GtkEntry from the GtkEntryCompletion, we
must remove the controller in order to avoid dangling callbacks.
2018-06-21 12:54:03 +02:00
Carlos Garnacho
2c0d2d332f gtkentrycompletion: Move focus out handling to key controller
We can use the already present key controller to handle focus out.
2018-06-21 12:54:03 +02:00
Carlos Garnacho
5f8fea08ff gtkentrycompletion: Perform event handling on popup through controllers
Instead of a ::event signal handler.
2018-06-21 12:54:03 +02:00
Carlos Garnacho
f92ec7ce41 gtkplacessidebar: Replace ::event signal handlers with gestures
Set up a gesture on the sidebar rows to detect pointer clicks on
it. The row DnD management has been moved to the row widget itself,
it makes more sense even if the drag is began from the sidebar widget.
2018-06-21 12:54:03 +02:00
Carlos Garnacho
ca08cf94d3 gtkwindow: Move map/delete/configure event management to gtkmain
Toplevels are about the only widgets interested in these events,
just handle those without going through the capture/bubble handling
code.
2018-06-21 12:54:03 +02:00
Carlos Garnacho
3d5dc16d63 gtkwindow: Simplify WM drag/resize handling
We still need a drag gesture both on front (capture) and back (bubble)
to handle dragging from both the GtkWindow widget and chrome in the
headerbar. But we can do it through 2 drag gestures, instead of special
event handling code.
2018-06-21 12:52:59 +02:00
Carlos Garnacho
7bfc3a5c74 gtkmenushell: Port to GtkGesture
We still need to poke the current event at places, but this is
better than the ::event vfunc.
2018-06-21 12:50:58 +02:00
Carlos Garnacho
a5414bc404 gtkpopover: Fix key navigation
This has been broken since we switched key event delivery to follow
the same semantics than pointer/touch. There, GTK+ grabs will influence
the topmost widget during event delivery, rendering the toplevel
unable to handle key navigation. The toplevel must handle those key
events in an explicit manner then.

We don't render the keyboard focus rectangle yet, but I assume that's
something else.
2018-06-21 12:50:57 +02:00
Carlos Garnacho
1d97b5fd3c gtkpopover: Port to GtkEventController/GtkGesture
Use GtkEventControllerKey and GtkGestureMultiPress to replace key/button
event handling.
2018-06-21 12:50:57 +02:00
Carlos Garnacho
aa09b0742e gtkwindow: Handle focus in/out through key controller
One less use of ::event in this widget, now mostly left to
map/delete/configure, those puny events.
2018-06-21 12:50:57 +02:00
Carlos Garnacho
c5586f85fb gtkspinbutton: Use GtkEventControllerKey
And drop the ::event vfunc implementation with it.
2018-06-21 12:50:57 +02:00
Carlos Garnacho
3eb1b22651 gtkfontchooser: Use GtkEventControllerKey
Use an event controller on GtkFontChooserDialog, a nice side effect
is that we can use gtk_event_controller_key_forward() and
gtk_search_entry_set_key_capture_widget() instead of passing events
around for dialog search.
2018-06-21 12:50:57 +02:00
Carlos Garnacho
4186a85359 gtkfilechooserwidget: Drop usage of ::event vmethod
Use a key controller set up in the UI file instead.
2018-06-21 12:50:57 +02:00
Carlos Garnacho
aaf1e4995c gtkfilechooserentry: Use GtkEntry key controller for focus-out handling
Expose the GtkEntry key controller in private API, so we don't have to
create yet another one just to handle focus-out.
2018-06-21 12:50:57 +02:00
Carlos Garnacho
e08e15ba51 gtkentry: Use gestures for entry icons
Instead of doing all handling manually in the ::event vfunc,
set up drag/multipress gestures on icon images, and implement
emission of ::icon-press/release and DnD there.

As a side effect, the GdkEvent field in ::icon-press/release
signals has been dropped. Callers that might be interested on it
may still use gtk_get_current_event*().
2018-06-21 12:50:57 +02:00
Carlos Garnacho
7048362e6e gtkbutton: remove keyboard device GTK+ grab
This isn't really necessary, if keyboard focus forcibly goes somewhere
else we will get ::grab-notify, which is sufficient to deactivate the
button again.
2018-06-21 12:50:57 +02:00
Carlos Garnacho
5f0ed088e4 gtkbutton: Use key controller for button (de)activation through keybindings
And stop using GtkWidget::event for good.
2018-06-21 12:50:57 +02:00
Matthias Clasen
5c46c81067 x11: Fix dnd action handling
We were mistakenly assigning an Atom to a flags value.
2018-06-20 18:10:50 -04:00
Daniel Boles
c6fa3c446c EmojiCompletion: Avoid another un/signed warning
The cherry-pick missed this, I guess.
2018-06-20 20:51:50 +01:00
Daniel Boles
f7ebff6aea EmojiCompletion: Avoid un/signed compare warnings
(A) Use gsize to match the result of g_variant_n_children
(B) Use guint for n_matches, like the struct (and all other n_matches)
2018-06-20 20:38:27 +01:00
Daniel Boles
8aeced2c91 themes: Remove leftover bit of .linked workaround
Now that .linked acts like the .path-bar already did, there is no point
in applying the same styles again (with higher specificity).
2018-06-20 20:11:26 +01:00
Timm Bäder
e8fefd92c5 container: Remove SPECIAL_CONTAINER hack
As discussed in !129

Closes !129
2018-06-20 20:47:18 +02:00
Timm Bäder
22390adf11 stackswitcher: Remove icon-size property
This ought to be controlled via css these days.
2018-06-20 20:47:18 +02:00
Timm Bäder
cf9121977f infobar: Remove priv pointer 2018-06-20 20:47:18 +02:00
Timm Bäder
99099a1053 Remove some unnecessary snapshot implementations 2018-06-20 20:47:18 +02:00
Timm Bäder
daba1a7eff fixed: Remove priv pointer 2018-06-20 20:47:17 +02:00
Timm Bäder
f26359db13 listbox: Use widget insert API instead of fiddling with CSS nodes 2018-06-20 20:47:17 +02:00
Timm Bäder
945b844b7c button: Remove ICON_SIZE_BUTTON mention in docs
The icon will have the size given by css, not whatever
GTK_ICON_SIZE_BUTTON was.
2018-06-20 20:47:17 +02:00
Timm Bäder
f33655fa4e adjustment: Only emit ::changed from dispatch_properties_changed 2018-06-20 20:47:17 +02:00
Timm Bäder
ee8ee313c8 adjustment: Remove adjustment_changed_stamp 2018-06-20 20:47:17 +02:00
Timm Bäder
33e113d607 testsuite: Print tested property name in notify test 2018-06-20 20:47:17 +02:00
Timm Bäder
a12d26155f adjustment: Use public setters in set_property 2018-06-20 20:47:17 +02:00
Daniel Boles
cae382c829 themes: Regenerate CSS for recent commits
e.g. the box.linked one, which didn't update the compiled CSS.
2018-06-20 19:26:46 +01:00
Daniel Boles
0a5086d94f HC: Avoid excessive selectors from prev commit
The new rule does not need to affect all those other pseudoclasses. I
just put it in the wrong scope.
2018-06-20 19:26:41 +01:00
Daniel Boles
b103650cb0 HC: Avoid same BG/FG colors in flat treeview entry
Selected rows in tree views in HighContrast have a background colour the
same or nearly as the normal text colour, so we cannot let entries in
such rows have transparent backgrounds, or the text inside the entry
becomes nearly or totally impossible to see.

Dodge this by giving entry.flat inside treeview and with :focus the
$base_color, which is different from the text & so lets that be seen.

https://gitlab.gnome.org/GNOME/gtk/merge_requests/125
2018-06-20 19:13:26 +01:00
Daniel Boles
337e602143 searchenginetracker: Don't leak the hits' GFiles
https://gitlab.gnome.org/GNOME/gtk/merge_requests/206
2018-06-20 17:20:31 +01:00
Matthias Clasen
7ce25293b1 Merge branch 'issue1084' into 'master'
application: Complete the startup sequence before quitting remote instances

Closes #979

See merge request GNOME/gtk!156
2018-06-20 15:34:51 +00:00
Matthias Clasen
cd99f82e0c Merge branch 'master' into 'issue1084'
# Conflicts:
#   gdk/gdk.c
2018-06-20 14:21:24 +00:00
Timm Bäder
29fee2e808 window: Remove priv pointer 2018-06-20 07:49:04 +02:00
Timm Bäder
417b1d8335 pathbar: Remove unused define 2018-06-20 07:48:54 +02:00
Matthias Clasen
443a64a38e docs: Remove a duplicate line in gdk4-sections.txt
This was causing another docs build break.
2018-06-19 17:16:31 -04:00
Matthias Clasen
74455ae75c docs: fix a typo
Invalid syntax in gdk4-sections.txt was causing docs builds to fail.
2018-06-19 17:16:31 -04:00
Daniel Boles
ec096b417c Merge branch '1160-crash-clearing-gtkentry-icon-tooltip-master' into 'master'
Resolve "Crash clearing GtkEntry icon tooltip"

Closes #1160

See merge request GNOME/gtk!205
2018-06-19 20:22:38 +00:00
Benjamin Otte
06bba15f62 win32: Fix typo
This should fix gtk-doc erroring out.
2018-06-19 21:45:44 +02:00
Benjamin Otte
c48be6ef96 Revert "Add aligned allocator functions to GSK"
This reverts commit 8e74eb382f.

This code is not necessary. It worked around a bug in graphene where
graphene was requiring stricter alignment than glib allocators could
guarantee.
2018-06-19 20:00:53 +02:00
Benjamin Otte
0b1f0984f5 Revert "Use aligned allocators for GtkSnapshot"
This reverts commit c02bc22cc5.

This code is not necessary.
The bug causing this problem ws prsent in the graphene library.
2018-06-19 19:52:52 +02:00
Benjamin Otte
6918fb2e4e rendernodepaintable: Fix rendering position
When the given size had an offset, we were moving that offset in the
wrong direction.
2018-06-19 19:44:17 +02:00
Benjamin Otte
3caf8c86c9 dnd: Use a GtkPicture in gtk_dnd_set_icon_paintable()
We don't want to get the paintable scaled down to icon size.

Also set can-shrink = FALSE to replicate GTK3 behavior with size
requests.
2018-06-19 19:44:17 +02:00
Benjamin Otte
8c8dc3aeab snapshot: Compute correct size in gtk_snapshot_to_paintable()
Also, do actually respect the passed in size argument if it isn't NULL.

Fixes text being cut off inside DND icons.
2018-06-19 19:44:17 +02:00
Benjamin Otte
4d4ec2dbfb dnd: gdk_drag_action_is_unique() should return a boolean 2018-06-19 19:44:17 +02:00
Daniel Boles
4f979469f1 a11y/entry: Fix copy-pasteo re 2ndary icon tooltip
The else case was wrongly resetting the accessible description on the
primary icon, which might not exist and can therefore cause a crash.

https://gitlab.gnome.org/GNOME/gtk/issues/1160
2018-06-19 18:37:25 +01:00
Matthias Clasen
87532f0ac3 Merge branch 'wip/carlosg/issue-1159' into 'master'
Fix issue 1159

Closes #1159

See merge request GNOME/gtk!202
2018-06-19 16:40:39 +00:00
Piotr Drąg
0ace7ad219 Update POTFILES.in 2018-06-19 17:52:13 +02:00
myfreeweb
a1bcbdd02a wayland: Use shm_open(SHM_ANON) on FreeBSD
This functionality is similar to Linux's memfd. It creates anonymous shared memory without touching the filesystem, which allows it to work in Capsicum capability mode (sandbox).
2018-06-19 11:45:49 -04:00
Carlos Garnacho
8e3bf65b3b gtkgesture: Check claimed status after event delivery
The claimed status check should happen after ::end is emitted,
as the gesture may deny the sequence that much late. In this
case the event should keep propagating.

https://gitlab.gnome.org/GNOME/gtk/issues/1159

Closes: #1159
2018-06-19 13:47:38 +02:00
Carlos Garnacho
de30a74cdf gtkwidget: Avoid doubly coordinate conversion when emulating press
We are poking again into the event propagation machinery, which
expects events in toplevel coordinates. Since we can't fetch the
original event back at this point, translate the coordinates
back to the toplevel so the emulated press ends up in the right
place.

https://gitlab.gnome.org/GNOME/gtk/issues/1159

Closes: #1159
2018-06-19 13:47:26 +02:00
Benjamin Otte
cbbb7604b6 x11: Set background as transparent as possible
Instead of making the background black, make it transparent black for
RGBA visuals and set a None background otherwise.
2018-06-18 23:49:53 +02:00
Benjamin Otte
9a91d3739d widget: Remove time argument from drag_data_get() vfunc 2018-06-18 23:49:53 +02:00
Benjamin Otte
a2839d157f dnd: Remove unused time arguments 2018-06-18 23:49:53 +02:00
Benjamin Otte
b3d424c2d7 dnd: Remove GdkDragContext.dest_surface
The variable is now unused
2018-06-18 23:49:53 +02:00
Руслан Ижбулатов
bf3ea24489 GDK W32: Remove gdk_win32_surface_foreign_new_for_display
That function is now unused.
2018-06-18 23:49:53 +02:00
Руслан Ижбулатов
997e8c1ae1 GDK W32: Adapt to dest_surface removal, misc changes
* There's no GdkDragContext->dest_surface anymore.
  Add dest_window field to GdkWin32DragContext,
  and use that instead.
* Remove unused function prototypes
* Add more comments
* Rename variables and fields from 'window' to 'surface'
  where appropriate
* Fix header indentation a bit
* Try to ensure that uninitialized/unknown handle variables
  and fields are set to INVALID_HANDLE_VALUE instead of NULL,
  as there may be cases where NULL is a valid handle value.
2018-06-18 23:49:53 +02:00
Benjamin Otte
aa1f0cfd4f dnd: Remove GdkDragContext.is_source
All drag contexts are sources these days, the other ones are GdkDrop
now.
2018-06-18 23:49:53 +02:00
Benjamin Otte
45a6146ca6 x11: Remove gdk_x11_surface_foreign_new_for_display()
People who want to use foreign windows should use X directly.
2018-06-18 23:49:53 +02:00
Benjamin Otte
bc63001deb x11: Store the XID instead of a GdkSurface
This might be foreign Windows and we don't want to create surfaces for
those.

Also, stop using GdkDragContext.dest_surface, that variable is meant to
go away.
2018-06-18 23:49:53 +02:00
Benjamin Otte
47b47f5835 x11: Simplify test
Now that we have gdk_drag_context_get_display(), use it.
2018-06-18 23:49:52 +02:00
Benjamin Otte
1b2dccd143 x11: xdnd_send_event() always returns TRUE
Make it return nothing instead and delete the code that handled the
FALSE case.
2018-06-18 23:49:52 +02:00
Benjamin Otte
7e09aa3caa x11: Don't multiply X values by the scale factor
This is fallout from a too eager change in
bdb442be21.
2018-06-18 23:49:52 +02:00
Benjamin Otte
6633d4130a dnd: Make the base Drag/Drop types abstract
This way, they'll be ignored by the testsuite.

And we don't want to instantiate them anyway, the backends have
their own subclasses.
2018-06-18 23:49:52 +02:00
Benjamin Otte
a960641ace dnd: GdkDragContext is no longer a GdkDrop subclass
This includes a bunch of header cleanup
2018-06-18 23:49:52 +02:00
Benjamin Otte
f982c9c8f8 dnd: Remove gdk_drag_status() and gdk_drag_finish()
Those functions are unused and have been replaced by their equivalents
gdk_drop_status() and gdk_drop_finish().
2018-06-18 23:49:52 +02:00
Benjamin Otte
a1cee7fa65 surface: Kill event masks
In particular, this patch removes:
  gdk_surface_get_events()
  gdk_surface_set_events()
  gdk_surface_get_device_events()
  gdk_surface_set_device_events()

Event masks so far still exist for grabs.
2018-06-18 23:49:52 +02:00
Benjamin Otte
d0ebdf00f8 x11: Store the source surface as an XID
Don't create a foreign GDK surface, just store the XID.

With this, we can avoid GDK APIs that we want to get rid of and just
use the X counterpart.
2018-06-18 23:49:52 +02:00
Benjamin Otte
dd30a288f2 x11: Split drag and drop contexts
While doing so, turn the drop context into a GdkDrop subclass and no
longer pretend to be a GdkDragContext.
2018-06-18 23:49:52 +02:00
Benjamin Otte
005781021e x11: Handle events on drag side differently
Instead of using the filters that the drop side uses, handle events in
the event filter installed by the DragContext.
2018-06-18 23:49:52 +02:00
Benjamin Otte
14f0a25531 x11: Change the way local Drop => Drag is shortcut
This is one step further towards untangling drag and drop parts of X11
DND.
2018-06-18 23:49:52 +02:00
Benjamin Otte
8db379d85b x11: Remove unused argument
The propagate argument is always FALSE, so just use FALSE everywhere.
2018-06-18 23:49:52 +02:00
Benjamin Otte
6b65aaab21 x11: switch a bunch of variable types
GdkDragContext => GdkDrop

This is all in preparation of separation of the drag and drop.

Also, don't check for GDK_DRAG_PROTO_XDND anymore - it's the only
possible value for the protocol on the target side.
2018-06-18 23:49:52 +02:00
Benjamin Otte
905765eed6 broadway: Remove unused variable 2018-06-18 23:49:52 +02:00
Benjamin Otte
e1206763a8 dnd: Remove gdk_drag_context_get_dest_surface()
... and gdk_drag_context_get_source_surface().

In the backends, use direct access to the variables instead.
2018-06-18 23:49:52 +02:00
Benjamin Otte
8a08a325be dnd: Implement gtk_drag_get_source_widget() differently
Instead of keeping a list of source contexts, just use the current
drag's info.
2018-06-18 23:49:52 +02:00
Benjamin Otte
5e159e2ca0 x11: Replace the hardcoded DND filter
Use the new method of connecting to the xevent signal instead.

Also, don't consume the xevent, there might be other code listening for
it. And we don't use PropertyNotify in the generic code path anymore, so
it'll just be ignored there.
2018-06-18 23:49:52 +02:00
Руслан Ижбулатов
392071b66d GDK W32: Remove unused files 2018-06-18 23:49:52 +02:00
Руслан Ижбулатов
8ee4de804c GDK W32: Adapt to GdkDrop and GdkDragContext changes
* Remove clipdrop->dnd_target_state, it's not used anymore
* Remove non-functioning _gdk_dropfiles_store(), store dropfiles
  list in GdkWin32Drop instead
* Fix multiple comment typos
* Fix _gdk_win32_get_clipboard_format_name_as_interned_mimetype() to
  leave names that look like mime/types alone
* Refactor _gdk_win32_add_w32format_to_pairs() to populate
  GdkContentFormatsBuilder directly, instead of making a GList
* Rename context -> drag (still using GdkDragContext type,
  but [almost?] all variables and comments say "drag" now)
* Rename GdkDropContext -> GdkDrop
* Rename some parameter names for clarity
* Rewrite local protocol to look more like OLE2 protocol
  instead of mirroring the structure of the X11 API.
* Add handle_events field to GdkWin32DragContext,
  to shut off event handling (temporary fix until GTK is patched up)
* Remove _gdk_win32_drag_context_find() - the drag object is stored
  in GdkDrop instead. Use _gdk_win32_find_drag_for_dest_surface()
  to get it initially.
* Remove target_ctx_for_window, droptarget context is stored
  in the surface instead.
* Call gdk_drag_context_set_cursor() just like wayland backend does
  (slightly broken for now)
* Clean up the action choosing code (filter source actions by using
  keyboard state, pass that to GTK, get all actions supported by GTK in
  response, match them up with filtered source actions, return the
  result, falling back to COPY in case of multiple actions)
* Check drag_win32->protocol instead of the use_ole2_dnd variable where
  possible
* Remove protocol checks from functions that are only used by the local
  protocol
* Use event state to manufacture the keyboard state for WM_MOUSEMOVE
* Change function names printed by GDK_NOTE to name the actual
  functions, not their theoretical generic GDK stack ancestors
* Consistently use drag_win32 and drop_win32 variables instead of a mix
  of that and win32_drag/win32_drop
* Return FALSE from button handler to ensure that GTK gets the button
  event to break implicit grab
* Emit leave event on failed idroptarget_drop() calls
2018-06-18 23:49:52 +02:00
Benjamin Otte
dcf432d7d0 dnd: Add read_value() and read_text() functions to GdkDrop
These just copy what GdkClipboard does.
2018-06-18 23:49:52 +02:00
Benjamin Otte
ea9d6f0a95 drop: Implement shortcut for local DND
Now that we have the drop->drag, we can use the same shortcut we use in
the clipboard code to shortcut DND operations.
2018-06-18 23:49:52 +02:00
Benjamin Otte
018a17fb8e x11: Pass the drag source when creating a drop context 2018-06-18 23:49:52 +02:00
Benjamin Otte
895f381fd5 x11: Find dest drops differently
Instead of looking at the list of contexts, just look at the current
drop context. There is only one, after all.

Then remove the is_source argument from gdk_drag_context_find().
2018-06-18 23:49:52 +02:00
Benjamin Otte
66bd54d14c wayland: Store the current drag operation
Use it to detect local drags when creating drop objects.
2018-06-18 23:49:52 +02:00
Benjamin Otte
ff38d38444 dnd: Move GdkDragAction to gdktypes.h
That way, both gdkdrag.h and gdkdrop.h can use it without one having to
include the other.
2018-06-18 23:49:52 +02:00
Benjamin Otte
af749532fc gdk: Remove leftover type from autocleanup 2018-06-18 23:49:52 +02:00
Benjamin Otte
7afa0badd8 wayland: Get rid of GdkWaylandSelection
Move data source handling into the DND code instead.
2018-06-18 23:49:52 +02:00
Benjamin Otte
4eb3a9faaa wayland: Split drop context into GdkWaylandDrop
GdkWaylandDrop no longer inherits from GdkDragContext now.
2018-06-18 23:49:52 +02:00
Benjamin Otte
81e1dc9a66 wayland: Remove a bunch of unused functions 2018-06-18 23:49:52 +02:00
Benjamin Otte
c67fb57881 events: Make GdkEventDND have a GdkDrop member
... instead of a GdkDragContext.
2018-06-18 23:49:52 +02:00
Benjamin Otte
81171cc0a2 x11: Refactor DND filter
The filters now return TRUE/FALSE and no longer a GdkFilterReturn. They
also don't conform to the GdkFilterFunc typedef anymore but instead take
the arguments that they need.
2018-06-18 23:49:52 +02:00
Benjamin Otte
aa4e4dd0c7 x11: Use new DND event emitters 2018-06-18 23:49:52 +02:00
Benjamin Otte
7a9afc3a95 win32: Use new DND event emitters 2018-06-18 23:49:52 +02:00
Benjamin Otte
114ab8775a wayland: Use new DND event emitters 2018-06-18 23:49:52 +02:00
Benjamin Otte
657ebd2a78 drop: Add private API for event emission 2018-06-18 23:49:52 +02:00
Benjamin Otte
05bf87cf14 drop: Add GdkDrop:surface property
This replaces gdk_drag_context_get_dest_surface().
2018-06-18 23:49:52 +02:00
Benjamin Otte
4aedf3d003 display: Don't wake up the main loop anymore
This is not needed because GTK must be run in the main thread these days,
which is the same one that runs the main loop. So when this function is
called, the main loop is awake.

https://bugzilla.gnome.org/show_bug.cgi?id=550989
2018-06-18 23:49:52 +02:00
Benjamin Otte
b1f384eec2 x11: Don't sneakily allocate memory in initializers 2018-06-18 23:49:52 +02:00
Benjamin Otte
d02b185a87 dnd: Add gdk_event_get_drop()
And remove gdk_event_get_drag_context().

All GTK code now only uses GdkDrop for dropping.
2018-06-18 23:49:52 +02:00
Benjamin Otte
6048b69145 wayland: Fix drop operations for new semantics 2018-06-18 23:49:52 +02:00
Benjamin Otte
4b85b5299a dnd: Remove GdkDragContext::commit_drag_status() vfunc
The idea behind the vfunc doesn't work as status updates can happen
asynchronously.

A better solution needs to be found.
2018-06-18 23:49:52 +02:00
Benjamin Otte
b00609c21c dnd: Make drag-motion and drag-drop signals use GdkDrop 2018-06-18 23:49:52 +02:00
Benjamin Otte
6d7cb2b781 dnd: Make drag-data-received use a GdkDrop 2018-06-18 23:49:52 +02:00
Benjamin Otte
a862ca41c5 drop: Add gdk_drop_get_drag()
For now, it'll always return NULL. We'll fix that later.
2018-06-18 23:49:20 +02:00
Benjamin Otte
314eaf7d10 widget: Make GtkWidgetClass::drag_leave() take a GdkDrop
Drag Contexts are on their way out!
2018-06-18 23:49:20 +02:00
Benjamin Otte
316bd6a333 dnd: Add gdk_drop_finish()
and move the vfunc into GdkDrop.
2018-06-18 23:49:20 +02:00
Benjamin Otte
5b0a6a52c1 dnd: Get rid of gtk_drag_finish()
It's just a wrapper around gdk_drag_finish(), so use that one instead.
2018-06-18 23:49:20 +02:00
Benjamin Otte
13ae11ee01 dnd: Rename gdk_drop_finish() => gdk_drag_finish()
This is a simple rename, so that we can reintroduce gdk_drop_finish()
with the GdkDrop object.
2018-06-18 23:49:19 +02:00
Benjamin Otte
a05af1f0f3 dnd: Move the gdk_drag_status() function
It's now gdk_drop_status().

Also clarify the intended semantics.
2018-06-18 23:49:19 +02:00
Benjamin Otte
b2dc303e5e dnd: Add gdk_drop_get_actions()
This uses the new method without GDK_ACTION_ASK:

Either it is a single action (queryable via gdk_drag_action_is_unique())
or it is not and then the drop target has to make a decision
(potentially by asking someone).
2018-06-18 23:49:19 +02:00
Benjamin Otte
2e27967814 dnd: Make actions a private member variable
Use a setter in the backends.
2018-06-18 23:49:19 +02:00
Benjamin Otte
18c3b725b4 x11: Remove unused variables 2018-06-18 23:49:19 +02:00
Benjamin Otte
6573d08b08 wayland: Set correct variable
This got messed up in commit 7f8a8f221d.
2018-06-18 23:49:19 +02:00
Benjamin Otte
74a8ffc4a8 dnd: Add gdk_drag_action_is_unique()
This will be necessary once we remove the ASK action.
2018-06-18 23:49:19 +02:00
Benjamin Otte
ac44353f9b dnd: Remove GDK_ACTION_DEFAULT and GDK_ACTION_PRIVATE
They're unused and nobody knows what they're supposed to men anyway.
2018-06-18 23:49:19 +02:00
Benjamin Otte
6919d8c532 drop: Move gdk_drop_read_async() to GdkDrop class 2018-06-18 23:49:19 +02:00
Benjamin Otte
f247d268d4 dnd: Add GdkDrop base class for GdkDragContext
The ultimate goal of this patch series is to split GdkDragContext into
GdkDrop + GdkDrag classes for the destination and source side of a dnd
operation.

The refactoring is meant to work something like this:
1. Introduce GdkDrop as a base class
2. Make all drop related code (like GdkEvent) use GdkDrop instead of
   GdkDragContext. Move/duplicate APIs to allow that.
3. Port all drop contexts in the backends from GdkDragContext to GdkDrop
4. Delete all APIs in GdkDragContext that aren't needed anymore.
5. Make GdkDragContext no longer a GdkDrop subclass
6. Rename GdkDragContext to GdkDrag
2018-06-18 23:49:19 +02:00
Matthias Clasen
841a29837e Merge branch 'lrn/misc-gtk4-fixes' into 'master'
Misc GTK4 fixes

See merge request GNOME/gtk!195
2018-06-18 21:37:42 +00:00
Matthias Clasen
7554384b2d Merge branch 'win32-filechooser-fix-file-list-order' into 'master'
win32 file chooser: add missing g_slist_reverse

See merge request GNOME/gtk!199
2018-06-18 20:09:47 +00:00
Timm Bäder
64313f4a4b themes: Don't handle box.linked special
We don't reverse the css nodes anymore in RTL layouts.
2018-06-18 19:39:32 +02:00
Timm Bäder
34f556fc3e filechooserbutton: Remove priv pointer 2018-06-18 17:35:03 +02:00
Timm Bäder
218b39fe01 GtkStyleContext: Remove the frame clock
It's unused within GtkStyleContext.
2018-06-18 17:35:03 +02:00
Timm Bäder
70c8cfa480 dnd: Fix up a comment
The below function does not take a GtkIconHelper anymore.
2018-06-18 17:35:03 +02:00
Timm Bäder
501efeb6b9 colorscale: Remove priv pointer 2018-06-18 17:35:03 +02:00
Timm Bäder
a7d8127d59 fontbutton: Remove priv pointer 2018-06-18 17:35:03 +02:00
Timm Bäder
beb4cb0e37 radiobutton: remove priv pointer 2018-06-18 17:35:03 +02:00
Timm Bäder
346ec706f7 picture: Fix up some docs
Use nullable instead of allow-none consistently, remove trailing
whitespace and fix some c&p problems.
2018-06-18 17:35:03 +02:00
Timm Bäder
d8274856de drawingarea: Clarify some comments 2018-06-18 17:35:03 +02:00
Timm Bäder
3756234708 messagedialog: Remove priv pointer 2018-06-18 17:35:03 +02:00
Timm Bäder
2d6955285c paned: Allocation x/y are always 0
The allocation position we get passed to size_allocate is always 0/0
these days.
2018-06-18 17:35:03 +02:00
Timm Bäder
10a0d6252e paned: Remove handle_pos member
Query the handle bounds on demand instead.
2018-06-18 17:35:03 +02:00
Timm Bäder
f8ddc42638 paned: Chain up in snapshot
No need to snapshot all child widgets ourselves, the implementation in
GtkWidget can just do it for us.
2018-06-18 17:35:02 +02:00
Timm Bäder
e9a9bb069f paned: Remove unnecessary local variable
We can just pass the given allocation on.
2018-06-18 17:35:02 +02:00
Timm Bäder
df79f02310 paned: Don't unnecessarily redraw handle in size_allocate
We size_allocate it after all, which will redraw it.
2018-06-18 17:35:02 +02:00
Timm Bäder
bd99ca2f04 paned: Store GParamSpecs
So we can use the more efficient g_object_notify_by_pspec everywhere.
2018-06-18 17:35:02 +02:00
Timm Bäder
889fcf64b6 Remove gtk_css_node_reverse_children
Not needed anymore.
2018-06-18 17:35:02 +02:00
Timm Bäder
3fadb536d9 toolbar: Stop reordering css nodes based on text direction 2018-06-18 17:35:02 +02:00
Timm Bäder
fb0d8eacc3 headerbar: Stop reordering css nodes depending on text direction 2018-06-18 17:35:02 +02:00
Timm Bäder
fffb3161bc notebook: Stop reversing tabs based on text direction 2018-06-18 17:35:02 +02:00
Timm Bäder
3be2cb8f63 builder: Fix g-i annotations of _get_translation_domain
The return value can be null and is (transfer none).
2018-06-18 17:35:02 +02:00
Timm Bäder
8267605ba2 builder: Use TRUE/FALSE for error return values
Instead of guint and 0/1.
2018-06-18 17:35:02 +02:00
Timm Bäder
da4d8b7d94 builder: Remove priv pointer 2018-06-18 17:35:02 +02:00
Timm Bäder
01d4538223 box: Don't reorder children based on text direction
Make :first-child always be the first child, i.e. the leftest one in LTR
and the rightest one in RTL.
2018-06-18 17:35:02 +02:00
Timm Bäder
da27627696 paned: Don't reorder css nodes based on text direction 2018-06-18 17:35:02 +02:00
Timm Bäder
85e49a1051 center box: Don't reorder css nodes in RTL
So widget order matches css order. We will do the same thing with GtkBox
eventually.
2018-06-18 17:35:02 +02:00
Timm Bäder
798944cb26 scrolledwindow: Remove priv pointer 2018-06-18 17:35:02 +02:00
Matthias Clasen
5a319f66af Merge branch 'window-activate-grab-4-again' into 'master'
gdk: activate surface on keyboard grabs

Closes #85

See merge request GNOME/gtk!174
2018-06-18 11:36:09 +00:00
Nicolai Syvertsen
2d7cfdd7ed win32 file chooser: add missing g_slist_reverse
the list is prepended to so we need to reverse the list
before returning
2018-06-18 09:44:46 +00:00
Samuel Thibault
35417a5a74 gdk: activate surface on keyboard grabs
In 01455399e8 ("gdk: do not deactivate surface on keyboard grabs"), we
made gdk avoid deactivating surfaces when another application takes a
keyboard grab, by using has_focus_window instead of has_focus. That however
broke activating surfaces when the gdk application acquired a grab itself,
in which case has_focus_window is false but has_focus is true.

We thus actually need to use both: surfaces should be activated either
because we have normal keyboard focus, or because we grabbed the keyboard.

This also renames HAS_FOCUS to APPEARS_FOCUSED to better reflect its
role.

Fixes #85
2018-06-18 10:31:15 +02:00
Piotr Drąg
fdfbbc8246 Update Polish translation 2018-06-17 17:24:07 +02:00
Руслан Ижбулатов
b7f9a5419f GDK W32: Use SWP_NOOWNERZORDER everywhere it can be applied
There is no reason why we shouldn't pass this flag every time
Z-order changes. We have separate routines that are used to
maintain relative Z-order, so it should be completely OK to
pass SWP_NOOWNERZORDER to let the OS know that it shouldn't try
to maintain relative Z-order of the windows when raising them.
2018-06-17 10:59:49 +00:00
Руслан Ижбулатов
6cfa799ca1 GDK W32: Don't let TEMP surfaces cause zorder side-effects
Pass SWP_NOOWNERZORDER when rising TEMP surfaces to the top. This ensures that
they don't drag anything else to the top with them. The use-case for this is
a tooltip appearing for a non-foreground surface, causing said surface to rise
above other surfaces, some of which maybe foreground at the moment.

https://bugzilla.gnome.org/show_bug.cgi?id=784766
2018-06-17 10:59:47 +00:00
Руслан Ижбулатов
0db6ee9347 GDK W32: don't unref window iconlist textures
We do not own these textures, nor do we ref them, so it's inappropriate
to unref them.
2018-06-16 18:26:29 +00:00
Руслан Ижбулатов
8a1106c639 W32: Use correct hinstance values
According to the old new thing[0], we should use the instance handle
of the GDK/GTK DLL when registering GDK-specific types in the system.
Using the instance handle for the whole application in these circumstances
is not an error, but can potentially clash with the types registered
by the application itself.

Also, extract window class icons from the GDK/GTK DLL, not from the
application executable.

[0]: https://blogs.msdn.microsoft.com/oldnewthing/20050418-59/?p=35873
2018-06-16 18:24:56 +00:00
Руслан Ижбулатов
6e085b3bf1 Pass the correct data to gdk_content_register_serializer()
The argument is eventually passed to g_conv(), so it should
be the charset, not the mime/type. Without this change the
contentype converter will fail to convert UTF-8 strings to, say,
CP-1251 later on.
2018-06-16 18:23:56 +00:00
Руслан Ижбулатов
6bf88d90f3 W32: don't put a string literal into gtk_libdir
In all other instances gtk_libdir is a dynamically-allocated string,
so dup the literal in this case as well.
2018-06-16 18:22:12 +00:00
Руслан Ижбулатов
fb4d76d380 Add forward declaration for DllMain() in gtkwin32.c 2018-06-16 18:21:42 +00:00
Руслан Ижбулатов
dedc1ee1e5 Use const for media type in devmode_to_settings() 2018-06-16 18:20:49 +00:00
Руслан Ижбулатов
fe76984e89 Add foward declarations to gtk_print_operation_run_without_dialog 2018-06-16 18:20:22 +00:00
Timm Bäder
f6d70f7225 search bar example: remove unused function 2018-06-16 10:16:41 +02:00
Timm Bäder
0b12fd9c1b center box: Remove snapshot implementation 2018-06-16 10:09:12 +02:00
Timm Bäder
7f8106f2a9 gl renderer: call glViewport directly 2018-06-16 10:09:12 +02:00
Timm Bäder
d3ffaa0236 button: Remove measure implementation
This is already done by GtkBin.
2018-06-16 10:09:12 +02:00
Timm Bäder
1b208eb457 combobox: Remove priv pointer 2018-06-16 10:09:12 +02:00
Matthias Clasen
1528665662 Merge branch 'wip/lantw/fix-gtkdoc-build-without-wayland' into 'master'
docs: Fix gtk-doc build when wayland is disabled

See merge request GNOME/gtk!193
2018-06-15 16:27:44 +00:00
Ting-Wei Lan
751c1877b1 docs: Fix gtk-doc build when wayland is disabled
Unconditionally putting 'gdkwayland_inc' in src_dir argument of gtkdoc
call tells gtkdoc-scan to scan source files in a non-existent build
directory, gdk/wayland. To avoid causing build failure when a specific
backend is disabled, we should include directories conditionally.
2018-06-15 23:51:15 +08:00
Matthias Clasen
66e0060836 Merge branch 'design_by' into 'master'
aboutbox: use a more fitting 'design by" role

Closes #1153

See merge request GNOME/gtk!192
2018-06-15 02:00:57 +00:00
Mohammed Sadiq
b2db7bb95b examples: Simplify handling events in search-bar
In search-bar example, we can use gtk_search_bar_set_key_capture_widget()
which would simplify handling keyboard events.
2018-06-14 23:23:17 +05:30
Jakub Steiner
c5fa657631 aboutbox: use a more fitting 'design by" role
- in most cases, authors listed under "artwork by" are actually responsible for
  the design of the app as a whole

Fixes issue #1153
2018-06-14 16:36:38 +02:00
Mohammed Sadiq
bdf3b6f64d Revert "imcontext: Make size arguments be gsize and not int"
This was committed accidently.

This reverts commit eefd2d6f10.
2018-06-14 11:15:14 +05:30
Mohammed Sadiq
6033bc56b4 examples: Fix alignment of search-bar example
The search entry was taking the whole window size.
Let's reduce the size so as to have more natural size.
2018-06-14 11:09:19 +05:30
Benjamin Otte
eefd2d6f10 imcontext: Make size arguments be gsize and not int
Otherwise gcc complains when we use these as arguments to g_new() on
32bit architectures with:

../gtk/gtkcomposetable.c: In function ‘gtk_compose_table_list_add_array’:
/usr/include/glib-2.0/glib/gmem.h:217:10: warning: argument 1 range [2147483648, 4294967295] exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
      __p = g_##func##_n (__n, __s);   \
      ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmem.h:279:42: note: in expansion of macro ‘_G_NEW’
 #define g_new0(struct_type, n_structs)   _G_NEW (struct_type, n_structs, malloc0)
                                          ^~~~~~
../gtk/gtkcomposetable.c:851:22: note: in expansion of macro ‘g_new0’
   gtk_compose_seqs = g_new0 (guint16, length);
                      ^~~~~~
/usr/include/glib-2.0/glib/gmem.h:96:10: note: in a call to allocation function ‘g_malloc0_n’ declared here
 gpointer g_malloc0_n      (gsize  n_blocks,
          ^~~~~~~~~~~
2018-06-14 06:37:00 +05:30
Mohammed Sadiq
daf72e2e96 docs: Update getting started docs
We have removed references to private members in our examples.
Let the docs be updated to reflect that.
2018-06-14 05:30:21 +05:30
Mohammed Sadiq
7e98741793 docs: Use gtk_widget_show() to show window
gtk_window_show_all() is no longer available (and no longer needed)
2018-06-13 20:15:20 +05:30
Mohammed Sadiq
d4693b2dc8 snapshot: Trivial typo fix in comment 2018-06-13 19:58:01 +05:30
Rico Tzschichholz
b1f934d3b0 picture: Fix g-i annotation warning 2018-06-13 13:08:28 +02:00
Mohammed Sadiq
fd4bfd5050 build: Fix compiler warnings 2018-06-11 21:12:41 +05:30
Mario Sanchez Prada
07d6c53346 application: Complete startup notification sequence for remote invocations
When a remote instance of a GTK application implementing the Startup
Notification protocol gets spawned it will pass the startup sequence
ID as "platform data" to the main instance. Thus, we need to make sure
that the startup sequence gets completed in that case, since the remote
instance won't do it by itself, since it won't map any top level window.

Checking for this "platform data" in the implementation of the after_emit()
virtual method in the primary instance should be a good place to do so, since
the existence of such data proves that a remote instance has been spawned.

https://gitlab.gnome.org/GNOME/gtk/issues/1084
2018-06-11 16:28:24 +01:00
Mario Sanchez Prada
479c341545 application: Use the new API to get the startup notification ID
The DESKTOP_STARTUP_ID gets cleared early after the process is spawned,
meaning that it's too late at add_platform_data() to pick it up and send
it over to the primary instance, as it will be always unset at that point.

To solve this, we use the new gdk_display_get_startup_notification_id()
method to pull the startup notification ID for the application, if present,
out of the display and pass it over to that primary instance.

https://gitlab.gnome.org/GNOME/gtk/issues/1084
2018-06-11 16:28:24 +01:00
Mario Sanchez Prada
938448e0ef display: Add new virtual gdk_display_get_startup_notification_id() method.
Includes implementation for Wayland and X11, which are the only backends
implementing the Startup Notification Protocol, returns NULL otherwise.

https://gitlab.gnome.org/GNOME/gtk/issues/1084
2018-06-11 16:28:24 +01:00
Mario Sanchez Prada
ef3427575f display: Avoid unsetting the DESKTOP_STARTUP_ID variable too late
Similar to what has been done recently for DESKTOP_AUTOSTART_ID [1],
we need to get rid of this call to g_unsetenv() in the displays'
backends for X11 and Wayland, so that it's guarantee to happen any
thread is created, while still being accessible when needed.

Let's stash the value of this environment variable when loading the
GDK library, and provide a private method so that it can be retrieved
from the displays' backend when implementing gdk_display_make_default().

[1] https://gitlab.gnome.org/GNOME/gtk/commit/22269902

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/979
2018-06-11 16:28:24 +01:00
Mohammed Sadiq
0c57e3131f overlay: Use the right property variable name 2018-06-11 17:43:16 +05:30
Benjamin Otte
b22f45b2f6 Merge branch 'wip/sadiq/fixes' into 'master'
overlay: Add support for clipping overlay widgets

See merge request GNOME/gtk!189
2018-06-11 11:55:09 +00:00
Mohammed Sadiq
0d46081645 overlay: Add support for clipping overlay widgets
Sometimes users may want to restrict the growth of child
widgets in a GtkOverlay to grow atmost the size of the overlay.

Let's add a support for that.
2018-06-11 16:24:29 +05:30
Matthias Clasen
4f632296a5 Merge branch 'lrn/gtk4warnings' into 'master'
Fix a lot of warnings in GTK4

See merge request GNOME/gtk!188
2018-06-10 23:14:42 +00:00
Matthias Clasen
c047e97cfa Merge branch 'master' into 'master'
gtk: Add gtk_is_initialized() and gtk_get_main_thread()

See merge request GNOME/gtk!186
2018-06-10 23:05:50 +00:00
Matthias Clasen
bc13a58f3c Merge branch 'lrn/aligned-alloc' into 'master'
Aligned allocators for GTK4

Closes #856

See merge request GNOME/gtk!187
2018-06-10 22:05:12 +00:00
Руслан Ижбулатов
43f37894b0 Use correct stat struct for ftw()
check_dir_mtime() is called by ftw() and is given
the real stat struct, not its glib version (which may
or may not be the same as "struct stat").

This is irrelevant for MSVC (it has no ftw()) and
works correctly for MinGW-w64 (which declares stat
structures correctly). If mingw.org complains, add
a special ifdef for it later.
2018-06-10 21:21:27 +00:00
Руслан Ижбулатов
0365dadad9 See if _MSC_VER is defined before checking its value 2018-06-10 21:21:25 +00:00
Руслан Ижбулатов
9330be8cf9 Fix missing default switch case in DllMain 2018-06-10 21:21:24 +00:00
Руслан Ижбулатов
43d6fe2583 Fix missing default switch cases in gtkimcontextsimple 2018-06-10 21:21:22 +00:00
Руслан Ижбулатов
411c535956 Fix some warnings in W32 part of gtkmain
* Add missing default cases
* Cast string literals as non-const
2018-06-10 21:21:20 +00:00
Руслан Ижбулатов
cddc9ff424 Fix a typo in W32 event-handling code
It's quite old, but mostly harmless (both "message == WM_KEYUP"
and "message = WM_KEYUP" evaluate to not-FALSE, and message
value is not used after that line).
2018-06-10 21:21:19 +00:00
Руслан Ижбулатов
e73dc5c779 Fix a warning about uninitialized variable 2018-06-10 21:21:17 +00:00
Руслан Ижбулатов
93f8f3c406 Remove unused code in gdksurface-win32.c 2018-06-10 21:21:16 +00:00
Руслан Ижбулатов
3acd26c64a Fix more signedness issues in W32 backend 2018-06-10 21:21:14 +00:00
Руслан Ижбулатов
cacdef8db7 A quick and dirty fix for a circular allocation issue
query_targets() tried to write to struct that
wasn't yet allocated.
This code is going to change soon, so this is a temporary
fix until then.
2018-06-10 21:21:12 +00:00
Руслан Ижбулатов
1e2ab40539 Fix a missing default case warning
It shouldn't be possible to get DPI_STATUS_PENDING here.
If it does happen, that would be a bug that should be fixed.
2018-06-10 21:21:10 +00:00
Руслан Ижбулатов
f0103eeeb4 Remove unused functions in W32 backend 2018-06-10 21:21:09 +00:00
Руслан Ижбулатов
8bd6936533 Fix signedness issues, remove unused code 2018-06-10 21:21:07 +00:00
Руслан Ижбулатов
0e1710a372 Remove some more unused variables 2018-06-10 21:21:06 +00:00
Руслан Ижбулатов
bc47fa27d4 Fix various type mismatch warnings 2018-06-10 21:21:04 +00:00
Руслан Ижбулатов
aaa4e23a77 Fix gdk_win32_cairo_context_end_frame prototype 2018-06-10 21:21:02 +00:00
Руслан Ижбулатов
58fc1229c1 Remove unused variables (mostly in W32 code) 2018-06-10 21:21:01 +00:00
Руслан Ижбулатов
10b2f6540a Fix wrong format strings in various places 2018-06-10 21:20:59 +00:00
Руслан Ижбулатов
c02bc22cc5 Use aligned allocators for GtkSnapshot
Any data that is later fed to graphene must be
allocated with proper alignment, if graphene
uses SSE2 or GCC vector instructions.

This adds custom array code (a streamlined copy
of GArray with all unnecessary bells and whistles removed),
which is then used for the state_stack instead of GArray.

There's also a runtime check for the size of GtkSnapshotState
itself being a multiple of 16. If that is not so, any array
elements past the 0th element will lose alignment.
There are probably struct attributes that can
make GtkSnapshotState always have size that is a multiple
of 16, but we'll burn that bridge if we cross it.
2018-06-10 20:35:54 +00:00
Piotr Drąg
ef2daa3bdd Update Polish translation 2018-06-10 15:35:50 +02:00
Piotr Drąg
d8c8a25c2f Update POTFILES.in 2018-06-10 15:19:06 +02:00
Benjamin Otte
a34a5df674 picture: Don't use g_str_equal() with potential NULLs 2018-06-10 02:56:18 +02:00
Benjamin Otte
299e2ed44c docs: Add GtkEventControllerKey to index 2018-06-10 02:35:30 +02:00
Benjamin Otte
4c961349ab dnd: Ref the GdkDrop during the DND operation
It might go away if the DND takes too long otherwise...
2018-06-10 02:35:30 +02:00
Benjamin Otte
b7ecfbce21 quartz: Remove gtkdnd-quartz.c
It shows up in my git diff calls and is completely broken.
2018-06-10 02:33:53 +02:00
Benjamin Otte
40321d331f x11: Remove useless check
The check survived from GTK2 when that function could still return
GdkPixmap and GdkFont objects and was accompanied by this comment:

  /* We may receive events such as NoExpose/GraphicsExpose
   * and ShmCompletion for pixmaps
   */
2018-06-10 02:33:53 +02:00
Benjamin Otte
ce6227840d clipboard: Remove return statements from void function 2018-06-10 02:31:10 +02:00
Benjamin Otte
896f72d33b gtk-demo: Use GtkImages to select the puzzle 2018-06-10 02:25:55 +02:00
Benjamin Otte
884aaa2193 iconhelper: Always size contents to icon size
No more special casing for paintables. If you want the special case for
paintables, you should use GtkPicture.
2018-06-10 02:25:28 +02:00
Benjamin Otte
f58c556adb image: Remove gtk_image_set_keep_aspect_ratio()
and gtk_image_set_can_shrink().

Images are meant to always be icon-sized, they can never shrink below
that.

And images are icons, so they are meant to be square. If they are
not, we pretned that's by accident and keep aspect ratio.
2018-06-10 02:25:28 +02:00
Benjamin Otte
7690c2d042 gtk-demo: Make sliding puzzle demo use GtkPicture 2018-06-10 02:25:28 +02:00
Benjamin Otte
cbd47fa770 gtk-demo: Port images demo to use a GtkPicture in places 2018-06-10 02:23:02 +02:00
Benjamin Otte
45d78f360f video: Use a Picture instead of an Image 2018-06-10 02:23:02 +02:00
Benjamin Otte
6546ef3459 picture: Introduce
This commit introduces GtkPicture, which is supposed to complement
GtkImage.

GtkImage will be adapted to always display an icon, while
GtkPicture displays regular imagery.
2018-06-10 02:23:02 +02:00
Matthias Clasen
9d48a95d9a puzzle: fix some compiler warnings
These slipped under the radar, sorry.
2018-06-09 19:39:43 -04:00
Timm Bäder
cfbba2c710 widget: Use priv pointer less
Instead declare a priv local. We should do this even if we don't remove
the priv pointer from GtkWidget entirely, just to stay consistent with
new code we introduce.
2018-06-09 21:25:15 +02:00
Руслан Ижбулатов
a394a86151 Use aligned allocators for GskRenderNode
Any data that is later fed to graphene must be
allocated with proper alignment, if graphene
uses SSE2 or GCC vector instructions.
2018-06-09 14:05:49 +00:00
Руслан Ижбулатов
8e74eb382f Add aligned allocator functions to GSK
The code is mostly stolen from graphene.
Allocators support any alignment, but their implementation
only calls system aligned allocator functions if malloc()
is not aligned to 16-byte boundaries. If it is aligned,
the implementation just calls malloc() regardless of which
alignment is requested by the caller.

This can be fixed by saving the result of meson malloc()
alignment check and adding a few conditions to the implementation,
but right now GSK and GTK only need 16-byte alignment either way.
2018-06-09 14:01:03 +00:00
Руслан Ижбулатов
bd2e3f5b9b Add aligned allocator support to meson
* A bunch of new variables for config.h.meson
* A check for aligned allocation being necessary at all
  (graphene must use GCC vector instructions or SSE2)
* A check for C malloc() being aligned at 16-byte boundaries
* A check for a few special aligned allocator functions being
  present and not being built-ins (posix_memalign is a builtin
  in GCC, even on platforms where there is no posix_memalign
  system function)
* Added -mstackrealign flag on Windows, since otherwise
  stack variables may become unaligned when the stack briefly
  passes through OS code (such as in various callbacks and
  handlers)
2018-06-09 13:52:42 +00:00
Philippe Normand
2f181df1cf gtkmain: Add gtk_get_main_thread()
This utility function can be useful to know which thread was initialized for
GTK+.
2018-06-08 18:41:54 +01:00
Philippe Normand
542ad4fdc5 gtkmain: Add gtk_is_initialized()
This utility function can be useful to check whether GTK+ was already
initialized or not.
2018-06-08 18:39:38 +01:00
Fran Dieguez
085368eb93 Update Galician translation 2018-06-08 08:09:57 +00:00
Matthias Clasen
1ee23d0d49 puzzle: Add mouse support
Make it so that clicking on a puzzle piece moves enough
pieces to move the empty space there, if it is possible.
2018-06-07 21:47:30 -04:00
Matthias Clasen
ebf042d305 puzzle: Use plain labels
The previous code looked cool in the UI, but was too much
of a hack in the code.
2018-06-07 21:47:30 -04:00
Matthias Clasen
a849ffbd79 Add tweaks
Allow setting the puzzle size, and allow chosing between
the rose and the radioactive animation. Change the default
size to 3. 6 is just too hard.
2018-06-07 21:47:30 -04:00
Matthias Clasen
547d63d56a puzzle: Add a reshuffle button 2018-06-07 21:47:30 -04:00
Matthias Clasen
ddad5c3ce9 Keep aspect ratio of the image
Since we don't have a good way to control the window size tightly,
make the content keep aspect ratio.
2018-06-07 21:47:30 -04:00
Benjamin Otte
b6c8943bbf demo: Add the sliding puzzle demo 2018-06-07 21:47:30 -04:00
Matthias Clasen
46d8c84049 Merge branch 'master' into 'master'
Fix reference to user styles in gtkstyleprovider.h

See merge request GNOME/gtk!184
2018-06-07 18:27:25 +00:00
Mohammed Sadiq
59c8fdff29 font-button: Suggest non deprecated function in docs
gtk_font_button_get_font_name() has been deprecated in 3.22 and
its public API is removed from GTK4.
2018-06-07 15:45:32 +05:30
Matijs van Zuijlen
932e5ea34e Fix reference to user styles in gtkstyleprovider.h 2018-06-07 08:54:23 +00:00
Matthias Clasen
d2d4ea6f0a Merge branch 'wip/move-to-rect-public' into 'master'
gdk: Make gdk_surface_move_to_rect public

See merge request GNOME/gtk!179
2018-06-05 21:02:51 +00:00
Daniel Boles
3396c5e983 SizeRequest: Round px values up for min CSS sizes
Otherwise, requesting a min size in em where the equivalent in px had a
fractional part would lead to the widget getting allocated 1 too few px.
You could see this in the CSS property vs. allocation in the Inspector.

Note that margin/border/padding are left alone: the rationale is that we
do as browsers do, and Benjamin said we already do that for those,
whereas his tests on min-(width|height) showed otherwise. My subsequent
analysis indicated it to be far less clear-cut than that, but he remains
unconvinced that we should ceil() all the things! So just do these ones.

https://gitlab.gnome.org/GNOME/gtk/issues/1088
2018-06-05 18:49:52 +01:00
Jonas Ådahl
c0e1044d5c gdk: Make gdk_surface_move_to_rect public
This is the API used by GtkMenu to properly position menus on the screen
without requiring GTK to query the menu window's position or the work
area of where the window is positioned. It makes it possible to position
popup windows properly when using Wayland.

Make this API available to external users so custom popup windows can be
positioned properly as well.

Related: https://gitlab.gnome.org/GNOME/gtk/issues/997
2018-06-05 17:53:05 +02:00
Timm Bäder
5c24bbf00c popover: Add missing close paren in docs 2018-06-04 21:58:44 +02:00
Timm Bäder
a1e3e9dd17 colorbutton: Remove priv pointer 2018-06-04 21:58:44 +02:00
Timm Bäder
d53c28b07a aspectframe: Remove unused member 2018-06-04 21:58:44 +02:00
Timm Bäder
a3987f3386 bin: Remove public GtkBinPrivate typedef 2018-06-04 21:58:44 +02:00
Timm Bäder
4e9a879de0 statusbar: Remove garbage from header file
Nobody will ever read those comments; documentation belongs into the
soruce file so gtk-doc actually picks it up.
2018-06-04 21:58:44 +02:00
Timm Bäder
9109b0c3f2 statusbar: Remove priv pointer 2018-06-04 21:58:44 +02:00
Timm Bäder
758137b5d9 widget: Add docs for {get,set}_focus_child
With get_ being still private.
2018-06-04 21:58:44 +02:00
Timm Bäder
4ab3aada3f gl renderer: use w axis vector from graphene
Instead of initializing our own one every time.
2018-06-04 21:58:44 +02:00
Matthias Clasen
7a5567bf41 Merge branch 'patch-1' into 'master'
GtkWindow: Handle non-square icons with height > width correctly

Closes #657

See merge request GNOME/gtk!170
2018-06-03 18:10:03 +00:00
Christian Stadelmann
a70f0356e9 GtkWindow: Handle non-square icons with height > width correctly 2018-05-31 17:26:17 +02:00
Mohammed Sadiq
f4c1a40446 widget: Fix example code in doc 2018-05-31 16:24:00 +05:30
Matthias Clasen
8b24d59cde Merge branch 'gesture-docs' into 'master'
Gesture stuff

See merge request GNOME/gtk!169
2018-05-30 02:13:04 +00:00
Matthias Clasen
60aeb15116 x11: Don't set NET_WM_PID when sandboxed
It is not useful, and some window managers misinterpret it and
add some "runs as root" indication to the window decoration.

See https://github.com/mate-desktop/marco/issues/301
2018-05-29 20:19:05 -04:00
Matthias Clasen
c83441ae4a gdk: Add a private api to find sandboxes
This will be used in more places in the future.
2018-05-29 20:17:22 -04:00
Benjamin Otte
83a80ab866 events: Mark static function as such 2018-05-29 21:54:47 +02:00
Benjamin Otte
7e574fa98c gdk: Get rid of gdk_event_free()
Events are objects, so use g_object_unref().
2018-05-29 21:53:44 +02:00
Ernestas Kulik
4d2b39d98c gesturemultipress: Don’t fire ::released after ::cancel
Causing a grab in the handler for ::pressed by, e.g., popping up a
context menu will cause the gesture to be canceled and, subsequently,
::end and ::released to be fired, all while the button is still
physically pressed. That results in no event being available to the
::released handler and garbage coordinates, given that
gtk_gesture_get_point() returns FALSE.

Emitting ::released can be avoided by checking the return value
gtk_gesture_get_point().
2018-05-29 19:09:28 +03:00
Ernestas Kulik
e9765c0405 gesture: Fix code snippet
GTK_EVENT_SEQUENCE_ACCEPTED seems to never have been a valid enumeration
value. GTK_EVENT_SEQUENCE_CLAIMED is the closest in meaning.
2018-05-29 18:27:59 +03:00
Ernestas Kulik
334c7911c1 gesture: Fix get_last_event() docs
Querying the event sequence of a gesture will always yield NULL for
non-touch events, but passing NULL in to calls to
gtk_gesture_get_last_event() is a perfectly valid use case.
2018-05-29 18:15:20 +03:00
Victor Toso
d424837496 gdkseatdefault: Don't hide GdkSurface on grab failure
Application is not expecting that.

Bug found due gdk_seat_grab() failure on Lock Screen. When user
Unlock the screen, the application is visible but does not receive
enter-event any more on X11/GNOME.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1485968
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1571422

Signed-off-by: Victor Toso <victortoso@redhat.com>
Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
2018-05-29 14:05:14 +02:00
Carlos Garnacho
694d9aa9f9 gtkpopover: Fix thinko in key press event type check
That code branch is meant to check for key events, seems obvious we want
GDK_KEY_PRESS, not GDK_BUTTON_PRESS (which also broke the branch right
below).

Makes us all able to dismiss popovers again.
2018-05-29 14:05:14 +02:00
Carlos Garnacho
317abed78e Revert "popover: Fix setting priv->button_pressed in ::event handler"
This reverts commit d638ff3afa.

Doesn't look like the right fix. Another one coming that fixes dismissing
through both pointer and keyboard.
2018-05-29 14:03:27 +02:00
Matthias Clasen
979a7e8afa Remove an unused struct
Positive side-effect: visual c no longer has an empty struct
to complain about.
2018-05-27 11:57:49 -04:00
Timm Bäder
d638ff3afa popover: Fix setting priv->button_pressed in ::event handler
There were two cases in that if/else cascade handling the
event_type == GDK_BUTTON_PRESS case, so priv->button_pressed never got
set.
2018-05-27 17:51:51 +02:00
Timm Bäder
c8decbaad0 gdkscreen-x11: Remove redundant typedef
Causes warnings with clang.
2018-05-27 17:51:51 +02:00
Timm Bäder
719b2b0525 gl renderer: Remove an outdated comment 2018-05-27 17:51:51 +02:00
Matthias Clasen
f9875040c6 Merge branch 'master' into 'master'
icontheme: Keep dir_mtimes in order

Closes #1115

See merge request GNOME/gtk!161
2018-05-27 15:50:17 +00:00
Timm Bäder
7f9cd9f9d9 filechooserwidget: Don't chain up in ::event
GtkWidgetClass.event is NULL.
2018-05-27 16:20:55 +02:00
Timm Bäder
251913c80e gl renderer: Use offsets for more node types 2018-05-27 16:20:55 +02:00
Piotr Drąg
d8aa8fc6ce Update Polish translation 2018-05-27 07:58:25 +02:00
Matthias Clasen
d561e52cde a11y: Stop using ::event
We can just as well use notify::has-focus for the purpose of
focus tracking, and we can at the same time avoid emitting the
deprecated AtkObject::focus-event signal.
2018-05-26 08:46:06 -04:00
Christoph Reiter
e610c02a9e ci/msys2: force disable vulkan
A recent dependency change in MSYS2 made it pull in vulkan, which made
meson think it's available but it somehow links against the system vulkan dll
instead.

Disable vulkan for now.
2018-05-26 14:23:58 +02:00
Daniel Boles
e7809f43ec SpinButton: Fix an obviously wrong arg description
:climb-rate is not about what you get when you single-click on a button,
as this implied: it's what happens if you hold down a button or a key.
Fix the description of @climb_rate to new(), and while here, mention the
key in the blurb of :climb-rate itself.
2018-05-26 01:06:00 +01:00
Jan Alexander Steffens (heftig)
1e06838c1c icontheme: Keep dir_mtimes in order
Don't reverse the order each time we insert a theme. Reverse it only
once, after all themes have been loaded.

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1115
2018-05-23 20:06:01 +02:00
Matthias Clasen
4bb3ac3e81 Merge branch 'kill-key-events' into 'master'
Kill key events

See merge request GNOME/gtk!160
2018-05-23 01:55:05 +00:00
Carlos Garnacho
d94ac2ed61 Merge branch 'issue792' into 'master'
wayland: check native surface for crossing events

Closes #792

See merge request GNOME/gtk!148
2018-05-22 11:10:26 +00:00
Matthias Clasen
8746322d53 Drop the ::key-press/release-event signals
These are the last event-type specific signals,
we are just relying on the generic ::event signal now.
2018-05-21 20:20:55 -04:00
Matthias Clasen
85922f6090 treeview: Stop using ::key-press-event
Use a generic ::event handler instead.
2018-05-21 20:20:49 -04:00
Matthias Clasen
ec2d0edd79 spin button: Stop using ::key-release-event
Just use the generic ::event signal.
2018-05-21 20:20:43 -04:00
Matthias Clasen
b63def0865 font chooser dialog: Stop using ::key-press-event
Use the generic ::event instead.
2018-05-21 20:20:33 -04:00
Matthias Clasen
6084a7ea89 button: Stop using ::key-release-event
Use the generic ::event signal instead.
2018-05-21 20:20:24 -04:00
Matthias Clasen
c78166e190 file chooser widget: Stop using ::key-press-event
Use a generic ::event handler instead.
2018-05-21 20:20:18 -04:00
Matthias Clasen
576dcf65b3 file chooser entry: Stop using key-press-event
Just use the generic ::event signal for now.
2018-05-21 20:20:12 -04:00
Matthias Clasen
7644a9cd72 entry: Stop using ::key-press-event
Use a generic ::event handler instead.
2018-05-21 20:20:06 -04:00
Daniel Boles
acd05d09aa StyleContext: Don't advise using invalidate()
It doesn't exist anymore! Also, set_display() is not needed/used in the
demo cited, and we were still referring to gtk3-demo, not gtk4-demo.
2018-05-21 23:39:47 +01:00
Daniel Boles
19ed1b92b0 Range: Up should only mean ++ if we are a GtkScale
The last round of patches to get the desired direction of value move in
response to scrolls/keypresses on scales had the inadvertent side effect
of giving the opposite direction on scrollbars. Seeing as gtkrange.c is
already a collection of hacks, add another so that fix only holds if the
instance is a GtkScale, since that is what those patches were aimed at.

Close https://gitlab.gnome.org/GNOME/gtk/issues/1065
2018-05-21 20:21:25 +01:00
Matthias Clasen
33b8f087a3 emoji completion: Stop using key-press-event
The generic ::event signal will do.
2018-05-19 23:36:10 -04:00
Matthias Clasen
287c900bdb Remove key-press-event from more docs
This signal will be going away, so stop mentioning it so much.
2018-05-19 23:36:01 -04:00
Matthias Clasen
46da8a031b gtk-demo: Avoid key-press-event 2018-05-19 23:28:44 -04:00
Matthias Clasen
824bbf3117 popover: Drop key_press_event handler
We can do the same in the generic ::event handler.
2018-05-19 23:20:53 -04:00
Matthias Clasen
7928532bc5 emoji: Hide recent section when empty
This is part of https://gitlab.gnome.org/GNOME/gtk/merge_requests/143
by Julian Sperber.
2018-05-19 22:53:24 -04:00
Timm Bäder
3edd24fb01 widget: Properly remove event controllers in finalize
We were mutating the list while iterating over it. This was not a
problem before since remove_controller just set the controller pointer
to NULL instead of actually removing it from the list of controllers.
2018-05-19 23:03:32 +02:00
Timm Bäder
3a8607190f Add GtkEventControllerKey to the docs 2018-05-19 12:38:44 +02:00
Timm Bäder
0aad5da1b3 widget: Remove controller sequence-state-changed signal connection
We can avoid a signal connection per event controller (and the
EventControllerData struct) since every event controller knows the
widget it's attached to.
2018-05-19 10:18:50 +02:00
Timm Bäder
5c339f2844 Add basic searchbar set_key_capture_widget tests
Make sure we're correctly resetting the internal key capture widget
pointer when the widget goes away.
2018-05-19 10:18:50 +02:00
Timm Bäder
8f289227aa searchbar: Add missing GDK_AVAILABLE_IN_ALL marker 2018-05-19 10:18:50 +02:00
Timm Bäder
662e2b1641 snapshot: Remove superfluous typedef
We're already doing this in gtktypes.h

Fixes #214
2018-05-19 10:18:50 +02:00
Timm Bäder
5ff4ef14e6 widget: Directly notify gestures of grab
Since each widget has a list of event controllers now, we don't need to
connect to ::grab-notify of the widget for every controller.
2018-05-19 10:18:50 +02:00
Timm Bäder
f13cccd042 widget: Fix measure docs
Fix a typo and don't ever pass NULL to a ::measure() implementation.
2018-05-19 10:18:50 +02:00
Timm Bäder
c8aa5b8b4e gl renderer: Add helper for printing a render node tree 2018-05-19 10:18:50 +02:00
Timm Bäder
f71b2ee79f gestures demo: widget property is not writable
Use gtk_widget_add_controller instead.
2018-05-19 10:18:50 +02:00
Timm Bäder
a0d0b52034 scrollbar: Remove get_wheel_delta
Unused and undocumented.
2018-05-19 10:18:50 +02:00
Timm Bäder
caaa3f8200 cssvalue: Remove typechecks
This path is more than hot and those type checks ruin any kind of real
life profiling.
2018-05-19 10:18:50 +02:00
Fabio Tomat
90ac5f3755 Update Friulian translation 2018-05-18 16:19:35 +00:00
Matthias Clasen
84364a7ef4 emoji: Improve section scrolling
Leave some space above the section heading when scrolling.

This is a part of https://gitlab.gnome.org/GNOME/gtk/merge_requests/143
by Julian Sperber.
2018-05-17 16:42:00 +01:00
Matthias Clasen
daca4b9a39 Merge branch 'wip/restart-cursor-animation' into 'master'
wayland: Fix restarting cursor animation

See merge request GNOME/gtk!149
2018-05-17 09:59:45 +00:00
Matthias Clasen
1d368b0cd8 Merge branch 'paste-scrolling' into 'master'
textview: Don't scroll for pastes in another view

See merge request GNOME/gtk!152
2018-05-17 09:48:36 +00:00
Emmanuele Bassi
6656130f9c Merge branch 'pages-docs' into 'master'
Publish master docs with gitlab pages.

See merge request GNOME/gtk!135
2018-05-15 08:51:37 +00:00
Chun-wei Fan
9332237bd4 gtkemojicompletion.c: Don't use g_autoptr()
This code is also built with non-GCC/non-CLang compilers, so don't use a
GCCism here.
2018-05-15 13:49:45 +08:00
Chun-wei Fan
04b4c077f6 gdkcairocontext*.h: Include cairo.h consistently
The other sources include cairo.h by just using #include <cairo.h>, so
do likewise here.
2018-05-15 13:49:45 +08:00
Matthias Clasen
71718b9cd1 textview: Don't scroll for pastes in another view
GtkTextView scrolls to the insertion point when the text
buffer signals a paste is done. This is wrong when there
are multiple views on the same buffer, and the paste
happened in another view.

To fix this, flip the handling of the scroll_after_paste
boolean to only be TRUE if we know that we want to scroll.
2018-05-14 13:03:34 +01:00
Fabio Tomat
d7aa13a8e6 Update Friulian translation 2018-05-14 11:12:37 +00:00
Fabio Tomat
e46d286882 Update Friulian translation 2018-05-14 05:21:23 +00:00
Mohammed Sadiq
9a79b090df appchooserdialog: Fix memory leak 2018-05-13 14:57:04 +05:30
Mohammed Sadiq
b59a8c2911 appchooserdialog: Don't fire notify::heading twice
The gtk_app_chooser_dialog_set_heading() function do emit
notify::heading. Since the setter simply calls the function,
the setter itself shouldn't emit a notify signal by itself.
2018-05-13 14:56:49 +05:30
Mohammed Sadiq
0cd9ef8bcf aboutdialog: Fix memory leak 2018-05-13 14:56:34 +05:30
Mohammed Sadiq
1f82697e99 video: Fix memory leak 2018-05-13 14:56:22 +05:30
Mohammed Sadiq
7ddad8aa62 examples: Remove unused variables 2018-05-12 17:32:16 +05:30
Mohammed Sadiq
14e5218753 snapshot: Fix typo in documentation comment 2018-05-12 09:31:32 +05:30
Mohammed Sadiq
8410d87eb5 label: Rearrange struct members
Rearranging so can save us 8 bytes per GtkLabel
on 32/64 bit aligned memory.
Not a big count, but we get it for free.
2018-05-11 16:10:03 +05:30
Mohammed Sadiq
3c7ea78d68 textview: Always show select-all button in touch popup
"Select all" action is possible regardless of the text selection state
or if the text is editable or not.
2018-05-11 16:09:57 +05:30
Mohammed Sadiq
b73857faa9 textview: Reset bubble source id once run
The bubble_timeout_id was reset only on some special case.
And so warnings were shown when the source is being tried
to be removed with the already removed id.

Fix this by unconditionally resetting the id on start of the function.
2018-05-11 16:09:50 +05:30
Mohammed Sadiq
8e0cc8169e textview: Simplify creating bubble action buttons
Buttons can be created simply with gtk_button_new_from_icon_name().
2018-05-11 16:09:44 +05:30
Mohammed Sadiq
33bacb4150 widget: Avoid an unnecessary check
The preceding loop terminates when either the widget is NULL,
or if their type matches. There is no reason to check that again
2018-05-11 16:09:38 +05:30
Jonas Ådahl
a5d000cb5c wayland: Fix restarting cursor animation
When an animated cursor was set and the previous cursor animation delay
happened to be the same, we wouldn't restart the animation timeout and
just return G_SOURCE_CONTINUE assuming the timer would continue. This
assumption is however only valid if the function was called from the
timeout, which is not the case.

Instead also arm the timer also if there is no previous timer active.
2018-05-09 22:17:03 +02:00
Olivier Fourdan
d3885e92a7 wayland: check native surface for crossing events
gdk_wayland_*_grab()/ungrab() would emit crossing events which translate
as focus_in/focus_out events for keyboard.

However, the ungrab() functions compare the native toplevel as this is
what gets the Wayland pointer enter/leave events with the grab surface,
so if the grab is issued on a child gdk surface, those won't match and
we would emit more focus_out events than focus_in.

This means that a widget such as spice-gtk which issues a keyboard grab
whenever the pointer enters the surface and releases the grab when it
leaves the surface would get uneven numbers of focus_in/focus_out
events.

Also, gdk_wayland_seat_ungrab() would not emit crossing events for
keyboard devices, whereas gdk_wayland_device_ungrab() does, which adds
even more potential discrepancies between focus_in/focus_out events.

To solve this problem, introduce two new helper functions which check
the relevant native surfaces to emit crossing events when needed that
get called evenly from both gdk_wayland_seat_grab()/ungrab() and gdk
_wayland_device_grab()/ungrab() APIs.

Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=780422
Closes https://gitlab.gnome.org/GNOME/gtk/issues/792
2018-05-09 17:30:34 +02:00
Mohammed Sadiq
47872e5172 examples: Use icon-name property to set button icons
Gtk4 added an icon-name property for GtkButton.
2018-05-09 15:28:28 +05:30
Mohammed Sadiq
65b423eb05 examples: Simplify counting buffer lines
We do have a gtk_text_buffer_get_line_count() function
to get the line count.
2018-05-09 15:28:15 +05:30
Mohammed Sadiq
88ddda6d60 examples: Remove explicit gtk_widget_show()
In gtk4, widgets are visible by default.
2018-05-09 15:27:55 +05:30
Robert Ancell
e95eeaeef1 Fix comment typo introduced in a32725bc9a 2018-05-09 11:28:53 +12:00
Marek Cernocky
c831a77592 Updated Czech translation 2018-05-08 22:55:59 +02:00
Mohammed Sadiq
8fcc401e05 examples: Take advantage of user_data passed
The last parameter of the signal callback from .ui
is the template's object from which the class is
derived.

And so, we already have access to the window object.
Let's just use it.
2018-05-08 18:55:48 +05:30
Emmanuele Bassi
f07b131362 ci: Disable tests when building Graphene
Our flatpak-builder manifests include building Graphene from Git; since
we're building the GTK demos, it's pointless to build the Graphene tests
as well. Disabling tests and benchmarks avoids pointless installations
inside the Flatpak build repo that will just be removed by the time we
bundle the demo.
2018-05-08 14:20:00 +01:00
Emmanuele Bassi
b702618ed9 docs: List private headers for gtk-doc to ignore
We have a lot of private headers that should not be used by gtk-doc when
scanning for symbols.
2018-05-08 14:20:00 +01:00
Emmanuele Bassi
1262d0c6e5 Avoid absolute paths when building the API reference
We should always use relative paths, or include_directories objects, to
allow using GTK as a subproject.
2018-05-08 14:20:00 +01:00
Daniel Mustieles
547e5bf128 Updated Spanish translation 2018-05-08 15:12:45 +02:00
Daniel Mustieles
ac6d42a119 Updated Spanish translation 2018-05-08 15:06:32 +02:00
Mohammed Sadiq
bf1c344443 examples: Don't use private members for final classes
Only derivable classes are required to have private members
so that derived classes can't override them.
2018-05-08 14:34:43 +05:30
Mohammed Sadiq
555c6d7ac7 reference: Replace reference to gtk3 with gtk4 2018-05-08 06:05:41 +05:30
Mohammed Sadiq
5242073547 reference: Use gtk+-4 for compilation in examples 2018-05-08 06:05:04 +05:30
Mohammed Sadiq
772c994fd0 examples: Simplify .ui files
Run gtk4-builder-tool recursively
2018-05-07 22:30:40 +05:30
Mohammed Sadiq
c5976fed9a examples: Fix Makefiles to use gtk4 for build 2018-05-07 22:29:32 +05:30
Benjamin Otte
34d1ebc562 dnd: Make "formats" a construct-only property
... and hide the member variable inside the DragContextPrivate.
2018-05-07 18:55:09 +02:00
Benjamin Otte
80f5fd8435 wayland: Remove stray if
Leftover from d056be4ea2.

I need more sleep when I need to fixup the fixups of my fixups now.
2018-05-07 18:55:09 +02:00
Benjamin Otte
2ce2a80d40 win32: Remove unused file 2018-05-07 18:55:09 +02:00
Benjamin Otte
fa0a44e811 Merge branch 'wip/sadiq/fixes' into 'master'
icon-browser: Fix typo in description

See merge request GNOME/gtk!138
2018-05-07 15:54:26 +00:00
Mohammed Sadiq
67becb4510 icon-browser: Fix typo in description
This is shown as tooltip-text
2018-05-07 20:50:27 +05:30
Benjamin Otte
69644993f6 gsk: Improve GSK_RENDERER behavior
1. Include the broadway renderer (so we can test it properly fails on
   Wayland or X11)
2. List all potential renderers, print useful information when Vulkan
   is not compiled in instea dof omitting it
3. Improve docs
2018-05-07 16:45:32 +02:00
Benjamin Otte
d056be4ea2 wayland: Fix memleak
7f8a8f221d forgot to free the data offer
passed to it.
2018-05-07 16:28:50 +02:00
Matthias Clasen
3c05a6662b Update docs for debug environment variables
Just the usual pre-release doc fixups.
2018-05-07 07:47:18 -04:00
Matthias Clasen
5469bf0773 Document the GSK_RENDERER environment variable
Just the usual pre-release doc fixups.
2018-05-07 07:47:18 -04:00
Matthias Clasen
335a8aa843 Update build docs
Just the usual pre-release doc fixups.
2018-05-07 07:47:18 -04:00
Matthias Clasen
f5a2ab38f3 Miscellaneous docs improvements
Just the usual pre-release doc fixups.
2018-05-07 07:47:18 -04:00
Matthias Clasen
766185bce5 Add GtkWidgetPaintable to the docs
Just the usual pre-release doc fixups.
2018-05-07 07:47:18 -04:00
Matthias Clasen
c7fd3ebbaf Add GdkPaintable to the docs
Just the usual pre-release doc fixups.
2018-05-07 07:47:18 -04:00
Daniel Boles
e1f1fe9ba6 MediaStream: Fix capitalisation of two new %TRUEs 2018-05-06 21:46:30 +01:00
Matthias Clasen
79e54929a2 Add more media docs 2018-05-06 15:57:10 -04:00
Jordan Petridis
f4a0109377 gitlabci: Build and publish docs with gitlab pages. 2018-05-06 19:56:15 +03:00
Benjamin Otte
7f8a8f221d wayland: Redo DND offer handling
Instead of tracking offers in GdkWaylandSelection objects, track the
pending offer in the GdkWaylandSeat and pass it to the GdkDragContext
once we get an enter event.
2018-05-06 02:10:20 +02:00
Benjamin Otte
03a85ff2a0 gdk: Remove unnecessary assignments
The variable is never read again.
2018-05-06 02:10:20 +02:00
Matthias Clasen
f569717a03 Add media support to docs 2018-05-05 18:28:19 -04:00
Matthias Clasen
7fdf3d1769 Fixes to the gtk docs 2018-05-05 18:03:31 -04:00
Matthias Clasen
702deee799 Add some more content to the migration guide 2018-05-05 13:33:36 -04:00
Matthias Clasen
a34f35d587 More NEWS 2018-05-05 13:33:36 -04:00
Daniel Boles
901aa59b5b GesturePan: Remove widget parameter from docs, too
71991270b0 (note_112519)
2018-05-05 10:51:24 +01:00
Timm Bäder
f6a79559e9 inspector: Don't add controllers to non-window toplevels
That doesn't make sense in this context and breaks grabs.
2018-05-05 09:06:22 +02:00
Timm Bäder
64849426ae inspector: Use unique names for g_object_set_data calls
Otherwise the calls of the different inspector pages might end up
clashing.
2018-05-05 09:05:02 +02:00
Timm Bäder
d1cdb9b5cf widget: Clarify add_tick_callback docs
You don't pass the callback to remove_tick_callback, but the id returned
from add_tick_callback.
2018-05-05 07:39:55 +02:00
Timm Bäder
e379ea617a stylecontext: Draw arrow-less insertion cursors as color nodes
This lets us avoid an often used cairo node.
2018-05-05 07:25:10 +02:00
Timm Bäder
f44959fa59 stylecontext: Remove outdated comment
gtktextview:invalidate_cursor_windwo is no more.
2018-05-05 07:25:10 +02:00
Timm Bäder
af27199102 widget: Directly access priv pointer in even controller API
Spares us a few lines.
2018-05-05 07:25:10 +02:00
Christian Hergert
613f7609c2 build: fix meson.build when quartz is used
We need access to the variable earlier in the file when the quartz
backend is being setup.
2018-05-04 17:46:08 -07:00
Piotr Drąg
0f0be1ee8e Update Polish translation 2018-05-04 21:48:33 +02:00
Matthias Clasen
db095f8cdb Update NEWS 2018-05-04 15:37:48 -04:00
Matthias Clasen
4a72cab818 Document gdk_drop_read_async 2018-05-03 22:04:28 -04:00
Matthias Clasen
e191015aa0 The legacy event controller is still private 2018-05-03 20:45:36 -04:00
Matthias Clasen
45db4a5550 Merge branch 'wip/xdg-shell' into 'master'
xdg shell (stable)

See merge request GNOME/gtk!35
2018-05-04 00:43:01 +00:00
Matthias Clasen
0069de7e75 Merge branch 'altBackspaceEmacs' into 'master'
Add binding for <alt>BackSpace to emacs keys

See merge request GNOME/gtk!96
2018-05-04 00:39:39 +00:00
Matthias Clasen
be2853e5de emoji chooser: Match search terms better
Use g_str_match_string for better results.
2018-05-03 20:36:19 -04:00
Emin Tufan Çetin
0ab4bc80ad Update Turkish translation 2018-05-03 07:04:43 +00:00
Benjamin Otte
35e74a1501 win32: Fix build 2018-05-03 01:56:44 +02:00
Benjamin Otte
eb9105acea dnd: Add a private struct
And put member veriables into it.

Also fix backends to use accessors instead of direct access.
2018-05-03 01:31:40 +02:00
Benjamin Otte
8366ef71c0 dnd: Remove gdk_drop_reply()
It was only necessary for Motif DND, and we don't support that anymore.
2018-05-03 01:31:40 +02:00
Benjamin Otte
fb53568c04 gdk: Remove gdk_drag_grop_succeeded()
It's unused and most backends don't implement it.
2018-05-03 01:31:39 +02:00
Timm Bäder
622a150bb4 snapshot: merge container nodes
A container node inside another container node doesn't make a lot of
sense, we can instead just use the parent container node and add the
child container node's children to it directly.
2018-05-02 19:48:34 +02:00
Timm Bäder
2815054820 recorder: Fix cairo node display
We can only upload image surfaces as a texture but cairo nodes use
recording surfaces now.
2018-05-02 19:48:34 +02:00
Timm Bäder
31e0aaf6b0 gl renderer: Remove ops debug message
Without a node name, this doesn't make much sense anymore.
2018-05-02 19:48:34 +02:00
Matthias Clasen
ee82d73d7a Merge branch 'wip/lantw/gtk4-use-dev-evdev-input-h-on-freebsd' into 'master'
wayland: Use dev/evdev/input.h on FreeBSD (GTK4)

See merge request GNOME/gtk!133
2018-05-02 10:55:38 +00:00
Matthias Clasen
0f4084946a Add missing types to gtk docs 2018-05-01 23:26:28 -04:00
Matthias Clasen
1185b0b447 Add missing types to gdk docs 2018-05-01 23:22:13 -04:00
Ting-Wei Lan
7fed0b74ed wayland: Use dev/evdev/input.h on FreeBSD
The header linux/input.h used by GDK is specific to Linux. It is
possible to get a few Linux headers on FreeBSD by installing v4l_compat,
but it is usually better to use the one shipped with FreeBSD.

We prefer dev/evdev/input.h to linux/input.h here, so it will always use
dev/evdev/input.h on FreeBSD regardless of v4l_compat.

https://svnweb.freebsd.org/changeset/ports/465644
2018-05-01 22:28:57 +08:00
Timm Bäder
d506799e72 gl renderer: Ignore nodes outside of the clip
Pretty sure this will bite me later but for now we avoid rendering nodes
that we are not going to see anyway.
2018-05-01 15:13:11 +02:00
Timm Bäder
3a5a9d9233 gl renderer: Use simple offset for selected offset node children 2018-05-01 15:13:11 +02:00
Timm Bäder
e0205eb27c widget: add shortcut to gtk_widget_set_child_visible
So we don't do unnecessary work when just setting priv->child_visible to
the same value again.
2018-05-01 15:13:11 +02:00
Timm Bäder
a54e5844b6 widget: Don't mention gtk_widget_snapshot() in the docs
It's not public so people can't know about it.
2018-05-01 15:13:11 +02:00
Matthias Clasen
1dcb76bc26 Merge branch 'wip/carlosg/controller' into 'master'
carlosg/controller

See merge request GNOME/gtk!131
2018-05-01 12:35:53 +00:00
Jonas Ådahl
5f19421bc9 wayland: Various whitespace cleanups
Broke up a long line, added an empty one, indented another one, and re-aligned
a large amount of function parameter names that got misaligned in some past
refactoring.

https://bugzilla.gnome.org/show_bug.cgi?id=791939
2018-05-01 13:39:42 +02:00
Jonas Ådahl
a40923b03a wayland: Add support for xdg-shell stable
This commit adds support the stable version of the xdg-shell protocol.
Support for the last version of the unstable series is left intact, but
will not receive new features.

The stable version is prioritized above the older version.

https://bugzilla.gnome.org/show_bug.cgi?id=791939
2018-05-01 13:36:38 +02:00
Rico Tzschichholz
2cf55c1686 Fix some g-i annotation warnings 2018-05-01 12:35:32 +02:00
Matthias Clasen
422262436b Fix the modelbutton demo _again_
It lost the action-target properties again.
2018-04-30 20:49:34 -04:00
Emmanuele Bassi
97e43715fb Merge branch 'docs' into 'master'
gitlabci: Add gtk-doc to the container image.

See merge request GNOME/gtk!130
2018-04-30 16:21:21 +00:00
Jordan Petridis
50985d922a gitlabci: Add gtk-doc to the container image. 2018-04-30 19:04:38 +03:00
Benjamin Otte
995b29d8db Merge branch 'lrn/meson-intl' into 'master'
Link libgtk to libintl

See merge request GNOME/gtk!113
2018-04-30 12:25:43 +00:00
Benjamin Otte
5166767e8b Merge branch '169-gtktextview-accesses-already-disposed-object' into 'master'
Resolve "GtkTextView accesses already disposed object"

Closes #169

See merge request GNOME/gtk!109
2018-04-30 11:56:36 +00:00
Mario Blättermann
bf6aafe460 Update German translation 2018-04-30 10:42:41 +00:00
Benjamin Otte
bcb3a32686 Merge branch 'window-activate-grab-4-2.4' into 'master'
gdk: do not deactivate surface on keyboard grab

Closes #85

See merge request GNOME/gtk!120
2018-04-30 09:48:25 +00:00
Samuel Thibault
01455399e8 gdk: do not deactivate surface on keyboard grabs
When pressing e.g. a window manager shortcut, which acquires keyboard grab,
Xorg would send FocusOut NotifyGrab then FocusIn NotifyUngrab.  Currently
gdk would then deactivate the current surface, which makes accessibility
screen readers think that we have switched to a non-accessible application
and came back again, and thus reannounce the application frame etc. which we
don't want when e.g. just raising volume.

And actually, receiving FocusOut NotifyGrab does not mean losing the
X focus, it only means an application aqcuired a grab, i.e. it is
temporarily stealing keyboard events. On Wayland, this isn't even
notified actually.

This commit makes gdk only deactivate surfaces when there was an actual
focus switch to another window, as determined by has_focus_window (instead
of just has_focus), which happens either normally through FocusOut with
NotifyNormal, or during grabs through FocusOut with NotifyWhileGrabbed.

Fixes #85
2018-04-30 10:57:53 +02:00
Matthias Clasen
3684b72121 Misc documentation fixes
Close some gaps in gdk docs.
2018-04-28 22:34:14 -04:00
Matthias Clasen
059a181f7d Document GdkMemoryTexture 2018-04-28 16:22:29 -04:00
Matthias Clasen
a0f591297a More doc build fixes
If only the errors would make it back to stderr.
2018-04-28 16:02:34 -04:00
Matthias Clasen
b20e68cc91 More doc build fixes 2018-04-28 15:07:35 -04:00
Matthias Clasen
6b7be6643a Add offset nodes to the docs 2018-04-28 15:07:35 -04:00
Matthias Clasen
5e2103f7f0 Fix the gdk doc build
GdkDrawingContext no longer exists.
2018-04-28 15:07:35 -04:00
Fabio Tomat
8fecee4e41 Update Friulian translation 2018-04-28 09:19:30 +00:00
Benjamin Otte
4aaeb7de19 dnd: Make GdkDragContext::device a (construct-only) property
Also remove gdk_drag_context_set_device() and insist on backends using
the property.
2018-04-27 14:32:28 +02:00
Benjamin Otte
a86359af2b wayland: Create drop contexts on demand
Instead of creating and reusing the same one from start to finish.
2018-04-27 14:32:28 +02:00
Benjamin Otte
56cc470663 dragsource: Use capture phase for gesture
Otherwise buttons don't work as drag sources, and we like to do that.
2018-04-27 14:32:28 +02:00
Benjamin Otte
aca20dbb78 gtk-demo: Always have at least 1 icon in the fishbowl
When changing the widget type, don't start out with 0 icons.
2018-04-27 14:32:28 +02:00
Kristjan SCHMIDT
3a4238e199 Update Esperanto translation 2018-04-26 23:24:32 +00:00
Руслан Ижбулатов
76855e8999 imcontextsimple: ensure W32 code only runs on W32 displays
gdk_win32_keymap_check_compose() shouldn't be called for
non-W32 displays (i.e. when using broadway or other backends
that could be made to run on Windows).
2018-04-26 17:50:55 +00:00
Carlos Garnacho
3675f9ccb2 gesturestylus: Port to new API model 2018-04-26 17:59:42 +02:00
Carlos Garnacho
15e00759c7 eventcontrollerkey: Port to new API model 2018-04-26 17:59:42 +02:00
Benjamin Otte
ba7849960e eventcontroller: Make widget no longer a construct-only property
The new API model is now complete. To set a widget on a controller, it
is now necessary to call gtk_widget_add_controller().
2018-04-26 17:59:42 +02:00
Benjamin Otte
c5f12a7326 padcontroller: Port to new API model 2018-04-26 17:59:42 +02:00
Benjamin Otte
4f3058f195 eventcontrollermotion: Port to new API model 2018-04-26 17:59:42 +02:00
Benjamin Otte
74dbb057ed eventcontrollerscroll: Port to new API model 2018-04-26 17:59:42 +02:00
Benjamin Otte
1e6eb1f8b9 draggesture: Port to new API model 2018-04-26 17:59:42 +02:00
Benjamin Otte
bf82149271 longpressgesture: Port to new API model 2018-04-26 17:59:42 +02:00
Benjamin Otte
4ddc94b293 multipressgesture: Port to new API model 2018-04-26 17:59:42 +02:00
Benjamin Otte
71991270b0 pangesture: Port to new API model 2018-04-26 17:59:41 +02:00
Benjamin Otte
66223aaa08 swipegesture: Port to new API model 2018-04-26 17:59:41 +02:00
Benjamin Otte
91efa37fcb zoomgesture: Port to new API model 2018-04-26 17:59:41 +02:00
Benjamin Otte
703d5340f1 rotategesture: Port to new API model 2018-04-26 17:59:41 +02:00
Benjamin Otte
6fb92a0ab9 legacycontroller: Port to new API model
We no longer set the widget on construction, but instead require an
explicit call to gtk_widget_add_controller().

This way, the reference handling becomes explicit and bindable.

Because gtk_widget_add_controller() is (transfer: full), we don't
even need to unref the controller after adding it.
And we don't need to keep track of it, because controllers get cleaned
up by GtkWidget.
2018-04-26 17:59:41 +02:00
Benjamin Otte
31de97749a filechooser: Put event controllers into ui file 2018-04-26 17:59:41 +02:00
Benjamin Otte
fa97236b62 placesviewrow: Put event controllers into ui file 2018-04-26 17:59:41 +02:00
Benjamin Otte
c2ec738a2e widget-factory: Put gesture into ui file 2018-04-26 17:59:41 +02:00
Benjamin Otte
0d7cf79b00 emojichooser: Put event controllers into ui file 2018-04-26 17:59:41 +02:00
Benjamin Otte
40a082de10 aboutdialog: Put event controllers into ui file 2018-04-26 17:59:41 +02:00
Benjamin Otte
9c0acf62b4 widget: Allow adding event controllers in ui files 2018-04-26 17:59:41 +02:00
Benjamin Otte
9af03fa602 widget: Expose gtk_widget_add_controller()
.. and gtk_widget_remove_controller().
2018-04-26 17:59:41 +02:00
Benjamin Otte
8ddba5ffcd eventcontroller: Move declaration
This is in preparation for exposing APIs in gtkwidget.c
2018-04-26 17:59:41 +02:00
Benjamin Otte
e01e9ce092 eventcontroller: Add vfuncs to (un)set widget
This is the first step towards refactoring how widgets deal with event
controllers.

In the future, the widget will treat controllers the same way it treats
child widgets:
1. The controllers will be created without a widget.
2. There will be gtk_widget_add/remove_controller() functions to add
   or remove controllers.
3. The widget will hold a reference to all its controllers.

This way we will ultimately be able to automate controllers with ui
files.
2018-04-26 17:59:41 +02:00
Adrian Johnson
b0bb7f3da4 Add gtk_printer_get_hard_margins_for_paper_size
to retreive paper size specific hard margins and use this
to set the hard margins in the print context.
(modified by Marek Kasik <mkasik@redhat.com>)

https://bugzilla.gnome.org/show_bug.cgi?id=686109
2018-04-26 14:19:55 +02:00
Fabio Tomat
9774b9fabd Update Friulian translation 2018-04-26 07:52:37 +00:00
Carlos Garnacho
77f4204bf4 menu: Set up callback with a return function
The function hooked up to the ::key-pressed signal should have
a return value. Pointed out by Peter Bloomfield.
2018-04-25 19:11:21 +02:00
Benjamin Otte
b442277fd4 comboboxtext: GTK_DISABLE_SINGLE_INCLUDES is not a thing
What you don't find when laughing at vcpkg having a CMake build file for
GTK.
2018-04-25 17:18:16 +02:00
Daniel Mustieles
f00361b246 Updated Spanish translation 2018-04-25 13:18:01 +02:00
Carlos Garnacho
aeda2ad049 notebook: Fetch directly current event state/device
gtk_get_current_event() returns a new reference to the event, it should
be freed across various return branches to avoid the event leak, or we
just fetch the little stuff we're interested in.
2018-04-25 02:17:39 +02:00
Carlos Garnacho
23f4724a23 range: Do not unconditionally stop events in event handler
Prevents keybindings from working on scales.
2018-04-25 02:16:35 +02:00
Carlos Garnacho
0547c0999f combobox: Do not unconditionally stop events in event handler
Prevents combobox menus from being closed.
2018-04-25 02:16:05 +02:00
Benjamin Otte
ae7a677346 cairocontext: Remove fallback implementations
Now that all Cairo contexts are ported to managing cairo surfaces
themselves, the old fallback code that didi the managing is no longer
needed.

Also clarify the behavior of gdk_cairo_context_cairo_create() wrt the
vfunc by doing the early exit and the clipping outside of it.
2018-04-24 23:24:55 +02:00
Руслан Ижбулатов
7002f08cc1 GDK W32: Switch to GdkCairoContext
* Remove DC refcounting (we trust GDK to always do
  begin_frame/end_frame calls in pairs)
* Now that there's no GDK-provided double-buffer up the stack,
  double-buffering is implemented here
  (though it's disabled by default - in my tests it didn't provide
   any visual improvements, but did decrease performance).
* For some reason delaying window resizes until the point where
  we need to blit the double-buffer into the window leads
  to visual glitches, so doulbe-buffered windows are resized
  in begin_frame, same as non-double-buffered ones.
* New code to clear the paint region, for all drawing modes.
  Hopefully, it isn't duplicated anywhere up the stack.
* GL has its own context now, so remove any GL-related comments.
* Layered windows are still used (because cairo actually works
  better with them)
* A bit more code re-use for layered windows
* Some functions that were local to gdksurface-win32.c are made
  usable for the whole backend
* Drag-indicator drawing is temporarily commented out to match
  a similar change in X11 backend
2018-04-24 23:24:55 +02:00
Alexander Larsson
8c5d31d11d broadway: Handle offset nodes 2018-04-24 23:24:55 +02:00
Alexander Larsson
b554f4be20 broadway: Handle cairo nodes of type recording surface 2018-04-24 23:24:55 +02:00
Alexander Larsson
a329de63ea broadway: Add and use GdkBroadwayDrawContext 2018-04-24 23:24:55 +02:00
Alexander Larsson
99c46f263e broadway: Add basic GdkCairoContext implementation 2018-04-24 23:17:14 +02:00
Alexander Larsson
9421cb8b3a broadway: Call _gdk_surface_update_size when resizing surface 2018-04-24 23:17:14 +02:00
Benjamin Otte
83ea0b3714 drawcontext: Only pass the region that matters
We used to pass 2 regions to GdkDrawCotnext.end_frame() but code was
confusing what they meant. So we now don't do that anymore and only pass
the region that matters: The frame region.
2018-04-24 23:16:58 +02:00
Benjamin Otte
fd686afeb2 drawcontext: Add gdk_draw_context_in_frame() API
This makes the previous gdk_draw_context_is_drawing() function public
under a new name.

I decided against the old name because we use the term "frame" for a
drawing operation, so I wanted to have this boolean flag reuse the term.
2018-04-24 23:16:58 +02:00
Benjamin Otte
6aa89f2163 drawcontext: Move variable into private struct
... and get rid of duplicate variable in the process.
2018-04-24 23:16:58 +02:00
Benjamin Otte
a865621519 gdk: Move begin/end_frame() functions
As they require a draw context and the draw context is already bound to
the surface, it makes much more sense and reduces abiguity by moving
these APIs to the draw context.

As a side effect, we simplify GdkSurface APIs to a point where
GdkSurface now does not concern itself with drawing anymore at all,
apart from being the object that creates draw contexts.
2018-04-24 23:16:58 +02:00
Benjamin Otte
48fc18c37b gdk: Get rid of GdkDrawingContext
All information is kept in GdkDrawContext these days, so use that one.
2018-04-24 23:16:58 +02:00
Benjamin Otte
c6ae0ff2d1 gdk: Get rid of gdk_drawing_context_get_clip()
Use the identical gdk_draw_context_get_frame_region() instead.
2018-04-24 23:16:58 +02:00
Benjamin Otte
dbe4f1d766 gdk: Add gdk_draw_context_get_frame_region()
This does the same as gdk_drawing_context_get_clip().
2018-04-24 23:16:58 +02:00
Benjamin Otte
e7d6648f46 gdk: Remove gdk_gl_context_get_damage()
Remove it only form public API, because we still use the vfunc to figure
out the damage area in begin_frame().
2018-04-24 23:16:58 +02:00
Benjamin Otte
4d481ecb95 gsk: Refactor damage computation for GL renderer
Previously, we got the damage, then computed the changed area, then
started a frame with that changed area.

But starting a frame computes the damage for us.

So now we start a frame, then get the damage area from that, then
compute the change area.
2018-04-24 23:16:58 +02:00
Benjamin Otte
4aac0760b3 wayland: Rewrite Cairo rendering
Also, split it into its own file - which was the original reason for
looking at this code, the rewrite was an unintentional side effect.

This changes the context to create surfaces on demand.
So whenever the compositor holds onto a surface while GDK wants to
render, it just creates a new surface. If the compositor releases
surfaces, we will retain one for the next frame to be rendered, but free
all extra ones.
This way, we should get to a stage where we have exactly as many
surfaces as needed and never allocate/free any.
2018-04-24 23:16:58 +02:00
Benjamin Otte
03e6cefe73 x11: Move implementation of Cairo context backends
Also, don't implement SurfaceClass.ref_cairo_surface() anymore. This
means calls to it will crash now. But as they only happen in the generic
GdkCairoContext implementation, we shouldn't be affected by that.

Plus, once all backends have been ported, that call is going away
anyway.
2018-04-24 23:16:13 +02:00
Benjamin Otte
c48d78525e surface: Merge function into only caller 2018-04-24 23:16:13 +02:00
Benjamin Otte
899674d445 gdk: Remove GDK_DEBUG=cairo-image
This is the default now - at least until cairo rendering gets split
into backends.
2018-04-24 23:16:13 +02:00
Benjamin Otte
54a83d0288 surface: Fold function into only user 2018-04-24 23:16:12 +02:00
Benjamin Otte
7a6871ea5f cairocontext: Turn cairo_create() function into a vfunc 2018-04-24 23:16:12 +02:00
Benjamin Otte
a6553b0e20 gdk: Remove unused GL setting 2018-04-24 23:16:12 +02:00
Benjamin Otte
813e9c95fb gdk: Add Cairo context implementations for all backends
And make the GdkCairoContext as abstract.

The idea of this and thje following commits is to get rid of all
Cairo code in gdksurface.c (and $backend/gdksurface-$backend.c)
by moving that code into the Cairo context files.
In particular, the GdkSurfaceClass.begin_frame/end_frame()
functions (which are currently exclusively used by the Cairo code
should end up being moved to GdkDrawContextClass.begin/end_frame().

This has multiple benefits:

1. It unifies code between the different drawing contexts.
   GL lives in GLContext, Vulkan in VulkanContext and Cairo in
   CairoContext. In turn, this makes it way easier to reason about
   what's going on in surface-specific code. Currently pretty much
   all backends do things wrong when they want to sync to drawing
   or to the frame clock.

2. It makes the API of GdkSurface smaller. No drawing code (apart
   from creating the contexts) needs to remain.

3. It confines Cairo to the Drawcontext, thereby making it way
   more obvious when backends are still using it in situations
   where it may now conflict with OpenGL (like when doing the dnd
   failed animation or in the APIs that I'm removing in this
   branch).

4. We have 2 very different types of Cairo contexts: The X/win32
   model, where we have a natively supported Cairo backend but do
   double buffering ourselves and use similar surfaces and the
   Wayland/Broadway model where we use image surfaces without any
   Cairo backend support and have to submit the buffers manually.
   By not sharing code between those 2 versions, we can make the
   actual code way smaller. We also get around the need to create
   1x1 image surfaces in the Wayland backend where we pretend
   there's a native Cairo surface.
2018-04-24 23:16:12 +02:00
Benjamin Otte
a83487a0c4 cairocontext: Move a function
A function of GdkDrawingContext is only used when drawing with Cairo, so
move it to GdkCairoContext.
2018-04-24 23:16:12 +02:00
Benjamin Otte
52de880c1c gdk: Move Cairo code from surface to CairoContext
This just moves code, no actual changes to functionality are happening.
2018-04-24 23:16:12 +02:00
Benjamin Otte
f396786051 gdk: Add GdkCairoContext
This does nothing but disallow passing NULL to gdk_surface_begin_paint()
and instead require this context.

The ultimate goal is to split out Cairo drawing into its own source file
so it doesn't clutter up the generic rendering path.
2018-04-24 23:16:12 +02:00
Benjamin Otte
2210b9a302 gtk-demo: Merge widgetbowl into fishbowl 2018-04-24 21:55:37 +02:00
Benjamin Otte
aa2f415283 demo: Clean up GtkFishbowl widget
1. Remove set_icons property
2. Make it a GtkWidget subclass
3. Add gtk_fishbowl_set_creation_func()
4. Make the widgetbowl use the new benchmarking infrastructure of the
   fishbowl
2018-04-24 21:55:37 +02:00
Benjamin Otte
db5b8ca997 demo: Move benchmarking implementation to fishbowl widget 2018-04-24 21:55:37 +02:00
Kristjan SCHMIDT
8756748525 Update Esperanto translation 2018-04-24 19:17:30 +00:00
Daniel Boles
1e5c79ed47 testentrycompletion: Use the model we already got
cherry-pick of gtk-3-22 commit af350b20b1
2018-04-24 13:45:49 +01:00
Stas Solovey
dbdd3bf179 Update Russian translation 2018-04-24 10:32:36 +00:00
Benjamin Otte
1e0eed79b5 snapshot: Get rid of record_nodes flag
Instead, use GTK_DEBUG=snapshot for it.
2018-04-24 04:06:58 +02:00
Benjamin Otte
b49dccb86d rendernode: Remove gsk_render_node_set_name()
And of course, gsk_render_node_get_name() is gone, too.
The replacement is of course debug nodes.

As a side effect, GskRenderNode is now *really* immutable.
2018-04-24 04:06:58 +02:00
Benjamin Otte
73b4a62f51 snapshot: Redo debug messages
Instead of every snapshot function having debug messages, have an
explicit gtk_snapshot_push_debug() function that appends a debug node.
2018-04-24 04:06:58 +02:00
Benjamin Otte
49f9d2108d gsk: Add GskDebugNode 2018-04-24 04:06:58 +02:00
Matthias Clasen
29d77be03f Merge branch 'wip/matthiasc/emoji-picker' into 'master'
Wip/matthiasc/emoji picker

See merge request GNOME/gtk!115
2018-04-24 00:38:20 +00:00
Matthias Clasen
8be12a2427 Drop Ctrl-Shift-e support
Now that we have Emoji completion, drop the rather limited
Ctrl-Shift-e support in GtkIMContextSimple, and leave this
sequence to input methods.
2018-04-23 18:54:43 -04:00
Matthias Clasen
f0f2dd743f widget-factory: add emoji completion to an entry 2018-04-23 18:54:43 -04:00
Matthias Clasen
5d80086470 entry: Add emoji completion
Pop up completions when the text in the entry matches :word:
This functionality has to be enabled using the enable-emoji-completion
property.
2018-04-23 18:54:43 -04:00
Matthias Clasen
1104a8fdb7 Add an emoji completion popup
This widget provides entry completion-like functionality
for Emoji codes like 😁 or 💋.
2018-04-23 18:54:43 -04:00
Matthias Clasen
e283ed5523 Export some entry functions privately
This will be used in the following commits.
2018-04-23 18:54:43 -04:00
Emmanuele Bassi
3f307c59bd wayland: Allow a NULL inhibitors hash table
The shortcuts inhibitors hash table is created when we create a
GdkWaylandWindow implementation for a GdkWindow, and it's destroyed once
we finalize the instance. The fake "root" window we create for the
Wayland display does not have a backing native window, so the shortcuts
inhibitors hash table is set to NULL; this causes a critical error
message when calling g_hash_table_destroy() on it. The finalization of
the root window happens when we close a display connection.

We should use g_clear_pointer(), instead, as it's NULL safe.

Without this change, the displayclose test fails, as all warnings are
considered fatal.
2018-04-23 18:54:43 -04:00
Ting-Wei Lan
2a87caf529 gtk-demo, testgtk: Don't pass an integer to fabs
It looks like a mistake which compilers are likely to warn.
2018-04-23 18:54:43 -04:00
Ting-Wei Lan
f57c1a2901 imcontextxim: Don't assign a variable to itself
This causes clang to show warnings.
2018-04-23 18:54:43 -04:00
Ting-Wei Lan
1517114d9f Fix header guards
They were found by clang.
2018-04-23 18:54:43 -04:00
Ting-Wei Lan
48af688940 build: Use cc.links to check linker arguments
Instead of hard-coding linker flags for a specific operating system and
a specific compiler, we can should cc.links to test them, so they can be
used on more operating systems and compilers.
2018-04-23 18:54:43 -04:00
Ting-Wei Lan
e882db2763 build: Make the default setting work on non-Linux Unix-like systems
All of the four platform-dependent backends are enabled by default. It
is usually a good default because it requires users to explicitly choose
backends they want to use. Rules in meson.build also automatically
disable unavailable backends for macOS, Windows, Linux, so users on
these 3 major platforms don't have to manually disable things when
running meson commands.

However, meson.build doesn't do the same thing for other Unix-like
systems, which is acceptable but not ideal. To make it easier to build
GTK+ on these systems, the Linux case, which enables X11 and Wayland and
disables Win32 and Quartz, is made the default for all operating systems
that are not Windows or macOS.

This commit also changes most 'host_machine.system()' calls to os_*
variables, which are easier to read and less likely to be used wrongly.
2018-04-23 18:54:43 -04:00
Daniel Mustieles
7bb98674d0 Update Spanish translation 2018-04-23 14:18:20 +00:00
Emmanuele Bassi
fc57d3b5a3 wayland: Allow a NULL inhibitors hash table
The shortcuts inhibitors hash table is created when we create a
GdkWaylandWindow implementation for a GdkWindow, and it's destroyed once
we finalize the instance. The fake "root" window we create for the
Wayland display does not have a backing native window, so the shortcuts
inhibitors hash table is set to NULL; this causes a critical error
message when calling g_hash_table_destroy() on it. The finalization of
the root window happens when we close a display connection.

We should use g_clear_pointer(), instead, as it's NULL safe.

Without this change, the displayclose test fails, as all warnings are
considered fatal.
2018-04-23 10:57:07 +01:00
Matthias Clasen
9178f74067 Merge branch 'wip/lantw/improve-freebsd-build-and-fix-warnings' into 'master'
Improve meson.build for FreeBSD and reduce the number of warnings during compilation

See merge request GNOME/gtk!123
2018-04-23 02:40:00 +00:00
Daniel Boles
e6deaa3a85 Widget: Add missing space in new warning 2018-04-22 23:12:18 +01:00
Daniel Boles
5c152192d7 themes: Fix a new comment
bah.
2018-04-22 22:21:35 +01:00
Daniel Boles
b92e688141 themes: Fix swapped borders on RTL PathBar buttons
.linked assumes the container is a GtkBox, which is documented as never
flipping children in RTL, so :first-child is always the left child, etc.
GtkBox does that by reordering its CSS nodes when the direction changes.

But most widgets don’t do that, so :first|last-child are 1st/last ADDED
and swap sides in RTL. GtkPathBar is so, and ignoring that in our themes
meant that in RTL, its left/right buttons got each other’s borders. Yuk!

This patch adds the groundwork for supporting widgets like that, via the
%linked_flippable placeholder, and applies that to override buttons in
  filechooser .path-bar.linked > button
so that the correct borders get applied to those buttons when using RTL.

Note that I select only PathBars within a FileChooser because we also
have NautilusPathBar, which also uses widget.path-bar – but *does* flip
its nodes for RTL already, so letting that get affected broke it again!

https://bugzilla.gnome.org/show_bug.cgi?id=772817
2018-04-22 22:06:50 +01:00
Daniel Boles
0401e031ad CheckMenuItem: Fix insert_after|before() here too
See the previous commit.

There may be other cases of these being swapped by Gadget conversions,
but hopefully someone else will find and fix those before I have to…

Close https://gitlab.gnome.org/GNOME/gtk/issues/200
2018-04-22 21:51:10 +01:00
Daniel Boles
95f65da038 MenuItem: Fix broken args to insert_before|after()
The widget & its parent were swapped to each other’s place in the calls.

https://gitlab.gnome.org/GNOME/gtk/issues/200
2018-04-22 21:49:41 +01:00
Daniel Boles
f36c8c219c Widget: Show widget name/addrs if fail to reparent
so we can more easily get an idea of where the problematic code is

https://gitlab.gnome.org/GNOME/gtk/issues/200
2018-04-22 21:49:41 +01:00
Daniel Boles
ae14fa4efd Widget: Trivially fix arg name in non-doc comment 2018-04-22 21:40:20 +01:00
Daniel Boles
5f7191b31a MenuButton: popover connects to menu_deactivate_cb
This was missed (even before my recent patches).

https://gitlab.gnome.org/GNOME/gtk/issues/199
2018-04-22 16:33:26 +01:00
Daniel Boles
279344a2e6 MenuButton: Disconnect newly added signal handler
Otherwise, we do stuff we shouldn't, as the failing pipeline showed:
https://gitlab.gnome.org/GNOME/gtk/pipelines/9431

https://gitlab.gnome.org/GNOME/gtk/issues/199
2018-04-22 16:33:26 +01:00
Daniel Boles
f403a311c9 MenuButton: Clarify NULL popup/over/menu/model doc 2018-04-22 16:11:18 +01:00
Daniel Boles
caa9255dd3 MenuButton: Drop ref to Popover on its ::destroy
Otherwise, if the Popover is destroyed before the MenuButton, the latter
still had a non-NULL but invalid instance and tried to use it in dispose

Close https://gitlab.gnome.org/GNOME/gtk/issues/199
2018-04-22 16:11:18 +01:00
Daniel Boles
1d636dc8d4 Entry: Show optional style classes in node diagram 2018-04-22 16:11:09 +01:00
Juan Pablo Ugarte
bc2fad6842 a11y/ScrolledWin|IconView: Connect signals safely
Use g_signal_connect_data() instead of g_signal_connect_object()
to make sure the callback gets disconnected when the data object
is destroyed. This avoids problems in garbage-collected bindings.

https://bugzilla.gnome.org/show_bug.cgi?id=789215
2018-04-22 16:11:08 +01:00
Piotr Drąg
bef44a0c9d Update Polish translation 2018-04-22 16:13:56 +02:00
Ting-Wei Lan
43a7f36993 gtk-demo, testgtk: Don't pass an integer to fabs
It looks like a mistake which compilers are likely to warn.
2018-04-22 21:59:13 +08:00
Ting-Wei Lan
d3f40dc771 imcontextxim: Don't assign a variable to itself
This causes clang to show warnings.
2018-04-22 21:57:10 +08:00
Ting-Wei Lan
77637dc73b Fix header guards
They were found by clang.
2018-04-22 21:57:10 +08:00
Ting-Wei Lan
ff1dd5009c build: Use cc.links to check linker arguments
Instead of hard-coding linker flags for a specific operating system and
a specific compiler, we can should cc.links to test them, so they can be
used on more operating systems and compilers.
2018-04-22 21:57:10 +08:00
Ting-Wei Lan
f922109a9c build: Make the default setting work on non-Linux Unix-like systems
All of the four platform-dependent backends are enabled by default. It
is usually a good default because it requires users to explicitly choose
backends they want to use. Rules in meson.build also automatically
disable unavailable backends for macOS, Windows, Linux, so users on
these 3 major platforms don't have to manually disable things when
running meson commands.

However, meson.build doesn't do the same thing for other Unix-like
systems, which is acceptable but not ideal. To make it easier to build
GTK+ on these systems, the Linux case, which enables X11 and Wayland and
disables Win32 and Quartz, is made the default for all operating systems
that are not Windows or macOS.

This commit also changes most 'host_machine.system()' calls to os_*
variables, which are easier to read and less likely to be used wrongly.
2018-04-22 21:57:10 +08:00
Benjamin Otte
7a09cd4cda widget: Position changes don't require a redraw
Well, they don't require a redraw of the widget, because the widget
itself didn't change.
They require a redraw of the parent, because that now displays the
widget in a different position.

And this means we can keep the cache of the widget's render node.

My fishbowl numbers are through the roof^W water surface. Vulkan gets
4000 now.
2018-04-22 02:57:47 +02:00
Benjamin Otte
c5bcc47ce7 demo: Don't add more icons all the time
If adding new icons takes longer than a second, the frame clock should
run before we add even more icons...
2018-04-22 02:57:47 +02:00
Timm Bäder
8d11e7685a build: Remove 'name' kwarg from has_function calls
They cause warnings with later meson versions.
2018-04-21 19:30:12 +02:00
Timm Bäder
f483fd539e build: Fix copy/paste error 2018-04-21 19:24:25 +02:00
Timm Bäder
5b453ecd19 Always use #ifdef for G_ENABLE_DEBUG
Release builds don't define it to 0, they just don't define it. Avoid
the compilation warning we get otherwise.
2018-04-21 19:18:20 +02:00
Timm Bäder
9b8ff8d6c3 sizerequestcache: Directly initialize some locals
Declaring them and initializing them in the same block of code without
an empty line in between is really just confusing.
2018-04-21 19:06:54 +02:00
Timm Bäder
1313234ae0 Use inlined gtk_widget_get_display version in a few places
We can safely do this whenever we already made sure that the given
pointer is a valid GtkWidget.
2018-04-21 19:06:21 +02:00
Timm Bäder
c3e02b2b22 widget: Add static inline version of gtk_widget_display()
Due to the few type checks in gtk_widget_get_display(), it was the
slowest part of a call to gtk_widget_query_size_for_orientation if the
in case of a cache hit.
2018-04-21 18:48:15 +02:00
Timm Bäder
1a24a360bd textview: Remove handling_key_event flag
It's not used anymore.
2018-04-21 15:45:47 +02:00
Timm Bäder
4f3c7cd48a gsk: Make gsk_text_node_new_with_bounds private
We pulled out the bounds calculation for performance reasons, but the
caller can't know how to properly compute them. Inside gtk+, we can do
that but it's not good enough for public API.
2018-04-21 11:20:15 +02:00
Timm Bäder
d74be1fcf0 gl renderer: Rename texture_id parameter to fbo_id
So this makes sense again.
2018-04-21 10:13:16 +02:00
Timm Bäder
ac268b1c5d widget: Use get_instance_private more often
To be more consistent with newer code. We can also save a few lines here
and there by pulling the priv initialization before the precondition
checks.
2018-04-21 10:06:57 +02:00
Timm Bäder
fae1bbb3fe sizerequestcache: Constify some locals
Make it clear that we only use them for lookups here.
2018-04-21 10:06:57 +02:00
Timm Bäder
bd855c11ab sizerequestcache: Use int instead of gint 2018-04-21 10:06:57 +02:00
Timm Bäder
bb412cdda1 sizerequest: Pull locals in closest scope 2018-04-21 10:06:57 +02:00
Timm Bäder
840504b60a snapshot: Fix some documentation problems 2018-04-21 10:06:57 +02:00
Timm Bäder
c948c9e51d viewport: Remove useless import
Just a debugging remnant
2018-04-21 10:06:57 +02:00
Timm Bäder
746c9dc278 viewport: Remove outdated comment 2018-04-21 10:06:57 +02:00
Timm Bäder
29f38056a9 gl renderer: Fix fallback node scaling 2018-04-21 10:06:57 +02:00
Matthias Clasen
cfa04805a3 Merge branch 'print-deserialize' into 'master'
printing: Be more careful when deserializing

See merge request GNOME/gtk!121
2018-04-20 21:37:13 +00:00
Matthias Clasen
6f4a77bb3c printing: Be more careful when deserializing
The GVariant we are getting here might not be coming
from GTK+, but rather from some other source. Best to
be forgiving and deal with missing data without crashing.

This was causing the GTK+ portal backends to crash on
print requests from Qt.
2018-04-20 16:58:36 -04:00
Daniel Mustieles
09037b261e Updated Spanish translation 2018-04-20 11:42:22 +02:00
Daniel Mustieles
9d746d4ec4 Revert "Update Spanish translation"
This reverts commit 8570d33e08.
2018-04-19 16:13:15 +02:00
Marco Trevisan (Treviño)
c15b64b720 stack: protect set_visible_child_name from NULL stack
Return with error if gtk_stack_set_visible_child_name is called
with NULL parameter


(cherry picked from commit 2ee5aee4a9)
2018-04-19 08:40:17 +00:00
Emmanuele Bassi
e30176a522 Merge branch 'gtkplacesview-finalization-fixes-master' into 'master'
Gtkplacesview finalization fixes

See merge request GNOME/gtk!119
2018-04-19 08:24:49 +00:00
Marco Trevisan (Treviño)
4900c3eb3b gtkplacesview: disconnect from server list monitor changes on destroy
It might happen otherwise that a change is recorded in between the
widget dispose and finalization, causing a crash when setting
the visible name for the GtkStack (as that will be NULL at that point)
2018-04-19 02:59:52 -05:00
Marco Trevisan (Treviño)
f9452957cd gtkplacesview: unset entry_pulse_timeout_id before removing it
Fixes a warning on widget finalize, when trying to remove an invalid
source.
2018-04-19 02:59:43 -05:00
Daniel Boles
06a1477f80 Scale: Document new optional classes on value node 2018-04-18 22:59:19 +01:00
Daniel Boles
45c8c8f934 Range: Make down/up keys act like down/up scrolls
Before now, down/up keys on H Ranges would increase/decrease value resp,
which is unintuitive & worse, contradicts what we already do for scrolls

Fix simply by moving to the new should_invert_move() as scrolls just did
– which also gets us the other benefits explained in the last 2 commits.

https://bugzilla.gnome.org/show_bug.cgi?id=407242
https://bugzilla.gnome.org/show_bug.cgi?id=791802
2018-04-18 18:36:55 +01:00
Daniel Boles
6985dde320 Range: Use should_invert_move() to scroll value
This fixes RTL and/or :inverted Ranges responding to a horizontal scroll
by moving the value/slider button in the opposite direction... See prev.

https://bugzilla.gnome.org/show_bug.cgi?id=791802
2018-04-18 18:36:55 +01:00
Daniel Boles
bc2a38a59e Range: Add should_invert_move() for scrolls & keys
This will be used in subsequent commits to fix the sign by which the
value is changed in response to directional scroll or keypress events.

The idea is: you have a movement to make – in the form of a delta that
follows widget directions, i.e. −1 means left or up, +1 means right or
down – and you want to know whether that delta needs to be inverted in
order to produce the intuitively expected directional change of :value.

The existing should_invert() is not sufficient: it just determines
whether to invert visually, but we need more nuance than that for input.

To answer that – while not doubling up the work for scrolls and keys – I
add a helper should_invert_move(), which considers other relevant state:

 • A parallel movement on priv->orientation should just use the existing
   should_invert(), which already worked OK for this case (not others).

 • Movements on the other orientation now depend on priv->orientation:

    ◦ For a horizontal Range, always invert, so up (i.e. −ve in terms of
      widget coords) always means increase value & vice-versa. This was
      done in get_wheel_delta(), but move it here for use with keys too.

    ◦ For a vertical Range, ignore :invert as it’s only relevant to the
      parallel orientation. Do not care about text direction here either
      as RTL locales do not invert number lines, Cartesian plots, etc.

This returns TRUE if the delta should be inverted before applying to the
value, and we can now use this function in both scroll and key handlers.

https://bugzilla.gnome.org/show_bug.cgi?id=407242
https://bugzilla.gnome.org/show_bug.cgi?id=791802
2018-04-18 18:36:09 +01:00
Benjamin Otte
2db43edbd6 snapshot: Don't handle clip anymore
If widgets want to clip things, they now need to do it themselves.

By not taking care of clip, we avoid the need to track clip. And by not
tracking clip, we can avoid all unnecessary cache invalidations that we
were doing for render nodes whenever the clip changed.

And when you are scrolling, the clip changes *a lot*.
2018-04-17 23:21:37 +02:00
Daniel Boles
3b2a03367c MenuShell: Avoid compiler warning re un/signed cmp
priv->button is a guint, but we assigned it to a local gint.

gtk/gtkmenushell.c:734:37: warning: comparison between signed and
  unsigned integer expressions [-Wsign-compare]
           if (button && (new_button != button) && priv->parent_menu_shell)
                                     ^
2018-04-17 20:53:48 +01:00
Daniel Boles
d13e78831b Menu|Item: Fix FIXME re non-const interned strings
These are members of the private struct, so it hurts no one to fix this.
2018-04-17 20:53:48 +01:00
Daniel Boles
4fae962a03 Menu: Remove redundant typecheck in private func
Everything that calls this already ensured we are a valid GtkMenu.
2018-04-17 20:40:21 +01:00
Daniel Boles
8fd0ee96a6 Menu: Update @accel_path annotation/description 2018-04-17 20:40:21 +01:00
Daniel Boles
48472a4b04 Menu: Typecheck AccelGroup passed via public API 2018-04-17 20:40:21 +01:00
Daniel Boles
24953ab1be Menu: Typecheck before dereferencing to get ->priv 2018-04-17 20:40:21 +01:00
Daniel Boles
2a7e5d5137 MenuShell: Sanitise take_focus bool via public API
We store in priv then compare it later, so better make sure it’s 0 or 1.
2018-04-17 20:40:21 +01:00
Daniel Boles
f6ba206d07 MenuShell: Typecheck the instance @ select_first()
since this is public API and therefore might get junk passed to it.
2018-04-17 20:21:05 +01:00
Daniel Boles
331f9762cc CellRenderer: Link to CellEditable.start_editing()
...from CellRenderer::start-editing, to point people in the direction of
info about the lifecycle of the Editable and how to do generic setup.

https://gitlab.gnome.org/GNOME/gtk/issues/154
2018-04-17 19:07:39 +01:00
Daniel Boles
aaf2e30a48 CellRenderer: Clarify doc of .start_editing()
Drop the line copied from .activate(), replace it with a description of
what this method actually does, and explain what a NULL result means.

https://gitlab.gnome.org/GNOME/gtk/issues/154
2018-04-17 19:07:39 +01:00
Daniel Boles
50feed4c28 CellRenderer: Entry is not the only CellEditable
so link to GtkCellEditable and note that GtkEntry is just one example.
2018-04-17 19:07:39 +01:00
Daniel Boles
0fd9362e91 CellRenderer|Editable: Don't @See_also subclasses
The documentation knows that from the inheritance hierarchy, without us
having to manually duplicate that info here. Link to each other instead.
2018-04-17 19:07:39 +01:00
Daniel Boles
bdb7815b0c CellEditable: Clarify doc on lifecycle of editable
* Note in the intro that we're really thinking about temporary widgets
* Mention a gotcha regarding GtkEntry and how ::focus-out stops editing
* Give some examples of what you'd want to do in ::editing-done
* Be a bit more precise about what ::remove-widget represents
* Summarise the lifecycle between Renderer/Editable in .start_editing()
* Emphasise again there that this should be viewed as a temporary widget

https://gitlab.gnome.org/GNOME/gtk/issues/154
2018-04-17 19:07:39 +01:00
Daniel Boles
59a8ffd35e CellEditable: Move arg description to right place
Move it from the body to the argument line, and while there, update
the deprecated (allow-none) to (nullable).
2018-04-17 19:07:39 +01:00
Daniel Boles
44682256a9 CellEditable: Fix grammar error in doc synopsis 2018-04-17 19:07:39 +01:00
Christoph Reiter
5b2153ad38 ci: move the docker image to gitlab.gnome.org 2018-04-17 19:09:34 +02:00
Daniel Mustieles
8570d33e08 Update Spanish translation 2018-04-17 16:25:45 +00:00
Marek Kasik
0abf8efd2f TextView: Don't access already disposed text mark
Instead of asking of TextMark for its buffer,
let's reference also the buffer in the SelectionData.

Closes #169
2018-04-17 16:01:54 +02:00
Emmanuele Bassi
e23b65e434 Add an issue template for crashers
Better to have separate templates than a large, "choose your own
adventure" one.
2018-04-17 09:39:31 +01:00
gogo
4bb48212a6 Update Croatian translation 2018-04-16 19:09:18 +00:00
Matthias Clasen
8b188c9b41 Merge branch 'code-owners' into 'master'
docs: Start defining the owners of code sections

See merge request GNOME/gtk!116
2018-04-16 16:38:50 +00:00
Emmanuele Bassi
0b4bfd5c93 docs: Start defining the owners of code sections
When filing a new merge request it's often hard to know who to ask for a
review; using the Git log doesn't always help — the person that touched
a file last may just be fixing the build or a compiler warning.

The `CODE-OWNERS` file format is something that GitHub uses in order to
pre-fill the list of reviewers:

  https://help.github.com/articles/about-codeowners/

Ideally, in the future, we'll be able to use this file with a bot like
homu to automatically go through newly filed merge requests and
automatically ask the relevant people for reviews, instead of doing this
manually.
2018-04-16 16:06:33 +01:00
gogo
d79f1fdbce Update Croatian translation 2018-04-16 13:45:29 +00:00
Christoph Reiter
f4857da08f ci: remove allow_failure from flatpak jobs again
It was added in 814b7d7bb7 due to too old wayland in the runtime.
5b160efc76 fixed it by bundling a newer wayland.
2018-04-16 11:54:47 +02:00
Matthias Clasen
3e9a68be83 No need to clear GTK_MODULES anymore
Not a variable we care about nowadays.
2018-04-15 22:03:50 -04:00
Matthias Clasen
651e7aa6a1 Spruce up config summary
Show all the options. Nothing to hide.
2018-04-15 22:03:38 -04:00
Matthias Clasen
5b160efc76 flatpak: Bundle wayland for now
We need a newer wayland than is available in the runtime
currently, so use the power of flatpak and bundle it.
2018-04-15 17:45:45 -04:00
Timm Bäder
b0e9dc4723 tooltip: Ignore events with pressed buttons
We dont' want to show tooltips in those cases.
2018-04-15 17:12:01 +02:00
Timm Bäder
4336c6412a gl renderer: Remove unused viewport member 2018-04-15 17:12:01 +02:00
Timm Bäder
172b0e7ea0 frame: Use underscores in widgets ids in the docs
They will work in composite widget templates this way.
2018-04-15 17:12:01 +02:00
Timm Bäder
bf08537885 frame: Remove priv pointer 2018-04-15 17:12:01 +02:00
Timm Bäder
be77e0d500 frame: Stop saving label and child allocation
We don't use them for anything anymore.
2018-04-15 17:12:01 +02:00
Timm Bäder
2f95b4dd70 Remove gtk_render_icon_surface
As part of removing all the cairo_surace_t usage. There's still
gtk_render_icon for the same purpose that takes a GdkTexture*
2018-04-15 17:12:01 +02:00
Timm Bäder
4b02982e1c widget: Use _set_has_tooltip everywhere
real_set_has_tooltip sounds like it's a vfunc implementation, but it
wasn't. The force parameter was also useless so just remove that.
2018-04-15 17:12:01 +02:00
Timm Bäder
914656b8b6 widget: Use priv pointer directly 2018-04-15 17:12:01 +02:00
Timm Bäder
5f02caf09b widget: Update docs to mention ::draw less 2018-04-15 17:12:01 +02:00
Christoph Reiter
3da9543b63 Revert "ci: Enable the a11y test suite"
This reverts commit 968a8e1cf0.

things still fail in the gitlab runner
2018-04-15 05:48:59 +02:00
Matthias Clasen
d48084dad9 font chooser: Allow tweaking fractions
This makes some sense, and frac is meant to be set globally.
2018-04-14 20:28:27 -04:00
Emmanuele Bassi
968a8e1cf0 ci: Enable the a11y test suite
The accessibility test suite only performs internal validation.
2018-04-14 16:15:52 +01:00
Emmanuele Bassi
e36adbac04 tests: Update the expected a11y dump results
Keep in sync with the current tree.

The changes are mostly caused by updates in the internal hierarchy of
composite widgets, and the fact that the order in which the widget tree
is traversed is not exactly stable.
2018-04-14 16:14:36 +01:00
Emmanuele Bassi
7bd5f8f69c tests: Split out the accessibility dump tests
Instead of having a single massive test running through the a11y
directory, we can split off each individual file into its own unit.

Having individual units has several advantages:

 - units are executed in parallel
 - it's easier to identify the failing units
 - logs for failed units are easier to read
2018-04-14 16:14:10 +01:00
Emmanuele Bassi
84a30e9524 ci: Use a common section for Flatpak jobs
Avoid repeating blobs of YAML manually, and use the proper YAML
mechanism to copy-paste blobs instead.
2018-04-14 16:13:50 +01:00
Timm Bäder
0a0c909e14 GskRenderer: Plug a memory leak 2018-04-14 12:50:17 +02:00
Timm Bäder
1db1a30339 flowbox: Remove unnecessary queue_draw call 2018-04-14 12:50:17 +02:00
Timm Bäder
1195bb3872 paned: Remove outdated comment
The cursor is not updated in state_flags_changed these days.
2018-04-14 12:50:17 +02:00
Timm Bäder
b48422d423 build: Print summary last 2018-04-14 11:47:02 +02:00
Timm Bäder
add82735bb gl renderer: Don't use texture ids in glBindFramebuffer calls 2018-04-14 11:47:02 +02:00
Timm Bäder
c18219c5a8 snapshot: don't create offset nodes inside offset nodes
It's pretty easy to make that one offset node.
2018-04-14 11:47:02 +02:00
Timm Bäder
fdfdada362 gl renderer: Increase GArray size by 2 up front
Since we know we will add two elements anyway.
2018-04-14 11:47:02 +02:00
Timm Bäder
3a995b41d7 widget: Avoid a dead assignment 2018-04-14 11:47:02 +02:00
Timm Bäder
497d2f8c50 tooltip: Avoid some possibly uninitialized values 2018-04-14 11:47:02 +02:00
Aron Xu
26f962eead po: fix zh_CN translation 2018-04-14 13:10:55 +08:00
Benjamin Otte
fc6018f192 wayland: Don't freeze the frame clock too early
We can't freeze the frame clock on commit, but only after-paint,
otherwise the frameclock will resume in the paint stage.

So freeze the frame clock at the end of the frame if we are waiting for
a frame callback.

Note; The diff is only lage because of indentation changes due to
avoiding early returns in favor of a branch.
2018-04-13 02:16:10 +02:00
Benjamin Otte
4aab8e970b gdk: Remove gdk_surface_create_similar_image_surface()
It's unused.
2018-04-12 14:04:33 +02:00
Benjamin Otte
7ef8696a7d gdk: Remove gdk_cairo_surface_create_from_pixbuf()
It's unused and people should use textures and snapshots anyway.
2018-04-12 14:04:20 +02:00
Benjamin Otte
9cecf123f3 widget-factory: Use a pixbuf instead of a surface
This gets rid of the last user of
gdk_cairo_surface_create_from_pixbuf().
2018-04-12 14:03:58 +02:00
Benjamin Otte
af6b2cdb37 testgtk: Don't set cairo surfaces as icons
The code expects textures these days, so use those.
2018-04-12 14:03:48 +02:00
Benjamin Otte
3a1c69dce6 gdk: Remove gdk_cairo_get_drawing_context()
It's unused.
2018-04-12 14:03:40 +02:00
Benjamin Otte
b9c8c146d2 tests: Use gdk_texture_save_to_png() where appropriate 2018-04-12 14:02:59 +02:00
Benjamin Otte
770866f265 texture: Add gdk_texture_save_to_png()
It's needed for debugging Timm's code, so better have it here than
hidden in my random-patch vault.
2018-04-12 14:02:59 +02:00
Benjamin Otte
39d930c065 drawingcontext: Remove unused APIs 2018-04-12 14:02:59 +02:00
Christoph Reiter
814b7d7bb7 ci: allow flatpak jobs to fail for now
We can easily revert this when things are fixed again.
2018-04-11 19:52:21 +02:00
Timm Bäder
0965812e37 scrolledwindow: Fix indicator revealing
We need to increase the scrollbar bounds size.
2018-04-11 19:14:55 +02:00
Timm Bäder
5e81761ad0 gl renderer: Slightly change ops_offset behavior
Add the given delta to the current one instead of replacing it.
2018-04-11 19:14:54 +02:00
Timm Bäder
0336825537 gl renderer: Don't draw all rounded clip nodes to a texture
We only need to do that if the rounde clip node intersects with the
outer one.
2018-04-11 19:14:54 +02:00
Руслан Ижбулатов
8c3ee6a38d Link libgtk to libintl
GTK does use libintl directly (in gtkmain.c, for example) and thus
needs to be linked to it (if found and/or needed).

Previously we most likely were getting libintl from glib, but
that stopped for some reason. Either way, explicit linking is
the right thing to do here.
2018-04-11 16:49:18 +00:00
Руслан Ижбулатов
20f12f9ed7 GDK W32: Fix a missing weak referencing
The changes in a82d67bb7d didn't
preserve a g_object_weak_ref() call that we need to ensure the
objects in hash map don't become stale. Fix this.
2018-04-11 16:39:34 +00:00
Emmanuele Bassi
8fa2db35f8 Merge branch 'gitlab-ci-ccache-again' into 'master'
gitlab-ci: Reenable ccache but disable it during the initial meson call

See merge request GNOME/gtk!111
2018-04-11 14:32:37 +00:00
Emmanuele Bassi
a2a99d27c9 Simplify the Wayland code generation
Instead of going through an ancillary script to strip away the
`WL_EXPORT` annotation from the generated code, we should bump up the
required version of Wayland, and use the `private-code` argument for
wayland-scanner, which does the right thing for us.
2018-04-11 15:06:43 +01:00
Christoph Reiter
c542115906 gitlab-ci: Reenable ccache but disable it during the initial meson call
There where some problems (??) with ccache not detecting changes during meson
checks. Setting CCACHE_DISABLE during the meson execution makes ccache not use
the cache and pass things directly to the compiler.
2018-04-11 15:33:00 +02:00
Timm Bäder
d7af16c8e4 gl renderer: Render everyhing according to MV scale
And not the surface's scale factor. This way the magnifier works.
2018-04-11 15:31:22 +02:00
Timm Bäder
cc66b50dcd gl renderer: Remove unused field 2018-04-11 15:31:22 +02:00
Emmanuele Bassi
d448be007e ci: Update container to Fedora 28
We're going to need updated dependencies that we cannot build as
subprojects, like wayland-protocols.
2018-04-11 13:58:47 +01:00
Benjamin Otte
2dd37e9624 widget: Not all toplevels are containers
Guard against GtkInvisible.
2018-04-11 04:04:37 +02:00
Benjamin Otte
b79c138100 widget: Only start/stop idle sizers for toplevels
They are the only widgets that have idle sizers.
2018-04-11 03:16:34 +02:00
Benjamin Otte
2abf082231 widget: Move frame clock handling to vfunc
Instead of connecting to / disconnecting from the frame clock, do it
inside the vfuncs next to changing the priv->realized boolean.

This removes a race between those 2 cases that could cause child
widgets' unrealize handlers to reconnect this widget to the frame clock
because it was still marked as realize when the widget had already
disconnected from the frame clock.

Fixes #168
2018-04-11 03:16:34 +02:00
Benjamin Otte
7ef8cb652b widget: Remove gtk_widget_set_realized()
Everybody chains up now.
2018-04-11 03:16:34 +02:00
Benjamin Otte
5abc4749de gtk: Chain up in toplevels' realize
Don't call set_realized() manually.
2018-04-11 03:16:34 +02:00
Benjamin Otte
5c51a302a4 widget: Make gtk_widget_real_realize() stricter
But in turn, also allow it to work on widgets with their own surface.

This way, we can chain up from everywhere and won't have to export
gtk_widget_set_realized().
2018-04-11 03:16:34 +02:00
Benjamin Otte
0af5316f00 widget: Assert unrealizing
Instead of just setting the flag, assert that it was set.
2018-04-11 03:16:34 +02:00
Benjamin Otte
2862ee7682 widget: Remove unused member 2018-04-11 03:16:34 +02:00
Benjamin Otte
3ee2aa1b22 container: Remove gtk_container_maybe_start_idle_sizer()
Fold it into gtk_container_start_idle_sizer()
2018-04-11 03:16:34 +02:00
Benjamin Otte
21f15094fb container: Remove gtk_container_queue_resize_handler()
It's the same as gtk_container_maybe_start_idle_sizer()
2018-04-11 03:16:34 +02:00
Benjamin Otte
3df94fe099 container: Use maybe_start_idle_sizer()
That way, we don't accidentally start an idle sizer for unrealized
widgets.
2018-04-11 03:16:34 +02:00
Benjamin Otte
e0415fccd7 window: Don't queue resize handler
It's not needed, because the queue_allocate() call right above it does
this work.
2018-04-11 03:16:34 +02:00
Benjamin Otte
b591d7bc20 widget: Don't queue resize handler twice
We already queue it when we set_alloc_needed(), so there's no need to do
it again.
2018-04-11 03:16:34 +02:00
Benjamin Otte
d6477d0894 container: Don't store the resize clock
Use gtk_widget_get_frame_clock() instead
2018-04-11 03:16:34 +02:00
Benjamin Otte
1738b80efd Merge branch 'gitlab-ci-mingw' into 'master'
gitlab-ci: mingw build

See merge request GNOME/gtk!105
2018-04-10 18:59:49 +00:00
Christoph Reiter
f26b2469af gitlab-ci: Add a 32bit mingw build 2018-04-10 19:24:15 +02:00
Emmanuele Bassi
14c8a603e3 Terminate strncpy() buffers correctly
When using strncpy() with a buffer we need to account for the
terminating NUL character. GCC 8 started warning when using PPD_MAX_NAME
as the buffer length for strncpy() because the buffer we're copying into
has the same length — which means that the terminating NUL may be
skipped if the source string has a length of PPD_MAX_NAME.

The appropriate way to handle the case where we're copying a source with
a length bigger than of PPD_MAX_NAME is, as reported in the strncpy()
documentation, to copy `PPD_MAX_NAME - 1` bytes, and explicitly NUL
terminate the destination buffer. This has the additional benefit of
avoiding the compiler warning.
2018-04-10 14:54:45 +01:00
Benjamin Otte
adc0159bdb wayland: Factor out frame timings request code
Also call the code everywhere we draw and not just with Cairo.
2018-04-10 15:13:38 +02:00
Benjamin Otte
e44bbeb558 filechooserbutton: Fix reserved pointers
So gcc stops complaining about unnecessary parenthesis.
2018-04-10 15:13:38 +02:00
Benjamin Otte
12063fe53e ffmpeg: Fix compile warnings for newest version 2018-04-10 15:13:38 +02:00
Timm Bäder
f24d0725ca vulkancontext: Add new error enum 2018-04-10 09:53:48 +02:00
Timm Bäder
3db4f805ee widgetfocus: Use gtk_widget_compute_bounds
Instead of gtk_widget_get_allocation.
2018-04-10 09:44:14 +02:00
Timm Bäder
3ce6355bf4 widget: Remove _get_own_allocation
Replace all usages of it with _compute_bounds
2018-04-10 09:43:47 +02:00
Timm Bäder
3a5b2f54ea widget: Remove gtk_widget_get_own_allocation
Use compute_bounds everywhere.
2018-04-10 09:43:47 +02:00
Timm Bäder
5d1f93796e widget: Remove get_own_allocation usages 2018-04-10 09:43:47 +02:00
Timm Bäder
b29ee2dc46 notebook: Use compute_bounds 2018-04-10 09:43:47 +02:00
Timm Bäder
d49d391fcd popover: Use gtk_widget_compute_bounds
Instead of the private get_own_allocation
2018-04-10 09:43:47 +02:00
Timm Bäder
3593fd2a29 toolbar: Avoid a get_own_allocation call
We want the content allocation here since we are allocation child
widgets.
2018-04-10 09:43:47 +02:00
Timm Bäder
44390c16b2 widget: Fix typo in compute_bounds docs 2018-04-10 09:43:47 +02:00
Timm Bäder
09f04633ca gdk: Protect against negative GDK_SCALE values
Using those should not happen.
2018-04-10 09:43:47 +02:00
Руслан Ижбулатов
27d9f233d4 GDK W32: use clock after_paint signal for timing updates
* Previous commit had misleading info. The code was
added to begin_paint() instead of end_paint(). Though
that did not affect its performance in any visible way.
* Company advised to move the code to an "after_paint" signal
handler, so that it works on all renderers, not just Cairo.
This change caused high fluctuation in FPS values in fishbowl
when it is put in a situation where it cannot achieve 60fps
(such as using Cairo renderer at ultra-high resolution).
This seems to be deliberate and not a bug.
2018-04-09 20:21:16 +00:00
Emmanuele Bassi
410b20f904 docs: Link to GResource
Since we're referring to GLib's functionality, might as well save some
time to the reader, and link to the GResource API reference page.
2018-04-09 20:55:51 +01:00
Daniel Boles
fae064d5f9 docs/reference/gtk/getting_started: cgit => GitLab
master version of b685eb1779
2018-04-09 20:55:14 +01:00
Руслан Ижбулатов
c7ef697029 GDK W32: set update frequency and timestamp
There is no easily apparent way of being notified when frame updates
happene exactly, so we just query frame info at the end of each paint.
If we query too often (faster than DWM refresh rate), we just get
the same values twice in a row, but that is, hopefully, highly unlikely.
2018-04-09 19:07:10 +00:00
Daniel Boles
b7291ce533 AccelGroup: Remove @See_also of deleted function
gtk_item_factory_new() is not a thing that exists.

Also, maybe the lack of space after the colon was what stopped the link
from rendering.
2018-04-09 19:45:10 +01:00
Benjamin Otte
0afdd84a2a css: Clipping changes don't need a queue_allocate() anymore
Now that queue_draw() isn't restricted to clip anymore, we don't need to
care about clip in the CSS engine either.

We do keep GTK_CSS_AFFECTS_CLIP around though because GtkWindow does
care for the window's size.
2018-04-09 20:20:55 +02:00
Benjamin Otte
78a9b5d1ed entry: Stop being activatable
Activating entries does not do anything.

Activate the default widget instead.
2018-04-09 20:20:55 +02:00
Daniel Boles
d77ede508c Merge branch 'master' into 'master'
gdk_x11_display_get_monitor: fix monitor number test logic

See merge request GNOME/gtk!107
2018-04-09 17:25:08 +00:00
Sébastien Villemot
bb8debe925 gdk_x11_display_get_monitor: fix monitor number test logic
When asked for a nonexistent (positive) monitor number,
gdk_x11_display_get_monitor would (at best) return an uninitialized pointer,
instead of returning NULL.
2018-04-09 18:07:14 +02:00
Benjamin Otte
bb8f6f87ae glcontext: Store the buffer age regions in the GL context
That way, we can store the right region there: The actual painted area
instead of the exposed area (which is way too small).

Also, the GL context is the only user of this data, so storing it there
seems way smarter.
2018-04-09 01:00:31 +02:00
Benjamin Otte
c8e38c6065 vulkan: Use new resize vfunc to recreate swapchain
... instead of checking sizes for every frame.
2018-04-09 01:00:31 +02:00
Benjamin Otte
a115f59950 drawcontext: Add a surface_resized() vfunc
Call this vfunc whenever the surface's size has changed.
2018-04-09 01:00:31 +02:00
Benjamin Otte
7ed0c85c61 surface: Track all draw contexts created for the surface 2018-04-09 01:00:31 +02:00
Benjamin Otte
e8fef1147f widget: Don't do a 0-size check before snapshotting
Even widgets with an empty allocation may still want to draw stuff.
Examples include shadows or child widgets with negative margins.

Fixes GtkEntry's progressbar not showing up anymore.
2018-04-09 01:00:31 +02:00
Daniel Boles
8d8db89669 testmodelbutton: Test :centered, :icon, :inverted
Test more stuff.
2018-04-08 18:48:16 +01:00
Daniel Boles
15b569e64d testmodelbutton: Fix wrongly overridding MB child
I was setting a GtkButton:label, which resulted in the ModelButton's own
custom children getting lost. That doesn't make for a useful test...
2018-04-08 18:48:16 +01:00
Daniel Boles
53a66c0f41 ModelButton: Use WARN_INVALID_PROPERTY, not assert
Do the same thing we do everywhere else for invalid properties.
2018-04-08 18:48:16 +01:00
Daniel Boles
7fd0d3ec51 ModelButton: Fix type Wether => Whether 2018-04-08 18:48:16 +01:00
Daniel Boles
08126ffdf2 testmodelbutton: Add explanatory comments to CSS
and load at an earlier, more sensible place, before creating any widgets
2018-04-08 18:48:16 +01:00
Daniel Boles
57c58f880b ModelButton: Protect against nonsensical gbooleans
the same way we do normally.
2018-04-08 13:17:18 +01:00
Daniel Boles
5bbb185e14 tests/testmodelbutton: Add this
and test whether :action-name, :role, and CSS nodes work as expected

https://gitlab.gnome.org/GNOME/gtk/issues/163
2018-04-08 13:17:18 +01:00
Timm Bäder
6cd53fc491 Merge branch 'wip/sadiq/fixes' into 'master'
listbox: Fix signal name is documentation

See merge request GNOME/gtk!106
2018-04-08 07:30:24 +00:00
Mohammed Sadiq
5ad31616e8 listbox: Fix signal name in documentation 2018-04-08 11:02:23 +05:30
Rico Tzschichholz
ff738269b6 Fix some g-i annotation warnings 2018-04-06 16:26:17 +02:00
Timm Bäder
58aa93be41 menu: Avoid an invalid read 2018-04-06 08:24:19 +02:00
Timm Bäder
d4e4904604 lockbutton: Remove priv pointer 2018-04-06 08:24:19 +02:00
Timm Bäder
b7f98314a5 widgetbowl: Add switch demo 2018-04-06 08:24:19 +02:00
Benjamin Otte
fb33110fd1 gtk-demo: Redo viewing of resources
1. Don't rely on GtkImage as a detector of file type anymore.
   Instead, hardcode all extensions that are in use.
2. Add a display method for videos.
2018-04-06 00:44:18 +02:00
Benjamin Otte
3eddbdc191 video: Add autoplay and loop boolean properties 2018-04-06 00:44:18 +02:00
Piotr Drąg
faaf828c74 Update POTFILES.in 2018-04-05 22:54:03 +02:00
Carlos Garnacho
acb950ffb5 gtkmenushell: Port to using GtkEventControllerKey 2018-04-05 19:26:55 +02:00
Carlos Garnacho
9a80b9e382 gtkcellrendereraccel: Port to using GtkEventControllerKey 2018-04-05 19:26:55 +02:00
Carlos Garnacho
362a6ca469 gtkentry: Use key controller to track focus changes 2018-04-05 19:26:55 +02:00
Carlos Garnacho
73fe140b10 gtkcalendar: Use key controller to track focus changes 2018-04-05 19:26:55 +02:00
Carlos Garnacho
b0cd5cd7c8 gtktextview: Use key controller for focus changes 2018-04-05 19:26:55 +02:00
Carlos Garnacho
3361fe1e62 gtkeventcontrollerkey: Add ::focus-in/out signals
And handle GDK_FOCUS_CHANGE events in order to emit those.
2018-04-05 19:26:55 +02:00
Carlos Garnacho
5a34d0f816 gtkeventcontrollerkey: Add get_group() call
Callers can use this function on a key-pressed/released signal
to find out the key event group, useful in a few places.
2018-04-05 19:26:55 +02:00
Carlos Garnacho
d724506abe gtkmenu: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:55 +02:00
Carlos Garnacho
d5e826a660 gtkiconview: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:55 +02:00
Carlos Garnacho
f291541769 gtkcellrendererspin: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:55 +02:00
Carlos Garnacho
1fa6239509 appchoooserdialog: use search bar key capture API 2018-04-05 19:26:54 +02:00
Carlos Garnacho
0b3b81a8bf inspector: Use search bar API to capture key events from the toplevel 2018-04-05 19:26:54 +02:00
Carlos Garnacho
20c1e24b60 gtksearchbar/entry: Add [gs]et_key_capture_widget() API calls
This lets these widgets actively pull events from a widget, instead
of passively being fed events.
2018-04-05 19:26:54 +02:00
Carlos Garnacho
ad5f0a63a3 gtkwindow: Perform key activation in gtk_main_do_event()
In a similar spirit to the previous commit, make window shortcut
activation happen by default on toplevels, without relying on
legacy controllers.
2018-04-05 19:26:54 +02:00
Carlos Garnacho
6892b5c5ba gtkwidget: Activate key bindings through run_controllers()
Deferring a bit further making those a standalone controller, make
binding activation happen on run_controllers(), so it happens by
default on widgets (unless the key event was consumed earlier)
without the need of a legacy event controller.
2018-04-05 19:26:54 +02:00
Carlos Garnacho
d74ecfb02e gtkwidget: Break early if non-gesture controllers handle the event
Non gesture controllers have no means to collaborate with other
controllers, thus should be considered standalone entities. It makes
no sense to propagate any further if scroll/key controllers handled
the event.
2018-04-05 19:26:54 +02:00
Carlos Garnacho
695549d5a7 eventcontrollerkey: Add function to forward stuff elsewhere 2018-04-05 19:26:54 +02:00
Carlos Garnacho
b55696e551 gtkmain: Don't use special paths for key event propagation
Set the event_widget to the window focus, and let event capture/bubble
handling do the rest.
2018-04-05 19:26:54 +02:00
Carlos Garnacho
385fa18c27 gtkrange: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:54 +02:00
Carlos Garnacho
cfdf4f650f gtkcellrendereraccel: simplify grabbing code 2018-04-05 19:26:54 +02:00
Matthias Clasen
df386f29ab combo box: Stop using ::key-press-event
Switch to using ::event.
2018-04-05 19:26:54 +02:00
Matthias Clasen
ec84fb90bf app chooser: Stop using ::key-press-event
For now, just switch to using ::event.
2018-04-05 19:26:54 +02:00
Carlos Garnacho
80c3ebe3a0 gtkentrycompletion: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:54 +02:00
Carlos Garnacho
585aafc2df gtkplacessidebar: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:54 +02:00
Carlos Garnacho
87b4dc4c67 gtktextview: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:54 +02:00
Carlos Garnacho
5118f9817a gtkflowbox: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:54 +02:00
Carlos Garnacho
568054a034 gtkentry: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:53 +02:00
Carlos Garnacho
0d884d22fb gtkcolorswatch: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:53 +02:00
Carlos Garnacho
6f4107c8de gtkcolorplane: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:53 +02:00
Carlos Garnacho
5081472d97 gtkcalendar: Stop using ::key-press-event
Use GtkEventControllerKey for the task
2018-04-05 19:26:53 +02:00
Matthias Clasen
b033e30318 search bar: Stop using ::key-press-event
Use a key event controller instead.
2018-04-05 19:26:53 +02:00
Matthias Clasen
f231ac6541 Shortcuts window: stop using ::key-press-event
Use a key event controller instead.
2018-04-05 19:26:53 +02:00
Matthias Clasen
c971ca7c34 color editor: Stop using ::key-press-event
Use key event controllers instead.
2018-04-05 19:26:53 +02:00
Matthias Clasen
4990842981 about dialog: Stop using ::key-press-event
Use a key event controller instead.
2018-04-05 19:26:53 +02:00
Matthias Clasen
21d1ab42d1 icon-browser: Stop using ::key-press-event 2018-04-05 19:26:53 +02:00
Matthias Clasen
6d1b21a028 places view: Stop using ::key-press-event 2018-04-05 19:26:53 +02:00
Matthias Clasen
c2bd7fcf35 inspector: Stop using ::key-press-event 2018-04-05 19:26:53 +02:00
Matthias Clasen
75024fea60 testgtk: Drop snapshot
This needs to be redone with modern snapshotting infrastructure.
Lets drop it for now, it is somewhat duplicative with inspector
features.
2018-04-05 19:26:53 +02:00
Matthias Clasen
98f31e61d7 testgtk: Drop the event watcher
This is not a very useful test, and it is hard to keep working
in an event controller world.
2018-04-05 19:26:53 +02:00
Matthias Clasen
2cc85df62b docs: Modernize an example
The signals that are showcased here are going away.
2018-04-05 19:26:53 +02:00
Matthias Clasen
918d552472 gtk-demo: Stop using ::key-press-event in font explorer
Use a key controller instead. Note that this currently
breaks the handling of Enter, since we activate key bindings
twice, causing us to switch to the label and back.
2018-04-05 19:26:53 +02:00
Matthias Clasen
8d396991db testsuite: Don't use ::key-press-event
We don't need it here.
2018-04-05 19:26:53 +02:00
Matthias Clasen
19bd57ed1f file chooser: Use a key event controller
We want to get rid of ::key-press-event.
2018-04-05 19:26:53 +02:00
Carlos Garnacho
b1eaeebe7d demos: Add "Paint" demo 2018-04-05 19:26:53 +02:00
Carlos Garnacho
f0c8e9de4f gtk: Add GtkGestureStylus
This is a GtkGesture done to deal with stylus events from drawing tablets.
Those have a special number of characteristics that extend a regular
pointer, so it makes sense to wrap that.
2018-04-05 19:26:53 +02:00
Carlos Garnacho
58eaf5ca16 gtkwindow: Unset focus grab_widget if it ends up unmapped
This may result on the later emission of crossing events, with one of the
sides being already unmapped/unrealized. The widget being unmapped will
result on repick and emission of a set of crossing events anyway.
2018-04-05 19:26:04 +02:00
Carlos Garnacho
1ce79b29e3 gtk: Add GtkEventControllerKey
This event controller is meant to replace usage from key-press/release-event
handlers all through. Optionally it can be set a GtkIMContext, so interaction
is carried by the controller.
2018-04-05 19:26:04 +02:00
Benjamin Otte
47ea3a9452 snapshot: Don't cause invalid reads
1. Pass clip rectangles to gtk_snapshot_push_state() that point into
   the state array.
2. g_array_set_size(len+1) the state array
3. Make that function realloc() the state array.
4. The clip rectangle now points into invalid memory
5. Use the clip array

This patch fixes things by moving step 5 to before step 2.
2018-04-05 18:41:34 +02:00
Benjamin Otte
1792f3b21e rendernode: Add missing return
Don't to extra work when not needed.
2018-04-05 18:40:54 +02:00
Piotr Drąg
df74f36328 Update POTFILES.in 2018-04-05 17:37:22 +02:00
Benjamin Otte
ebea84474d widget: Fix variable names
Stop docs build from complaining
2018-04-05 17:09:52 +02:00
Benjamin Otte
374467c11c a11y: Fix headers
We were getting a gcc warning before.
2018-04-05 17:05:21 +02:00
Benjamin Otte
8cb0df7554 Merge branch 'window-activate' into 'master'
a11y: restore window:activate/deactivate emission

Closes #127

See merge request GNOME/gtk!77
2018-04-05 14:36:13 +00:00
Samuel Thibault
62f31015fc a11y: restore window:activate/deactivate emission
1b9aa1b708 ('a11y: drop the focus tracker') removed a bit too much.  We
still have to emit window:activate/deactivate events.  They are easy to
emit anyway.

Fixes #127
2018-04-05 15:19:04 +02:00
Benjamin Otte
a5cb6aa365 inspector: Add an fps overlay 2018-04-05 14:58:43 +02:00
Benjamin Otte
6de4c63a67 inspector: Bring back debug updates
This time, they are implemented as an overlay, so they require a running
inspector and can't be enabled via env variable anymore.
2018-04-05 14:58:42 +02:00
Benjamin Otte
2699c15a99 widget: Remove draw signal
The only remaining user is the text handle, but the text handle doesn't
draw anything anyway currently, so whoever fixes it can make it use
snapshots.
2018-04-05 14:57:10 +02:00
Benjamin Otte
de990614d7 inspector: Introduce so-called "overlays"
Overlays are drawings that get rendered on top of the inspected window.

The only overlay in existence so far is the highlight overlay, which is
used to highlight widgets and replaces the "draw" signal handler used
previously.
2018-04-05 14:57:10 +02:00
Benjamin Otte
cbf26fbd02 widget: Add gtk_widget_compute_bounds()
The first in a set of functions intended to query widget coordinates
from another widget's coordinate system.
2018-04-05 14:57:10 +02:00
Benjamin Otte
6c55096933 inspector: Change semantics of inspector render node notify
Instead of just notifying the inspector of what is going to be rendered,
allow the inspector to modify it.

This way, the inspector can overlay information it deems relevant over
the render node while still having access to what the actual widget
(without the inspector) would paint.
2018-04-05 14:57:10 +02:00
Benjamin Otte
0ea8395c03 image: Actually report a request mode
This makes height-for-width actually work for GtkImage.

I'm kinda ashamed I didn't notice it not working before.
2018-04-05 14:57:10 +02:00
Benjamin Otte
7a4e76ae15 treeview: Remove invalidation tracking code 2018-04-05 14:57:10 +02:00
Benjamin Otte
1aacb14236 testgtk: Remove draw signal usage 2018-04-05 14:57:10 +02:00
Benjamin Otte
56e018b91c widget: Remove GtkWidget.draw vfunc
Widgets are exclusively snapshot now.

The draw signal still exists.
2018-04-05 14:57:10 +02:00
Benjamin Otte
c06a790694 widget: Remove gtk_widget_draw()
If you want to draw a widget to cairo today, you create a widget
paintable, snapshot it to a render node and then draw the render node to
cairo.

And yes, this is that complicated on purpose. Don't draw widgets to
Cairo.
2018-04-05 14:56:39 +02:00
Benjamin Otte
4a513b7800 reftests: Port from gtk_widget_draw() to snapshots 2018-04-05 14:56:39 +02:00
Benjamin Otte
c85547667f testgtk: Take an actual snapshot of a widget
Don't just draw the widget, take the paintable of it instead!
2018-04-05 14:56:39 +02:00
Benjamin Otte
a595a4c2ce testlist3: Set the actual row as drag icon
(Well, don't do anything actually, because dnd is broken, but
in theory...)
2018-04-05 14:56:39 +02:00
Benjamin Otte
f974b48503 widgetpaintable: Implement get_current_image()
Now that snapshot and empty paintables exist, this is rather trivial.
2018-04-05 14:56:39 +02:00
Benjamin Otte
c74854fe49 paintable: Introduce gdk_paintable_new_empty()
Also, use it where appropriate.
2018-04-05 14:56:39 +02:00
Benjamin Otte
ffc7b2bb0a snapshot: Allow passing the bounds of the created paintable
This allows being more specific about the size.
It's useful in particular when the resulting render nodes might be
too small for the size, not only when they are too large. For the
latter case, using a clip node would be enough.

It also requires adding a clip node when rendering the resulting
paintable, but that should be optimized out by GtkSnapshot when not
necessary.
2018-04-05 14:56:39 +02:00
Benjamin Otte
12fedca726 widgetpaintable: Protect against too many signals
This is actually not just a mechnaism to protect against too many
signals, but it's also a method to getting those signals at the wrong
time.

For every size/content change, a widget needs to invalidate twice:
Once when it queues a resize/redraw (going valid => invalid) and once
when the new size/content is actually assigned (going invalid => valid).

However, one of those invalidations might be inconvenient for the
listener. GtkImage for example does not like receiving
invalidate-contents signals when new contents are assigned, but is fine
with them when the old ones go invalid. And it will not try to draw the
paintable in between anyway.

So by bypassing the 2nd emission if nothing was changed, we can make
GtkImage happy.
2018-04-05 14:56:39 +02:00
Benjamin Otte
139882bc76 demos: Add an image demo for widget paintables 2018-04-05 14:56:39 +02:00
Benjamin Otte
169203951b widget: Remove clip from size-allocate vfunc
As the clip is no longer needed, get rid of it.
2018-04-05 14:56:38 +02:00
Benjamin Otte
fc6de135fe widget: Don't keep track of clip anymore.
It's not used anywhere, so why would we need it?
2018-04-05 14:56:38 +02:00
Benjamin Otte
f1f27ce0c2 broadway: Improve error message
This error message is printed into the journal if a GTK app can't
connect to eithre Wayland or X11. Make it at least mention who is not
capable of connecting to a server.

Unrelated, we might want to improve our error reporting when a GTK app
can't start, so that debugging issues with system startup / login get
easier to resolve.
2018-04-05 14:56:38 +02:00
Benjamin Otte
a36b0f8bae widget: Don't clip widgets anymore when snapshotting
This is the first step in removing clips.

It's seperate to allow bisecting to this commit when analyzing
performance problems.
2018-04-05 14:56:38 +02:00
Benjamin Otte
4bf90633ea widget: Cache clip from creating render node
When the clip changes that is passed to a snapshot function, we need to
create eventual cached render nodes because they might not have drawn
their whole area before.

Fixes issues with redrawing when scrolling.
2018-04-05 14:56:38 +02:00
Benjamin Otte
278ab3c4de snapshot: Track clip as a rect only 2018-04-05 14:56:38 +02:00
Benjamin Otte
200bbe8fda diff: Allow aborting a diff
When the max cost for finding a path gets to high, the diff can now be
aborted.

Because render nodes have a fallback method (by just marking the whole
bounds of the nodes as different), we use this to improve performance
of diffs.

This brings fishbowl (which is basically a container node with N images
that change every frame) back to close to previous performance.
2018-04-05 14:56:38 +02:00
Benjamin Otte
144637bff1 build: Switch order of subdirectories
After fixing this once already in 5970dac167 the order was messed up
again in d50708b024.
2018-04-05 14:56:38 +02:00
Benjamin Otte
4b72ea33ac diff: Introduce GskDiffSettings
We can put lots of settings there to allow tuning the diff algorithm
used.
2018-04-05 14:56:38 +02:00
Benjamin Otte
0f184d3270 vulkan: Always render clip extents
Now that we have the full render nodes available, there is not much
benefit in fine-grained control over multiple rectangles.
In particular, it's causing pain with complex regions.

There might be a benefit in clipping to the region's rectangles in cases
like widget-factory where the whole diff is made up of the 2 rectangles
of spinner and the pulsing progress bar, but it needs a good heuristic
for where this is useful.
2018-04-05 14:56:38 +02:00
Benjamin Otte
e3a717363b snapshot: Remove clip argument from gtk_snapshot_new()
It's not used anymore. And anybody who wants to have a clip on a
newly created snapshot can achieve that using gtk_snapshot_push_clip().
2018-04-05 14:56:38 +02:00
Benjamin Otte
73650c6da2 gtk: Remove gtk_widget_queue_draw_region()
... and gtk_widget_queue_draw_area().

They don't doi anything anymore.
2018-04-05 14:56:38 +02:00
Benjamin Otte
a468714849 widget: Stop tracking invalidations
Instead of calling gdk_surface_invalidate_region(), just
gdk_surface_queue_expose() and rely on the renderer computing the diff
from the previous rendering.
2018-04-05 14:56:38 +02:00
Benjamin Otte
7e078cd940 gtk: Remove debug updates
With the soon-to-arrive automatic updates (aka computing invalid region
from render nodes), this will no longer be necessary.
2018-04-05 14:56:38 +02:00
Benjamin Otte
925cbeaadf renderer: Track the previous node
... and diff the previous node with the current one to determine the
clip region.

This doubles the work necessary to track clip regions, but the following
commits will clean that up.
2018-04-05 14:56:38 +02:00
Benjamin Otte
7c313c7b25 gsk: move begin/end_frame vfuncs into the renderers 2018-04-05 14:56:38 +02:00
Benjamin Otte
d0873c7dec gsk: Fold gsk_renderer_begin_draw_frame() into renderer
It doesn't need to be exported anymore.

As a side effect, the inspector no longer has any information about the
render region, so remove the code that was taking care of that.
2018-04-05 14:56:38 +02:00
Benjamin Otte
b19d7630ae widget: Reorder gtk_widget_render()
Now that we don't clip the created render nodes anymore, we don't have
to compute the clip region beforehand.

So snapshot the render nodes before initializing the renderer.
2018-04-05 14:56:38 +02:00
Benjamin Otte
a6079b9b7b gsk: Implement gsk_render_node_diff()
This includes a copy of the diff(1) algorithm used by git diff by Davide
Libenzi.

It's used for the common case ofcontainer nodes having only very few
changes for the few nodes of child widgets that changed (like a button
lighting up when hilighted or a spinning spinner).
2018-04-05 14:56:38 +02:00
Benjamin Otte
c0db4091cf magnifier: Redo with GtkWidgetPaintable 2018-04-05 14:56:38 +02:00
Benjamin Otte
2d10c2568c gtk: Add GtkWidgetPaintable
A GtkWidgetPaintable is a paintable that observes a given GtkWidget and
renders that widget into a paintable.
2018-04-05 14:56:38 +02:00
Benjamin Otte
29111a16d4 widget: Cache the render node
This requires a bunch of refactorings:

1. Don't pass the current clip region to gtk_widget_snapshot()
   so we don't create full widget contents
3. Have a widget->priv->draw_needed that we invalidate on every
   queue_draw() call and set on every snapshot()
2. In queue_draw(), walk the widget chain to invalidate the
   render nodes of all parents
2018-04-05 14:56:38 +02:00
Benjamin Otte
271820b677 rendernode: Add gsk_render_node_diff()
... and gsk_render_node_can_diff(). Those are vfuncs to compute a region
containing all the pixels that differ between the two nodes.

This is just the plumbing that chains into node classes. No node
implements it yet.
2018-04-05 14:56:38 +02:00
Matthias Clasen
dcdd95bbc8 font button: fix compiler warnings
A PangoLanguage is not a string.
2018-04-05 06:23:14 -04:00
Benjamin Otte
7c60f939ee Merge branch 'text-changed-delete-4' into 'master'
gtkentryaccessible: Fix text-changed::delete length

See merge request GNOME/gtk!100
2018-04-04 18:19:08 +00:00
Benjamin Otte
572a23b136 Merge branch 'textview-delete-4' into 'master'
gtktextviewaccessible: update cursor position after text suppression

See merge request GNOME/gtk!102
2018-04-04 18:18:49 +00:00
Samuel Thibault
a1f206b802 gtktextviewaccessible: update cursor position after text suppression
delete_range_cb is set to be called before the text suppression done by
the gtktextlayout (otherwise it does not work properly). But at that
point the cursor position is not yet up to date.  We thus need to move
the accessibility cursor notification to after the actual text
suppression, by using another callback.

This fixes cursor position in brltty screen reading.

(cherry picked from commit fa6994d033)
2018-04-04 18:26:55 +02:00
Samuel Thibault
8c8cb2bb12 gtkentryaccessible: Fix text-changed::delete length
The second parameter of the text-changed::delete event is to be the length,
not the end position.  This fixes spurious text removals in brltty
screen reading.

(cherry picked from commit 209f908a03)
2018-04-04 17:59:31 +02:00
Daniel Boles
67360c9d00 GLArea: Remove wrong transfer annotation on new()
Like other widgets, this returns a floating reference, so
(transfer full) is wrong. Just omit the annotation as others do,
thus implying (transfer none).

Close https://gitlab.gnome.org/GNOME/gtk/issues/156
2018-04-04 12:02:21 +01:00
Lionel Landwerlin
faceaec20a imwayland: destroy objects only if it matches our manager object
Should fix one of the crash from #129.
2018-04-03 19:11:09 +02:00
Matthias Clasen
bd9debe048 font chooser: Remove some dead code
This is leftover code from already removed debug spew.
2018-04-02 17:46:41 -04:00
Matthias Clasen
ec66c32def font button: Fix a crash
Since we are now storing the language as a PangoLanguage,
we must not free it anymore.
2018-04-02 17:45:48 -04:00
Matthias Clasen
5a68ac27cf font chooser: Make the language property writable
This is meant as an input to the font chooser.
We don't want the user to select a language, but
rather have fonts presented as they would work for
the current language. Therefore, do away with the
lang/script combo on the tweak page.
2018-04-02 13:37:53 -04:00
Chun-wei Fan
464943e5a6 gtk, demos: Fix builds without HarfBuzz and PangoFT
Really exclude the portions in the gtkfontchooserwidget.c that are built
when HarfBuzz and PangoFT2 are built, and update the Meson files to
exclude such sources as well from the main GTK SO/DLL and from the
gtk4-demo program.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-04-02 19:15:18 +08:00
Chun-wei Fan
bca4a78f07 testsuite/gsk/test-render-nodes.c: Avoid VLA usage
Just #define N as 5, instead of using a const int, which is not enough
to justify that as non-VLA usage.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-04-02 19:14:55 +08:00
Chun-wei Fan
a4c0395343 [gtk|demos/gtk-demo]/language-names.c: Fix build on non-GCC/CLang
Remove g_auto*() usage from these sources and use the traditional
g_free(), as g_auto*() are GCCisms (or CLangisms).

Also, don't include unistd.h unconditionally and stop including
langinfo.h and dirent.h, since they seem to be unused.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-04-02 19:13:27 +08:00
Chun-wei Fan
19ce520c2d build: Fix linking demos on Visual Studio
The demos are now built as GUI programs, which will require the presence
of WinMain() on Visual Studio builds, unless we specify the entry point.

Pass the /entry:mainCRTStartup linker flag on Visual Studio builds for
the demo programs so that they can link properly.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-04-02 19:11:50 +08:00
Ivan Malison
f876532514 Add binding for <alt>BackSpace to emacs keys 2018-04-01 20:16:05 -07:00
Matthias Clasen
d0e46d257c font chooser: Add examples for font features
For some font features, we can figure out affected
glyphs, and show before/after. For some others, we
hardcode typical sequences.

Still to do: figure out how to find ligatures and
show them.
2018-04-01 19:36:54 -04:00
Matthias Clasen
63a7d99d25 widget-factory: Enable all details in the font chooser
We want to see this here.
2018-04-01 19:36:54 -04:00
Piotr Drąg
1764673cff Update POTFILES.in 2018-04-01 15:00:07 +02:00
Руслан Ижбулатов
9e76a6055a W32: Link GTK to pangowin32
Needed for pango_win32_font_logfont() from gtkimcontextime.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-04-01 10:35:02 +00:00
LRN
eec0bd2fa9 Merge branch 'lrn/issue-147' into 'master'
Fix cursor handling in GTK4 on W32

Closes #147

See merge request GNOME/gtk!92
2018-04-01 10:33:43 +00:00
Rico Tzschichholz
f2937f8c45 Fix some g-i annotation warnings 2018-04-01 09:15:08 +02:00
Matthias Clasen
6b3091856b Enable variations and features for font explorer 2018-03-31 21:31:11 -04:00
Matthias Clasen
ad814509a4 font chooser: Align level value names
In the backport, I used the plural for variations, and that
is a better name, so use it here too.
2018-03-31 21:02:51 -04:00
Matthias Clasen
17693a2820 font chooser: Align property defaults
Set the default font chooser level to the same value we use
in the backports, to preserve font chooser behavior.
2018-03-31 21:02:51 -04:00
Matthias Clasen
8fb30a6a7b Font chooser: Hide tweak button sometimes
When there is no chance of tweaking anything, don't
show a tweak button.
2018-03-31 21:02:51 -04:00
Matthias Clasen
d15a29c876 Defeat compiler optimization
We always want to call both update functions here, and
the compiler unhelpfully optimizes out the second call
if the first one returns TRUE.
2018-03-31 21:02:51 -04:00
Timm Bäder
0f28f0ee39 GskRenderer: Remove outdated documentation comment
All render node trees are immutable
2018-03-31 14:45:03 +02:00
Timm Bäder
d9136fb944 snapshot: Plug memory leak when collecting rounded clip nodes 2018-03-31 14:45:03 +02:00
Timm Bäder
08296b8aee gl renderer: Don't highlight cairo nodes as fallback 2018-03-31 14:45:01 +02:00
Daniel Boles
db22398361 ProgressBar: Drop leftover "superimposed" mention
This was missed from the commit that dropped other mentions to the
previous ability to superimpose text.

https://bugzilla.gnome.org/show_bug.cgi?id=748784
2018-03-31 12:28:12 +01:00
Nelson Benítez León
d9b8acfced appchooserwidget: search text using g_str_match_string()
so we match on diacritics (eg. accented letters) and also
search on text tokens. As a plus we also reduce code size.

https://bugzilla.gnome.org/show_bug.cgi?id=745128
2018-03-31 13:48:30 +05:00
Timm Bäder
0fdd061bf5 togglebutton: Remove priv pointer 2018-03-30 23:15:04 +02:00
Timm Bäder
b2f04be04c popover: Remove priv pointer 2018-03-30 23:15:04 +02:00
Timm Bäder
809fdaa3e4 shaderbuilder: Insert newlines directly after defines
Instead of doing that in the loop in the last interation, we can just do
it after the loop.
2018-03-30 23:15:04 +02:00
Timm Bäder
f6330846c9 gl renderer: Remover unused mask uniform 2018-03-30 23:15:04 +02:00
Timm Bäder
badada9cf8 shader builder: Remove unused members 2018-03-30 23:15:04 +02:00
Timm Bäder
be3a42b7b1 shader builder: Reuse GString for shader code 2018-03-30 23:15:04 +02:00
Timm Bäder
66d5a4f752 widget: Fix snapshot condition
Of course, we only need to snapshot if both width and height > 0,
otherwise the result is invisible.
2018-03-30 23:15:04 +02:00
Timm Bäder
60acbd1090 entrybuffer: Remove priv pointer 2018-03-30 23:15:04 +02:00
Timm Bäder
7d61aad12c menubar: Don't crash when cycling through menubars 2018-03-30 23:15:04 +02:00
Matthias Clasen
f78598dd9b Merge branch 'im-wayland-reset' into 'master'
wayland: Don't emit signals if nothing changed

See merge request GNOME/gtk!83
2018-03-30 20:14:40 +00:00
Benjamin Otte
2f3cf6227a fishbowl: Make stats tracking work somewhat with broken X servers
Broken X servers being the ones that don't support NET_WM_TIMINGS (ie
every WM but mutter and XWayland).
2018-03-30 18:58:33 +02:00
Benjamin Otte
89f6a4ede4 demos: Improve frame rate tracking for fishbowl demo
We now properly use GdkFrameTimings and can therefor check for dropping
even a single frame in the history (of 16 frames or 1/4 of a second).
Once that happens, we immediately stop adding new items to the bowl.

A side effect is that the number of icons is now a *lot* smaller.
2018-03-30 16:51:09 +02:00
Benjamin Otte
c13fff8adb x11: Always request frame updates
This ensures that the frame clock gets updated with correct presentation
times even if nothing was drawn.

This is necessary for benchmarking but would also be relevant for videos
that want to sync to the frame clock but draw frames a lot less.
2018-03-30 16:50:54 +02:00
Benjamin Otte
7201e63120 x11: Make the frame clock work in GL and Vulkan 2018-03-30 16:50:28 +02:00
Руслан Ижбулатов
795572710c GDK W32: Remember surface cursor, implicit surface grab
This commit ensures that each GdkSurface impl remembers the
cursor that GDK sets for it, and that this cursor is set
each time WM_SETCURSOR is called for that sufrace's HWND.
This is needed because W32, unlike X, has no per-window cursors -
the cursor on W32 is a global resource, and we need to keep track
of which cursor should be set when pointer is over which surface
ourselves (WM_SETCURSOR exists exactly for this reason).

This commit also makes GDK remember the surface that has an implicit
grab (since implicit grabs are gone from the upper levels of the toolkit),
and ensures that crossing events are correctly synthesized and the grab
is broken when surface focus changes. This fixes a bug where opening
a new window (by clicking something in some other, pre-existing window)
will make that new window not get any mouse input due to the fact
that the mouse-button-down event from that click caused an implicit
grab on the pre-existing window, and that grab was not released afterward.
2018-03-29 23:59:31 +00:00
Руслан Ижбулатов
a82d67bb7d GDK W32: Use the new cursor class
This makes all the code use the new cursor class instead of
raw HCURSOR handles.
2018-03-29 23:59:23 +00:00
Руслан Ижбулатов
d8da6d38db GDK W32: New cursor class
Instead of now-unused GdkWin32Cursor class (a subclass of GdkCursor),
add a stand-alone GdkWin32HCursor class that is a wrapper around
HCURSOR handle.

On creation it's given a display instance, a HCURSOR handle and a boolean
that indicates whether the HCURSOR handle can or cannot be destroyed
(this depends on how the handle was obtained).
That information is stored in a hash table inside the GdkWin32Display
singleton, each entry of that table has reference count.
When the GdkWin32HCursor object is finalized, it reduces the reference
count on the table entry in the GdkWin32Display. When it's created,
it either adds such an entry or refs an existing one.
This way two pieces of code (or the same piece of code called
multiple times) that independently obtain the same HCURSOR from the OS
will get to different GdkWin32HCursor instances, but GdkWin32Display
will know that both use the same handle.

Once the reference count reaches 0 on the table entry, it is freed
and the handle (if destroyable) is put on the destruction list,
and an idle destruction function is queued.

If the same handle is once again registered for use before the
idle destructior is invoked (this happens, for example, when
an old cursor is destroyed and then replaced with a new one),
the handle gets removed from the destruction list.

The destructor just calls DestroyCursor() on each handle, calling
SetCursor(NULL) before doing that when the handle is in use.
This ensures that SetCursor(NULL) (which will cause cursor to disappear,
which is bad by itself, and which will also cause flickering if the
cursor is set to a non-NULL again shortly afterward)
is almost never called, unless GTK messes up and keeps using a cursor
beyond its lifetime.

This scheme also ensures that non-destructable cursors are not destroyed.

It's also possible to call _gdk_win32_display_hcursor_ref()
and _gdk_win32_display_hcursor_unref() manually instead of creating
GdkWin32HCursor objects, but that is not recommended.
2018-03-29 23:59:14 +00:00
Daniel Boles
70198e21ee themes: Make disabled Expander arrow look disabled
If GtkExpander:sensitive was FALSE, the arrow still got the normal fg
colour, which made it look clickable, in contrast to the adjacent label.
Fix this by adding selectors to catch the applicable :disabled states.

Note: Needing these may indicate an oops in generic styles elsewhere,
but I couldn’t see any, so let’s just get it looking right for now.

Close https://gitlab.gnome.org/GNOME/gtk/issues/146
2018-03-29 21:23:50 +01:00
Daniel Boles
7b0387efbf emojichooser.ui: Add i18n context to all tooltips…
…since, unlike in gtk-3-22, it's not just Objects that already had that
here in the title labels. Thanks to Piotr for spotting this!
2018-03-29 19:38:04 +01:00
Piotr Drąg
8fff606c56 Update POTFILES.in 2018-03-29 20:28:53 +02:00
Daniel Boles
072ce56617 emojichooser.ui: Reuse headings as button tooltips
https://bugzilla.gnome.org/show_bug.cgi?id=792632
2018-03-29 19:18:28 +01:00
Tomasz Miąsko
494f75b4cf Widget: Fix doc of default ::keynav-failed handler
https://bugzilla.gnome.org/show_bug.cgi?id=793089
2018-03-29 19:18:28 +01:00
Руслан Ижбулатов
dbda7d770a GDK W32: the .area member of the expose event is gone
The .area and .count members were removed in commit 5c7ee3a483

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-29 18:02:50 +00:00
Руслан Ижбулатов
8519dbf1b6 GDK W32: Adapt to the window->surface change
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-29 17:44:00 +00:00
Руслан Ижбулатов
d1d94b8630 GDK W32: gdk_content_formats_builder_free{,_to_formats}
The function was renamed in commit 2cbe094b91

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-29 17:43:59 +00:00
Руслан Ижбулатов
a7e8b5ac78 GDK W32: Don't use gdk_threads_add_timeout_full()
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-29 17:43:58 +00:00
Руслан Ижбулатов
b6d3602a35 GDK W32: don't use gdk_drag_find_surface() and gdk_drag_motion()
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-29 17:43:57 +00:00
Руслан Ижбулатов
ef01e6ee52 GDK W32: Adapt to event filter removal
Add a new W32 backend-specific message filtering mechanism.
Works roughly the same way old event filtering did, but without
events (events are GDK/X11 concept that never really made sense
on W32), so there's no functionality for 'altering' events being
emitted. If an event needs to be emitted in response to a message
do it yourself.

Implemented like this, it should give better performance than
if we were to use GLib signals for this, since W32 sends a LOT
of messages (unlike X11, which doesn't send events as often)
all the time, and invoking the signal machinery on *each* message
would probably be bad.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-29 17:43:55 +00:00
Руслан Ижбулатов
38b4c8d1fa GDK W32: adapt to GdkDragProtocol removal
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-29 17:43:54 +00:00
Руслан Ижбулатов
54a4307128 GDK W32: Another massive clipboard and DnD update
Rename GdkWin32Selection to GdkWin32Clipdrop, since GdkSelection
is mostly gone, and the word "selection" does not reflect the
functionality of this object too well.

Clipboard is now handled by a separate thread, most of the code for
it now lives in gdkclipdrop-win32.c, gdkclipboard-win32.c just uses
clipdrop as a backend.

The DnD source part is also put into a thread.
The DnD target part does not spin the main loop, it just
emits a GDK event and returns a default value if it doesn't get a reply
by the time the event is processed.

Both clipboard and DnD use a new GOutputStream subclass to get data
from GTK and put it into a HGLOBAL.

GdkWin32DragContext is split into GdkWin32DragContext and GdkWin32DropContext,
anticipating a similar change that slated to happen to GdkDragContext.

OLE2 DnD protocol is now used by default, set GDK_WIN32_OLE2_DND envvar to 0
to make GDK use the old LOCAL and DROPFILES protocols.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-29 17:43:53 +00:00
Daniel Boles
6ad33a274b HighContrast: Honour .monospace set by GtkTextView
Copy the line that sets a monospace family from Adwaita (same place too)

noticed at https://gitlab.gnome.org/GNOME/gtk/issues/141#note_91610
2018-03-29 18:19:58 +01:00
Emmanuele Bassi
f8e1924355 ci: Manually install Meson from PyPI
The Fedora base image we use for our CI doesn't always keep Meson up to
date with our requirements, so it's better if we just install Meson via
Python's pip.
2018-03-29 11:37:30 +01:00
Emmanuele Bassi
d50708b024 Add an option for building examples
Examples are not like demos; the latter are installed, and provide a
Flatpak manifest for CI pipelines and GNOME Builder. We should not be
using a single configure time option to gate building both.
2018-03-29 11:37:30 +01:00
Chun-wei Fan
934354fb8c gdkglcontext-win32.c: Fix window->surface changes
Rename the GdkSurface variables to surface, and make sure that we are
creating the context GObject correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-29 13:25:12 +08:00
Benjamin Otte
ea0290c50e builder: Allow named objects to be used in paintable/pixbuf properties
Instead of erroring if an object by a name already exists, use that
object.
2018-03-29 05:02:15 +02:00
Benjamin Otte
4fc072925c gsk: Remove gsk_renderer_create_cairo_surface()
It's not used anymore.
2018-03-29 05:02:15 +02:00
Benjamin Otte
69101a11b5 renderer: Get rid of unused member variable 2018-03-29 05:02:15 +02:00
Benjamin Otte
50b8ee3a5f frameclockidle: Rename header so it's private now 2018-03-29 05:02:15 +02:00
Benjamin Otte
ccde20ea08 frameclockidle: Remove nonexisting functions from header 2018-03-29 05:02:15 +02:00
Benjamin Otte
7ee4bfd9d6 vulkan: Reserve 4 images in the swapchain by default
With the previous approach we would spend most of the time waiting for
the swapchain to be filled again because it seems the compositor takes
care of 2 images at once from time to time.

This is not visible in profiles because waiting for a frame is a
read/poll/whatever operation that does not take CPU. It's only
noticeable because the app becomes less responsive.
2018-03-29 05:02:15 +02:00
Timm Bäder
e6d104bfa0 Rename gtkkineticscrolling.h to gtkkineticscrollingprivate.h
To match the naming scheme we use for all private header files.
2018-03-28 16:47:54 +02:00
Timm Bäder
2f9790b02e expander: Update css docs 2018-03-28 16:42:53 +02:00
Timm Bäder
c2c1262766 testgtk: don't set a focus adjustment on a box
That will make the focus adjustment code in gtkcontainer.c scroll to the
wrong coordinates.
2018-03-28 16:32:47 +02:00
Timm Bäder
0c9c6498c3 Revert "container: Fix scroll adjustment coordinates"
This reverts commit 7351848c75.
2018-03-28 16:32:46 +02:00
Timm Bäder
d0adffe6eb expander: Remove priv pointer 2018-03-28 16:32:46 +02:00
Chun-wei Fan
d64635a760 build: Defer defining HAVE_PANGOFT and HAVE_HARFBUZZ
We forgot to account for the case where we lookup for HarfBuzz manually
under Visual Studio builds, so only set HAVE_HARFBUZZ (and thus
HAVE_PANGOFT, since PangoFT2 depends on HarfBuzz) after we did the
fallback check for HarfBuzz.

Also, check for hb.h instead of harfbuzz/hb.h to be inline with the
pkg-config case, as the sources also include the HarfBuzz header by
using #include <hb.h>, not #include <harfbuzz/hb.h>

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 22:14:32 +08:00
Chun-wei Fan
dfb06e1c7a gsk/gl: Include cairo.h consistently
Follow the other sources that include cairo.h, by just doing #include
<cairo.h>, not <cairo/cairo.h>.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 22:05:17 +08:00
Руслан Ижбулатов
139a627a85 gtkimcontextime: fix to compile again
This makes the code compile again, though obviously there have been
some substantial changes in how IM contexts work, so it's possible
that IME IM context doesn't work now.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 09:28:32 +00:00
Руслан Ижбулатов
7ccf6a7df7 GDK W32: remove unused client_message
This seems to be a leftover from API that was removed in
commit c332ac207a back in 2011.
The code, as it is now, does not even make sense.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 08:33:10 +00:00
Руслан Ижбулатов
5c9ae36c50 GDK W32: drop cursor-related GdkWin32Display functions
These functions went away in commit 77bab4e027

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 08:33:09 +00:00
Руслан Ижбулатов
102f802b04 GDK W32: remove the use of GDK_SURFACE_STATE
GDK_WINDOW_STATE (or, after rename, GDK_SURFACE_STATE) got
removed from GDK in commit 11a946df39

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 08:33:08 +00:00
Руслан Ижбулатов
35305bfc85 GDK W32: move GdkWin32MonitorDpiType to a different header
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 08:33:07 +00:00
Руслан Ижбулатов
48613eca27 Check for freetype2 version when PangoFT is used
Check for freetype2 version, because pangoft works with any version
(pangoft availability does not indicate that ft2 is new enough), unlike
GTK.

On Windows, since pangoft is optional, we check for the presence of
freetype2 .pc file first after finding that we have pangoft, and then
check for FT_Get_Var_Design_Coordinates() manually by looking for the
freetype headers and .lib first, and then looking for the presence of
that symbol, since freetype2's Visual Studio build system does not
generate a .pc file for us.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 16:14:37 +08:00
Руслан Ижбулатов
69e1128cd3 GDK W32: _gdk_surface_invalidate_{for_expose,region}
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 16:13:42 +08:00
Руслан Ижбулатов
6100a9d692 GDK W32: drop the use of gdk_keymap_get_default()
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 16:10:38 +08:00
Руслан Ижбулатов
56782123d2 Only use gtk_print_backends_init() on UNIX
It's from gtkprintbackend.c, which is in gtk_unix_print_sources
source list and thus only available on os_unix only.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 15:43:25 +08:00
Руслан Ижбулатов
5cdb33d1c4 Alternative printbackends subdir for non-UNIX OSes
The main buildscript expects 'print_backends' list to be defined.
Since printbackends is os_unix-only, we need to define this list
ourselves for other OSes.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 15:39:36 +08:00
Руслан Ижбулатов
b7d7602750 Make wayland bits in meson.build conditional on wayland use
Otherwise the build won't configure due to its inability to find
wayland-scanner program on systems where no such program is availble.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-28 15:39:20 +08:00
Matthias Clasen
b1b05bee53 font chooser: Make levels flags
Turn the GtkFontChooserLevel field into flags, and
add flags for OpenType variations and features. The
motivation for this is to make font-features in the UI
opt-in, since applications need to support them by
applying the pango attribute.
2018-03-27 16:14:21 -04:00
Matthias Clasen
85a7d0a201 font chooser widget: Expose tweak-action as property
This is necessary for applications that want to embed
the font chooser widget outside of GtkFontChooserDialog,
in order to access the tweak page.
2018-03-27 16:14:21 -04:00
Matthias Clasen
6ff76a483c font button: notify when ::font-features changes
Lack of notification was causing the font-features to not
show up in the inspector.
2018-03-27 16:14:21 -04:00
Timm Bäder
9665c4d651 spinbutton: spinbuttons aren't entries anymore
Fix a code sample to reflect that.
2018-03-27 19:09:15 +02:00
Timm Bäder
8646f9da19 spinbutton: Remove queue_resize call from realize
No reason for this to be here.
2018-03-27 19:08:50 +02:00
Timm Bäder
490abbb292 spinbutton: Fix a copy/paste bug in the docs 2018-03-27 18:25:03 +02:00
Timm Bäder
cc0a69e101 gl renderer: Fix some crashes
When the first op is a modelview or projection change.
2018-03-27 18:20:52 +02:00
Timm Bäder
5c66f2ec19 accellabel: Stop saying it's a GtkLabel
And clean up the includes accordingly.
2018-03-27 18:20:52 +02:00
Timm Bäder
331af6815b accellabel: Remove some unnused class fields 2018-03-27 18:20:52 +02:00
Timm Bäder
33b2bfa81f accellabel: Remove priv pointer 2018-03-27 18:20:52 +02:00
Emmanuele Bassi
1b62d28cbb ci: Move flatpak building to a script
The YAML is getting hard to modify, so let's use a simple script like we
do for the other CI jobs.
2018-03-27 12:47:05 +01:00
Emmanuele Bassi
69441cbace Do not test for linker flags
Meson warns when doing that, as it's not really portable.

Since we're using platform-specific linker flags on Darwin, we can also
do the same on Linux; the syntax is GCC-specific, so we're going to need
Clang users to test it.
2018-03-27 12:47:05 +01:00
Benjamin Otte
b9445f4d7e Merge branch 'krnowak/leak-fixes' into 'master'
Fix some leaks

See merge request GNOME/gtk!87
2018-03-27 11:37:24 +00:00
Krzesimir Nowak
06661da8b0 Fix some leaks 2018-03-27 13:14:41 +02:00
Matthias Clasen
4b2c4ab109 wayland: Don't emit signals if nothing changed
We were emitting a preedit-changed even if the preedit text did
not actually change, causing text views to scroll.
2018-03-26 21:38:28 -04:00
Timm Bäder
b26e584e29 gl renderer: Rename everything called window to surface 2018-03-26 21:13:52 +02:00
Timm Bäder
81d19154a3 entry: Remove useless queue_draw call
This is already taken care of by the add_class/remove_class.
2018-03-26 20:03:00 +02:00
Benjamin Otte
f494d6ae1f snapshot: Generate better names for offset nodes 2018-03-26 19:43:06 +02:00
Benjamin Otte
353ad30b12 rendernode: Fix serializing
Adding the offset node broke serialization in 2 ways:

1. We store the enum value in the node, so make sure to not change it
   for existing values
2. The offset node was missing in the deserialization lookup table
2018-03-26 19:43:06 +02:00
Benjamin Otte
e2ee2a6dab iconhelper: Apply scale to paintable
Instead of fiddling around with scale in the iconhelper (and getting it
wrong), create a GtkScaler around the paintable that takes care of the
scaling.
2018-03-26 18:46:22 +02:00
Benjamin Otte
5e99646e1c dnd: Remove gtk_drag_set_icon_surface()
All users are gone. Use gtk_drag_set_icon_paintable() instead.
2018-03-26 18:32:38 +02:00
Benjamin Otte
cc9908353c tests: Don't use gtk_drag_set_icon_surface() 2018-03-26 18:30:34 +02:00
Benjamin Otte
9afbf02bc2 textview: Port dnd icon to be a GdkPaintable 2018-03-26 18:16:37 +02:00
Benjamin Otte
3f28a6851b colorswatch: Port drag icon to paintables 2018-03-26 18:16:36 +02:00
Benjamin Otte
8e3e321da4 colorbutton: Port dnd icon to paintable
Patch is untested, because colorbuttons can't do DND at the moment.
2018-03-26 18:16:36 +02:00
Benjamin Otte
aa1d1e4189 treeview: Turn drag icon into paintable 2018-03-26 18:16:36 +02:00
Benjamin Otte
a269e9a266 iconview: Port DND icons to snapshot paintables 2018-03-26 18:16:36 +02:00
Benjamin Otte
5415d05359 tests: Remove references to long-deleted property 2018-03-26 18:16:36 +02:00
Benjamin Otte
60719bb67c textutil: Make gtk_text_util_create_drag_icon() return a paintable 2018-03-26 18:16:36 +02:00
Benjamin Otte
7fdcc58532 snapshot: Add gtk_snapshot_to_paintable()
This is intended for DND icons
2018-03-26 18:16:36 +02:00
Benjamin Otte
9b83116fcb snapshot: Export gtk_snapshot_append_layout()
This is the equivalent snapshot function to pango_cairo_show_layout().

Not to be confused with gtk_snapshot_render_layout(), which is the
equivalent to gtk_render_layout().
2018-03-26 18:16:36 +02:00
Benjamin Otte
e6d24f4c15 snapshot: Make gtk_snapshot_append_node() take care of offset
Push an offset node when append_node is called. That resets the offset.
2018-03-26 18:16:36 +02:00
Benjamin Otte
ce743f28a1 rendernode: Add an offset node
This is a special case of the transform node that does a 2D translation.

The implementation in the Vulkan and GL renderers is crude and just does
the same as the transform node.

Nothing uses that node yet.
2018-03-26 18:16:36 +02:00
Piotr Drąg
b8b6324c4c Update Polish translation 2018-03-26 01:42:57 +02:00
Benjamin Otte
8c43f22e3e colorscale: Draw gradient using render nodes
Don't use Cairo when it's not needed.
2018-03-26 00:31:12 +02:00
Benjamin Otte
438b4b6b5c colorscale: Draw hue background as a texture
No need to use Cairo here.
2018-03-26 00:31:12 +02:00
Benjamin Otte
b16ac01a03 colorplane: Create background image as a texture
Don't create it using Cairo.
2018-03-26 00:31:12 +02:00
Matthias Clasen
448d2502d9 Merge branch 'bz773274' into 'master'
wayland: Don't paint if the window is unmapped

See merge request GNOME/gtk!32
2018-03-25 20:44:44 +00:00
Benjamin Otte
6bad307180 colorscale: Don't free surface data before surface
When drawing onto a recording surface, source surfaces get cached.

But if we g_free() the surface data after we're done, that cache is
gonna point at invalid data...
2018-03-25 22:38:42 +02:00
Timm Bäder
98a9f2b3c1 GdkGLContext: Add a GL debug message callback
If G_ENABLE_CONSISTENCY_CHECKS is defined (i.e. if our buildtype is
'debug'), add a opengl debug callback that prints all debug messages
with a severity higher than SEVERITY_NOTIFICATION as a warning to the
console.
2018-03-25 21:04:36 +02:00
Timm Bäder
433517fdc9 gl renderer: Skip all 0-sized nodes
These will cause problems later on.
2018-03-25 11:47:57 +02:00
Timm Bäder
7240178988 gl renderer: Remove cairo node special case 2018-03-25 11:47:57 +02:00
Emmanuele Bassi
eb382c1321 ci: Remove --werror
Turns out that GCC errors out when building the GLib test suite, as it
now checks for overflows in allocator functions, and we're testing for
those.

This would not be an issue for GTK, but since we're building GLib as a
subproject, we get failures for those as well.

Until we can find out how to disable errors for subprojects, or fix the
GLib test suite not to trip up warnings in GCC, we're going to live
without compiler warnings treated as errors for a while.
2018-03-25 00:31:36 +00:00
Emmanuele Bassi
cfeab26de0 ci: Use the appropriate argument for errors
The option to enable fatal warnings in Meson is `--werror`.
2018-03-25 00:00:02 +00:00
Daniel Boles
f8ecd488cd Menu: Don't leak priv->motion_controller 2018-03-24 22:01:02 +00:00
Benjamin Otte
b83cd9e818 ci: build with -Werror 2018-03-24 22:27:28 +01:00
Emmanuele Bassi
ba65c1ae58 ci: Disable ccache
Forcibly remove any ccache use, even if it's installed.
2018-03-24 21:17:34 +00:00
Emmanuele Bassi
fe45cf9c09 docs: Style fixes for the contribution guidelines 2018-03-24 21:16:16 +00:00
Benjamin Otte
1cfa88ed91 snapshot: Remove renderer
Now that there's no longer a need to keep the renderer around for Cairo
rendering, don't do that then.
2018-03-24 21:57:20 +01:00
Benjamin Otte
e84c6acc4f rendernode: Remove renderer argument
It's not needed to create Cairo nodes anymore.
2018-03-24 21:57:20 +01:00
Benjamin Otte
df600669a2 rendernode: Create Cairo surfaces as recording surfaces
This way, we can postpone the actual rendeing of the node until the
renderer. This allows the renderer to choose the right scale to
render at, so it can decide to use 2x scale for hidpi on its own.

Last but not least, it makes all nodes independent of the context they
are created in, because they do not need to know at snapshot time what
they will ultimately be rendered into.
2018-03-24 21:57:20 +01:00
Benjamin Otte
f680d5d130 vulkan: Remove special case for Cairo surfaces
This is in preparation for the next commits which switch Cairo nodes to
recording surfaces.
2018-03-24 21:57:20 +01:00
LRN
9c0c1702d5 Merge branch 'lrn/bug-773299' into 'master'
bug 773299 2nd

See merge request GNOME/gtk!79
2018-03-24 11:08:36 +00:00
Руслан Ижбулатов
5ff9e34fbb GDK W32: Adapt DnD event putting to recent changes
Set the display for each event that we put.
Also reorganize the dnd_event_put() function a bit, giving it a surface
directly instead of setting it by implication.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-24 10:59:02 +00:00
LRN
0c3d757ba2 Merge branch 'lrn/bug-773299' into 'master'
bug 773299

See merge request GNOME/gtk!78
2018-03-24 10:46:59 +00:00
Руслан Ижбулатов
b8e6d06372 GDK W32: Don't check dest_surface for != NULL on button events
dest_surface is going to always be NULL for source contexts.
Previously we used to put the root window there to pass this check,
but root windows are gone (and root surfaces never existed to begin
with), so we have to adapt.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-24 10:28:11 +00:00
Руслан Ижбулатов
6b50788901 GDK W32: Init display scale to the global Windows scale, not 1
This affects gdk_device_query_state() for the virtual device. It has
no window, and is forced to query the display itself, and display
defaults its scale to 1 even for HiDPI desktops. Use the same
"query scale of a NULL monitor" trick that we use in other places
to get the global desktop scale.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-24 10:09:54 +00:00
Руслан Ижбулатов
6bdb004dfd GDK W32: adapt to the recent changes in GdkEvent
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-03-24 10:09:52 +00:00
Dz Chen
e239de064b Update zh_CN po and po-properties translations 2018-03-23 23:57:51 +08:00
Daniel Boles
0b8215e0b1 Adwaita: Regenerate CSS from SASS
https://gitlab.gnome.org/GNOME/gtk/merge_requests/66 introduced spurious
red/green fore/background.

Also, the GtkVideo stuff didn't get regenerated in.
2018-03-22 20:58:31 +00:00
Daniel Boles
563cb69c6d Merge branch 'toolbar-spacing-fix' into 'master'
theme: Be more selective when adding margins to toolbar items

See merge request GNOME/gtk!66
2018-03-22 20:54:01 +00:00
Benjamin Otte
b01ee88f11 surface: Make process_updates no longer be a vfunc 2018-03-21 23:28:26 +01:00
Benjamin Otte
ade14779b1 surface: Remove some unused vfuncs 2018-03-21 23:28:26 +01:00
Benjamin Otte
cb4ec6f384 gdk: Remove GdkSurfaceImpl::shape_combine_region vfunc
... and all the implementations.

Input shapes still exist.
2018-03-21 23:28:26 +01:00
Benjamin Otte
4fff16860f gdk: Remove a bunch of unused variables 2018-03-21 23:28:26 +01:00
Emmanuele Bassi
1e3d9e1293 Reduce the header level in the bug template
Make version and additional information headers use h2, like everything else.
2018-03-21 11:49:24 +00:00
Matthias Clasen
877b48579e Merge branch 'wip/sync-pre-swap-buffers' into 'master'
Synchronize wl_surface state before wl_surface_commit

See merge request GNOME/gtk!75
2018-03-21 11:40:55 +00:00
Alexander Larsson
39851fbdbf Continue renaming window to surface
This renames a lot of arguments, local variables and functions.
2018-03-21 11:49:14 +01:00
Alexander Larsson
945379d623 GdkSurface: Fix doc comments for remoteve invalidate_children argument 2018-03-21 09:18:30 +01:00
Alexander Larsson
3f2894fec1 broadway: Fix up window -> surface renames 2018-03-21 09:17:50 +01:00
Alexander Larsson
8d05fcd35c Fix up indentation after GdkSurface rename
This fixes up a lot of the indentation issues from the
rename of windows to surfaces, at least the ones in the headers
and many others.
2018-03-21 09:06:31 +01:00
Jonas Ådahl
7e102f8879 wayland/vulkancontext: Sync surface state before vkQueuePresentKHR
A side effect of vkQueuePresentKHR is the Vulkan implementation calling
wl_surface_commit() on the corresponding Wayland surface. Thus, before
this, we must synchronize the surface state (e.g. opaque region, window
geometry, etc) that changed since last time. Prior to this commit this
was done after calling vkQueuePresentKHR(), causing the surface state to
always correspond to the previous buffer state. As of this commit this
is now done before calling vkQueuePresentKHR(), thus before
wl_surface_commit().
2018-03-21 14:14:32 +08:00
Jonas Ådahl
1d5d46ff29 wayland/glcontext: Sync surface state before swapping buffers
A side effect of eglSwapBuffers* is the EGL implementation calling
wl_surface_commit() on the corresponding Wayland surface. Thus, before
swapping buffers, we must synchronize the surface state (e.g. opaque
region, window geometry, etc) that changed since the last buffer swap.
Prior to this commit, this was done after eglSwapBuffers*, causing the
surface state to always correspond to the previous buffer state. As of
this commit this is now done before swapping the buffers, thus before
wl_surface_commit().
2018-03-21 14:14:20 +08:00
Benjamin Otte
2a4ffd4a59 surface: Simplify gdk_surface_invalidate_region()
Remove duplicate functions and unused arguments.

Functionality is identical otherwise.
2018-03-21 04:10:07 +01:00
Benjamin Otte
8202f333ea surface: Stop tracking clip region
It's not needed because we're not using it for anything anymore now that
client-side surfaces aren't drawn anymore.
2018-03-21 04:10:07 +01:00
Benjamin Otte
0ce19eed08 gdk: Remove gdk_surface_shape_combine_region()
If you want transparent region, you can just render them transparent.
If you want input shaping, use gdk_surface_input_shape_combine_region().

Also remove gtk_widget_shape_combine_region().
2018-03-21 04:10:07 +01:00
Benjamin Otte
ef693f317c surface: Remove gdk_surface_get_clip_region()
... and gdk_surface_get_visible_region() APIs. They are unused.
2018-03-21 04:10:07 +01:00
Benjamin Otte
f5ff44595a gdk: Remove unused members from surface struct 2018-03-21 04:10:06 +01:00
Benjamin Otte
101cf7dcbd surface: Stop shaping native children of csw surfaces
We don't have them anymore and they are goig away anyway.
2018-03-21 04:10:06 +01:00
Emmanuele Bassi
f260e76ede docs: Drop the 'Contributing' section from the README
We have a whole document for that, and it's up to date with regards to
the GitLab workflow.
2018-03-21 01:02:23 +00:00
Emmanuele Bassi
68379cab9b Add a template for bug reports
GitLab issues can use templates to guide users when filing new bug
reports; we should take advantage of this feature.
2018-03-21 00:59:06 +00:00
Emmanuele Bassi
09e6b4dc01 docs: Point at the right place for new bugs
We use GitLab issues, now.
2018-03-21 00:58:46 +00:00
Emmanuele Bassi
9165dd33ed Add a build status badge
Like all cool kids are doing, these days.
2018-03-21 00:45:09 +00:00
Matthias Clasen
47d79a4257 Add appdata for gtk4-widget-factory
This will let us build a better flatpak for gtk4-widget-factory.
2018-03-20 20:05:15 -04:00
Benjamin Otte
5a32469303 surface: Remove GSK_SURFACE_ROOT
Root surface have been dead for a while now, no need to keep the enum
value around.
2018-03-21 00:58:01 +01:00
Emmanuele Bassi
5290d9d8c7 Merge branch 'ci-flatpak'
Generate Flatpak bundles for gtk-demo and gtk-widget-factory when
running the CI pipeline, and store them as artifacts on the CI server.
2018-03-20 23:52:31 +00:00
Benjamin Otte
7862894f11 surface: Remove gdk_surface_invalidate_maybe_recurse()
This also means we can now get rid of child funcs because they're not
used anymore.
2018-03-21 00:43:28 +01:00
Benjamin Otte
a1898d678b surface: Remove gdk_surface_scroll()
It's yet another fancy way to call gdk_surface_invalidate_region().

Also remove the one testgtk test that was still using it.
2018-03-21 00:43:28 +01:00
Benjamin Otte
d6ba10bacf surface: Remove gdk_surface_move_region()
It's just a cute version of gdk_surface_invalidate_region()
these days and people can call that function instead.
2018-03-21 00:43:28 +01:00
Benjamin Otte
c4ecc3f4f7 surface: Remove queue_antiexpose()
... and its implementation in the X11 backend.

GDK does lots of work trying to reduce the region in expose events
so that when the server sends multiple expose events, touching the
same area we can make sure to only redraw stuff once. However:
(1) this is only relevant of there's tons of delay and multiple
    expose events get sent
(2) we coalesce multiple events into a single expose event anyway
(3) we do this on the frame clock

But most importantly:
(4) Since the invention of compositing, servers caches all contents
    anyway
2018-03-21 00:43:28 +01:00
Benjamin Otte
63edf43e86 gdk: Remove unused area member from GdkEventExpose 2018-03-21 00:43:28 +01:00
Benjamin Otte
5c7ee3a483 gdk: Remove unused count member from GdkEventExpose 2018-03-21 00:43:28 +01:00
Benjamin Otte
4f87861c9a widget: Remove useless macro 2018-03-21 00:43:28 +01:00
Matthias Clasen
cb41d1586f Add appdata for gtk4-demo
This will let us build a better flatpak for gtk4-demo.
2018-03-20 19:40:30 -04:00
Emmanuele Bassi
f353bbd0bc ci: Add two flatpak jobs
When building GTK through the CI infrastructure, it would help to have
some ways of testing it; for instance, if we want to verify that theme
changes are useful, or if we want to run the result without necessarily
build it locally.

This is where flatpak comes in handy. By having the CI build a flatpak
buundle, and storing it as an artifact, of the GTK demos, we can easily
point developers and designers to an installable binary that won't break
their system, nor will require development tools and environments to
run.
2018-03-20 23:14:32 +00:00
Emmanuele Bassi
1873304e7b Add flatpak builder manifests for our demos
We can use manifests as targets when building GTK inside a flatpak
environment; or we can use them for CI purposes.
2018-03-20 23:14:32 +00:00
Olivier Fourdan
77a5d00047 wayland: Drop cairo surfaces when withdrawing
If a surface is unmapped by the client while gdk is processing updates,
(for example Firefox un-mapping its window on Expose events), the
windowing backend resources might be lost (for example with Wayland)
which can cause a crash in end_paint().

Make sure we drop the cairo surfaces as well when hiding the surface,
that will avoid the crash in gdk_surface_impl_wayland_end_paint() when
trying to attach the staging cairo surface to a released wl_surface,
these will be recreated when needed when the surface becomes visible
again and there is no need to keep such buffers around for a surface
which is not visible anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=793062
2018-03-20 18:49:56 +01:00
Emmanuele Bassi
706a6cf0a3 Merge branch 'tests-gdk' into 'master'
gitlab-ci: enable gtk+:gdk tests

See merge request GNOME/gtk!74
2018-03-20 17:20:28 +00:00
Emmanuele Bassi
b304655e2d tests: Update renamed symbol 2018-03-20 17:05:33 +00:00
Carlos Garnacho
28c27f37ee Merge branch 'detect-synaptics-touchpads-v2' into 'master'
x11/xi2: Report touchpads as TOUCHPAD, not MOUSE

See merge request GNOME/gtk!65
2018-03-20 17:03:15 +00:00
Piotr Drąg
dcc6124209 Update POTFILES.in 2018-03-20 17:32:35 +01:00
Christoph Reiter
feb7bf2fbe gitlab-ci: enable gtk+:gdk tests
xvfb doesn't like C.utf8 and returns XLocaleNotSupported.

While (afaik) C.utf8 and C.UTF.8 should be the same thing, and the former
is returned by locale -a on Fedora, switch to C.UTF-8 to make xvfb happy.

This makes gtk+:gdk tests pass.
2018-03-20 17:31:38 +01:00
Alexander Larsson
695d141f32 Merge branch 'rename-window-to-surface' into 'master'
Rename window to surface

See merge request GNOME/gtk!72
2018-03-20 16:16:57 +00:00
Matthias Clasen
b83ba41f2d Merge branch 'accessible-role' into 'master'
gtkbuilder: add accessibility role declaration

Closes #109

See merge request GNOME/gtk!69
2018-03-20 15:46:20 +00:00
Benjamin Otte
e798eedfb6 Merge branch 'style-context-null-widget-guard-master' into 'master'
gtkstylecontext: guard against gtk_css_widget_node_get_widget() returning NULL in more places

See merge request GNOME/gtk!71
2018-03-20 15:36:19 +00:00
Matthias Clasen
e6cd6f8db6 Merge branch 'a11y-fixes' into 'master'
Fix some accessibility issues in demos

Closes #110

See merge request GNOME/gtk!68
2018-03-20 15:33:35 +00:00
Alexander Larsson
4ac450b324 Convert all references to GdkEvent->surface 2018-03-20 16:25:50 +01:00
Christoph Reiter
f440c48dea gtkstylecontext: guard against gtk_css_widget_node_get_widget() returning NULL in more places
When the widget gets finalized it clears the widgetnode and gtk_css_widget_node_get_widget
returns NULL. Guard against gtk_css_widget_node_get_widget() returning NULL like in other
places.

See https://gitlab.gnome.org/GNOME/pygobject/issues/28#note_82862
2018-03-20 16:02:51 +01:00
Alexander Larsson
19ca2789c0 GtkWidget: Continuer rename of widget->surface
This completes the rename manually.
2018-03-20 15:40:31 +01:00
Alexander Larsson
63e060a21d GtkWidget: Start renaming widget->window
This is an automated change doing these command:

git sed -f g gtk_widget_set_has_window gtk_widget_set_has_surface
git sed -f g gtk_widget_get_has_window gtk_widget_get_has_surface
git sed -f g gtk_widget_set_parent_window gtk_widget_set_parent_surface
git sed -f g gtk_widget_get_parent_window gtk_widget_get_parent_surface
git sed -f g gtk_widget_set_window gtk_widget_set_surface
git sed -f g gtk_widget_get_window gtk_widget_get_surface
git sed -f g gtk_widget_register_window gtk_widget_register_surface
git sed -f g gtk_widget_unregister_window gtk_widget_unregister_surface

git checkout NEWS*
2018-03-20 15:21:12 +01:00
Alexander Larsson
3dce0dcca7 GdkSurface: Rename lots of stuff from window->surface
Mostly these are internal things, but the major public change is
that event.window is now event.surface.
2018-03-20 15:14:10 +01:00
Alexander Larsson
9a7e721181 GdkSurface: Rename various functions and variables
This is an automatic rename of various things related
to the window->surface rename.

Public symbols changed by this is:
 GDK_MODE_WINDOW
 gdk_device_get_window_at_position
 gdk_device_get_window_at_position_double
 gdk_device_get_last_event_window
 gdk_display_get_monitor_at_window
 gdk_drag_context_get_source_window
 gdk_drag_context_get_dest_window
 gdk_drag_context_get_drag_window
 gdk_draw_context_get_window
 gdk_drawing_context_get_window
 gdk_gl_context_get_window
 gdk_synthesize_window_state
 gdk_surface_get_window_type
 gdk_x11_display_set_window_scale
 gsk_renderer_new_for_window
 gsk_renderer_get_window
 gtk_text_view_buffer_to_window_coords
 gtk_tree_view_convert_widget_to_bin_window_coords
 gtk_tree_view_convert_tree_to_bin_window_coords

The commands that generated this are:

git sed -f g "GDK window" "GDK surface"
git sed -f g window_impl surface_impl
(cd gdk; git sed -f g impl_window impl_surface)
git sed -f g WINDOW_IMPL SURFACE_IMPL
git sed -f g GDK_MODE_WINDOW GDK_MODE_SURFACE
git sed -f g gdk_draw_context_get_window gdk_draw_context_get_surface
git sed -f g gdk_drawing_context_get_window gdk_drawing_context_get_surface
git sed -f g gdk_gl_context_get_window gdk_gl_context_get_surface
git sed -f g gsk_renderer_get_window gsk_renderer_get_surface
git sed -f g gsk_renderer_new_for_window gsk_renderer_new_for_surface

(cd gdk; git sed -f g window_type surface_type)
git sed -f g gdk_surface_get_window_type gdk_surface_get_surface_type

git sed -f g window_at_position surface_at_position
git sed -f g event_window event_surface
git sed -f g window_coord surface_coord
git sed -f g window_state surface_state
git sed -f g window_cursor surface_cursor
git sed -f g window_scale surface_scale
git sed -f g window_events surface_events
git sed -f g monitor_at_window monitor_at_surface
git sed -f g window_under_pointer surface_under_pointer
(cd gdk; git sed -f g for_window for_surface)
git sed -f g window_anchor surface_anchor
git sed -f g WINDOW_IS_TOPLEVEL SURFACE_IS_TOPLEVEL
git sed -f g native_window native_surface
git sed -f g source_window source_surface
git sed -f g dest_window dest_surface
git sed -f g drag_window drag_surface
git sed -f g input_window input_surface

git checkout NEWS* po-properties po docs/reference/gtk/migrating-3to4.xml
2018-03-20 12:05:26 +01:00
Alexander Larsson
890080ebf7 GdkWindow -> GdkSurface: File renames
Rename all *window.[ch] source files.

This is an automatic operation, done by the following commands:

for i in $(git ls-files gdk | grep window); do
    git mv $i $(echo $i | sed s/window/surface/);
    git sed -f g $(basename $i) $(basename $i | sed s/window/surface/) ;
done

git checkout NEWS* po-properties po
2018-03-20 11:46:11 +01:00
Alexander Larsson
391727bd0d GdkWindow -> GdkSurface initial type rename
This renames the GdkWindow class and related classes (impl, backend
subclasses) to surface. Additionally it renames related types:
GdkWindowAttr, GdkWindowPaint, GdkWindowWindowClass, GdkWindowType,
GdkWindowTypeHint, GdkWindowHints, GdkWindowState, GdkWindowEdge

This is an automatic conversion using the below commands:

git sed -f g GdkWindowWindowClass GdkSurfaceSurfaceClass

git sed -f g GdkWindow GdkSurface
git sed -f g "gdk_window\([ _\(\),;]\|$\)" "gdk_surface\1" # Avoid hitting gdk_windowing
git sed -f g "GDK_WINDOW\([ _\(]\|$\)" "GDK_SURFACE\1" # Avoid hitting GDK_WINDOWING
git sed "GDK_\([A-Z]*\)IS_WINDOW\([_ (]\|$\)" "GDK_\1IS_SURFACE\2"
git sed GDK_TYPE_WINDOW GDK_TYPE_SURFACE
git sed -f g GdkPointerWindowInfo GdkPointerSurfaceInfo

git sed -f g "BROADWAY_WINDOW" "BROADWAY_SURFACE"
git sed -f g "broadway_window" "broadway_surface"
git sed -f g "BroadwayWindow" "BroadwaySurface"
git sed -f g "WAYLAND_WINDOW" "WAYLAND_SURFACE"
git sed -f g "wayland_window" "wayland_surface"
git sed -f g "WaylandWindow" "WaylandSurface"
git sed -f g "X11_WINDOW" "X11_SURFACE"
git sed -f g "x11_window" "x11_surface"
git sed -f g "X11Window" "X11Surface"
git sed -f g "WIN32_WINDOW" "WIN32_SURFACE"
git sed -f g "win32_window" "win32_surface"
git sed -f g "Win32Window" "Win32Surface"
git sed -f g "QUARTZ_WINDOW" "QUARTZ_SURFACE"
git sed -f g "quartz_window" "quartz_surface"
git sed -f g "QuartzWindow" "QuartzSurface"

git checkout NEWS* po-properties
2018-03-20 11:40:08 +01:00
Timm Bäder
1d26879fa5 tests: Add testtexture
a test that simply loads a given file as a texture and renders it.
2018-03-20 09:40:10 +01:00
Timm Bäder
0124740fa0 gl renderer: Support large textures
By tiling them.
2018-03-20 09:40:10 +01:00
Timm Bäder
3f367277fe snapshot: Limit cairo nodes to clip region
In certain cases, we might create large cairo nodes, resulting in
surfaces so large, cairo can't handle them. Fix this by limiting the
cairo node to the current clip region.
2018-03-20 09:40:10 +01:00
Timm Bäder
4240119d64 gl renderer: add basic code to support texture tiling 2018-03-20 09:40:10 +01:00
Timm Bäder
a9fec38680 rendernode: Don't use gdk_texture_download_surface
It can't handle the texture sizes we'd like to support
2018-03-20 09:40:10 +01:00
Timm Bäder
22780044ec rendernode: Don't use gdk_texture_download_surface
It can't handle the texture sizes we'd like to support
2018-03-20 09:37:59 +01:00
Timm Bäder
4353ad224f rendernode: Check cairo surface status after creation 2018-03-20 09:37:59 +01:00
Timm Bäder
85eef63b32 inspector: Use the attach widget as menu parent object
Fixes #101
2018-03-20 09:37:59 +01:00
Timm Bäder
9e9db8607b Revert "gl renderer: Limit texture node size to clip"
This reverts commit 0234e8e2c9.

This broke partially clipped-away nodes when they are being transformed,
e.g. by a rotation
2018-03-20 09:37:59 +01:00
Timm Bäder
8ef2b10f70 gldriver: Name driver instances 'self' 2018-03-20 09:37:59 +01:00
Timm Bäder
50ffa86d18 progressbar: Remove priv pointer 2018-03-20 09:37:59 +01:00
Timm Bäder
2210078a64 progressbar: Remove snapshot implementation 2018-03-20 09:37:59 +01:00
Timm Bäder
25ab5b9f0b levelbar: Remove priv pointer 2018-03-20 09:37:59 +01:00
Timm Bäder
f261bf2fc6 switch: Avoid a gtk_widget_get_clip call
Since we get the correct clip anyway from the gtk_widget_size_allocate
call above.
2018-03-20 09:37:59 +01:00
Timm Bäder
922b2cf99a grid: Remove child list
Save the child info using g_object_set_qdata and just use the widget's
built-in child list for everthing else. This is especially simple for
GtkGrid since it has never supported reordering its child widgets.
2018-03-20 09:37:59 +01:00
Timm Bäder
c8b0c55284 paned: Remove priv pointer 2018-03-20 09:37:59 +01:00
Timm Bäder
93aa5ce167 container: Don't use forall() in compute_expand
Use the widget list instead, which saves some code.
2018-03-20 09:37:58 +01:00
Timm Bäder
781400f6d3 container: Don't use forall() in get_request_mode
We can just use the widget child list, which save some code.
2018-03-20 09:37:58 +01:00
Rico Tzschichholz
f7326ff828 texture: Fix documentation block of gdk_texture_download 2018-03-19 20:31:15 +01:00
Samuel Thibault
9561b97dc4 Fix some accessibility issues in demos
Fixes #110
2018-03-19 18:07:25 +01:00
Samuel Thibault
bd986f9534 gtkbuilder: add accessibility role declaration
This allows to override the role declared to the atk stack.  For
instance,

<accessibility>
  <role type="static"/>
</accessibility>

allows to tell the accessibility stack that a label is just a message in
a message box.

Fixes #109
2018-03-19 18:07:06 +01:00
Daniel Boles
a15080c640 gdkrgba: Add a missing apostrophe in a doc comment 2018-03-19 15:14:20 +00:00
Quentin Glidic
f431e28ce3 gtkimcontextsimple.c: Use X11_DATA_PREFIX only on X11
Unlike what commit d01ea18dc3 says, X11 is
not a requirement for Wayland, so a Wayland-only build is possible. We
just use the same logic as other non-X11 platforms.

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

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2018-03-19 11:39:47 +01:00
Daniel van Vugt
0ad27cc598 x11/xi2: Report touchpads as TOUCHPAD, not MOUSE
is_touchpad_device() for XI2 was hardcoded to look for libinput only.
Extend it slightly to correctly identify other Xorg touchpad drivers.

https://gitlab.gnome.org/GNOME/gtk/issues/97
2018-03-19 12:08:29 +08:00
Benjamin Otte
1a1373779f mediafile: Improve error message
We are using media plugins these days, so this is not a compile-time
issue.
2018-03-19 00:28:20 +01:00
Benjamin Otte
2aee39d12c video: Add gtk_video_get_file()
That function was missing.
2018-03-19 00:28:20 +01:00
Rico Tzschichholz
158df3c1bb gtk: Fix some g-i annotations warnings 2018-03-18 21:47:10 +01:00
Piotr Drąg
f1e1e9a71e Update POTFILES.in 2018-03-18 21:12:29 +01:00
Benjamin Otte
04a3b8b6df mediastream: Add gtk_media_stream_realize/unrealize()
This allows widget to attach their streams to GdkWindow(s)

The idea is to allow attaching a stream to windowing system(s) so the
stream can make use of its resources, in particular GL contexts.

I am however unsure what to attach to:
- GtkWindow
- GdkWindow
- GtkWidget
- GskRenderer
Each of these provide advantages and disadvantages.

So I'm very much open to better suggestions.
2018-03-18 21:01:23 +01:00
Benjamin Otte
09a21f1cd2 build: Make GStreamer backend the default
Instead of compiling without media backend by default, we now use the
GStreamer backend.

This means that CI now requires gstreamer support.
2018-03-18 21:01:23 +01:00
Benjamin Otte
0f4ab5862a gtk-demo: Add a simple video player example
For now, it's impossible to unfullscreen. Somebody should figure out a
way to do this.
2018-03-18 21:01:23 +01:00
Benjamin Otte
2362e4d41e gtk: Add a GStreamer implementation of GtkMediaFile 2018-03-18 21:01:23 +01:00
Benjamin Otte
182f39aba7 demos: Round up the paintable demos with a media stream 2018-03-18 21:01:23 +01:00
Benjamin Otte
3d9cb477aa demos: Add an animated paintable demo
This builds on the paintable demo.
2018-03-18 21:01:23 +01:00
Benjamin Otte
357175f0b1 gtk-demo: Add paintable demo 2018-03-18 21:01:23 +01:00
Benjamin Otte
b410b48eed demos: Add a video benchmark to widgetbowl demo 2018-03-18 21:01:23 +01:00
Benjamin Otte
5bd85058d9 gtk-demo: Add a video example (with controls) to the images demo 2018-03-18 21:01:23 +01:00
Benjamin Otte
7cf6da60da gtk: Add GtkVideo
GtkVideo is a simple video player widget. It probably needs some more
configurability, but it does its job.
2018-03-18 21:01:23 +01:00
Benjamin Otte
9700a98f48 gtk: Add GtkMediaControls
This is a basic first implementation of controls for a GtkMediaStream,
modeled after Totem's UI.
2018-03-18 21:01:23 +01:00
Benjamin Otte
800bcb5cb4 gtk: Add ffmpeg implementation of GtkMediaFile
This adds a module using ffmpeg to implement the GtkMediaFile interface.
2018-03-18 21:01:23 +01:00
Matthias Clasen
e4338c4d42 mediafile: Turn into an extension point
This way, we can support external libraries providing implementations of
GtkMediaFile.

We also add a media backend called 'nomedia' that can be enabled to not
compile any support for GtkMediaFile. This is useful when people want to
statically compile GTK into an application that does not use media.
For now, this option is the default.

We also support a new environment variable GTK_MEDIA that allows
selecting the implementation to use.
GTK_MEDIA=help can be used to get info about the available
implementations.
2018-03-18 21:01:23 +01:00
Benjamin Otte
29cccf5e84 gtk: Add GtkMediaFile
GtkMediaFile is an implementation of GtkMediaStream to play back files.

Except it isn't an implementation yet, but only an interface.
2018-03-18 21:01:23 +01:00
Benjamin Otte
4db1a5f5c4 gtk: Add GtkMediaStream
GtkMediaStream is the new base class for playback of audio and video
streams.

It implements GdkPaintable for rendering.
2018-03-18 21:01:23 +01:00
Rico Tzschichholz
4642e86284 texture: Fix compilation by avoiding to include not-yet available headers 2018-03-18 20:52:46 +01:00
Benjamin Otte
ea84e974e6 snapshot: Turn into GObject
This makes GdkSnapshot the base class for GtkSnapshot and hopefully
stops confusing bindings.

C code should see no difference to before.
2018-03-18 19:21:33 +01:00
Benjamin Otte
abc9b944f9 testsuite: Update C++ keywords test to GTK 3.0.0 2018-03-18 19:20:46 +01:00
Benjamin Otte
87fa7ff314 build: Fix printbackends
There's no "auto" option anymore, so remove checks for that option.
2018-03-18 19:08:28 +01:00
Benjamin Otte
6dc29f2852 gltexture: Rename variable
Makes docs build happy.
2018-03-18 18:42:20 +01:00
Nikita Churaev
0f13a232c6 theme: Be more selective when adding margins to toolbar items
Only add margins to direct children of toolbar items, this fixes the
gaps between linked buttons inside custom toolbar items.
2018-03-18 13:33:52 +03:00
Benjamin Otte
82a99a3643 texture: Expose subclasses as subclasses
This is necessary so that bidnings work properly and don't make
gdk_gl_texture_release() a function on GdkTexture.
It also allows code to identify what type of texture they are dealing
with.

Finally, we can now decide to add getters later without screwing
anything up, if we want to allow people to access GL textures directly.
2018-03-18 05:57:07 +01:00
Benjamin Otte
d54ca3c74f gdk: Add GDK_MEMORY_DEFAULT
This is the default memory format.

I added it because it is way better than including a private header and
using GDK_MEMORY_CAIRO_FORMAT_ARGB32.
2018-03-18 05:57:07 +01:00
Benjamin Otte
ee8e42f19b gdk: Remove gdk_texture_new_from_data()
Use gdk_memory_texture_new() instead.
2018-03-18 05:57:07 +01:00
Daniel Boles
41a5e744d8 SpinButton: Desensitise +/- buttons as appropriate
The logic for this in 3 got lost in the move from gadgets to widgets. We
must update the sensitivities when :wrap, :value, or the bounds change.

Close: https://gitlab.gnome.org/GNOME/gtk/issues/88
2018-03-17 15:53:50 +00:00
Timm Bäder
a25dcd0f74 snapshot: Fix some indentation 2018-03-17 14:13:42 +01:00
Timm Bäder
7351848c75 container: Fix scroll adjustment coordinates 2018-03-17 14:05:55 +01:00
Timm Bäder
bb04808eea testgtk: Remove alpha widgets demo
This used to test that "windowed widgets" and "non-windowed widgets"
handle alpha correctly, but none of the mentioned widgets are windowed
at all anymore. For the rest, this is more easily and dynamically
testable by simply using the inspector.
2018-03-17 14:05:40 +01:00
Timm Bäder
004d0f2fc1 testgtk: GtkSpinButton is not a GtkEntry anymore 2018-03-17 12:09:30 +01:00
Timm Bäder
fb763cd4ca layout: Fix scrolling
We accidentally dropped the code that takes the adjustments into account
at some point.
2018-03-17 12:09:30 +01:00
Timm Bäder
a5e20c5ffc layout: remove map implementation
gtk_widget_real_map already maps all the child widgets.
2018-03-17 12:09:30 +01:00
Timm Bäder
3ca298ec94 container: Remove focus widget sorting code
The more general version of this code lives in gtkwidgetfocus.s now.
2018-03-17 12:09:30 +01:00
Timm Bäder
ad85a75c2e window: Use widget facilities to sort focus menubars 2018-03-17 12:09:30 +01:00
Timm Bäder
1a8e7d97ae menubar: Use GtkWidget focusing facilities 2018-03-17 12:09:30 +01:00
Timm Bäder
1eb22e7927 radibutton: Use focusing facilities from GtkWidget
Instead of the ones from GtkContainer which will hopefully soon go away.
2018-03-17 12:09:30 +01:00
Timm Bäder
fd28bddde1 container: Only do custom focus management if a focus chain is set
Otherwise, the process should be the same one we use in GtkWidget.
2018-03-17 12:09:30 +01:00
Timm Bäder
ca4f08136a container: Rename parent_class to gtk_container_parent_class
To match the name we have everywhere else.
2018-03-17 12:09:30 +01:00
Timm Bäder
16689a1e81 widget: Fix a few typos in cursor documentation 2018-03-17 12:09:30 +01:00
Timm Bäder
24e708a770 popover: Remove an unneeded local variable 2018-03-17 12:09:30 +01:00
Timm Bäder
64e128629f magnifier: Clip child node to magnifier size
It's still broken in several other ways, but now one less.
2018-03-17 12:09:30 +01:00
Timm Bäder
6cfb720ab7 Fix a few get_allocated_width/height usages 2018-03-17 12:09:30 +01:00
Timm Bäder
3e6fea0550 widgetbowl: Add a proper description
Instead of the copy/pasted one from the fishbowl demo.
2018-03-17 12:09:30 +01:00
Daniel Boles
146082d464 Notebook: Don’t show raw underline/markup in popup
If @menu_label == NULL, we create a default page->menu_label. This took
@tab_label.get_label() and passed that to page->menu_label.set_text().
This is wrong because we set the plain text of the menu_label from the
rich text of @tab_label. So, if @tab_label used mnemonics or markup, our
menu_label got the raw underline or markup tags shown in it as raw text.

As we call set_text() on the menu Label, the fix is to be symmetric: use
@tab_label’s get_text() as source, as that strips underlines and markup.

It’s not worth making the default Label ‘inherit’ :use-underline/markup;
that’s a slippery slope, and users wanting such things can just create a
fully fledged GtkLabel to pass as @menu_label to suppress the default.

https://bugzilla.gnome.org/show_bug.cgi?id=705509
2018-03-16 22:34:05 +00:00
Benjamin Otte
b64a403100 selection: Remove surface APIs 2018-03-16 06:04:45 +01:00
Benjamin Otte
12409ee075 cellrendererpixbuf: Store the texture in the iconhelper paintable
That's kinda weird but allows us to delete the texture case from
GtkIconHelper and GTK_IMAGE_TEXTURE from the GtkImageType enum.

And it doesn't cause any other problems because the cell renderer
can't deal with paintables - otherwise it would mirror GtkImage and have
a "paintable" property instead.
2018-03-16 06:04:45 +01:00
Benjamin Otte
cbe40f5f46 image: Remove gtk_image_set_texture()
gtk_image_get_paintable() is a perfect replacement, so use that one.
2018-03-16 06:04:45 +01:00
Benjamin Otte
2935ef8128 image: Add gtk_image_set_can_shrink()
Images with that value set will request a 0x0 minimum size and scale
down their contents.
2018-03-16 06:04:45 +01:00
Benjamin Otte
c6541853ab image: Add gtk_image_set_keep_aspect_ratio()
If set, the image will draw its contents while keeping their aspect
ratio. That means empty areas show up on the top/bottom or left/right.

Also move the special-case snapshotting code for icons to
GtkIconHelper. That's where it belongs.
2018-03-16 06:04:45 +01:00
Benjamin Otte
0a08c03885 iconhelper: Implement GdkPaintable
This only implements the vfuncs, but does not actually emit signals
yet.

It's also not useed for anything other than snapshot() so far, this
will come in later commits.
2018-03-16 06:04:45 +01:00
Benjamin Otte
af18796312 icontheme: Remove surface support
It's not used anymore.
2018-03-16 06:04:45 +01:00
Benjamin Otte
9e54c22c49 image: Don't handle surfaces anymore
Lots of special cases that are no longer needed because no code uses
surfaces.

Also remove the GdkCellRendererPixbuf:surface property.
2018-03-16 06:04:45 +01:00
Benjamin Otte
01f996447e tests: Port from surface to texture 2018-03-16 06:04:45 +01:00
Benjamin Otte
a8608618a9 dragsource: Replace gtk_drag_source_set_icon_surface()
... with gtk_drag_source_set_icon_paintable().
2018-03-16 06:04:45 +01:00
Benjamin Otte
1f4839d4c8 inspector: Use Textures for images in the property view 2018-03-16 06:04:44 +01:00
Benjamin Otte
3c7ee010f5 cellrendererpixbuf: Put pixbufs into textures
... instead of going via surfaces.

A side effect is that the pixbuf property is no longer readable because
we have no good way to get the pixbuf back out of the texture, but I
don't think this matters a lot.

If people want to read the pixbuf property, we need to add some code to
make that work.
2018-03-16 06:04:44 +01:00
Benjamin Otte
7844320f10 image: Load resources and files into textures
Instead of loading them into surfaces (which we want to get rid of), we
load into textures.
In fact, we introduce a new paintable subclass called a GtkScaler that
takes care of tracking scaling.

This also ideally gets rid of an extra conversion once renderers learn
to render textures directly.
2018-03-16 06:04:44 +01:00
Benjamin Otte
c9557c207f iconhelper: Handle texture scale again
We will need that in the next commits.
2018-03-16 06:04:44 +01:00
Benjamin Otte
2016f56176 iconhelper: Turn into a GObject 2018-03-16 06:04:44 +01:00
Benjamin Otte
3427639b08 iconhelper: Rework to allow resizing of paintables
GtkImage will now allow paintables to be rendered to the full image and
the image will be sized according to CSS rules for image sizing.
2018-03-16 06:04:44 +01:00
Benjamin Otte
3e50092869 iconhelper: Rename function
There are no more icon sizes, this is now the default size we render at.

This naming change is kinda relevant because of CSS terminology.
2018-03-16 06:04:44 +01:00
Benjamin Otte
536714a147 paintable: Add gdk_paintable_compute_concrete_size()
Do the CSS size computation routine. This will be used elsewhere soon.
2018-03-16 06:04:44 +01:00
Benjamin Otte
bcf1aa7cb2 tooltips: Make icon a paintable 2018-03-16 06:04:44 +01:00
Benjamin Otte
d1be2b29cf entry: Make icons a paintable 2018-03-16 06:04:44 +01:00
Benjamin Otte
89ee42db54 dnd: Make dnd icon API take a paintable
... instead of a texture.
2018-03-16 06:04:44 +01:00
Benjamin Otte
ccb6b8585c aboutdialog: Make logo a paintable
No reason to limit this to textures anymore.
2018-03-16 06:04:44 +01:00
Benjamin Otte
2b35332fd6 cssimage: Implement dynamicity for cross-fades 2018-03-16 06:04:44 +01:00
Benjamin Otte
7e39b12858 css: Implement dynamic values for array values
This makes animated background-images work.
2018-03-16 06:04:44 +01:00
Benjamin Otte
3faa7e04db cssimage: Add GtkCssImagePaintable
This type can hold any GdkPaintable.

Use it to replace GtkCssImageSurface, which used to hold a GdkTexture.
2018-03-16 06:04:44 +01:00
Benjamin Otte
4beeb6173b cssimage: Add gtk_css_image_is_invalid()
Use that instead of hacks to guess when an image is considered invalid
according to https://drafts.csswg.org/css-images-4/#invalid-image

Also add a GtkCssImageInvalid that implements the behavior of invalid
images according to the CSS spec so thjat image implementations can
refer to that image.
2018-03-16 06:04:44 +01:00
Benjamin Otte
5970dac167 build: Switch order of subdirectories
This makes demos be compiled/linked before tests. And that means that
while hacking, I can already run widget-factory when the tests are
still linking.
2018-03-16 06:04:44 +01:00
Benjamin Otte
9fa1e68151 image: Implement support for paintables
This includes adding support to GtkImageDefintion and GtkIconHelper.

Only GtkImage handles support for signals from the paintable.
2018-03-16 06:04:44 +01:00
Benjamin Otte
c59948169d iconhelper: transition to GdkPaintable
This is in preparation for accepting the image type paintable.

It's a bit incovenient because we need more code to track width/height
ourselves (as the paintable no longer does it for us), but it's not too
hard.

GtkIconHelper does not track invalidations on the paintable.
2018-03-16 06:04:44 +01:00
Benjamin Otte
a4e16ce3cc texture: Implement GdkPaintable
This is kind of evil because we need to link to GTK to be able to
snapshot, but I hope nobody notices.
2018-03-16 06:04:44 +01:00
Benjamin Otte
d4764cc89b snapshot: "Inherit" from GdkSnapshot
This is a neat trick to get around the circularity between GDK, GSK and
GTK that we inherit with the GdkPaintable interface.

GdkPaintable uses GtkSnapshot
GtkSnapshot creates GskRenderNodes
GskRenderNodes use GdkTextures
GdkTexture will soon implement GdkPaintable

This causes a loop that spans GDK, GSK and GTK and this is the easiest
way to resolve it without breaking bindings (at least that's the idea).
2018-03-16 06:04:44 +01:00
Benjamin Otte
8f43d7e188 gdk: Add GdkPaintable 2018-03-16 06:04:44 +01:00
Benjamin Otte
a721d8b78f css: Implement support for dynamic values
This adds a new GtkStyleAnimation called GtkCssDynamic (for lack of a
better name) that is spawned whenever at least one dynamic value is part
of the GtkCssStyle.
2018-03-16 06:04:43 +01:00
Benjamin Otte
d774406573 cssimage: Implement dynamic values
No image actually implements it yet, but this is the plumbing.
2018-03-16 06:04:43 +01:00
Benjamin Otte
3322599e99 css: Introduce the idea of dynamic values
Dynamic values are values that change their contents with the current
(monotonic) time.

This just introduces the GtkCssValue API for it.
2018-03-16 06:04:43 +01:00
Benjamin Otte
7f0ef81e11 vulkan: Our data is premultiplied, don't pretend it isn't
If the backend can't do premultiplied alpha, better make the backend treat
2018-03-16 06:04:43 +01:00
Benjamin Otte
927f48d289 css: Remove ability to query css images as cairo patterns
Nobody's doing that. And CSS Images are no longer using Cairo anyway.

If we wanted to support querying them (hint: we don't) we should be
using GdkPaintable.
2018-03-16 06:04:43 +01:00
Benjamin Otte
45072c3a64 aboutdialog: The default icons are textures these days 2018-03-16 06:04:43 +01:00
Benjamin Otte
a891a3ae26 demos: Unbreak icon for fishbowl demo
351559fcfa was to eager in simplifying
things.
2018-03-16 06:04:43 +01:00
Benjamin Otte
4bb8352ab5 css: Fix compiler warning
...
2018-03-16 06:04:43 +01:00
Matthias Clasen
62aa487500 Improve the scale handling
Always use the smallest scale that is larger than requested,
or, failing that, the largest available scale.
2018-03-15 20:28:12 -04:00
Matthias Clasen
454814c6b4 Merge branch 'css-image-scaled' into 'master'
Css image scaled

See merge request GNOME/gtk!62
2018-03-15 23:58:40 +00:00
Emmanuele Bassi
0b4e0ce509 ci: Restore ccache, but do not cache it across jobs
The GitLab cache is kept across jobs, whether they succeeded or not:
this means that if a compiler check fails during the Meson
configuration, the small compiler program gets cached and restored the
next time the job is run, thus failing again.
2018-03-15 18:28:44 +00:00
Matthias Clasen
35f92b5695 Merge branch 'wip/filechooser-non-default-display-gtk4' into 'master'
Fix filechooser dialog using non default display (gtk4)

Closes #83

See merge request GNOME/gtk!60
2018-03-15 17:44:49 +00:00
Matthias Clasen
55d35dd13e Update the expected results in the testsuite
the -gtk-scaled() change in the previous commit makes it so
that we now print out the scale factors. Update the expected
output of affected tests to take that into account.
2018-03-15 13:38:41 -04:00
Timm Bäder
ba52be36c2 gl renderer: Set border program outline state 2018-03-15 18:17:57 +01:00
Timm Bäder
eaf899061a gl renderer: Remove shadow program
Drawing shadows is the same task as drawing text in our case and these
two shaders have been the same thing for quite a while.
2018-03-15 18:12:00 +01:00
Timm Bäder
0a7880110e gl renderer: Fix clipped borders
Stop abusing the clip rect for borders.
2018-03-15 18:11:57 +01:00
Timm Bäder
a475e6671c shaderbuilder: Remove unused API 2018-03-15 16:30:48 +01:00
Timm Bäder
e35132054e gl: Move shaderbuilder into gl/ subdirectory
It only handles OpenGL shaders.
2018-03-15 15:06:46 +01:00
Timm Bäder
ebfadae568 gl renderer: Draw offscreen nodes in device pixels
We need to draw them upscaled, of course. This fixes button hover (or,
more generally, crossfade nodes) in hidpi setups.
2018-03-15 13:52:07 +01:00
Timm Bäder
65e3dda065 testsuite: Add more gl renderer tests 2018-03-15 12:58:51 +01:00
Timm Bäder
f82b3fdb90 gl tests: Update clipped cross fade output 2018-03-15 12:41:11 +01:00
Timm Bäder
d66bfb1a9a testsuite: Add a GL gradient test 2018-03-15 11:15:35 +01:00
Matthias Clasen
a4c2819f91 Make GtkCssImageScaled handle scales properly
We slightly expand the syntax of -gtk-scaled to allow
specifying an explicit scale after each image, and then
we create a single-image GtkCssImageScaled with the
preferred scale in compute().
2018-03-15 06:04:08 -04:00
Timm Bäder
3a5630358f gl renderer: Fix rounded clips in hidpi 2018-03-15 11:01:53 +01:00
Timm Bäder
afffc696f4 spinbutton: Remove an unnecessary queue_draw call
This is done automatically in case the spinbutton value actually
changes.
2018-03-15 09:44:49 +01:00
Timm Bäder
a0729f9683 gdk: Remove unused variable 2018-03-15 09:25:42 +01:00
Timm Bäder
04fadc508b GskGLDriver: Use g_assert_cmphex for GL constants 2018-03-15 09:25:42 +01:00
Matthias Clasen
16bf07fe33 Trivial formatting fixes
Fix some whitespace problems.
2018-03-14 23:23:03 -04:00
Daniel Boles
2f16c092a5 testspinbutton: Add button to toggle wrap on Spins
I found myself wanting to test this for something else, so let's test
it. It revealed a bug immediately!

https://gitlab.gnome.org/GNOME/gtk/issues/88
2018-03-14 23:09:51 +00:00
Daniel Boles
55664f95ab testspinbutton: Orient box orthogonally to Spins
This makes better use of space.
2018-03-14 23:01:06 +00:00
Timm Bäder
8b800fa775 testsuite: Simplify GL test definition 2018-03-14 17:28:41 +01:00
Timm Bäder
d978d4af59 testsuite: Add a GL tests for clipped rounded clipped nodes 2018-03-14 17:28:41 +01:00
Timm Bäder
d417595a05 gl renderer: Draw rounded clip child to a texture
And then clip the texture using the current (maybe also rounded) clip.
This way, the result is correct. We don't necessarily have to do the
offscreen drawing in any case, but got the safe route for now.
2018-03-14 17:28:41 +01:00
Timm Bäder
90c8619f42 gl renderer: Properly draw gl textures from a different context
Temporarily switch to the texture's gl context, download the texture and
create a new one in our context for it.
2018-03-14 17:28:41 +01:00
Timm Bäder
955dca950c fixed: Remove snapshot implementation
It does the same thing as the default implementation.
2018-03-14 17:28:41 +01:00
Timm Bäder
5f2283c0ab snapshot: Ignore 0 sized clip nodes
This may happen due to the intersection before.
2018-03-14 17:28:41 +01:00
Carlos Soriano
f06f0a0dee gtkmenu: Remove unused constant
It was used in gtk3 but not in master anymore.
2018-03-14 16:05:08 +01:00
Jonas Ådahl
a48eaa1954 entrycompletion: Realize popup after setting screen
Realization is done as a side effect of calling
_gtk_entry_completion_resize_popup(), but if this is done before the
GdkScreen of the GtkWindow is set up correctly, it may result in the
widget being unrealized when the screen is updated. This may happen
when the file dialog parent window is not using the default GdkDisplay.

To avoid this issue, realize the popup after the screen has been
properly set up.

Fixes #83 in gtk4
2018-03-14 15:37:26 +08:00
Timm Bäder
417e8d6ca4 snapshot: Add missing (nullable) annotation 2018-03-13 23:43:29 +01:00
Timm Bäder
d4c9a35193 widget: Simplify setting a default direction
No reason for the second paramter to be a pointer.
2018-03-13 23:43:29 +01:00
Timm Bäder
81a7f8e00c label: Remove dead NULL check
We only create the gesture when priv->select_info is !NULL.
2018-03-13 23:43:29 +01:00
Christoph Reiter
f91ea2ce37 Merge branch 'master' into 'master'
Add proper annotation for gdk_frame_clock_get_refresh_info

See merge request GNOME/gtk!55
2018-03-13 20:30:53 +00:00
Christoph Reiter
5838ac3d1d run-docker.sh: Disable SELinux for the container and update the image tag
On Fedora and similar SELinux by default prevents containers accessing
mounted host directories. This script is just used for testing,
so disable it.
2018-03-13 21:13:31 +01:00
Emmanuele Bassi
27abc9fefe Update CONTRIBUTING.md
Update the instructions to match the GitLab workflow.
2018-03-13 18:13:46 +00:00
Emmanuele Bassi
b939af0090 ci: Add explicit dependency on "which"
The xvfb-run script depends on it, but it seems Fedora packages ended up
forgetting about it.
2018-03-13 17:56:44 +00:00
Emmanuele Bassi
4e2790ea74 ci: Remove ccache
There are issues with the caching; CI will randomly fail to create new
files used when testing features.
2018-03-13 17:03:27 +00:00
Emmanuele Bassi
9a5947758c ci: Add GLib build dependencies
Since we may end up building GLib as a subproject, we're going to need
all the appropriate GLib build dependencies as well as the GTK ones.
2018-03-13 16:28:42 +00:00
Emmanuele Bassi
44469197d5 ci: Use a different Docker image
I've rebuilt the new Docker image we use for CI to include GStreamer in
the dependencies.

We really need to have the Docker registry hosted on gnome.org, to avoid
pointing people at Dockerhub.
2018-03-13 16:05:03 +00:00
Emmanuele Bassi
9d045db142 Annotate gdk_gl_texture_new() appropriately
This is a constructor, and it needs a transfer annotation.

Sadly, the resulting introspection representation is going to be a less
than satisfactory `Gdk.gl_texture_new()`, because there is no such thing
as a GdkGLTexture in the public API.
2018-03-13 16:00:55 +00:00
Emmanuele Bassi
73ffb7f5e9 Initialise variables
The dx and dy variables may be left uninitialized by the coordinate
translation — or so the C compiler thinks. Let's avoid a warning when
building.
2018-03-13 16:00:55 +00:00
Emmanuele Bassi
a0d2d1f44b Use the same arguments for print backends
All the print backend shared modules should use the same C preprocessor
symbols.
2018-03-13 16:00:55 +00:00
Emmanuele Bassi
fe1586ca3d ci: Add gstreamer to the Docker image
We're going to need it for the media interface.
2018-03-13 16:00:55 +00:00
Emmanuele Bassi
b52da5682e ci: Use the right path for the logs
The meson-logs directory is under the `_build` directory.
2018-03-13 16:00:55 +00:00
Matthias Clasen
3b45019ba2 Merge branch 'query-wayland-registry' into 'master'
gtkimmodule: make match_backend() query

See merge request GNOME/gtk!56
2018-03-13 02:09:26 +00:00
Daniel Boles
9aedafa39e FileChooserWidget: Fix leaks in .get_subtitle()
Now that subtitle's default value "Searching" for OPERATION_MODE_SEARCH
is duplicated as it should be, we cannot reassign other strings to it
anymore, as that resulted in the original dupe of "Searching" leaking.

Fix this by only assigning the dup'd "Searching" after trying to get
more specific values, not before. We therefore need to set it to NULL
during its declaration, and that means we needn't in the final else.
2018-03-13 00:20:17 +00:00
Daniel Boles
fc9dc97430 FileChooserWidget: Avoid crash freeing static str
Having a FileChooserDialog in location-entry mode then pressing
<primary>f to move to search mode would crash with an invalid free().

In that case, FileChooserWidget.get_subtitle() returned a static string
straight from gettext. This crashed when the GBinding from :subtitle to
FileChooserDialog’s HeaderBar:subtitle shortly tried to free the string.

Fix by duplicating the string before returning it, like all other paths.

https://bugzilla.gnome.org/show_bug.cgi?id=791004
2018-03-12 23:07:50 +00:00
Peter Bloomfield
86cd5c04bd gtkimmodule: make match_backend() query
…the wayland registry.

Wnen _gtk_im_module_get_default_context_id calls
match_backend (context_id) and the default GdkDisplay
is wayland, match_backend() should return TRUE only if
gdk_wayland_display_query_registry (display, "gtk_text_input_manager")
returns TRUE.
2018-03-12 17:46:57 -04:00
Stas Solovey
d11c78c46f Update Russian translation
(cherry picked from commit 0e01668683)
2018-03-12 21:08:41 +00:00
Aurimas Černius
3a377bb0a3 Updated Lithuanian translation 2018-03-12 23:00:48 +02:00
Daniel Boles
bde1328a07 testinfobar: Test more properties, response signal
Also test :message-type, :show-close-button, and ::response.
2018-03-12 19:16:07 +00:00
Marek Černocký
7ec3b52d97 Updated Czech translation 2018-03-12 20:08:48 +01:00
Mart Raudsepp
86f3e67775 Update Estonian translation
(cherry picked from commit e4e2b7687d)
2018-03-12 16:28:27 +00:00
Benjamin Otte
13d943f763 texture: Change download vfunc
A problem with textures is that they can become too big for GPU memory,
which would require tiling. But for tiling we only need to download
the pixels needed by the tile.

Similarly, there might be interest to not upload full textures if a
renderer knows it only needs a small part.

Both of these methods require the ability to specify an area of the
texture to be downloaded. So change the download vfunc to include
this parameter now before we add even more textures later.

A private gdk_texture_download_area() function has also been added, but
nobody is using it yet.
2018-03-12 17:21:45 +01:00
Benjamin Otte
e5813b3ae7 texture: Export gdk_memory_texture_new() and GdkMemoryFormat
Also add tests for all these newfangled formats.
2018-03-12 17:21:45 +01:00
Daniel Boles
5fe14e06da Merge branch 'wip/dboles/frame-yalign-byealign' into 'master'
Frame: Erase the now-useless property label-yalign

See merge request GNOME/gtk!40
2018-03-12 16:17:11 +00:00
Daniel Boles
2072953375 ListBox: Avoid ::row-activated/Row::activate ambig
…uity, by adding a doc comment to Row::activate explaining what it does
and why it is probably not what the user reading that is looking for.

https://bugzilla.gnome.org/show_bug.cgi?id=794008
2018-03-12 16:12:09 +00:00
Piotr Drąg
d0757f6436 Update Polish translation 2018-03-12 16:48:31 +01:00
Daniel Boles
6bb1f0dbf3 testinfobar: Add simple test of :visible/:revealed
This exists merely to prove that, having added :revealed, show() and
hide() now work reliably, as does set_revealed() for the animated case.

https://bugzilla.gnome.org/show_bug.cgi?id=710888
2018-03-12 15:30:55 +00:00
Sander Sweers
fe8225e573 Add proper annotation for gdk_frame_clock_get_refresh_info
See https://gitlab.gnome.org/GNOME/gtk/issues/77
2018-03-12 16:07:39 +01:00
Daniel Boles
e4578ca7bf Frame: Erase the now-useless property label-yalign
The border is now drawn on the frame node, not using an internal border
node, so we are no longer able to align the label to vertically overlap
the border. The property no longer performs its original purpose, & nor
is it a useful candidate for giving a new role, so no point keeping it.

https://bugzilla.gnome.org/show_bug.cgi?id=778886
2018-03-12 14:17:32 +00:00
Balázs Meskó
362ef4449c Update Hungarian translation 2018-03-12 06:21:39 +00:00
Piotr Drąg
be9001f0da Update POTFILES.in 2018-03-11 19:28:03 +01:00
Matthias Clasen
3ee4d6fc0f Merge branch 'module-reorg' into 'master'
Consolidate print backends into one directory

See merge request GNOME/gtk!53
2018-03-11 16:47:43 +00:00
Matthias Clasen
a78e9f2261 Consolidate print backends into one directory
This will let us use GTK_PATH to load them uninstalled, which
is useful for in-tree tests.
2018-03-11 12:38:35 -04:00
Matthias Clasen
da8e83f9cb Exit cleanly if no display is found
We should not try to create an inspector window and generate
tons of ugly warnings in this case.
2018-03-11 08:14:14 -04:00
Marek Černocký
9ded44b3de Updated Czech translation 2018-03-11 09:43:01 +01:00
Marek Černocký
f5c3b2c691 Updated Czech translation 2018-03-11 08:14:09 +01:00
Marek Černocký
0f533ed61d Fixed typo in script name Kjohki -> Khojki 2018-03-11 08:12:31 +01:00
Matthias Clasen
527d265bea Merge branch 'wip/matthiasc/snapshot' into 'master'
Implement builder pattern for GtkSnapshot

See merge request GNOME/gtk!52
2018-03-11 05:39:00 +00:00
Matthias Clasen
d55da3fd44 Use GtkSnapshot getters
We can avoid direct struct access and gtksnapshotprivate.h
everywhere.
2018-03-11 00:31:44 -05:00
Matthias Clasen
7c18911c00 GtkSnapshot: Add getters
These getters can be useful when creating new snapshots
in a snapshot() vfunc.
2018-03-11 00:31:44 -05:00
Matthias Clasen
890cd45ce4 Document new snapshot api 2018-03-11 00:31:44 -05:00
Matthias Clasen
eed279ad91 GtkSnapshot: Drop init/finish
We are ont using stack-allocated snapshots anymore.
2018-03-11 00:31:44 -05:00
Matthias Clasen
694f1d8ecd Stop using stack-allocated snapshots
Use the new/free api instead of init/finish
for GtkSnapshot.
2018-03-11 00:31:44 -05:00
Matthias Clasen
e23f641e49 GtkSnapshot: Implement the builder pattern
Make GtkSnapshot a refcounted boxed type, and add
public API that follows the builder pattern described
here: https://blogs.gnome.org/otte/2018/02/03/builders/
2018-03-11 00:31:44 -05:00
Timm Bäder
7eb3736760 GdkCursor: Add some missing (nullable) annotations 2018-03-09 11:57:23 +01:00
Timm Bäder
00d37c80f8 spinbutton: Remove priv pointer 2018-03-09 09:24:20 +01:00
Matthias Clasen
e0771a54a2 Avoid warnings
When generating introspection data, we instantiate types without
calling gtk_init, so make sure that extension points are registered
before the type is trying to implement them.
2018-03-09 02:13:13 -05:00
Pavel Roskin
01fda3b85e x11: Avoid a division by zero
This is similar to f44baf51d9 but for RandR 1.3 servers like
x11rdp and Windows Exceed which don't return a refresh rate. Avoid a
crash when that happens.

https://bugzilla.gnome.org/show_bug.cgi?id=775546
2018-03-08 16:20:01 +01:00
Timm Bäder
28cda7f516 separator: Remove priv pointer 2018-03-07 20:42:32 +01:00
Timm Bäder
faabb808be menubutton: Remove priv pointer 2018-03-07 20:26:51 +01:00
Timm Bäder
38fa5ab57b widget: Add a translate_coordinates version for doubles
So we can use that one when translating event coordinates. Also adapt
the widgetfocus demo to ensure this works.

We should probably at some point delete either the int or the double
version.
2018-03-07 20:17:39 +01:00
Timm Bäder
034017425c linkbutton: Remove priv pointer 2018-03-07 20:17:39 +01:00
Timm Bäder
4dfe4a6476 expander: Remove label-fill property
It's just setting some internal boolean and nothing else. It's like this
in gtk3 as well so it can't be too important either.
2018-03-07 20:17:39 +01:00
Timm Bäder
6cc824af43 Merge branch 'expander-add-like-bin' into 'master'
expander: Check for an existing child when adding

See merge request GNOME/gtk!48
2018-03-07 19:09:30 +00:00
Benjamin Otte
db6fed1496 overlay: Add GtkOverlay::measure child property
It determines whether a child is included in the overlay's size
measurement.

The first user is (gonna be) GtkVideo.
2018-03-07 16:17:15 +01:00
Benjamin Otte
325f6121ba eventcontroller: Remove unused evmask member variable 2018-03-07 16:17:15 +01:00
Benjamin Otte
074e7001dc eventcontroller: Get rid of constructed vfunc
Instead, add the controller to the widget in set_property.
2018-03-07 16:17:15 +01:00
Benjamin Otte
8920639a2b texture: Add GdkMemoryTexture
GdkMemoryTexture is a texture implementation for holding data in memory
(read: GBytes). You specify the GdkMemoryFormat that data is in and off
you go.

Renderers can use this to add uploads in various different formats and
don't need to fallback to GDK doing the conersion on the CPU.

Supported formats can be extended if we need new ones, for now I just
added the relevant ones for Cairo and GdkPixbuf.

The constructor is also private still, because I'm not sure we want to
export GdkMemoryFormat.
Wrappers that do from_cairo_surface() and for_pixbuf() do exist though.
2018-03-07 16:17:15 +01:00
Benjamin Otte
160e6ad6f6 gdk: Split out GL texture
Put GdkGLTexture into its own file and rename the API to
gdk_gl_texture_foo() instead of gdk_texture_foo_for_gl().

Apart from naming, no actual code changes.
2018-03-07 16:17:15 +01:00
Carlos Garnacho
b49c6cdcb1 imwayland: Fix parent type
It was inadvertently changed in commit 15cc20e7b.

https://gitlab.gnome.org/GNOME/gtk/issues/58

Closes: #58
2018-03-07 10:58:22 +01:00
Matthias Clasen
cc6d60afa4 Use gio-querymodules
GIO has this facility, so we should use it.
At the same time, make sure the immodules directory
exists, even if we don't install any modules there
outselves.
2018-03-06 20:54:26 -05:00
Matthias Clasen
5ec41fb47b Make debug messages work earlier
We need to be able to produce debug output during module
loading. This change ensures that we can.
2018-03-06 20:54:26 -05:00
Alexandre Franke
122e7b16e6 Update French translation 2018-03-06 21:01:36 +00:00
Peter Bloomfield
a207ab6105 expander: Check for an existing child when adding
Now that GtkExpander subclasses GtkContainer instead of GtkBin, it needs
its own guard against adding more than one child.

Also, the documentation should no longer describe adding a child as if
it is descended from GtkBin.
2018-03-06 14:26:08 -05:00
Timm Bäder
de537a0755 entry: Fix invisible cursors 2018-03-06 20:04:30 +01:00
Timm Bäder
2f5d5ca9f8 GdkSelectionInputStreamX11: Plug a memory leak 2018-03-06 19:59:29 +01:00
Timm Bäder
49a7bf267b GdkSelectionOutputStreamX11: Plug a memory leak 2018-03-06 19:47:18 +01:00
Timm Bäder
f5e290517a expander: fix sizes in resize_toplevel
We can't use gtk_widget_get_allocation for either non-anchored widgets
(which happens with the child widget when the expander is unexpanded)
nor toplevel windows since that will include the window decorations.

Fixes #70 in gtk4
2018-03-06 18:12:49 +01:00
Timm Bäder
7dc4669d01 viewport: Remove priv pointer 2018-03-06 14:37:28 +01:00
Timm Bäder
22457822eb expander: Attach the gesture to the title widget
Instead of tracking whether the click happened inside the title widget
ourselves, just attach the gesture to the title widget.
2018-03-05 17:24:22 +01:00
Rūdolfs Mazurs
564397f391 Update Latvian translation 2018-03-04 19:24:16 +00:00
Rūdolfs Mazurs
4519c6696c Update Latvian translation 2018-03-04 19:18:11 +00:00
Timm Bäder
84b4f85f1a overlay: Make forall() remove-safe
Since this is a GtkContainer, forall will be used to destroy all the
widgets.
2018-03-04 20:04:43 +01:00
Timm Bäder
0bb1e1b1fd overlay: Fix GSlide/g_free mixup
We free the allocated data later using g_free, so don't use GSlice when
allocating it.
2018-03-04 20:04:17 +01:00
Timm Bäder
53410bab0f overlay: Fix remove implementation
Use the child widget list of the overlay, not the passed child.
2018-03-04 20:03:54 +01:00
Timm Bäder
31a0739bf3 imcontextxim: Move initialisation into _init function
We are creating these using g_object_new, so the _new function is never
called, resulting in a NULL mb_charset. Fix this by moving the
initialisation into the _init function.
2018-03-04 19:55:54 +01:00
Benjamin Otte
aa175ec2f5 Merge branch 'set-client-widget-nullable' into 'master'
gtkimcontextxim: fix gtk_im_context_xim_set_client_widget not handling widget=NULL

See merge request GNOME/gtk!46
2018-03-04 18:29:45 +00:00
Timm Bäder
8a062f4f9a gskpango: Don't create text nodes for clipped text
Measure the text here directly and check if the created node bounds will
be clipped away before even creating the text node.
2018-03-04 19:15:03 +01:00
Timm Bäder
2d50d9ebe6 rendernodes: Add gsk_text_node_new_with_bounds
An alternative GskTextNode constructor that does no text measuring. That
way, we can measure the text before and check if the node will be
outside of the current clip anyway.
2018-03-04 19:12:04 +01:00
Timm Bäder
ee8132a439 rendernodes: Add missing nullable annotation 2018-03-04 19:12:04 +01:00
Timm Bäder
0234e8e2c9 gl renderer: Limit texture node size to clip 2018-03-04 19:12:04 +01:00
Timm Bäder
f44642c7cb overlay: Remove child list 2018-03-04 19:12:04 +01:00
Timm Bäder
9beb5490f5 overlay: Remove priv pointer 2018-03-04 19:12:04 +01:00
Timm Bäder
da431b2a43 glglyphcache: Pass lookup key to g_hash_table_lookup directly 2018-03-04 19:12:04 +01:00
Timm Bäder
cfbac153a3 overlay: Fix coordinates in child_update_style_classes
Both main child and all others are in the same coordinate space, so no
need to add the parent position here.
2018-03-04 19:12:04 +01:00
Timm Bäder
ddcc9b9f2f overlay: Don't chain up in size_allocate
The GtkBin size_allocate implementation will allocate a size to the main
child, which GtkOverlay already does.
2018-03-04 19:12:04 +01:00
Timm Bäder
8ebec46db5 entry: Remove priv pointer 2018-03-04 19:12:04 +01:00
Timm Bäder
71ae2fae2e container: Remove unused struct member 2018-03-04 19:12:04 +01:00
Timm Bäder
1596c61003 testsuite: Remove GL text test case
This was just testing that text nodes do alpha correctly, but the test
even breaks if the default font is different from the one that was used
to create the reference image, so drop it for now.
2018-03-04 19:12:04 +01:00
Timm Bäder
891c37a4cb label: Simplify ensure_layout()
use an early return for an already existing layout.
2018-03-04 19:12:04 +01:00
Christoph Reiter
8c2c748c11 gtkimcontextxim: fix gtk_im_context_xim_set_client_widget not handling widget=NULL
gtk_im_context_set_client_widget() allows passing NULL as widget to signal that
the widget no longer exists. The xim implementation didn't handle that
case which led to the test suite on gitlab-ci failing.
2018-03-04 18:40:12 +01:00
Christoph Reiter
235ff253ff Merge branch 'gi-a11y' into 'master'
Include gtk/gtk-a11y.h in introspection file.

See merge request GNOME/gtk!43
2018-03-04 10:10:20 +00:00
Christoph Reiter
331c4b5954 Merge branch 'include-gtkstackaccessible' into 'master'
a11y: Include gtkstackaccessible.h in gtk-a11y.h

See merge request GNOME/gtk!41
2018-03-04 09:43:34 +00:00
Tomasz Miąsko
7ba53de1e8 Include gtk/gtk-a11y.h in introspection file.
The gir XML file contains description of types and functions from
gtk/gtk-a11y.h. Indicate that this header should be included in addition
to gtk/gtk.h in applications written in C. #56
2018-03-03 20:51:30 +01:00
Tomasz Miąsko
c2b4da128a a11y: Include gtkstackaccessible.h in gtk-a11y.h 2018-03-03 20:01:54 +01:00
Bruce Cowan
ec2cdac298 Update British English translation
(cherry picked from commit 3059df0d4d)
2018-03-02 22:09:58 +00:00
Piotr Drąg
ce2b6d9eb7 Update POTFILES.skip 2018-03-02 21:27:43 +01:00
Piotr Drąg
d8956aeff2 Update POTFILES.skip 2018-03-02 21:26:21 +01:00
Benjamin Otte
634717d0b9 gtk: Remove unused header files in gtk/ui/ 2018-03-02 02:00:25 +01:00
Benjamin Otte
88de098711 entry: Remove cursor adjustment APIs 2018-03-02 02:00:25 +01:00
Benjamin Otte
4ac3f916d0 css: Parse hex colors with alpha value
The CSS color spec version 4 introduces this, support has hit Safari,
Chrome and Firefox, so this looks like a feature that's here to stay.

https://drafts.csswg.org/css-color/#hex-notation
2018-03-02 02:00:24 +01:00
Piotr Drąg
67b959f1a7 Update POTFILES.in 2018-03-01 18:38:05 +01:00
Christoph Reiter
48f68bb881 Merge branch 'quartz-missing-config-include-gtk4' into 'master'
macos: Fix missing gdk symbol exports for gtk dnd

See merge request GNOME/gtk!39
2018-03-01 13:46:26 +00:00
Christoph Reiter
26e2af26ed macos: export gdk_quartz_drag_source_context()
It's used in the gtk dnd code but not exported in gdk.
Append a "_libgtk_only" suffix as with other internal exports and
export the symbol.

See #32
2018-03-01 14:36:44 +01:00
Emmanuele Bassi
78c130543c ci: Store the logs on build failure
We should save the logs directory when the CI pipeline fails, so that we
have a chance at debugging the failure.
2018-03-01 17:09:22 +07:00
Emmanuele Bassi
4b33cc5f89 ci: Update the configuration options
The options were renamed in commit 7b32900c55.
2018-03-01 17:08:27 +07:00
Emmanuele Bassi
6fa2c7e3b7 xim: Use NULL-safe string comparison
The locale string may be NULL.
2018-03-01 16:44:02 +07:00
Matthias Clasen
32873cc94b Merge branch 'wip/matthiasc/immodule-cleanup' into 'master'
Convert immodules to use an extension point

See merge request GNOME/gtk!34
2018-03-01 06:38:39 +00:00
Timm Bäder
881046b46e entry: Simplify cursor management
Since cursors are per-widget now and the icons are widgets, we can just
set the cursors once.
2018-02-28 10:35:31 +01:00
Christoph Reiter
94d6d56913 macos: Fix gdk_quartz_drag_context_get_dragging_info_libgtk_only symbol export
The header got included without config.h being included first which resulted in the
wrong _GDK_EXTERN macro being used. As a result some symbols weren't exported
and starting a DnD action would crash in the linker.

This patch adds config.h includes in all places where clang complained about
_GDK_EXTERN redefinitions.

See #32 for more info.
2018-02-27 20:04:34 +01:00
Patrick Griffis
971f46e1f2 build: Error if no backends enabled 2018-02-27 13:42:28 -05:00
Timm Bäder
d2b5436462 gl: Make blur nodes with radius ∈ ]0; 1[
Otherwise, the radius here ends up being 0 and we don't draw anything at
all.
2018-02-27 14:22:08 +01:00
Timm Bäder
cac3e7705d gsk: Increase blur node bounds by blur radius
Otherwise, the resulting node will be too small and the result looks
clipped.
2018-02-27 14:12:25 +01:00
Timm Bäder
c02090b1f6 tests: Add testblur 2018-02-27 12:51:07 +01:00
Timm Bäder
1355c9ae88 scale: Remove priv pointer 2018-02-27 12:39:04 +01:00
Timm Bäder
813ccb6378 emojichooser: Only measure reference emoji once
Doing that once for every emoji is pretty slow and unnecessary as the
width does not change.
2018-02-27 11:45:34 +01:00
Timm Bäder
3c33e541cd entry: Add motion controller
Do the mouse cursor un-obscuring in the ::motion handler instead of in
the ->event handler. We don't get rid of the GtkWidgetClass::event
handler altogether that way, but it's a step in the right direction.
2018-02-27 11:05:04 +01:00
Timm Bäder
83c74ff7d0 spinbutton: Fold function into only caller 2018-02-27 10:30:14 +01:00
Timm Bäder
7c59ac2e4a spinbutton: Remove unused macro 2018-02-27 10:30:14 +01:00
Timm Bäder
67258c69f0 checkbutton: Don't reorder non-existent indicator widget 2018-02-26 18:23:20 +01:00
Timm Bäder
9db76cebb4 entry: Check gdk_event_get_coords return value
We use the x/y values later on to decide what to do with the event.
2018-02-26 12:57:17 +01:00
Timm Bäder
354eab70da entry: Allocate icons at full height
Makes for a larger hit area for pointing devices. If vertical centering
is still desired, GtkWidget:halign can be set on the icon widgets.
2018-02-26 12:53:49 +01:00
Timm Bäder
a9cd2d8181 widget: Simplify set_style_context
No need to use widget->priv later if we already define a priv pointer
before.
2018-02-26 08:42:38 +01:00
Timm Bäder
c7294ab90e button: Remove priv pointer
This way we can also move the GtkButtonPrivate definition into
gtkbutton.c
2018-02-25 16:47:20 +01:00
Timm Bäder
94493414b5 filechooserwidget: Make the location entry hexpand 2018-02-25 16:47:20 +01:00
Timm Bäder
fef4f0704a textview: Use content size when validating contents 2018-02-25 16:47:20 +01:00
Timm Bäder
dc1612b865 contentsformat: Avoid a GPtrArray
We know how many items this array will have in advance, so just malloc
enough.
2018-02-25 16:47:20 +01:00
Timm Bäder
7d7045bc35 widget: Remove some unneeded prototypes 2018-02-25 16:47:20 +01:00
Matthias Clasen
04cc589a61 fix the build 2018-02-24 21:44:03 -05:00
Matthias Clasen
ef556689f8 Update docs for changed options 2018-02-24 21:34:40 -05:00
Matthias Clasen
ca794f909a Update docs for immodules 2018-02-24 21:34:40 -05:00
Matthias Clasen
15cc20e7b5 Always include platform immodules
No need to load these as gio modules, we just include
them in libgtk.
2018-02-24 21:34:40 -05:00
Matthias Clasen
29bcc38ae6 Convert immodules to use an extension point
Add an extension point called gtk-im-module, which requires
the type GtkIMContext. Simplify the loading by using GIO
infrastructure. Drop the locale filtering for now, I don't
think it is really necessary nowadays.

Convert existing platform modules to gio modules.
Sill to do: Drop the conditional build machinery.
Either always include them, or never.
2018-02-24 21:34:40 -05:00
Matthias Clasen
e6bf832514 Don't mention papi in options docs
The papi print backend has been removed.
2018-02-24 21:31:52 -05:00
Matthias Clasen
79bd123911 Add some debug output to print backend loading 2018-02-24 21:31:52 -05:00
Matthias Clasen
ab322e33aa README.md: Minor updates 2018-02-24 21:31:52 -05:00
Timm Bäder
4e23daa998 widget: Don't export propagate_hierarchy_changed 2018-02-23 22:14:38 +01:00
Timm Bäder
eb66d6bcc6 widget: Simplify _set_name
No need for a new_name local variable here.
2018-02-23 22:08:45 +01:00
Timm Bäder
f5afc17d26 button: Remove ::event handler
GRAB_BROKEN events cause the ::cancel handler of the gesture to be
emitted, which is where we also call gtk_button_do_release, so this
GtkWidget::event handler is unnecessary.
2018-02-23 21:57:49 +01:00
Timm Bäder
8720b2d8c5 widget: Correct translate_coordinate documentation
We write 0 to dest_x and dest_y nowadays if the two widgets do not have
a common ancestor.
2018-02-23 21:57:49 +01:00
GNOME Translation Robot
7835385264 Update Scottish Gaelic translation
(cherry picked from commit f3f75f62e8)
2018-02-23 17:35:38 +00:00
GNOME Translation Robot
21e3a8daeb Update Scottish Gaelic translation
(cherry picked from commit 68eb897900)
2018-02-23 17:25:51 +00:00
Timm Bäder
a302fd34e8 Merge branch 'text-view-measure' into 'master'
text-view: make measure() use the layout height

See merge request GNOME/gtk!37
2018-02-23 16:03:53 +00:00
Benjamin Otte
45603f70a8 vulkan: Don't quiet the compiler
This reverts 76461a8004.

We don't want to quiet the compiler here because new warnings should be
added to the enum the moment they become available.
2018-02-23 14:12:47 +01:00
Benjamin Otte
4cfaee99e7 vulkan: Add error strings for missing VkResults
Also, guard newer error returns with proper #if, so they don't trip up
older Vulkan versions.
2018-02-23 14:12:47 +01:00
Timm Bäder
0b9dca3d55 placessidebar: Don't create a GtkWindow for drag icons
Just use the drag_widget we create before, since GtkWindow drag icons
are not allowed anymore.
2018-02-23 11:08:53 +01:00
Timm Bäder
fd20e42932 range: Fix typo in allocate_trough
lower - upper results in something negative of course.
2018-02-23 10:59:21 +01:00
Timm Bäder
94093fd18e widget: Improve warning for negative size_allocate dimensions
Print widget class, css node name and address.
2018-02-23 10:47:19 +01:00
Timm Bäder
01d7ec2c83 range: Fix coord/value translation
Save the x/y we allocated the slider at, which is different than
the coordinates we get from any of the widget allocation accessors.
2018-02-23 10:47:18 +01:00
Timm Bäder
79426a0a50 range: Compute slider allocation in update_initial_slider_position
Instead of outside at every call-site.
2018-02-23 10:47:05 +01:00
Timm Bäder
4095cac75c range: Remove GtkScale special casing
This is unnecessary these days due to the negative margins of the
slider.
2018-02-23 10:47:05 +01:00
Timm Bäder
af4474f752 range: Simplify allocate_trough 2018-02-23 10:47:05 +01:00
Timm Bäder
1fea980930 range: Simplify compute_slider_position 2018-02-23 10:47:05 +01:00
Timm Bäder
4c952da6cb range: Fix coordinates in coord_to_value
The given coordinate needs to be trough-relative, since that's what the
slider is relative to. Also use the trough's content size and not the
outer size.
2018-02-23 10:47:05 +01:00
Timm Bäder
52f877d606 range: Remove some unneeded includes 2018-02-23 10:47:05 +01:00
Timm Bäder
82d459f015 range: Remove priv pointer 2018-02-23 10:47:05 +01:00
Timm Bäder
ece26b847b range: Stop tracking mouse position
We have the mouse position available everywhere we want to use it
anyway, so use that instead.
2018-02-23 10:47:05 +01:00
Timm Bäder
e9ecfeaca6 range: Stop tracking mouse location
Instead, just use gtk_widget_pick() to get the widget at the pointer
position whenever we need it.
2018-02-23 10:47:05 +01:00
Timm Bäder
69fa3c4876 range: Don't call calc_slider() on value changes
calc_slider() updates the slider visibility, but that can only change if
the upper or lower change.
2018-02-23 10:47:05 +01:00
Timm Bäder
8a38f62915 range: Remove unnecessary queue_draw calls 2018-02-23 10:47:05 +01:00
Timm Bäder
c200758c26 range: Remove scale special case
This is done automatically nowadays since the value is shown in a
widget.
2018-02-23 10:47:05 +01:00
Peter Bloomfield
1828c6b1cd text-view: make measure() use the layout height
GtkTextView::measure should include the height of the text-layout in its
minimum and natural heights. This fixes scrolling when a text-view has a
scrolled-window ancestor that is not its immediate parent.
2018-02-21 08:22:42 -05:00
Emmanuele Bassi
96f8eec50b Merge branch 'gitlab-ci-run-gtk-tests' into 'master'
gitlab-ci: run parts of the test suite

See merge request GNOME/gtk!22
2018-02-21 12:07:37 +00:00
Emmanuele Bassi
88d419456d build: Do not eagerly disable checks on release builds
Release builds should only disable cast checks, to match what we used
to do back with the Autotools builds.

The Autotools build had an "--enable-debug=no" option, but that was
rarely used; Meson has debug, debugoptimized, release, and plain build
types, but we considered the "release" build types as the old "disable
all debugging code", which is not really accurate.

Disabling assertions and preconditon checks should be left to people
with constrained environments and/or packagers; they are supposed to
use the "plain" build type, and override the CFLAGS themselves.
2018-02-20 13:22:01 +00:00
Emmanuele Bassi
a7e96675bd build: Use get_supported_arguments()
Instead of checking each flag one by one, use the appropriate method of
the Meson compiler object.
2018-02-20 13:18:28 +00:00
Matthias Clasen
bfc81767ba Drop no-longer existing im modules
This was just dead code. The actual modules have already
been removed.
2018-02-19 18:38:20 -05:00
Christoph Reiter
65c3f532cf gitlab-ci: run parts of the test suite
This runs the tests in testsuite/{css,gtk,tools}
All others suites have failing tests and need more work.
2018-02-19 19:43:42 +01:00
Matthias Clasen
a7df2fe7f3 Merge branch 'gtk-debug-flags-with-open-display-master' into 'master'
gtk_init: Fix debug flags handling when a display is already open

See merge request GNOME/gtk!27
2018-02-19 18:35:21 +00:00
Matthias Clasen
4a0854484f Merge branch 'tests-set-schema-dir' into 'master'
tests: Make GSETTINGS_SCHEMA_DIR point to the compiled schemas in the build dir

See merge request GNOME/gtk!21
2018-02-19 18:28:00 +00:00
Christoph Reiter
8ad81a35e1 gtk_init: Fix debug flags handling when a display is already open
The code assigning the display to the debug_flags struct gets only
called when the default display changes, which never happens
when there already is one.

This makes it call the change callback in case a display is already
there.

The same fix was applied to gtk3 in !26 where calling gdk_init()
before gtk_init() would trigger this case. With gdk_init() gone
in master this is less likely to happen, but still possible
if gdk_display_open() is called before gtk_init().

See https://gitlab.gnome.org/GNOME/pygobject/issues/166
2018-02-19 19:24:00 +01:00
Matthias Clasen
9ea80a7506 Remove some unused code
No more callers of _gtk_find_module.
2018-02-18 22:13:38 -05:00
Emmanuele Bassi
b3be9868d8 Remove unused variable in the CUPS print backend
The variable is a leftover from when we were not using the
G_DEFINE_DYNAMIC_TYPE macro.
2018-02-19 02:10:52 +00:00
Emmanuele Bassi
8f273d5e02 Fix the build in the Cloudprint print backend
Typos and re-declared functions.
2018-02-19 02:08:02 +00:00
Emmanuele Bassi
96f6f218ef Fix build of the lpr print backend
Some copy-and-paste from the CUPS print backend broke the build on
Continuous, where CUPS does not exist.
2018-02-19 02:07:09 +00:00
Emmanuele Bassi
809603c16c build: Fix checks on enabled print backends
The enabled print backends are a boolean, not a 'yes/no' string.
2018-02-19 02:06:11 +00:00
Matthias Clasen
19a13b316e Fix the build 2018-02-18 18:14:18 -05:00
Matthias Clasen
de0039546b Convert print backends to use a GIOExtensionPoint
Use GIOModule and GIOExtensionPoint. This is the preferred
way to define extensions these days, instead of manually
implementing type modules.
2018-02-18 18:00:42 -05:00
Matthias Clasen
7272610a02 Move the mixed module check function
This is only called in one place, move the function there.
2018-02-18 09:41:29 -05:00
Matthias Clasen
5b4082ac87 Remove gtkmodules.h
We don't use these definitions anymore.

Also clean up the docs wrt to modules.
2018-02-18 09:41:29 -05:00
Matthias Clasen
39d1537211 Stop loading modules
We no longer look at the GTK_MODULES environment variables.
With this commit, we stop loading general-purpose modules
altogether.
2018-02-18 09:41:29 -05:00
Matthias Clasen
a732ebf521 Stop using settings for modules
The Wayland backend was already not supporting this setting
since it is an XSetting that is not backed by a GSetting.

Drop this setting altogether, since we will stop supporting
general-purpose modules.
2018-02-18 09:41:29 -05:00
Christoph Reiter
fef3dfc43e Merge branch 'master' into 'master'
Fix annotation for gtk_tree_view_is_blank_at_pos()

See merge request GNOME/gtk!13
2018-02-18 10:48:23 +00:00
Timm Bäder
909fdc99ad Merge branch 'master' into 'master'
gtkprintbackendcups.c: fix \n at end of a debugging note

See merge request GNOME/gtk!25
2018-02-18 08:08:47 +00:00
Daniel Boles
db4895fbe5 TextLayout: Clarify implementation of special case
This exists to exit early for invisible lines. It attempts to use the
LineDisplay’s direction to create a corresponding PangoLayout. However,
the dir is not yet set by this point, & the display was new0()d, so its
dir is always 0 == TEXT_DIR_NONE. Thus, we always create an LTR layout.

Whatever the original intent, this outcome seems to be OK, so let’s make
the code say what it means, rather than using a misleading conditional.

https://bugzilla.gnome.org/show_bug.cgi?id=779099
2018-02-17 22:18:13 -05:00
Matthias Clasen
f42ebef9d1 calendar: Avoid warnings for new "%OB" format
Use the same code we have in gtk-3-22 to deal with strftime()
not supporting %OB, and avoid compiler warnings for non-literal
format strings.
2018-02-17 17:12:45 -05:00
Ivan Zakharyaschev
4c2f904ac4 gtkprintbackendcups.c: fix \n at end of a debugging note
(cherry picked from commit 7461ceebe3)
(cherry picked from commit d2a4febfa7)
2018-02-17 21:29:34 +03:00
Piotr Drąg
cfcd0f888d Update Polish translation 2018-02-17 17:22:50 +01:00
Christoph Reiter
1253e7bfcb tests: Make GSETTINGS_SCHEMA_DIR point to the compiled schemas in the build dir
With autotools the schemas were compiled into each test suite directory
and the tests set GSETTINGS_SCHEMA_DIR to the test build directory.

With meson's gnome.compile_schemas() we can not define a target directory
so just make sure it is built in the gtk directory and set GSETTINGS_SCHEMA_DIR
to the gtk build directory when running the tests.

This makes the gtk+:gtk suite pass when no gtk is installed on the system.
2018-02-17 09:48:12 +01:00
Benjamin Otte
710c39027b vulkan: Keep track of command buffers
Fixes a rather large memleak.
2018-02-17 08:04:43 +01:00
Benjamin Otte
95ddb57562 cssimage: Get rid of draw vfunc
All remaining users of that vfunc now implement snapshot using cairo
render nodes (win32 and radial).

Also, GtkCssImageClass.snapshot is now NULL, so if a subclass doesn't
implement it, it will now crash.
Previously it would try to call the draw vfunc.
2018-02-17 08:04:43 +01:00
Timm Bäder
1b8a768279 adwaita: Move searchbar style to box child
This way, we avoid a 1px border at the bottom of the actual searchbar
widget and move it instead to the child of a GtkRevealer. Since we can
now use widgets with 0px height, we finally get rid of the 1px border
that was drawn even if the searchbar child was hidden.
2018-02-16 21:23:14 +01:00
Carlos Garnacho
f22403a317 gdk/wayland: Use GDK_AVAILABLE_IN_ALL
GDK_AVAILABLE_IN_4_0 makes it unavailable till 4.0, but we want
it now.
2018-02-16 19:36:41 +01:00
Carlos Garnacho
f64c32113a gtksettings: Remove leftover code
The immodule variable is unused
2018-02-16 19:36:40 +01:00
Timm Bäder
ad776cc57b gl renderer: Increase offscreen texture size
This fixes blurry checkbutton marks in hidpi setups, but breaks button
hover effects. That's another problem.
2018-02-16 18:00:06 +01:00
Timm Bäder
78c6f713dd textview: Implement measure()
Don't use the current layout size as minimum size anymore, that doesn't
make sense. Also move the code from size_request() from gtk2 into the
now current measure() function.
2018-02-16 17:41:41 +01:00
Piotr Drąg
689537d75b Update POTFILES.in 2018-02-16 17:14:08 +01:00
Emmanuele Bassi
6757f42c66 Merge branch 'quartz-symbol-not-found' into 'master'
gdkquartz.h: export pasteboard functions

Closes #32

See merge request GNOME/gtk!19
2018-02-16 12:41:33 +00:00
Tom Schoonjans
ffa85a41d0 gdkquartz.h: export pasteboard functions 2018-02-16 12:16:02 +00:00
Matthias Clasen
e61e6a864b Drop unmaintained print backends
The papi and test printbackends have not seen any
maintenance in a long time.
2018-02-15 22:49:31 -05:00
Piotr Drąg
c65819e289 Update POTFILES.in 2018-02-16 00:25:16 +01:00
Matthias Clasen
dd4bb00a24 Fix the build
This was a mis-merge.
2018-02-15 18:22:53 -05:00
Matthias Clasen
c481a773af Drop non-backend immodules
These are not well integrated, and have not seen any
maintenance in many years.
2018-02-15 16:05:20 -05:00
Bastien Nocera
cc951ac6c8 gtkbookmarksmanager: Use GTK+ 3.0's bookmarks file
There's no reason to use a separate file until the format of the file
changes though, as this just means that GTK+ 3.x and GTK+ 4.x
applications would end up showing different bookmarks in the file
chooser.

https://bugzilla.gnome.org/show_bug.cgi?id=793425
2018-02-15 20:42:21 +01:00
Emmanuele Bassi
d8e476f4db Merge branch 'ci-cache-subprojects' into 'master'
gitlab-ci: cache meson subprojects

See merge request GNOME/gtk!17
2018-02-15 12:58:56 +00:00
Christoph Reiter
1395f78679 gitlab-ci: cache meson subprojects
This saves another 30sec here and reducing clone operations on the
gnome gitlab instance is probably a good idea as well.
2018-02-15 13:43:55 +01:00
Emmanuele Bassi
46436158eb Update the wrap file for GLib
Point to the right repo, now that GLib is on GitLab, instead of relying
on the redirection.
2018-02-15 11:30:03 +00:00
Carlos Soriano
6cef9514ae gtkplacessidebar: Rename favorites to starred
To have more consistency in the name. The same was done in Nautilus in
commit 27b039b37c.
2018-02-15 10:51:04 +01:00
Piotr Drąg
21f599eea4 Update POTFILES.in 2018-02-15 04:29:36 +01:00
Matthias Clasen
d564e397e2 Merge branch 'master' into 'master'
calendar: Use the new "%OB" format in strftime()

Closes #9

See merge request GNOME/gtk!10
2018-02-15 03:07:54 +00:00
Matthias Clasen
656f67eeb7 Merge branch 'wip/issue-21' into 'master'
Mention gtk_button_set_image() and friends in the migration docs

Closes #21

See merge request GNOME/gtk!6
2018-02-15 03:06:28 +00:00
Matthias Clasen
c2531b7ff2 Merge branch 'wip/carlosg/imwayland' into 'master'
modules: Add wayland IM implementation

See merge request GNOME/gtk!4
2018-02-15 03:01:43 +00:00
Matthias Clasen
753138a7cc Merge branch 'issue-2' into 'master'
Update the configuration options

Closes #2

See merge request GNOME/gtk!11
2018-02-15 02:58:16 +00:00
Emmanuele Bassi
716f7cd3f7 Merge branch 'gitlab-ci-docker' into 'master'
Add gitlab-ci support using a prebuilt docker image

See merge request GNOME/gtk!7
2018-02-14 23:38:58 +00:00
Christoph Reiter
dfc1f76be7 Add gitlab-ci support using a prebuilt docker image 2018-02-14 22:47:44 +01:00
Emmanuele Bassi
7f25cc9d4e Rewrite toarray Perl script to Python
We don't need to shell out to Perl to generate a C array out of a text
file.
2018-02-14 15:51:45 +00:00
Emmanuele Bassi
327e7a4ccc build: Rename last 'enable' options
Drop the 'enable-' prefix to conform to the best practices for naming
configuration options in Meson.
2018-02-14 14:14:22 +00:00
Emmanuele Bassi
7b32900c55 build: Rename GDK backend options
Drop the 'enable-' prefix, and always enable all platform-specific
backends. We can disable them depending on the platform. This way,
the documentation printed by `meson configure` remains accurate.
2018-02-14 14:14:22 +00:00
Emmanuele Bassi
1440db1570 build: Coalesce print backends options into one
Instead of having separate options for each print backend, we can use
the same approach as the input method modules: a single option, with a
comma-separated list of print backends.
2018-02-14 14:14:22 +00:00
Emmanuele Bassi
2e7fef7d18 build: Rename the 'enable-colord' option
Drop the 'enable-' prefix, to follow the naming best practices for Meson
configuration options.
2018-02-14 14:14:22 +00:00
Emmanuele Bassi
d1a8ed0214 build: Rename 'with-included-immodules' option
We can call it 'included-immodules', and simplify its logic by always
attempting to split the value, to avoid turning an array into a string
and then back into an array again.
2018-02-14 14:14:22 +00:00
Emmanuele Bassi
4b7017ef35 build: Rename 'disable-modules' option
We should not have 'disable' in the name, to conform with the Meson best
practices for boolean options.
2018-02-14 14:14:22 +00:00
Gniourf
c5bece5cef Fix annotation for gtk_tree_view_is_blank_at_pos()
The annotation (allow-none) is wrong. Since
gtk_tree_view_is_blank_at_pos() also calls
gtk_tree_view_get_path_at_pos(), the same fields should have the same
annotations.
2018-02-14 13:51:00 +01:00
Emmanuele Bassi
490899e271 x11: Do not include fallback-c89.c
We're definitely using a C99-compliant toolchain, if we're building the
X11 backend.
2018-02-14 11:15:31 +00:00
Rafal Luzynski
b9ea25c25c calendar: Use the new "%OB" format in strftime()
Due to the recent changes introduced in glibc 2.27 "%OB" is the
correct format to obtain a month name as used in the calendar
header.  The same rule has been working in BSD family (including
OS X) since 1990s.  This change is simple but makes GTK+ 4.x require
glibc >= 2.27.  If this requirement cannot be fulfilled then we must
cherry-pick the full commit cbf118c from gtk-3-22 branch.

Closes: #9
2018-02-13 23:29:20 +01:00
Mart Raudsepp
970d2e3f45 Update Estonian translation
(cherry picked from commit 97f3a4397a)
2018-02-13 22:21:15 +00:00
Mart Raudsepp
dd9249a87f Update Estonian translation
(cherry picked from commit af2d039717)
2018-02-13 20:14:56 +00:00
Timm Bäder
aa32fc1708 cssprovider: Remove priv pointer 2018-02-13 18:48:44 +01:00
Timm Bäder
160a4208ed menu: Remove an incorrect comment
They are not missing, they are snapshot when chaining up.
2018-02-13 18:48:44 +01:00
Emmanuele Bassi
395550c671 Merge branch 'bump-glib-dep' into 'master'
meson: Require glib 2.55.0

See merge request GNOME/gtk!8
2018-02-13 17:03:08 +00:00
Christoph Reiter
7d44735893 meson: Require glib 2.55.0
gtk+ has started using g_file_load_bytes() which is available
since glib 2.55.0
2018-02-13 18:00:27 +01:00
Carlos Garnacho
21e9fe4f55 modules: Add wayland IM implementation
This IM context implementation goes through the gtk-text-input protocol,
leaving up to the compositor the actual interaction with IM engines.
2018-02-13 15:47:57 +01:00
Carlos Garnacho
3b568fbe77 gdk/wayland: Add GdkDisplay call to query available globals
The internal known_globals hashtable is used to carry accounting for
interfaces that depend on others (as ordering is not guaranteed), extend
its usage so it also keeps track of unimplemented interfaces (here at
least).

The API call will then use this to allow querying the globals offered by
the compositor, it will be useful to determine whether we can use
text-input protocols or should fallback to other IMs.
2018-02-13 15:47:57 +01:00
Emmanuele Bassi
7ee69fc7b2 Mention gtk_button_set_image() and friends in the migration docs
The image-related API for GtkButton has been dropped, but still needs
to be mentioned in the migration guide.

Closes: #21
2018-02-13 12:57:18 +00:00
Benjamin Otte
365707e4eb x11: Run event filters on all windows
The event filters that were split out in commit
65beb0fc22 need to be run for every event
window and not just for the root window.
2018-02-13 10:34:06 +01:00
Benjamin Otte
91c6b56c99 treemenu: Remove unused defines 2018-02-13 10:34:06 +01:00
Emmanuele Bassi
da6b68d2b7 Disable CI
The CI runner is pretty slow to set up (takes about 6 minutes to get
through the system dependencies needed to build GTK), and does not work
with dependencies as subprojects.

Until we figure out how to make it work, and make it work a bit faster,
we should drop CI and rely on Continuous for a while longer.

We can revert this commit as soon as we find out how to make things
work.
2018-02-12 17:16:51 +00:00
Emmanuele Bassi
6aa66f59ce ci: Update the vulkan build option 2018-02-12 17:04:57 +00:00
Emmanuele Bassi
4040986545 Add GitLab CI (build only) 2018-02-12 16:57:17 +00:00
Emmanuele Bassi
bb7beb5ade Drop method annotation for gtk_drag_cancel()
The other method annotations were removed in commit c306e448b3.

There is no introspected ABI change, as g-ir-scanner would just ignore
the annotation.

This eliminates the last warning when building GTK on Linux.
2018-02-12 16:46:42 +00:00
Emmanuele Bassi
032dabe137 build: Allow using introspection from subprojects
When building dependencies as subprojects we need to tell the
introspection scanner where to find the introspection data; this
means using GIR targets from the subproject.
2018-02-12 14:25:43 +00:00
Alban Browaeys
c306e448b3 Fix overzalous method annotations for drag and drop
Functional revert of commit 9c4892f291.

Fixes introspection scanner warnings like:

  Warning: Gtk: gtk_drag_finish: Methods must belong to the same
  namespace as the class they belong to

That is, the gtk_drag_* functions cannot be methods as they have a
"GdkDragContext" as the instance parameter, and that is not a valid
type for the Gtk namespace.

This is not an introspected ABI change, as the generated introspection
data ignores the annotation.

Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>

https://bugzilla.gnome.org/show_bug.cgi?id=692152
2018-02-12 11:42:44 +00:00
Emmanuele Bassi
55c9576d83 build: Use GIR targets for built introspection data
Instead of using `--include-uninstalled` in the scanner arguments, we
can tell Meson to use an introspection target, and it'll do the
appropriate thing for us.
2018-02-12 11:42:44 +00:00
Emmanuele Bassi
99bcccd884 Bump up the dependency on Meson
We're going to use a new argument in the generate_gir() function.
2018-02-12 11:42:44 +00:00
Mart Raudsepp
c300c530ea Update Estonian translation
(cherry picked from commit 8dc234717e)
2018-02-12 00:39:33 +00:00
Matthias Clasen
f771046a00 gdk: Add some more docs
Add another reference to the docs.
2018-02-11 00:41:31 +00:00
Matthias Clasen
c289d7c176 gdk: Expand the docs a bit
Add a reference to the getter to the GdkKeymap::direction-changed
signal docs.
sh: indent: command not found
2018-02-10 23:46:14 +00:00
Emmanuele Bassi
5c3c95a96c docs: Mention G_ENABLE_DIAGNOSTIC in the porting notes
Since part of our type system is resolved at run time, we need to use
run time facilities to get diagnostic messages, like deprecation
warnings for properties and signals.

We should mention the G_ENABLE_DIAGNOSTIC environment variable in the
migration guide, to let developers know how to catch deprecations and
changes while porting their code.
2018-02-09 19:38:17 +00:00
Timm Bäder
d54321c1ca menu: Guard against NULL toplevel
This can happen, as indicated by GtkMenu explicitly connecting to
::destroy of its toplevel window. Do the same thing in GtkComboBox.
2018-02-09 20:17:48 +01:00
Timm Bäder
1362609120 box: Remove an unnecessary include 2018-02-09 11:36:53 +01:00
Timm Bäder
89ac1d6197 box: Rename private pointers to "priv"
Which is the style we use everywhere else.
2018-02-09 11:36:53 +01:00
Timm Bäder
1cfbe9c3d0 box: Simplify size_allocate
Stop looking at the box allocation position since both x and y are 0.
2018-02-09 11:36:53 +01:00
Timm Bäder
3a4c6c18b3 box: Use widget child list when computing size request
Contrary to what the comments in this function might suggest, it does
not actually do anything about child positions, child child sizes. So,
packing doesn't matter and we don't need to iterate over all child
widgets twice.
2018-02-09 11:36:53 +01:00
Timm Bäder
5e9f5c17b5 box: Use widget child list in compute_size_for_orientation
And remove the non-NULL checks for minimum_size and natural_size since
these are non-NULL by definition since this function is only called from
measure().
2018-02-09 11:36:53 +01:00
Benjamin Otte
ff5928754f inspector: Remove gtk.h include 2018-02-09 01:06:59 +01:00
Benjamin Otte
396056e011 a11y: Remove gtk.h include from iconview header 2018-02-09 01:02:06 +01:00
Benjamin Otte
619a19f6fd a11y: Remove gtk.h include from lockbutton 2018-02-09 00:58:59 +01:00
Benjamin Otte
808921dd3e a11y: Remove gtk/h include from menu header 2018-02-09 00:56:26 +01:00
Benjamin Otte
6a47dc26e4 a11y: Remove gtk.h include from listbox headers 2018-02-09 00:52:44 +01:00
Benjamin Otte
df68ef8553 a11y: Remove gtk.h from flowbox includes 2018-02-09 00:47:58 +01:00
Benjamin Otte
3bb95a09bb a11y: Remove gtk.h include from container accessible 2018-02-09 00:42:38 +01:00
Benjamin Otte
9c7874214e a11y: Remove gtk.h include 2018-02-08 23:39:17 +01:00
Benjamin Otte
f08bc40fbb a11y: Don't include gtk.h
Also add missing includes and sort them for all the widgets that relied
on that before.
2018-02-08 15:25:53 +01:00
Emmanuele Bassi
453a50dc95 docs: Link to the compiler requirements wiki page
From the README file.
2018-02-08 14:11:42 +00:00
Emmanuele Bassi
ff41829b3f Rename the project's DOAP file
We need its name to match the repository's name.
2018-02-08 14:11:42 +00:00
Benjamin Otte
7437d34eb9 shortcuts: Don't include gtk.h
Clean up all shortcuts includes to only include the necessary files
while we're at it.
2018-02-08 06:16:01 +01:00
Benjamin Otte
eb3049d6b5 pointerfocus: Don't include gtk.h
Also fix up gtktypes.h to include the required glib.h for G_BEGIN_DECLS
and gtkdnd.c to include missing includes.
2018-02-08 06:16:01 +01:00
Matthias Clasen
601c5fd734 Drop event filters from the docs
No longer public API.
2018-02-07 15:13:31 -05:00
Matthias Clasen
89f6b8751e Remove gdk_window_add_filter
Drop the public filtering API. The x11 backend already has
the ::xevent signal as replacement. The win32 backend needs
a similar signal to replace filtering.

Reshuffle header inclusions in the x11 backend a little bit
to avoid a cyclic inclusion between gdkprivate-x11.h and
gdkdisplay-x11.h that is otherwise causing problems.
2018-02-07 15:12:03 -05:00
Matthias Clasen
65beb0fc22 x11: Don't use gdk_window_add_filter
This function is going away.
2018-02-07 12:24:40 -05:00
Emmanuele Bassi
d07b14f4d2 docs: Update header rules in the coding style
- Make the rules for including headers explicit
 - Make the symbol visibility rules explicit, and drop the
   old "leading underscore" hack
 - Drop Private data structure declarations and priv pointers
   from public headers
 - Mention G_DECLARE_* macros
 - Mention `#pragma once`
2018-02-07 15:01:25 +00:00
Timm Bäder
4f50c68296 cellrendereraccel: unref sizing_label 2018-02-06 13:40:57 +01:00
Timm Bäder
fab9449414 build: install gsk-autocleanup.h 2018-02-06 11:26:47 +01:00
Timm Bäder
0a51f38963 gl renderer: Check the scale factor for every render
This way we pick up changes in the GdkWindow's scale_factor.
2018-02-06 09:19:40 +01:00
Timm Bäder
614c3e6721 demo: Remove an expose_event mention 2018-02-06 09:19:40 +01:00
Timm Bäder
c73e22dadb notebook: Remove another event type check
Just like 3d65019e98, but for release
events.
2018-02-06 09:19:40 +01:00
Timm Bäder
de6c0037b7 separatormenuitem: Don't create label widget in get_label
Calling gtk_menu_item_get_label on a GtkSeparatorMenuItem would
otherwise create a GtkLabel child, increasing the vertical size request
to that of the child label.
2018-02-06 09:19:40 +01:00
Matthias Clasen
1a9a0c2577 Drop a leftover declaration
The function gdk_add_option_entries does not exist anymore.
2018-02-06 01:17:18 -05:00
Matthias Clasen
5b63583c0b Make gdk_event_get_history public
This function is meant to be public, but was missing
an annotation in the header.
2018-02-06 01:17:17 -05:00
Matthias Clasen
0fe3fafac1 gdk: Drop gdk_x11_window_set_frame_extents
This function is unused and has been deprecated
for a long time.
2018-02-06 01:16:32 -05:00
Matthias Clasen
d400c50ca3 fix the docs build
The GtkPlacesSidebar does not exist anymore in public API.
2018-02-06 01:16:32 -05:00
Matthias Clasen
4c150d8eb5 The big versioning cleanup
Remove all the old 2.x and 3.x version annotations.
GTK+ 4 is a new start, and from the perspective of a
GTK+ 4 developer all these APIs have been around since
the beginning.
2018-02-06 01:16:32 -05:00
Matthias Clasen
2616e6857c gdk: Add some missing autocleanup definitions
Best to be consistent.
2018-02-06 01:16:32 -05:00
Matthias Clasen
1772cfd4d8 gsk: Add autocleanup definitions
This may be useful for applications using render nodes.
2018-02-06 01:16:32 -05:00
Piotr Drąg
d0ea070c23 Update POTFILES.in 2018-02-05 17:54:21 +01:00
Benjamin Otte
db267433c0 tests: Make text test have more glyphs
Load random strings from /usr/share/dict/words instead of reusing the
same 10 words all the time. That way, we get closer to the real world
use case of having a full alphabet.
2018-02-05 17:22:56 +01:00
Benjamin Otte
452f2f0394 cssprovider: Use g_file_load_bytes()
This way, we get a special no-copy case for resources.

https://bugzilla.gnome.org/show_bug.cgi?id=790270
2018-02-05 17:22:56 +01:00
Carlos Garnacho
faeb572dd5 docs: Rename right get_history() call on GDK docs
Obviously gdk_device_get_history() is not the right function to change. To
delete if anything...
2018-02-05 16:10:58 +01:00
Carlos Garnacho
f964fe3ee5 gdk: Rename gdk_event_get_history() to get_motion_history()
It only applies to GDK_MOTION_NOTIFY events, so this is a more descriptive
name. Also add Since tag in docs, and GDK_AVAILABLE_IN_3_94.
2018-02-05 16:05:34 +01:00
Emmanuele Bassi
00990ec307 build: Fix the non-pkg-config Vulkan detection
Not all the variables were renamed.
2018-02-05 14:35:34 +00:00
Daniel Stone
a5363b9e5d build: Create input method module cache directory
Before running gtk-query-immodules, the cache output directory may not
actually exist. Make sure it does before we try to write into it.

https://bugzilla.gnome.org/show_bug.cgi?id=793182
Signed-off-by: Daniel Stone <daniels@collabora.com>
2018-02-05 14:03:10 +00:00
Emmanuele Bassi
3b0e6720af build: Use pkg-config to find Vulkan
The standard Vulkan SDK ships with a pkg-config file, like a modern
library should.

We should fall back to finding the library and header only for platforms
where pkg-config is not really a thing.

Based on a patch by: Daniel Stone <daniels@collabora.com>

https://bugzilla.gnome.org/show_bug.cgi?id=793181
2018-02-05 14:01:59 +00:00
Emmanuele Bassi
bfcb978079 Drop the last mentions of motion hint events
The GDK_POINTER_MOTION_HINT_MASK enumeration value is gone, but we're
still keeping around the "is_hint" field in GdkEventMotion, even though
every backend sets it to `false` — except for the core X11 device
manager.
2018-02-05 14:00:51 +00:00
Matthias Clasen
66a3b07183 Don't put gdk types into a gsk header
This is a leftover from when GskTexture was moved
to gdk.
2018-02-05 07:50:17 +01:00
Matthias Clasen
fd25a8cdf2 Drop the mir backend
Mir is in the process of switching over to the Wayland protocol,
so we don't need to maintain a separate backend, going forward.
2018-02-05 07:50:17 +01:00
Piotr Drąg
4abdc43688 Update Polish translation 2018-02-05 00:37:11 +01:00
Matthias Clasen
4d16c5abc0 docs: Remove some leftovers
There were still references to recent chooser and tool palette
types in the docs.
2018-02-04 23:38:15 +01:00
Matthias Clasen
697b05c90c Drop threads from the docs 2018-02-04 23:27:59 +01:00
Matthias Clasen
3c45a56934 Drop gtk_widget_show_now
This function does bad things, and is not an
API that we want to take into GTK+ 4.
2018-02-04 23:23:15 +01:00
Matthias Clasen
ee6fc6492f treeview: Stop using gtk_widget_show_now
If this is a problem, it needs to be handled explicitly.
2018-02-04 23:23:15 +01:00
Matthias Clasen
8891967f2b gtk testsuite: Stop using gtk_widget_show_now
If this is a problem, it needs to be handled explicitly.
2018-02-04 23:23:15 +01:00
Matthias Clasen
4ad658f91e a11y testsuite: Stop using gtk_widget_show_now
On non-windows, this doesn't do anything anyway.
2018-02-04 23:23:15 +01:00
Timm Bäder
b726f60f90 searchbar: reorganize
Avoid the ugly priv->tool_box==NULL check in ::add (and ::remove) by
just not using template xml for this small class. Also, make sure the
GtkBin child is properly set and implement remove to also properly
remove it. Remove the manual widget margins and add some CSS for it.
Also switch to simply using a GtkCenterBox.
2018-02-04 22:51:16 +01:00
Timm Bäder
fd148d1ef5 searchbar: Properly remove child widgets
Since the GtkSearchBar is not the direct parent, we need to remove them
properly from priv->box_center.
2018-02-04 17:51:18 +01:00
Timm Bäder
baa3df51ad searchbar: Remove unused widgets
both box_left and box_right are unused.
2018-02-04 17:28:03 +01:00
Timm Bäder
cd6408b47a gdk: fix a format string warning 2018-02-04 15:48:47 +01:00
Timm Bäder
d70bfea8e9 glarea: Fix precondition check
and the build.
2018-02-04 15:10:23 +01:00
Timm Bäder
5aaf752013 roundedrect: Fix coordinate mixup in contains_point
This together with the optimizations in GtkSnapshot was causing circular
buttons to become squared when partially scrolled out of view.
2018-02-04 14:56:41 +01:00
Timm Bäder
76258c8e3a glarea: Simplify make_current
We only use the widget pointer here once.
2018-02-04 14:56:41 +01:00
Timm Bäder
c739db0e29 gl renderer: Use a gl texture in render_texture
Get rid of the manual y flipping and cairo business. This keeps the gl
unit tests working at least.
2018-02-04 13:10:51 +01:00
Piotr Drąg
676e2e088e Update POTFILES.in 2018-02-03 20:23:28 +01:00
Benjamin Otte
83a687f891 rendernode: Don't alloca() 8MB
This happens when deserializing testcases and it really confuses
valgrind into thinking we're longjmp()ing.

And deserializing rendernodes is slow anyway, so who cares about a few
more malloc()s.
2018-02-03 16:24:13 +01:00
Benjamin Otte
cf030e9ffc rbtree: Privatize header
According to meson it's the only private header that doesn't conform to
the *private.h naming.

Fix that.
2018-02-03 16:24:13 +01:00
Emmanuele Bassi
2cbe094b91 Allow binding GdkContentFormatsBuilder
GdkContentFormatsBuilder is currently not introspectable, as it does not
have a GType. We can turn it into a boxed type, but we need to implement
memory management for it.

The current gdk_content_formats_builder_free() function returns a newly
constructed value, so we cannot use it as a GBoxedFreeFunc; additionally
copying a GdkContentFormatsBuilder contents would make it a bit odd, as
you could get multiple identical GdkContentFormats out of the copies.

A simple approach is to model the GdkContentFormatsBuilder API to follow
the GBytes one: use reference counting for memory management, and have
a function to release a reference, return a GdkContentFormats, and reset
the GdkContentFormatsBuilder state.

For language bindings, we can provide a get_formats() function that
returns the GdkContentFormats instance and resets the builder instance,
leaving the reference count untouched.

For C convenience we can keep gdk_content_formats_builder_free(), and
make it a wrapper around gdk_content_formats_builder_get_formats(), with
the guarantee that it'll free the builder instance regardless of its
current reference count.

https://bugzilla.gnome.org/show_bug.cgi?id=793097
https://blogs.gnome.org/otte/2018/02/03/builders/
2018-02-03 16:24:13 +01:00
Timm Bäder
4fa4b8525e gl renderer: Clear resources after render_texture
This makes multiple consecutive render_texture calls on the same
renderer work.
2018-02-03 13:24:55 +01:00
Timm Bäder
3d65019e98 notebook: Handle touch events for tabs
No need to check for the event type here.
2018-02-03 12:23:00 +01:00
Timm Bäder
98e30f82b9 widget: Remove realized checks from _translate_coordinates
As discussed.
2018-02-03 12:22:56 +01:00
Timm Bäder
8f7a8ada18 widget: Don't call snapshot vfunc if width or height are 0
The result won't be visible anyway. This also prevents problems with
widgets that create some resource the size of the widget, like
GtkGLArea. It also keeps us from snapshotting revealers with
size 0.
2018-02-03 12:22:52 +01:00
Timm Bäder
f52100c46e iconbrowser: setup image dnd for image6
Otherwise the we fail to set the drag source icon name later on.
2018-02-03 12:22:46 +01:00
Emmanuele Bassi
2432e53652 Remove all gdk_threads_* entry points
Now that we don't use them anywhere, it's time for them to go.

https://bugzilla.gnome.org/show_bug.cgi?id=793124
2018-02-03 12:07:10 +01:00
Emmanuele Bassi
888dfe499d Drop the Big GDK Lock
GDK has a lock to mark critical sections inside the backends.
Additionally, code that would re-enter into the GTK main loop was
supposed to hold the lock.

Back in the Good Old Days™ this was guaranteed to kind of work only on
the X11 backend, and would cause a neat explosion on any other GDK
backend.

During GTK+ 3.x we deprecated the API to enter and leave the critical
sections, and now we can remove all the internal uses of the lock, since
external API that uses GTK+ 4.x won't be able to hold the GDK lock.

https://bugzilla.gnome.org/show_bug.cgi?id=793124
2018-02-03 12:07:10 +01:00
Emmanuele Bassi
c655759cef Replace gdk_threads_add_timeout* with g_timeout_add()
The main GDK thread lock is not portable and deprecated.

The only reason why gdk_threads_add_timeout() and
gdk_threads_add_timeout_full() exist is to allow invoking a callback
with the GDK lock held, in case 3rd party libraries still use the
deprecated gdk_threads_enter()/gdk_threads_leave() API.

Since we're removing the GDK lock, and we're releasing a new major API,
such code cannot exist any more; this means we can use the GLib API for
installing timeout callbacks.

https://bugzilla.gnome.org/show_bug.cgi?id=793124
2018-02-03 12:06:58 +01:00
Emmanuele Bassi
334acbfc39 Replace gdk_threads_add_idle* with g_idle_add()
The main GDK thread lock is not portable and deprecated.

The only reason why gdk_threads_add_idle() and
gdk_threads_add_idle_full() exist is to allow invoking a callback with
the GDK lock held, in case 3rd party libraries still use the deprecated
gdk_threads_enter()/gdk_threads_leave() API.

Since we're removing the GDK lock, and we're releasing a new major API,
such code cannot exist any more; this means we can use the GLib API for
installing idle callbacks.

https://bugzilla.gnome.org/show_bug.cgi?id=793124
2018-02-03 12:06:58 +01:00
Benjamin Otte
dfc131c7ec toolpalette: Remove
The widget was basically unmaintained since GTK 3.0 and the only known
user was Glade.
2018-02-03 11:52:37 +01:00
Benjamin Otte
55874470ff gtk: Remove GtkRecentChooser
It's not used any more, recent files are only used by the filtchooser
and that one uses GtkRecentManager directly.
2018-02-02 23:01:31 +01:00
Benjamin Otte
bb8baa2b76 tests: Unrealize renderer
Renderers must be unrealized these days.
2018-02-02 15:34:34 +01:00
Benjamin Otte
38b25599d8 texture: Add sanity checks to constructors
width, height and GL texture ID may not be 0, so return_if_fail() if
they are.
2018-02-02 14:59:23 +01:00
Benjamin Otte
df0b4d6684 texture: Make the texture id a guint
Texture IDs are unsigned, so treat them like that.
2018-02-02 14:59:23 +01:00
Emmanuele Bassi
fcaa9aa22d Rename GtkActionMuxer's private header
Follow the naming policy for private headers.
2018-02-02 10:28:17 +01:00
Emmanuele Bassi
1ed17df7a0 Rename GtkActionHelper private header
Follow the naming scheme for private headers.
2018-02-02 10:28:17 +01:00
Emmanuele Bassi
0ec744a3a5 Split list of sources
We need to have two lists: one, with the list of sources that need to be
introspected; and one with the list of sources that contain only private
symbols.

This reduces the amount of source files that the introspection scanner
needs to traverse, and thus the build time.
2018-02-02 10:28:17 +01:00
Emmanuele Bassi
b8828023e6 docs: Annotate gdk_keymap_get_display()
Avoid a warning from the introspection scanner.
2018-02-01 16:13:53 +01:00
Emmanuele Bassi
3a2aa2bd80 Remove unnecessary gtk-doc stanza
The places sidebar is not a publicly documented API, so there's no need
to use a gtk-doc stanza — especially if the syntax of the stanza is
wrong.
2018-02-01 16:08:51 +01:00
Emmanuele Bassi
a379ddefc3 Remove leading underscore from private symbols
There's no need to do that any more, as only explicitly annotated
symbols are exported.
2018-02-01 16:05:58 +01:00
Emmanuele Bassi
fe142b10bf Rename gtkiconcachevalidator.h
Follow the same convention for private headers as newer parts of GTK.
2018-02-01 16:01:38 +01:00
Emmanuele Bassi
e090c1f1a9 Rename gtkiconcache.h
The gtkiconcache.h header is private, so rename it to follow the naming
scheme for private headers.
2018-02-01 15:34:57 +01:00
Emmanuele Bassi
a313417879 Replace boilerplate in GtkIcon
Be a good GObject citizen and use G_DECLARE_FINAL_TYPE instead of
writing the usual GObject boilerplate.
2018-02-01 15:30:39 +01:00
Matthias Clasen
8916ff8ffe iconview: Fix a problem with the previous change
After commit ffef28a7e8,
gtk-icon-browser was spewing critical warnings when
changing sections. Avoid that by respecting the return
value of gtk_tree_model_get_iter.
2018-01-31 17:44:26 +01:00
Benjamin Otte
02892c59d1 dnd: Remove unused member variable 2018-01-31 13:21:26 +01:00
Benjamin Otte
bdd2f68ab5 dnd: Move GdkDragProtocol to X11
It's not needed in the generic implementation, so don't have it there.
2018-01-31 13:21:26 +01:00
Benjamin Otte
3e0fab6b93 dnd: Remove 2 vfuncs that aren't needed
They're only used inside the X11 backend, and the backend can just call
its own function.
2018-01-31 13:21:26 +01:00
Timm Bäder
e8986d18c2 icon browser: Remove usage of stock-size property
Does not exist anymore.
2018-01-30 21:51:59 +01:00
Timm Bäder
972c0fa998 Revert "menu: Simplify popup_at_rect"
This reverts commit a29306cb1e.
2018-01-30 21:51:59 +01:00
Timm Bäder
c8a936cdcc range: Always queue an allocate if the adjustment changed
The slider gets its new size in size-allocate, so we have to do this
even if the range has no origin.
2018-01-30 21:51:50 +01:00
Jason Gerecke
6fd6ff2ea1 wayland: Add support for BTN_STYLUS3
BTN_STYLUS3 is defined by the Linux 4.15 kernel and is sent when the
third button on a stylus is pressed. At the moment, only Wacom's "Pro
Pen 3D" has three stylus buttons. Pressing this button triggers a button
8 event to be sent under X11, so we use the same mapping here.

https://bugzilla.gnome.org/show_bug.cgi?id=790033
2018-01-30 21:32:07 +01:00
Nuclear Sunshine
cb5c739f93 Add AGPL3-only licence to GtkAboutDialog
https://bugzilla.gnome.org/show_bug.cgi?id=792793
2018-01-28 14:36:28 +00:00
Timm Bäder
228b35c111 gl: Add test case for clipped cross fade nodes 2018-01-27 12:19:22 +01:00
Timm Bäder
6e70079e63 gl renderer: Reset clip when drawing offscreen
Just like we reset the scissor test and the viewport, we also can't use
the current clip anymore in this case.
2018-01-27 12:13:37 +01:00
Timm Bäder
c1882fe44e GskRoundedRect: Fix GSK_ROUNDED_RECT_INIT macro
GskRoundedRect does not have a .rect member, it's 'bounds'. Also,
properly initialize all fields, i.e. all the corners.
2018-01-27 12:11:49 +01:00
Timm Bäder
684624005a gl renderer: Fix hidpi cairo node rendering
We can't just unconditionally create a larger texture here, since the
incoming cairo surface might have a device scale that doesn't fit our
scale_factor. Instead, look up the surface device scale and use that.
2018-01-27 11:06:38 +01:00
Timm Bäder
1fb5d389db gl renderer: Make width/height relation more obvious
In add_offscreen_ops, we use the max_x/min_x values for the texture and
viewport width, and the max_y/min_y for the texture and viewport height.
2018-01-27 11:00:59 +01:00
Timm Bäder
794d9d266e inspector: Actually call the pick() vfunc when picking
Otherwise, overridden pick vfuncs don't work and we e.g. pick widgets
scrolled away in a viewport.
2018-01-26 17:29:30 +01:00
Timm Bäder
60fdeda599 entry: Remove unused struct members 2018-01-26 17:29:30 +01:00
Timm Bäder
a29306cb1e menu: Simplify popup_at_rect
No need to keep a separate current_event variable around, we don't use
it anyway.
2018-01-26 17:29:30 +01:00
Matthias Clasen
f00f5508d4 gdk: Stop referring to ::key-press/release-event
These signals are going away, don't mention them in
the docs.
2018-01-24 12:04:32 +01:00
Matthias Clasen
063592f350 entry completion: Stop using key-press/release-event
We can use the existing ::event handler for this.
2018-01-24 12:04:27 +01:00
Timm Bäder
6806c28b1e gsk: Add test case for last commit 2018-01-23 21:46:31 +01:00
Timm Bäder
e3557f681c gl renderer: Fix outset shadow outline transform
This fixes hidpi blurred outset shadows
2018-01-23 21:46:31 +01:00
Emmanuele Bassi
f83b3c8af2 Enforce UTF-8 encoding when opening C files
We have a couple of Python 3.x scripts that parse C files, and since C
does not have any encoding, we need to force one ourselves, to avoid the
case when we're running the build in a non-UTF-8 locale.

https://bugzilla.gnome.org/show_bug.cgi?id=792497
2018-01-23 14:04:49 +01:00
Daniel Boles
b91fc17a19 Widget: Don’t call reset() on NULL EventController
GtkGesture is a GtkEventController. gtk_event_controller_dispose() calls
_gtk_widget_remove_controller(). That NULLs the pointer-to-Controller in
our EventControllerData but does not delete said ECData from our GList.

Subsequently, if that same Widget gets unparent()ed, that method calls
unset_state_flags(), which leads to doing reset_controllers() if we are
insensitive. Now, unlike most most other loops over the GList of ECData,
reset_controllers() does not skip nodes whose pointer-to-Controller is
NULL. So, we call gtk_event_controller_reset(NULL) and get a CRITICAL.

This surfaced in a gtkmm program. The Gesture is destroyed before the
Widget. The Widget then gets dispose()d, which calls unparent()… boom.
I didn’t find an MCVE yet but would hope this logic is correct anyway:

The simplest fix is to make the loop in gtk_widget_reset_controllers()
skip GList nodes with a NULL Controller pointer, like most other such
loops, so we avoid passing the NULL to gtk_event_controller_reset().

In other, live cases, _gtk_widget_run_controllers() loops over the GList
and removes/frees nodes having NULL Controllers, so that should suffice.
But this clearly was not getting a chance to happen in the failing case.

https://bugzilla.gnome.org/show_bug.cgi?id=792624
2018-01-22 19:10:58 +00:00
GNOME Translation Robot
37482c81c7 Update Esperanto translation
(cherry picked from commit 814c55d473)
2018-01-22 18:35:04 +00:00
Juan Pablo Ugarte
f2019e61db GtkGestureMultiPress: check event state before emiting released signal
Fix bug 771986 "Inconsistent 'row-activated' signal emission before \
drag'n'drop, 'activate-on-single-click'=TRUE, 'reorderable'=TRUE"
2018-01-22 15:52:58 +01:00
Timm Bäder
fbd79d8fea widget: Only initialize bounds rect if necessary
We only use the graphene_rect_t version of the offset_clip for the
fallback cairo nodes.
2018-01-21 20:37:46 +01:00
Timm Bäder
fb81686a89 vulkan: Fix release builds 2018-01-21 15:23:17 +01:00
Timm Bäder
d6c2ef3b71 combobox: Remove some unneeded includes 2018-01-21 11:01:32 +01:00
Simon McVittie
e22990302a Set GDK_WINDOW_STATE_TILED if any edge is tiled
This state flag is used in several places in GTK+, for example to
ignore RESIZE_INC hints if tiled. Setting it is also necessary for
backwards compatibility with applications that changed their behaviour
when tiled, such as GNOME Terminal and its MATE fork.

Signed-off-by: Simon McVittie <smcv@debian.org>

https://bugzilla.gnome.org/show_bug.cgi?id=789357
2018-01-20 13:10:49 +01:00
Georges Basile Stavracas Neto
42ff22f222 display-x11: Unset tiled state if _GTK_EDGE_CONSTRAINTS is supported
Commit c415bef5de introduced support for the new _GTK_EDGE_CONSTRAINTS
atom. If the compositor supports that atom, however, we were always
setting the tiled state, even if no actual tiling information is
available, where the correct action is to completely remove any traces
of the tiled state.

Fix that by correctly removing the tiled state when compositor supports
_GTK_EDGE_CONSTRAINTS Xatom.

https://bugzilla.gnome.org/show_bug.cgi?id=788516
2018-01-20 13:10:42 +01:00
Timm Bäder
4d36a0bf35 entrycompletion: Realize toplevel before attempting a grab
Otherwise, gtk_widget_get_window returns NULL and we can't successfully
perform a grab via the later gdk_set_grab call. This fixes the entry
completion in the file chooser not working.
2018-01-19 22:39:23 +01:00
Matthias Clasen
af0d876bb7 tests: Remove some unneeded gtk_widget_show calls
Widgets are visible by default now.
2018-01-19 23:29:13 +03:00
Matthias Clasen
ffef28a7e8 iconview: Fix updates with filter models
Filter models rely on views taking a ref on every node
they care about. GtkIconView was not doing that. Amazingly,
this has never shown up in a bug so far, until I spotted
the fallout in gnome-font-viewer.
2018-01-19 23:29:13 +03:00
Matthias Clasen
f942d6f53c Add a test for ::row-changed vs node refs
Test that filter models propagate ::row-changed if there is
an external reference on the node, and not otherwise. This
is showing up in buggy icon view behaviour, where the icon
view is not redrawing if the content changes in a model that
is below a filter model.
2018-01-19 23:29:13 +03:00
Carlos Garnacho
7d9af6d700 gtkwindow: Disconnect GdkSeat::device-removed callback on finalize
Otherwise dangling callbacks may lead to crashes.
2018-01-19 18:47:21 +01:00
Timm Bäder
8f4e0705dc gl renderer: Fix shadow node child offset
We shouldn't apply the shadow offset when drawing the child offscreen,
instead apply it afterwards when we draw it to the current render
target.
2018-01-19 15:00:22 +01:00
Timm Bäder
87bdfbb02c testsuite: Add another gl renderer test case 2018-01-19 14:59:31 +01:00
Timm Bäder
e4be37eb60 linkbutton: Only set widget cursor once 2018-01-19 13:21:41 +01:00
Timm Bäder
8224e7ac72 inspector: Allow picking insensitive widgets
The default gtk_widget_contains/gtk_widget_pick don't consider
insensitive widgets.
2018-01-19 10:16:15 +01:00
Timm Bäder
2dca8f935c csswidgetnode: Avoid some unnecessary work
The later code would just ref both styles and not do anything else.
2018-01-19 09:57:49 +01:00
Timm Bäder
f595c0dc1b widget-factory: Fix some layout issues
We have to explicitly set some of these to their default values so
expand-set is TRUE and the boxes stop propagating their expansion state
up the hierarchy.
2018-01-19 09:53:39 +01:00
Timm Bäder
3265013268 textview: Remove some stray debugging output
Leftover from 7046463b88
2018-01-19 08:17:03 +01:00
Matthias Clasen
351559fcfa Simplify all ui files again
Now even simpler!
2018-01-18 17:53:44 -05:00
Matthias Clasen
6c805ecb0f builder-tool: Try harder to find types
If g_type_from_name fails, try gtk_builder_get_type_from_name
before giving up. This fixes cases like GtkPrinterOptionWidget.
2018-01-18 17:45:12 -05:00
Timm Bäder
8a432b42a2 window: Ignore gtk_window_close calls from close-request handlers 2018-01-18 15:10:49 +01:00
Timm Bäder
aee4634ee5 widget: Always assign values to out parameter in translate_coordinates
safe guard against people using the returned coordinate values without
checking the return value of gtk_widget_translate_coordinates.
2018-01-18 14:45:13 +01:00
Timm Bäder
cc9a4c1720 widget: Initialize a local variable
We will later pass this variable on to some other functions, so be safe
against them using the value.
2018-01-18 14:45:13 +01:00
Timm Bäder
d607312080 aboutdialog: Only close on delete events
Clicking on the Credits button should not close the dialog.
2018-01-18 14:45:08 +01:00
Timm Bäder
41dac661a0 fontchooswerwidget: Center spinbutton next to scales vertically 2018-01-18 09:40:19 +01:00
Timm Bäder
41a922928e gl renderer: Render GL textures upside down
These come from an FBO so we need to flip the texture coords on the y
axis, just like we do everywhere else.
2018-01-18 08:21:11 +01:00
Matthias Clasen
182272c0ab Revert "inspector: Stop adding event controllers to the object tree"
This reverts commit 8f3cb2658a.

This didn't quite work out, since being in the object tree is
a prerequisite for showing up in the property editor.
2018-01-17 23:49:17 -05:00
Matthias Clasen
e1d81d096c Document new texture api 2018-01-17 21:45:08 -05:00
Matthias Clasen
47b7bfd2ba Use the new api to release resources
When we unrealize a GL area with outstanding textures,
call gdk_texture_release_gl on them to avoid later crashes.
2018-01-17 20:19:19 -05:00
Matthias Clasen
5e302ae2cc Add a way to release GL resources
The inspector may hold on to render nodes and textures
beyond the lifetime of the widget (and thus the GL
resources). To handle this situation, allow the widget
to explicitly release the GL resources, and make
the texture available on the clent-side as a cairo
surface. This lets the recorder still show the content
after the widget is gone.
2018-01-17 20:15:45 -05:00
Matthias Clasen
34c63b8e4f glarea: Drop the dispose vfunc
This was causing us to leak, in the following scenario:
1) gtk_widget_destroy is called on a GL area
2) dispose is run and clears the context
3) the GL area is unrealized, but the context is already cleared,
   so we leak all the GL buffers
2018-01-17 19:49:52 -05:00
Matthias Clasen
0429008b16 glarea: Always delete textures on unrealize
We need to make the context current for deleting
textures as well, so just do it unconditionally.
2018-01-17 19:49:05 -05:00
Matthias Clasen
6ea827cde5 glarea: Avoid a crash
We must only delete the texture if it is not NULL.
2018-01-17 19:48:33 -05:00
Matthias Clasen
cdb2fcb554 gdkgears: add a way to remove gears
This is needed to test the GL resource cleanup
code paths.
2018-01-17 19:47:45 -05:00
Matthias Clasen
4f50bf23d3 glarea: Add a pool for GL textures
Handle the situation that a GL texture might remain
in use (e.g. by a slow frame, or by the recorder)
In that case, we can't modify it but must use a
new one. Keep a pool of GL textures for this eventuality.
2018-01-17 19:15:14 -05:00
Matthias Clasen
18dc994de7 inspector: Don't leak recordings
g_list_model_get_item is transfer full, so we need
to drop the references we get from it. This was showing
up while testing the GL texture cache in GtkGLArea.
2018-01-17 19:12:55 -05:00
Timm Bäder
5e7b3030b9 rendernodeimpl: Fix a crash
We may get a NULL renderer here.
2018-01-17 21:57:20 +01:00
Timm Bäder
7c47c7cdaf applicationwindow: Fix measure implementation
Really calculate the menubar height, not the width.
2018-01-17 21:57:20 +01:00
Timm Bäder
e7b3909fd1 sizerequest: Fix for_size adjustment
We need to pull the proper size from the size request cache and adjust
it accordingly.
2018-01-17 21:57:20 +01:00
Timm Bäder
27c76db956 box: Simplify some code
All out varibles in measure implementations must be non-null and -1 is
the default value for the baseline parameters.
2018-01-17 21:57:20 +01:00
Timm Bäder
e763dac72e box: Remove self assignment 2018-01-17 21:57:19 +01:00
Timm Bäder
8ab2c79b77 box: Remove useless if statement
We already check right before this one whether child->pack != packing
and if so, we continue to the next iteration. So, no need to check again
whether the inverted condition child->pack == packing is true, because
it is.
2018-01-17 21:57:19 +01:00
Timm Bäder
12be5ccbb7 label: Update layout width directly form allocation
For the one update_layout_width call in size_allocate, we can just use
the passed-in allocation width instead of a separate (relatively slow)
gtk_widget_get_width call.
2018-01-17 21:57:19 +01:00
Timm Bäder
8ad1b09a3a widget: Clip redrawn area to widget clip
The clip can already be modified in size_allocate, so we never want a
widget to invalidate more than its actual clip region.
2018-01-17 21:57:19 +01:00
Timm Bäder
c2d4f05ce0 box: Remove some unneeded checks
We only call this function from the measure implementation and we should
never get NULL pointers there.
2018-01-17 21:57:19 +01:00
Timm Bäder
c475047501 box: Remove an unnecessary local variable 2018-01-17 21:57:19 +01:00
Timm Bäder
3604816b9c box: Use GtkWidget's widget list in get_size 2018-01-17 21:57:19 +01:00
Timm Bäder
cb0d2616ff listbox: Don't assume that row child == focus widget
With widgets supporting child widgets and custom GtkListBoxRow
subclasses, this might not be true.
2018-01-17 21:57:19 +01:00
Timm Bäder
229ef9d776 widget: Remove reparent special case
Since gtk_widget_reparent doesn't exist anymore, we can also remove this
special case.
2018-01-17 21:57:19 +01:00
Timm Bäder
d3329bb36b container: Remove some unused includes 2018-01-17 21:57:19 +01:00
Timm Bäder
5590a2a943 viewport: Remove some unused includes 2018-01-17 21:57:19 +01:00
Matthias Clasen
736ccd34f0 gl area: Avoid trivialities
If we have zero pixels, no need to snapshot anything,
and produce GL errors while doing so.
2018-01-17 14:43:50 -05:00
Matthias Clasen
b6d85b9e31 gtk-demo: Add gears to the bowl
Just for fun.
2018-01-17 14:39:46 -05:00
Matthias Clasen
f3927f1155 Drop GtkGLArea::has-alpha
We now always behave as if has-alpha is TRUE.

Update all callers.
2018-01-17 12:01:25 -05:00
Matthias Clasen
5711fb9b26 Convert gtkglarea to use snapshots
Just append a texture node.

Note that this is not 100% done yet. The GL area really
needs to keep a pool of textures, and only reuse them
once the GdkTexture object is gone.
2018-01-17 12:00:13 -05:00
Matthias Clasen
31fcf5b3a7 gsk: Handle GL textures
These textures already have a GL texture in them,
no need to create a new one.
2018-01-17 11:57:25 -05:00
Matthias Clasen
b366ea84a7 gdk: Add a gl texture implementation
This will be used to pass a GL textures from the application
(or rather, GtkGLArea) down to the GSK GL renderer.
2018-01-17 11:56:47 -05:00
Matthias Clasen
e7cab2bc0c Drop removed api from the docs
This should have been part of the previous commit.
2018-01-16 23:33:40 -05:00
Matthias Clasen
77bab4e027 gdk: Drop some unused cursor apis
The query function for cursor sizes and capabilities
are not very interesting. At least, they are not used
in GTK+, and all backends but X11 just hardcode
made-up values anyway. So, lets drop them.
2018-01-16 23:32:01 -05:00
Matthias Clasen
ab1f17cb9a inspector: Stop using gdk_display_get_default_cursor_size
If the cursor theme size setting has no value, just hardcode 32.
Also, allow ridiculously large cursors, just for fun.
2018-01-16 23:25:50 -05:00
Matthias Clasen
35c78a995e tooltip: Stop using gdk_display_get_default_cursor_size
It makes more sense to use the actual cursor theme size here.
2018-01-16 23:25:50 -05:00
Matthias Clasen
3fa0d4dad7 testgtk: Stop using gdk_display_get_maximal_cursor_size
This function is going away. Just make a reasonable assumption
that cursor sizes up to 128 are supported.
2018-01-16 23:25:50 -05:00
Chris Lamb
edd1b0974c gtk/queryimmodules.c: Make the output deterministic.
Whilst working on the Reproducible Builds effort [0], we noticed that
queryimmodules generates non-reproducible output as it iterates over the
filesystem without sorting.

Patch attached.

 [0] https://reproducible-builds.org/

Signed-off-by: Chris Lamb <lamby@debian.org>

https://bugzilla.gnome.org/show_bug.cgi?id=786528
2018-01-16 22:38:32 -05:00
Matthias Clasen
e2f3b9b1cc tree model sort: Fix set_sort_column
We were failing to change the sort order for the
default sort column in some cases. Fix that, and
add a testcase for this issue.

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

Add a testcase for the previous fix
2018-01-16 18:17:54 -05:00
Matthias Clasen
42369e31e2 tree model sort: Fix initial default sort func
gtk_tree_sortable_has_default_sort_func should return
FALSE initially.
2018-01-16 18:15:13 -05:00
Matthias Clasen
33ec75944f Fix the icontheme test
We rely on log messages here. Since logging is per-display
now, we need to set a display on our custom icontheme object
to get the expected log messages.
2018-01-16 15:42:28 -05:00
Matthias Clasen
e8079df420 mountoperation: Fix a crash
We only create the gesture when the dialog is needed,
so don't free it unconditionally.
2018-01-16 14:50:25 -05:00
Matthias Clasen
e0990b2311 Drop ::button-press/release event
We are no longer using these, and there are several gestures
that can be used instead. If you need to catch raw button events,
use the ::event signal.
2018-01-16 14:14:11 -05:00
Matthias Clasen
fb2df00f15 popover: Stop using ::button-press/release-event
Just use a generic ::event handler.
2018-01-16 14:14:10 -05:00
Matthias Clasen
f768ae4281 menushell: Stop using ::button-press/release-event
Merge the handlers into the existing handler for ::event.
2018-01-16 14:14:10 -05:00
Matthias Clasen
e8dfbf35e8 menu: Remove stray references to 'button_press'
No code change, but this string was still used in
docs and comments.
2018-01-16 14:14:10 -05:00
Matthias Clasen
15e67e27ca places sidebar: Stop using ::button-press/release-event
We'll use a generic ::event signal instead.
2018-01-16 14:14:10 -05:00
Matthias Clasen
10ac015ac6 gtk-demo: Stop using ::button-release-event 2018-01-16 14:14:10 -05:00
Matthias Clasen
ba844df6f0 tests: Stop using ::button-press/release-event
The generic ::event signal works fine here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
0c1ac9add4 testsuite: Stop using ::button-press-event
We can use the generic ::event signal instead.
2018-01-16 14:14:10 -05:00
Matthias Clasen
a2bce67d3b tests: Stop using ::button-press-event
A gesture will do here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
64c3db931d Drop ::motion-notify-event
We no longer emit this signal. You can use various gestures
and event controllers instead. If you need to catch raw
motion events, use the generic ::event signal.
2018-01-16 14:14:10 -05:00
Matthias Clasen
f90659cde8 places sidebar: Stop using ::motion-notify-event
We can use the generic ::event signal here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
822f802aec docs: Stop referring to specific event signals
These are going away.
2018-01-16 14:14:10 -05:00
Matthias Clasen
4d31a89ec0 gtk-demo: Stop using ::motion-notify-event in the hypertext demo
We already have a generic ::event handler, just use it for this.
2018-01-16 14:14:10 -05:00
Matthias Clasen
81b8f0493a tests: Stop using ::motion-notify-event
We can use the generic ::event signal here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
472f5e4b13 treeview: Stop using ::button-press-event
We can just use a gesture here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
8dcafc597c recent chooser: Stop using ::button-press-event
We can just use a multipress gesture here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
ab283933be mount operation: Stop using ::button-press-event
A multipress gesture does just fine here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
9dc14b630d testinput: Port to a drag gesture
This replaces both button-press-event and motion-notify-event
handlers.
2018-01-16 14:14:10 -05:00
Matthias Clasen
fa0f637268 entry completion: Drop another ::button-press-event handler
This one will be replaced by a generic ::event handler.
2018-01-16 14:14:10 -05:00
Matthias Clasen
4b613c2f6a docs: Stop referring to legacy event signals
These are going away.
2018-01-16 14:14:10 -05:00
Matthias Clasen
a94d2826ae entry completion: Stop using ::button-press-event
Just use the existing ::row-activated signal on the treeviews.
2018-01-16 14:14:10 -05:00
Matthias Clasen
75c92ba867 gtk-demo: Stop using ::button-press-event
Use gestures instead.
2018-01-16 14:14:10 -05:00
Matthias Clasen
33e2f31de4 testgtk: Stop using ::button-press-event
This one example can just as well use a gesture.
2018-01-16 14:14:10 -05:00
Matthias Clasen
1818e7bed2 places view: Stop using ::button-press-event
Instead, use a multi-press gesture in the row widget,
and emit ::popup-menu from there.
2018-01-16 14:14:10 -05:00
Matthias Clasen
270b6d3a84 file chooser: Use a multipress gesture
This replaces the use of ::button-press-event. There's two
issues with this commit:
1) We don't have a good way to do the equivalent of
   gdk_event_triggers_context_menu with gestures
2) We have to defer to and idle to avoid ordering
   issues with the treeviews own gestures
2018-01-16 14:14:10 -05:00
Matthias Clasen
c8a6a1138b Revert "file chooser: Allow activating without double-click"
This reverts commit fb0a13b7f0.

It is getting in the way of gesture conversion, and didn't
really make anybody happy anyway.
2018-01-16 14:14:10 -05:00
Matthias Clasen
f042d7a9a8 app chooser: Use a gesture
Instead of connecting to ::button-press-event, use
a multipress gesture here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
d810ff8445 Remove a leftover icon-size property
This made the 'style classes' demo crash.
2018-01-16 14:14:10 -05:00
Matthias Clasen
9ba5f053d9 Drop ::focus-in/out-event
These signals are no longer used in GTK+.
If you need to catch focus events, use the ::event signal.
2018-01-16 14:14:10 -05:00
Matthias Clasen
ad4287e338 treeview: Stop using ::focus-out-event
We can just use the generic ::event signal.
2018-01-16 14:14:10 -05:00
Matthias Clasen
7ae240199b file chooser entry: Stop using ::focus-out-event
Just use the generic ::event signal.
2018-01-16 14:14:10 -05:00
Matthias Clasen
5cb1c606bb spin button: Stop using ::focus-out-event
Just use the generic ::event signal.
2018-01-16 14:14:10 -05:00
Matthias Clasen
4f3065a5e8 calendar: Stop using ::focus-out-event
Use the generic ::event signal.
2018-01-16 14:14:10 -05:00
Matthias Clasen
e733aa43cf color editor: stop using ::focus-out-event
Again, the has-focus property is sufficient.
2018-01-16 14:14:10 -05:00
Matthias Clasen
5d57f0be8a text cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
7af2f73608 spin cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
04adcff624 combo cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
6d1dbec9dd tests: Stop using ::focus-in/out-event
The has-focus property works just as well here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
e3e00a2673 popover: Stop using ::focus-in/out-event
We can use the is-active property of the window instead.
2018-01-16 14:14:10 -05:00
Matthias Clasen
b12371e1b0 application: Stop using ::focus-in-event
We are really interested in the active window, so use
that property directly.
2018-01-16 14:14:10 -05:00
Matthias Clasen
7277d657d9 window: Stop using ::focus-in/out-event
We can just use the generic ::event.
2018-01-16 14:14:10 -05:00
Matthias Clasen
327ec24e51 text view: Stop using ::focus-in/out-event
We can just use the generic ::event here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
253ac15928 entry completion: Stop using ::focus-out-event
We can just use ::event.
2018-01-16 14:14:10 -05:00
Matthias Clasen
8c6c2be316 entry: Stop using ::focus-in/out-event
We can just use the generic ::event signal.
2018-01-16 14:14:10 -05:00
Matthias Clasen
144448d18b a11y: Stop using ::focus-in/out-event
We can just use the generic ::event signal.
2018-01-16 14:14:10 -05:00
Matthias Clasen
5759bc59c9 Drop gtk_widget_hide_on_delete
This function is misnamed - it is only ever relevant for
windows. And with the ::hide-on-delete property , it is
no longer necessary to use the signal for this simple case.
2018-01-16 14:14:10 -05:00
Matthias Clasen
2b59917a9d Drop ::event-after
This signal is not used in GTK+, and we are reducing the
amount of widget signals devoted to events in favor of
event controllers.
2018-01-16 14:14:10 -05:00
Matthias Clasen
1c2e09116a Drop ::grab-broken-event
This signal is no longer used in GTK+. Grab broken events
can be handled with the generic ::event signal.
2018-01-16 14:14:10 -05:00
Matthias Clasen
0583b80d1b button: Stop using ::grab-broken-event
The event-specific signals are going away. Just use ::event here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
4bbda548b7 menushell: Stop using ::grab-broken
The event-specific signals are going away. Just use ::event here.
2018-01-16 14:14:10 -05:00
Matthias Clasen
fa07fe2124 notebook: some cleanup 2018-01-16 14:14:10 -05:00
Matthias Clasen
af8bf498e9 notebook: Use a motion event controller
This lets us avoid the ::motion-notify-event handler.
2018-01-16 14:14:10 -05:00
Matthias Clasen
7046463b88 textview: Use a motion event controller
This lets us replace the ::motion-notify-event handler.
2018-01-16 14:14:10 -05:00
Matthias Clasen
f594807c0a Drop ::enter/leave-notify-event
These signals are no longer used in GTK+ and have a (not quite
perfect yet) replacement with GtkEventControllerMotion.

If you need to catch the raw events, the generic ::event
signal still works.
2018-01-16 14:14:10 -05:00
Matthias Clasen
06605d54f2 menu: Use a motion event controller
This lets us replace the ::enter/leave-notify-event handlers.
Not that there is a FIXME here - we currently can't get the
crossing mode from the event controller, so we have to fall
back to gtk_get_current_event().
2018-01-16 14:14:10 -05:00
Matthias Clasen
6acf276a1a menuitem: Use a motion event controller
This lets us replace the ::enter/leave-notify-event handlers.
Not that there is a FIXME here - we currently can't get the
crossing mode from the event controller, so we have to fall
back to gtk_get_current_event().
2018-01-16 14:14:10 -05:00
Matthias Clasen
118424bd93 iconview: Use a motion event controller
This can replace ::motion-notify-event and ::leave-notify-event.
2018-01-16 14:14:10 -05:00
Matthias Clasen
ab4f4fb045 scrolled window: Use a motion event controller
This lets use replace one of the last uses of ::leave-notify-event.
2018-01-16 14:14:10 -05:00
Matthias Clasen
9ceafd7c38 entry completion: Drop initial selection avoidance
This is a minor thing, and it is hard to recreate
with event controllers, so drop it for now.
2018-01-16 14:14:10 -05:00
Matthias Clasen
a2a80f8a15 treeview: Use a motion event controller
This replaces handlers for ::enter/leave/motion-notify-event.
2018-01-16 14:14:10 -05:00
Matthias Clasen
cf9074a2e9 Add x/y to GtkEventControllerMotion::enter
We have this information available in enter events,
and having it in the controller signal as well makes
porting easier.

Update existing users.
2018-01-16 14:14:10 -05:00
Matthias Clasen
a9d468a4c8 Drop ::configure-event
This signal is unused in GTK+ and configure events are handled
internally by GtkWindow.

If you need to catch configure events, the generic ::event
signal still works.
2018-01-16 14:14:10 -05:00
Matthias Clasen
59572e5fcf window: Stop using ::configure-event
We already have a generic ::event handler that we
can just press into service for this.
2018-01-16 14:14:10 -05:00
Matthias Clasen
8338b0f0cc testgtk: Stop using ::configure-event 2018-01-16 14:14:10 -05:00
Matthias Clasen
2e04817701 xim: Stop using ::configure-event
The generic ::event will do.
2018-01-16 14:14:10 -05:00
Matthias Clasen
cbf1ff98f7 tests: Stop using ::configure-event
The generic ::event will do.
2018-01-16 14:14:10 -05:00
Matthias Clasen
fa885f437c Drop ::touch-event
This signal is not used in GTK+, and has a suitable
replacement with GtkGesture and its subclasses.

If you need to catch the raw touch events, the generic ::event
signal still works, too.
2018-01-16 14:14:10 -05:00
Matthias Clasen
47712a826b Drop ::scroll-event
This signal is not used in GTK+, and has a suitable
replacement with GtkEventControllerScroll.

If you need to catch these events, the generic ::event
signal still works, too.
2018-01-16 14:14:10 -05:00
Matthias Clasen
e93c2517e6 Drop ::proximity-in-event and ::proximity-out-event
These are unused in GTK+, and are not very common.
If you need to catch these events, the generic ::event
signal still works.
2018-01-16 14:14:09 -05:00
Matthias Clasen
fd2a3b602f Drop ::map-event and ::unmap-event
These are unused in GTK+, and are not very common.
If you need to catch these events, the generic ::event
signal still works.
2018-01-16 14:14:09 -05:00
Matthias Clasen
ab53142c0f window: Stop using ::map-event
Use ::event here, since we want to drop the event-specific
signals, and we already have a handler for the generic signal.
2018-01-16 14:14:09 -05:00
Matthias Clasen
1e0ae936fe widget: Stop using ::map-event
Use ::event here, since we want to drop the event-specific
signals.
2018-01-16 14:14:09 -05:00
Matthias Clasen
7b581ca096 Drop GtkWidget::destroy-event
This signal is unused in GTK+, and is documented as
'hard to ever get', so there's no good reason for
keeping it.
2018-01-16 14:14:09 -05:00
Matthias Clasen
2b52b4be5d Drop GtkWidget::delete-event
Nobody is using this signal anymore, and ::delete is there
for the few places where it is needed.
2018-01-16 14:14:09 -05:00
Matthias Clasen
41e4c93443 Replace all remaining uses of delete-event 2018-01-16 14:14:09 -05:00
Matthias Clasen
a739ee6905 Replace GtkWidget::delete-event by GtkWindow::close-request
The event is not useful at all, so we are better off
with a signal that doesn't have it, and it is only
relevant on toplevel windows, so we don't need it on
GtkWidget.

With this commit, delete events no longer go through the
::event, ::delete-event, ::event-after widget signals,
but just cause the ::close-request signal on GtkWindow to be
emitted.
2018-01-16 14:14:09 -05:00
Matthias Clasen
1c3f8ba252 testoverlay: Use an event controller
We can stop using ::enter-notify-event here, and use
our new motion event controller instead.
2018-01-16 14:14:09 -05:00
Matthias Clasen
96b2b1b2f3 testgtk: Redo the event watcher case
Make this watch for emissions of ::event, since we
want to get rid of individual signals first.
2018-01-16 14:14:09 -05:00
Matthias Clasen
6ac33215a5 testgtk: Use an event controller for 'testing scrolling'
The current code was not working with smooth scroll events,
for starters.
2018-01-16 14:14:09 -05:00
Matthias Clasen
97f805b888 testinput: Drop some no-op signal handlers
These were not doing anything.
2018-01-16 14:14:09 -05:00
Matthias Clasen
76fea5c5fa treeview: Don't handle ::delete-event
I don't think there is a way to get a delete event
on this popup - there's no window decorations, no close
button, etc. So no need to handle ::delete-event.
2018-01-16 14:14:09 -05:00
Matthias Clasen
7e491fd3fc font chooser: Stop using ::scroll-event
We have an event controller for this purpose now.
2018-01-16 14:14:09 -05:00
Matthias Clasen
d2edcf489b treeview: Use a scroll event controller
This is the recommended way to deal with scroll events
now.
2018-01-16 14:14:09 -05:00
Matthias Clasen
3cb93a479a tests: Avoid a use of ::map-event
We can use the ::map signal here instead.
2018-01-16 14:14:09 -05:00
Matthias Clasen
1e8a336993 gtk-demo: Drop a use of ::event-after
It works just fine with ::event as well.
2018-01-16 14:14:09 -05:00
Matthias Clasen
4923da3550 Drop gtk_true and gtk_false
These functions are entirely trivial, their documentation
is much longer than their implementation, and it contains
an example that is annotated as "don't do this"...
2018-01-16 14:14:09 -05:00
Matthias Clasen
75271c44c2 inspector: Stop using ::delete-event signal
We can just use GtkWindow::hide-on-close instead.
2018-01-16 14:14:09 -05:00
Matthias Clasen
ff8ba1149d icon-browser: Stop connecting to ::delete-event
We can just use GtkWindow::hide-on-delete
2018-01-16 14:14:09 -05:00
Matthias Clasen
ca227af4ff widget-factory: Stop connecting to ::delete-event
We can use GtkWindow::hide-on-close instead
2018-01-16 14:14:09 -05:00
Matthias Clasen
eda3b43553 gtk-demo: Stop using ::delete-event 2018-01-16 14:14:09 -05:00
Matthias Clasen
67649763b6 tests: Stop using the delete-event signal
We can use ::destroy in most cases.
2018-01-16 14:14:09 -05:00
Matthias Clasen
e7bd666711 treeview: Stop using gtk_true 2018-01-16 14:14:09 -05:00
Matthias Clasen
f0fb705aae doc tools: Stop using gtk_true 2018-01-16 14:14:09 -05:00
Matthias Clasen
c4513a6737 dialog: Stop using the ::delete-event signal
We can achieve the desired result with a class handler
and the ::hide-on-close property.
2018-01-16 14:14:09 -05:00
Matthias Clasen
d6e92cd984 file chooser native: Stop connecting to ::delete-event
We can just use GtkWindow::hide-on-close.
2018-01-16 14:14:09 -05:00
Matthias Clasen
d0f071aae9 file chooser button: Stop connecting to ::delete-event
We can just use GtkWindow::hide-on-close.
2018-01-16 14:14:09 -05:00
Matthias Clasen
a1b6bf19c1 applicationwindow: Stop connecting to ::delete-event
We can just use GtkWindow::hide-on-close.
2018-01-16 14:14:09 -05:00
Matthias Clasen
59878f281f about dialog: Stop connecting to ::delete-event
We can just use GtkWindow::hide-on-close.
2018-01-16 14:14:09 -05:00
Matthias Clasen
c86e8d0e60 color button: Stop connecting to ::delete-event
We can just use GtkWindow::hide-on-close.
2018-01-16 14:14:09 -05:00
Matthias Clasen
b919c3348f font button: Use GtkWindow::hide-on-close
Instead of the ::delete-event signal.
2018-01-16 14:14:09 -05:00
Matthias Clasen
c04f192113 window: Add a hide-on-close property
This lets us avoid ::delete-event signal handlers for just
this purpose.
2018-01-16 14:14:09 -05:00
Piotr Drąg
0101bbd441 Update Polish translation 2018-01-15 22:19:28 +01:00
Matthias Clasen
370d666406 inspector: Avoid a critical
I forgot to initialized the text field when I added
it back.
2018-01-15 08:01:54 -05:00
Matthias Clasen
3358c1fb32 vulkan: use GDK_DISPLAY_NOTE
Where we have a display, we should use the per-display logging.
2018-01-15 08:01:01 -05:00
Timm Bäder
e048889a12 vulkan: Fix build
This was changed in e151058dff but
GDK_NOTE only takes 2 arguments.
2018-01-15 11:02:37 +01:00
Timm Bäder
22c0a77ac5 tests: Update gl outset shadow tests
The results are slightly different for these now.
2018-01-15 10:57:25 +01:00
Timm Bäder
4946810960 gl renderer: Render unblurred outset shadows differently
We don't need to draw anything to a texure for those.
2018-01-15 10:56:43 +01:00
Timm Bäder
df35d00a1d gskcairoblur: Don't apply y_scale twice
A version of 29f36fed08 but for the blur
we use in gsk.
2018-01-15 10:56:43 +01:00
Matthias Clasen
76ac46405f Update docs for debug cleanup
Drop mention of GDK_GL, GDK_VULKAN and GDK_RENDERING_MODE,
add docs for GSK_DEBUG and new debug keys that were added.
2018-01-14 17:05:04 -05:00
Matthias Clasen
978c597e94 inspector: Some logging support
Add a way to toggle debug output on and off
from the inspector. For now, we don't add a
log viewer here, since that has the risk of
deadlock until we've the logging completely
separated by display, and also requires us
to install a log writer function, which
libraries are not supposed to do.
2018-01-14 17:05:04 -05:00
Matthias Clasen
f9100719bd inspector: Turn off gsk debugging
We don't want debug spew from the renderer that
is used for the inspector window, so turn it off.
2018-01-14 17:05:04 -05:00
Matthias Clasen
2be16f36ed gsk: Add a setter for debug flags
We need to set the global flags, since these are picked
up initially by new renderers.
2018-01-14 17:05:04 -05:00
Matthias Clasen
ba21a7764b gsk: Reorganize env vars
Get rid of GSK_RENDERING_MODE and add the flags to GSK_DEBUG,
following the same pattern we use in gdk now.
2018-01-14 17:05:04 -05:00
Matthias Clasen
c3215de005 gtk Use per-renderer flags for node names
We are moving to per-renderer flags, so lets check them here.
2018-01-14 17:05:04 -05:00
Matthias Clasen
c56419818f gsk: make logging per-renderer
Add a setter for per-renderer debug flags, and use
them where possible. Some places don't have easy access
to a renderer, so this is not complete.
Also, use g_message instead of g_print throughout.
2018-01-14 17:05:04 -05:00
Matthias Clasen
782c76c146 gsk: Drop unused debug flags
We are not logging anything for transforms or rendernodes atm.
2018-01-14 17:05:04 -05:00
Matthias Clasen
55585aec73 gsk: Clarify a debug message
We are printing a window type, not a display.
2018-01-14 17:05:04 -05:00
Matthias Clasen
845ae20954 wayland: Use g_message for logging
g_printerr is not the best for this.
2018-01-14 17:05:04 -05:00
Matthias Clasen
1d2606dc94 Drop the cairo-recording debug flag
It is not very useful. The cairo-image option on the
other hand is has been useful in tracking down problems
in the past, so we'll keep it.
2018-01-14 17:05:04 -05:00
Matthias Clasen
08dc2cd6a8 Drop the gl-always debug option
This doesn't seem very useful.
2018-01-14 17:05:04 -05:00
Matthias Clasen
e151058dff Make gdk logging per-display
As far as possible, use per-display debug flags.

This will minimize the debug spew that we get from
the inspector if it is running on a separate display.
2018-01-14 17:05:04 -05:00
Matthias Clasen
c5fc841285 gdk: Reorganize env vars
Drop GDK_GL, GDK_VULKAN and GDK_RENDERING_MODE.
Merge the useful bits into GDK_DEBUG.
Drop unused debug flags (CURSOR).
2018-01-14 17:05:04 -05:00
Matthias Clasen
af7f695068 Make geometry logging per-display
Use the new macro to do this.
2018-01-14 17:05:04 -05:00
Matthias Clasen
461d05f643 icon theme: Make logging per-display
As far as possible, for now. This needs some more
work to cover all locations.
2018-01-14 17:05:04 -05:00
Matthias Clasen
22e59ecd28 gtk: add a per-display log macro
This makes the conversion easier.
2018-01-14 17:05:04 -05:00
Matthias Clasen
c2793de6e2 Add a display property to keymaps
This is a general pattern we want to follow for all
objects in GDK. Also add a getter.
2018-01-14 17:05:04 -05:00
Piotr Drąg
a074eba16b Update Polish translation 2018-01-14 20:53:04 +01:00
Daniel Boles
e99992669c GdkMonitor: Fix link to nonexistent Display method
There is no gdk_display_get_monitors(). Instead, we have to use
gdk_display_get_n_monitors() and gdk_display_get_monitor(int).
2018-01-13 20:06:39 +00:00
Daniel Boles
db6127a118 HeaderBar: Explain use in conjunction w/ GtkWindow
After hinting how good GtkHeaderBar is for GtkWindow, let’s link to
the latter and indicate how users can make the two work together.
2018-01-13 20:06:20 +00:00
Daniel Boles
e0f69353bb Window: Mention GtkHeaderBar in set_titlebar() doc
This is the typical thing passed here and what most users want, so we
should mention it here, rather than requiring users to figure it out.
2018-01-13 20:06:20 +00:00
Daniel Boles
339d355dda Window: Clarify resize() doc about titlebar widget
Clarify the reference to HeaderBar, as it applies to any custom title
widget; HeaderBar is only the most common one used. Also, fix a typo.
2018-01-13 20:06:20 +00:00
Timm Bäder
f8d235ecc2 tooltip: Fix tooltip positions
Since gtk_widget_get_allocation doesn't return x/y values relative to
the GdkWindow anymore, we need to manually translate the widget
coordinates here.
2018-01-13 10:39:16 +01:00
Timm Bäder
e64028b41d tooltip: Remove some unused members 2018-01-13 10:23:01 +01:00
Timm Bäder
256bf3bf25 tooltip: Remove some unused includes 2018-01-13 10:23:01 +01:00
Timm Bäder
fc711040d1 tooltip: Remove custom picking code
Just use gtk_widget_pick here for now. This also makes tooltips of
widgets work which are not inside a container.
2018-01-13 10:23:01 +01:00
Timm Bäder
aa17c20951 window: Remove a resize grip mention from the docs 2018-01-13 10:23:01 +01:00
Timm Bäder
32166a9595 adwaita: Regenerate proper CSS 2018-01-13 07:39:54 +01:00
Timm Bäder
d8f6b12685 tooltip: Remove excessive padding
tooltips support padding now, just like everthing else.
2018-01-12 22:34:22 +01:00
Timm Bäder
c910a955d1 window: Fix tooltip allocation
Using get_preferred_size here does not work since it computes the
minimum height for the minimum width, but we want to know the minimum
height for the current width.
2018-01-12 22:34:22 +01:00
Timm Bäder
846a6e8157 tooltip: Fold a function into its only caller 2018-01-12 22:34:22 +01:00
Timm Bäder
badcf022bf gdk: Remove unused GdkStatus enum 2018-01-12 22:34:22 +01:00
Timm Bäder
abc0f67cf6 main: Set event user data earlier
event_widget is not modified anymore after the assignment from
handle_pointing event and we need the event's user data set for the
_gtk_window_check_handle_wm_event call.
2018-01-12 22:34:22 +01:00
Matthias Clasen
d1eb8cd809 x11: Only set the keymap display once
Not necessary to do this more than once.
2018-01-12 09:24:08 -05:00
Matthias Clasen
d72508590b wayland: Set display on keymaps
This was forgotten so far: The display of keymaps
was NULL.
2018-01-12 09:23:59 -05:00
Matthias Clasen
87e9f0895b Split NEWS
Split the NEWS file at the major release boundaries.
2018-01-10 19:06:45 -05:00
Matthias Clasen
0f76228c15 docs: Mention textures in the GtkImage docs
This is now the preferred way to load images.
2018-01-10 16:43:17 -05:00
Timm Bäder
185525a58d scrolledwindow: Remove workarounds
Instead of making sure here that the scrollbars are the last children,
just add the bin child as first one and keep the scrollbars last.
2018-01-10 16:36:59 +01:00
Timm Bäder
6652beae65 magnifier: gtk_snapshot_finish may return NULL 2018-01-10 16:36:59 +01:00
Matthias Clasen
76461a8004 Quiet a compiler warning
Avoid this warning the other way, without bumping the libvulkan
dependency.
2018-01-10 07:35:46 -05:00
Matthias Clasen
5009c691ac Revert "Quiet a compiler warning"
This reverts commit 888f289114.
2018-01-10 07:34:36 -05:00
Timm Bäder
60d3378dd1 entry: Fix text clipping
Clipping the text to the entire widget allocation is wrong if there are
icons involved.
2018-01-10 11:02:10 +01:00
Timm Bäder
6235b12ca4 entry: Fix get_text_allocation
These should be reported in GtkEntry coordinates, so relative to the
entry's origin. This fixes entrys with top/bottom padding applied.
2018-01-10 10:49:13 +01:00
Timm Bäder
77769a52b3 adwaita: Add some spacing to the scale value
So the slider does not overlap the value label. Since the value label is
allocated at the widget edge in gtk3, the correct fix here would
probably be to remove the 12px padding we apply to the entire scale and
instead apply it only to the trough.
2018-01-10 10:11:31 +01:00
Руслан Ижбулатов
266d4b31b8 GDK W32: Remove non-managed DnD code
All DnD is now managed in GDK.

This commit also rearranges some code in _gdk_win32_window_drag_begin().

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-01-10 16:57:31 +08:00
Руслан Ижбулатов
b11b342ad4 GDK W32: stop using the OWNERCHANGE event
It was removed completely. For now just comment out the code that used to emit it.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2018-01-10 16:57:24 +08:00
Timm Bäder
15b3f33965 adwaita: Fix scale styling for latest changes 2018-01-10 09:29:45 +01:00
Timm Bäder
b9531e3a7c scale: Allocate marks widget along the trough 2018-01-10 09:29:05 +01:00
Timm Bäder
04ade9483b testheightforwidth: Remove "vertical labels" test
This was testing lables with the angle property set, which doesn't exist
anymore.
2018-01-10 08:46:22 +01:00
Timm Bäder
31974e02ca renderbackground: Avoid excess css value lookups
We iterate over all background layers twice, so only lookup blend mode
vlaues once.
2018-01-10 08:46:22 +01:00
Timm Bäder
5e39f3c23b renderbackground: Add some constness 2018-01-10 08:46:22 +01:00
Timm Bäder
c9e6fcd5fa renderbackground: Pull out a gdk_rgba_is_clear check
We only call snapshot_color once, and this way it's clearer that nothing
will happen for a clear color from the caller side.
2018-01-10 08:46:22 +01:00
Timm Bäder
b6ee3490c3 GdkDrawingContext: Add missing nullable annotation 2018-01-10 08:46:22 +01:00
Timm Bäder
b9a05be2da gl renderer: Sprinkle some const around 2018-01-10 08:46:22 +01:00
Timm Bäder
1a8b9e9180 widget: Refine docs a bit 2018-01-10 08:46:22 +01:00
Matthias Clasen
6cab57d7ed Document the new GDK_VULKAN_DEVICE envvar
Best to document them while they're fresh.
2018-01-10 00:14:10 -05:00
Matthias Clasen
8d24105642 Document the GDK_VULKAN env var
This was not documented at all yet.
2018-01-10 00:11:25 -05:00
Matthias Clasen
adc780f2b8 Add missing debug keys to the docs
Several values for GDK_DEBUG were missing from the docs.
2018-01-10 00:09:25 -05:00
Matthias Clasen
4dbae1d4bf Drop unused GDK_GL values
And document the existing ones.
2018-01-10 00:02:23 -05:00
Matthias Clasen
0290b28564 Drop unused debug keys
The multihead, xim and xinerama keys do nothing anymore.
2018-01-09 23:21:33 -05:00
Matthias Clasen
0443892bc7 Drop no-longer-existing debug keys from the docs
There is no draw or nogl value for GDK_DEBUG.
2018-01-09 23:15:33 -05:00
Matthias Clasen
124a7969eb Drop another unused debug value
GTK_DEBUG_MULTIHEAD is unused as well.
2018-01-09 23:07:08 -05:00
Matthias Clasen
92e6557015 Remove an unused debug value
GTK_DEBUG_MISC is not used at all. Drop it.
2018-01-09 22:56:40 -05:00
Matthias Clasen
2ff75aafbd Docs: Drop section on commandline arguments
We no longer do that.
2018-01-09 20:40:47 -05:00
Matthias Clasen
ccdeaab1f9 vulkan: Add a way to specify a device
We should be smarter in picking a good device eventually,
but for now, we just allow to explicitly choose one. To
see a list of all devices, use GDK_VULKAN_DEVICE=list

To specify which device to use, use GDK_VULKAN_DEVICE=<number>
2018-01-09 20:33:04 -05:00
Matthias Clasen
0fe6d76ab6 Make size request warnings more useful
Print the css name of the widget in question, so we have
a chance of knowing that this is caused by the marks, not
by the slider.
2018-01-09 17:48:51 -05:00
Matthias Clasen
888f289114 Quiet a compiler warning
Vulkan grew a new error code.
2018-01-09 17:20:44 -05:00
Matthias Clasen
4908b5ef54 Fix file chooser
Now that the places sidebar is private, we need to
ensure the type is known.
2018-01-09 17:20:23 -05:00
Matthias Clasen
9a3b61ec9d Drop GtkPlacesSidebar from public API
This is a bit of filechooser internals that gets shared with
nautilus, which is fine, but it shouldn't be part of our
public API. There are no other users than nautilus.
2018-01-08 14:38:55 -05:00
Timm Bäder
bbf6e81c1f gl renderer: Fix shaders for gles
Remove uniform initializers, add casts to float, etc.
2018-01-08 19:23:06 +01:00
Timm Bäder
cd2a53851b gl: Fix copy&paste error in blur shader 2018-01-08 19:23:06 +01:00
Timm Bäder
8f3cb2658a inspector: Stop adding event controllers to the object tree
There's a dedicated "Gesture" page for all the gestures.
2018-01-08 19:23:06 +01:00
Sveinn í Felli
9e3b3c30b7 Update Icelandic translation
(cherry picked from commit d96a7c9e87)
2018-01-08 17:47:27 +00:00
Timm Bäder
0aca394a96 adwaita: Uncomment accidentally commented lines
The result looks wrong but the css looks right.
2018-01-08 17:44:37 +01:00
Timm Bäder
9a68c068a8 treeview: Stop rendering focus outline
This is done on a widget-level via css these days.
2018-01-08 17:44:37 +01:00
Timm Bäder
16cf4637e9 widget: Fix css padding debug drawing 2018-01-08 17:44:37 +01:00
Timm Bäder
f7ba3224b9 gl renderer: Bring back hexbox drawing 2018-01-08 17:44:37 +01:00
Timm Bäder
3176ae7e51 gl renderer: Use alpha uniform in inset shadow shader 2018-01-08 17:44:33 +01:00
Matthias Clasen
5ce2d77691 toolbutton: Fix off-center icons
When the toolbar style is both-horiz, and the item
is not important, we were not centering the icon in the
same way as in gtk3. The reason is that we overlooked
the expand child property being set to TRUE in this case.
2018-01-07 12:44:35 -05:00
Daniel Boles
b89bf98731 ScrolledWindow: add() before remove() in snippet
We can't remove() a child widget that wasn't already add()ed, of course.
2018-01-07 16:47:24 +00:00
Ting-Wei Lan
14b181ebd4 build: Use pkg-config to find iso-codes
Instead of hard-coding the path of iso-codes, we can get the prefix with
pkg-config. We still fallback to /usr when it is not available.

https://bugzilla.gnome.org/show_bug.cgi?id=792282
2018-01-07 14:53:41 +08:00
Matthias Clasen
3771c95c72 gsk: Move Vulkan sources to a subdirectory
Following what was already done for GL.
2018-01-06 09:36:55 -05:00
Rico Tzschichholz
3c38ebb906 filechooser: Add missing array annotations to add_choice() 2018-01-06 09:34:44 +01:00
Rico Tzschichholz
6e6e6d774f iconview: Prevent ownership transfer of cell out-param in get_item_at_pos() 2018-01-06 09:27:44 +01:00
Matthias Clasen
550f4bc854 gsk: Fix hexbox drawing for the Vulkan renderer
Just as in the cairo renderer, we can get this back
by using pango_cairo_show_glyph_string for populating
the cache.
2018-01-05 20:30:14 -05:00
Matthias Clasen
2bab983ecf gsk: Fix hexbox drawing for fallback rendering
pango does not currently export api for drawing hex boxes,
but by using pango_cairo_show_glyph_string, we can reuse its
implementation.
2018-01-05 18:55:23 -05:00
Matthias Clasen
258e504c6a Implement equal for GtkCssImageUrl
This should in theory speed some things up if the same
image is used in multiple places.
2018-01-05 17:15:44 -05:00
Matthias Clasen
36e09f3ad9 label: Properly handle multi-line selections
They were rendered as a single rectangle, which is not
what is expected. Same for multi-line links.
2018-01-05 15:54:49 -05:00
Matthias Clasen
c8770b3c63 file button: Don't leak rows
The file chooser button manually manages the memory of
data in its model, so it needs to explicitly free the
rows.
2018-01-05 11:50:22 -05:00
Khaled Hosny
079ee7e405 Update Arabic translation 2018-01-05 15:32:33 +02:00
Matthias Clasen
50975be4d0 wayland: Plug memory leaks
We were forgetting to free the GdkContentFormats
objects in an early exit case.
2018-01-04 22:55:04 -05:00
Matthias Clasen
407d3db2b6 Plug a memory leak
gdk_pixbuf_format_get_name returns newly allocated
strings.
2018-01-04 22:54:29 -05:00
Matthias Clasen
98da7730ea label: Plug a memory leak
We were sometimes leaking the content serializer object.
2018-01-04 22:24:43 -05:00
Matthias Clasen
3dd3ae1b9d font chooser: Plug a memory leak
We were leaking the hb_font object.
2018-01-04 22:24:21 -05:00
Matthias Clasen
e41e8c4c53 font chooser: Fix a memory leak
We were leaking the delayed font descriptions.
2018-01-04 21:19:28 -05:00
Matthias Clasen
0ed670ed62 Remove a dead macro
GCs have been dead for a long time.
2018-01-04 18:23:36 -05:00
Matthias Clasen
a670de4425 Quiet the doc build a bit 2018-01-04 18:22:47 -05:00
Matthias Clasen
ea6da7b1b8 gdk: Convince gtk-doc to include backend docs
This is almost as unpleasant with meson as it is with autotools.
2018-01-04 15:57:28 -05:00
Timm Bäder
7479e6cb50 notebook: Fix wrong tab widgets allocation
Since we allocate the tab widgets on demand, we have to queue an extra
resize here.
2018-01-04 21:41:35 +01:00
Timm Bäder
85fa396176 widget: Avoid casting event coordinates to int in contains() 2018-01-04 21:41:35 +01:00
Matthias Clasen
888a157ffa docs: Remove unused images
All the old cursor font images are unused.
2018-01-04 15:26:52 -05:00
Matthias Clasen
8a5b6d422f fontchooser: fix feature formatting
There was a " missing, causing some features to be missed.
2018-01-04 08:39:18 -05:00
Timm Bäder
33162eee1a window: Fix an event widget/target mixup
This makes dragging inside a GtkEntry in the window decoration work
again.
2018-01-04 13:16:24 +01:00
Timm Bäder
a89e88fc3e widget: Ignore non-gestures in _gtk_widget_consumes_motion
priv->event_controllers is a list of all event controllers, which aren't
all GtkGesture subclasses.
2018-01-04 13:15:15 +01:00
Timm Bäder
62ccf8743a filechooser: Manage spinner state
So we don't get an allocate every frame.
2018-01-04 12:20:27 +01:00
Timm Bäder
af6adb5bc0 gl renderer: Add test case for last commit 2018-01-04 12:20:27 +01:00
Timm Bäder
f729cbb760 gl renderer: Fix text color pre-multiplication 2018-01-04 12:20:27 +01:00
Timm Bäder
f55be762e2 recorder: Fix a button tooltip
This button will save the selected node to a file, not all recorded
frames.
2018-01-04 12:20:27 +01:00
Piotr Drąg
f94d72c012 Update POTFILES.skip 2018-01-03 21:28:36 +01:00
Matthias Clasen
ebeca18635 gtk-demo: Update font explorer example
Revise the UI (no more double checkboxes), add font variations,
update font features from the dialog, allow tweaking ranges.
2018-01-03 14:56:36 -05:00
Piotr Drąg
83c5b661f6 Update POTFILES.in 2018-01-03 20:24:05 +01:00
Matthias Clasen
a79f950dfe font chooser: Manage tweak button sensitivity
When we don't have any font features or variation axes,
there is no point in going to the tweak page, so disable
the action in this case.
2018-01-03 14:06:00 -05:00
Matthias Clasen
34b4de09fc font chooser dialog: Improve sensitivity handling
We should not tie the sensitivity of the select button
to the tweak action, since there may be fonts which are
selectable, but not tweakable.

Instead, enable the select button when a font is selected,
as it should be.
2018-01-03 14:05:33 -05:00
Matthias Clasen
7687393583 font chooser: Don't set hardcoded default features
We should rely on harfbuzz to select the right defaults.
2018-01-03 13:41:20 -05:00
Matthias Clasen
4cc68a97a8 font chooser: Support font variations
Add sliders for the available axes to the tweak page.
2018-01-03 13:28:33 -05:00
Matthias Clasen
379970082a font button: Take variations into account
We need to apply variations too, when we are using
the font to render the button label.
2018-01-03 13:07:55 -05:00
Matthias Clasen
fb51e438e9 Implement font-variation-settings
This is a CSS font level 4 property that lets us
use font variation settings from css.
2018-01-03 13:07:55 -05:00
Matthias Clasen
f259aa7e76 Bump the pango requirement
We want to use the new font variation api in pango 1.41.
2018-01-03 13:06:28 -05:00
Matthias Clasen
894a0c0ff4 font chooser: Add properties for features and language
These can't be returned as part of the font description,
so we need new api for them. For now, this is just readonly
properties. Maybe these should be writable too, eventually.
2018-01-03 12:18:18 -05:00
Matthias Clasen
ade33c6e14 Add font features on the tweak page 2018-01-03 12:18:18 -05:00
Matthias Clasen
15f8b2d0ae font chooser: Add a tweak page
Add a button the dialog's header bar that lets us
switch to a second page where we can customize
the selected font.

Make the font chooser widget export an action that the
dialog can use for the button. This has some advantages:
- we can export not just the toggle state, but also enabled
- we can reuse the same enabled state to make the select
  button insensitive when no font is selected

To determine whether a font is selected, listen to changes
of the list selection. And ensure that the font chooser is
in an initial state when mapped, even if we close the dialog
from the tweak page.
2018-01-03 12:18:18 -05:00
Matthias Clasen
70bae02612 font button: Remove show-font and show-size
These are now handled in a more systematic fashion
using GtkFontChooserLevel.
2018-01-03 12:18:18 -05:00
Matthias Clasen
f0526359d1 font chooser: introduce font chooser levels
This is a more systematic approach to reducing the
level of detail in the font chooser.
2018-01-03 12:18:18 -05:00
Matthias Clasen
78f9193d7e font chooser: Small revision of the UI
Show only the font names in the list, in their own
font, in order to make the list less noisy.
2018-01-03 12:18:18 -05:00
Timm Bäder
3f68475b6f Make a few more code samples compile 2018-01-03 17:11:32 +01:00
Timm Bäder
5cd138f0f2 entry: Remove some questionable code examples 2018-01-03 17:11:32 +01:00
Timm Bäder
614bcefa21 widget: Make all code snippets compile 2018-01-03 17:11:32 +01:00
Timm Bäder
cba24360b1 Move geometry management docs do GtkWidget
Both GtkWidget and GtkContainer had similar docs regarding hfw/wfh
geometry management. Move these just to GtkWidget. Also make sure the
examples compile, port everything from gtk_preferred_* to measure and
replace some occurrences of "container" with "widget" where container
was just used to refer to a widget with child widgets.
2018-01-03 17:11:32 +01:00
Timm Bäder
e8376f5c01 liststore: Make a code snippet compile 2018-01-03 17:11:32 +01:00
Timm Bäder
3744bbdc27 searchbar: Make a code snippet compile 2018-01-03 17:11:32 +01:00
Timm Bäder
cf9942e3cc menuitem: Make a code snippet compile 2018-01-03 17:11:32 +01:00
Timm Bäder
3d9421509c expander: Make a code snippet compile 2018-01-03 17:11:32 +01:00
Timm Bäder
9f86cb2b4e treeviewcolumn: Make a code snippet compile 2018-01-03 17:11:32 +01:00
Timm Bäder
1c267398ef notebook: Make a code snippet compile 2018-01-03 17:11:32 +01:00
Timm Bäder
4a999cbd1f scrolledwindow: Fix code sample compilation 2018-01-03 17:11:32 +01:00
Krzesimir Nowak
7f300c9da7 examples, gtk-demo: Fix copy-pasta in signal name 2018-01-03 09:59:19 +01:00
Rico Tzschichholz
6aeae2c828 gdk: Drop invalid "transfer" g-i annotations 2018-01-03 08:26:21 +01:00
Rico Tzschichholz
14d64eaf95 dnd: Add g-i annotations for gdk_drop_read_async/finish 2018-01-03 08:18:47 +01:00
Rico Tzschichholz
543b21430b gsk: Add docs for gsk_texture_node_get_texture 2018-01-03 08:17:23 +01:00
Matthias Clasen
a25357007e Fix pointer obscuring in text view
The code for hiding the mouse cursor until the next motion
event was not working, probably due to a typo here.
2018-01-02 21:52:43 -05:00
Arnaud Bonatti
295726560e Add test for GtkActionable GtkListBoxRow.
https://bugzilla.gnome.org/show_bug.cgi?id=741633
2018-01-02 17:56:10 -08:00
Arnaud Bonatti
f1e3b503de Make GtkListBoxRow GtkActionable.
https://bugzilla.gnome.org/show_bug.cgi?id=741633
2018-01-02 17:56:10 -08:00
Matthias Clasen
9f94736c92 Remove selection-handling leftovers
The selection_get and selection_received vfuncs are
no longer used, remove them.
2018-01-02 18:14:14 -05:00
Matthias Clasen
48bfc9badf testinput: Make this work again
This test was not updated to using a draw func instead
of the ::draw signal yet. At the same time, make it use
::size-allocate instead of ::configure-event.
2018-01-02 18:14:13 -05:00
Matthias Clasen
12e4f4256d Drop an unused enum value
We haven't had a GtkWindow::frame-event since the
linux-fb backends demise.
2018-01-02 18:14:13 -05:00
Matthias Clasen
e522ff0532 testgtk: Fix the test scrolling test
We need to expand here, otherwise things look wrong.
2018-01-02 18:14:13 -05:00
Matthias Clasen
d3014c23b9 testgtk: Fix the scrolledwindow test
We need to expand here, otherwise things look wrong.
2018-01-02 18:14:13 -05:00
Matthias Clasen
473bbeb475 gtk-demo: Port the drawingarea demo to a gesture
Use a drag gesture here, just like in the drawing example.
2018-01-02 18:14:13 -05:00
Matthias Clasen
c9267e70a9 Port drawing example to gestures
Use a drag and a multi-press gesture.
2018-01-02 18:14:13 -05:00
Matthias Clasen
bb568a51d4 Make drawing example work again
Using ::configure-event and ::draw on a drawing area
doesn't work anymore. Use ::size-allocate and a
draw function instead.
2018-01-02 18:14:13 -05:00
Matthias Clasen
4d6fbdd19e Remove testthreads
As far as I can tell, this has not been in the Makefiles
since 2001...
2018-01-02 18:14:13 -05:00
Matthias Clasen
2c2288206e Drop an unintentional use of ::destroy-event
Clearly, ::destroy was meant here.
2018-01-02 18:14:13 -05:00
Matthias Clasen
ab256384b8 testsuite: Drop commented out and useless code
These two uses of ::delete-event were pointless.
2018-01-02 18:14:13 -05:00
Matthias Clasen
c0cd46355d Drop a no-longer-working test
Embedding toplevels does not work anymore.
2018-01-02 18:14:13 -05:00
Matthias Clasen
5f608a1d07 Revert "inspector: Stop using GtkWidget::event"
This reverts commit 1268440c35.

Turns out we'll keep ::event, so this was misguided.
2018-01-02 18:14:08 -05:00
Matthias Clasen
750341414d Revert "treeviewcolumn: Stop using GtkWidget::event"
This reverts commit da74314779.

Turns out we'll keep ::event, so this was misguided.
2018-01-02 18:14:04 -05:00
Matthias Clasen
506b436f09 Revert "text handler: Stop using GtkWidget::event"
This reverts commit 74f563b501.

Turns out we'll keep ::event, so this was misguided.
2018-01-02 18:13:34 -05:00
Matthias Clasen
361a3885b5 spinner cell: Avoid a crash
The icon helper is not used, so no point in crashing
while trying to destroy it.
2018-01-02 18:05:30 -05:00
Matthias Clasen
d072201b12 docs: Don't mention non-longer-existing signals
The ::window-state-event signal no longer exists.
2018-01-02 18:05:19 -05:00
Timm Bäder
6b44a70a09 GdkTexture: Add a missing (array) annotation 2018-01-02 18:56:19 +01:00
Timm Bäder
355b883f32 stack-allocate GtkCssLookup instances 2018-01-02 08:36:10 +01:00
Timm Bäder
fcc8d778b5 gl renderer: Avoid some code duplication 2018-01-02 08:10:06 +01:00
Timm Bäder
d1a08aa2a9 gl driver: Remove some type checks in a hot path 2018-01-02 08:10:06 +01:00
Timm Bäder
0e57d173b3 gl renderer: Remove an unnecessary block 2018-01-02 08:10:06 +01:00
Timm Bäder
9ef700b161 css parser: Reuse one GString
Instead of creating a new one for every ident, name and string, just
create one GString and reuse it. This means the GString we keep around
will grow to the maximum size of any ident, name or string we parse,
which is still not terribly large.
2018-01-02 08:10:06 +01:00
Daniel Boles
ab0edd1091 themes: missing specificity bump on expander arrow
Commit 4ee02725b4 made the :hover apply to
the title node, not the arrow node, but the selectors it added were not
caught by the recent commits fixing the specificity of title > arrow.
2018-01-01 21:22:23 +00:00
Daniel Boles
3bcbf4cf4e themes: Regenerate CSS to reflect recent commits
a lot of them, in this case
2018-01-01 19:53:43 +00:00
Daniel Boles
4878eea06b HighContrast: Avoid expander↔combobox interference
as per commit 4241c4bdbd
2018-01-01 18:54:13 +00:00
Matthias Clasen
17bad98084 emoji: Accept unpaired releases for variations
This enables a single long-press-move-release gesture
for picking a variation. This is not perfect yet: We
don't get hover in this case.
2017-12-30 23:24:22 -05:00
Matthias Clasen
72c9853999 list, flow box: Make unpaired releases opt-in
We don't want a pointer that is moved off a scrollbar
to trigger a row when it gets released. To avoid this,
require an explicit opt-in to handling unpaired-releases.
2017-12-30 23:23:16 -05:00
Matthias Clasen
1be0b6d2d5 dnd: Drop docs that are no longer relevant
We no longer take an event as argument, so no
need to explain how to obtain a suitable event.
2017-12-30 22:46:28 -05:00
Matthias Clasen
74f563b501 text handler: Stop using GtkWidget::event
This signal is going away.
2017-12-30 22:38:14 -05:00
Matthias Clasen
da74314779 treeviewcolumn: Stop using GtkWidget::event
This signal is going away.
2017-12-30 22:27:54 -05:00
Matthias Clasen
1268440c35 inspector: Stop using GtkWidget::event
This signal is going away.
2017-12-30 22:13:45 -05:00
Matthias Clasen
7d659b21e6 Drop deprecated text view layers
These have been marked as deprecated, so lets drop them.
2017-12-29 13:13:36 -05:00
Matthias Clasen
9c1207ed37 Update new css docs for new nowrap handling
This changes the recent additions to the css property
docs to also use <phrase role="nowrap">
2017-12-29 13:12:06 -05:00
Arnaud Rebillout
25523e60c3 gtk: remove non-breaking space, probably there by mistake
Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:31 -05:00
Arnaud Rebillout
ed5f07e0e7 css docs: fix some formatting inconsistencies along the way
Mostly spaces.

Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:31 -05:00
Arnaud Rebillout
c1ce599e11 css docs: remove useless <para>
Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:31 -05:00
Arnaud Rebillout
ea55471441 css docs: swap border-width and border-left shorthands, to keep going clockwise
Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:31 -05:00
Arnaud Rebillout
b42fc417bd css docs: Fix duplicate border‑right‑width
Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:31 -05:00
Arnaud Rebillout
b3871a76c4 css docs: Fix refentry and refname
Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:30 -05:00
Arnaud Rebillout
ccf3b10528 css docs: Ensure the first column does not break for every table
Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:30 -05:00
Arnaud Rebillout
98a28f4168 css docs: Get rid of non-breaking hyphens
Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:30 -05:00
Arnaud Rebillout
3c7c4a019c css docs: Get rid of non-breaking spaces
Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:30 -05:00
Arnaud Rebillout
73d6076967 css docs: Fix some angle brackets for percentage
Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=791710
2017-12-29 12:51:30 -05:00
Timm Bäder
c1573a1fda window: Avoid a set-but-not-used warning 2017-12-29 08:59:53 +01:00
Timm Bäder
f92cca5229 gl renderer: Fix release build 2017-12-29 08:59:47 +01:00
Timm Bäder
86a6131510 build: Rename a variable
Those aren't source headers...
2017-12-29 05:48:43 +01:00
Timm Bäder
6587864824 gl driver: Remove more unused API 2017-12-29 05:48:43 +01:00
Timm Bäder
e0436b3d59 gl renderer: Properly delete all shader programs 2017-12-29 05:48:43 +01:00
Timm Bäder
d2d18f74f8 gl driver: Remove gl-context property
No need for this to be a property.
2017-12-29 05:48:43 +01:00
Timm Bäder
1cbd4d229e gl driver: Remove dead warning code
_get_fbo never returns NULL.
2017-12-29 05:48:43 +01:00
Timm Bäder
c9656e2864 gl driver: Only support one fbo per texture 2017-12-29 05:48:43 +01:00
Timm Bäder
352590cf9f gl driver: Remove vao API
Unused.
2017-12-29 05:48:43 +01:00
Timm Bäder
825608af2a gl renderer: Remove unused parameter 2017-12-29 05:48:43 +01:00
Timm Bäder
4abbf929ad gl renderer: Remove some unused uniforms from shader 2017-12-29 05:48:42 +01:00
Timm Bäder
aeaab5557b gl renderer: Only draw what we have to 2017-12-29 05:48:42 +01:00
Timm Bäder
2bc10fa365 gl renderer: draw all outset shadows
Instead of falling back to cairo for most of them.
2017-12-29 05:48:40 +01:00
Timm Bäder
c4d5225aac testoutsetshadowdrawing: Add more samples 2017-12-28 16:48:35 +01:00
Timm Bäder
767df913d1 testsuite: Move gl renderer nodes files into their own directory
Otherwise, they get picked up by the other node tests.
2017-12-28 16:48:35 +01:00
Timm Bäder
e1c120623b tests: Fix the unblurred gl renderer output images
Some of these were wrong or empty.
2017-12-28 16:48:35 +01:00
Timm Bäder
9f2674077a gl renderer: Properly flip texture in render_texture path
Just do this on the CPU instead.
2017-12-28 16:48:35 +01:00
Timm Bäder
9675b8a310 showrendernode: Add some advanced options
1) Add a --compare cmd line switch that lets people compare the normal
     render path and the render_texture path.
  2) Add a -o cmd line switch that lets people render the given .node
     file to a texture and save that texture to the given png file name.
2017-12-28 16:48:35 +01:00
Timm Bäder
a61eecc22e snapshot: Don't create clip nodes with 0 width or height 2017-12-28 16:48:35 +01:00
Timm Bäder
a720a63fa3 gl renderer: Insert render target op in render_texture path 2017-12-28 16:48:35 +01:00
Timm Bäder
3158b481b7 testoutsetshadowdrawing: Add adwaita CSD window test case 2017-12-28 16:48:35 +01:00
Timm Bäder
8312ee0ebe testsuite: Add selected gl renderer test node files 2017-12-28 16:48:35 +01:00
Timm Bäder
006f2e32cf testheaderbar: Fix custom CSS 2017-12-28 16:48:35 +01:00
Matthias Clasen
4241c4bdbd Adwaita: Avoid expander<>combobox interference
Putting a combobox in an expander was causing the combo arrow
to go sideways. Increase the specificity with which we address
the expander arrow to avoid that.
2017-12-28 08:40:39 -05:00
Matthias Clasen
e90787d975 fontchooser: Add global keynav
Starting to type should focus the search entry and start
a search.
2017-12-27 17:29:24 -05:00
Matthias Clasen
3f012f6d01 Try again to make the a11y tests pass 2017-12-27 07:08:17 -05:00
Matthias Clasen
06ad134876 Add an unrealize function to GtkLabel
We need to drpo the primary clipboard when the label
is getting unrealized while holding it. This fixes
a crash in the accessibility-dump test.
2017-12-26 23:33:39 -05:00
Matthias Clasen
ed6992867e Fix the a11y tests 2017-12-26 23:16:18 -05:00
Matthias Clasen
90b016ef73 Fix the textbuffer test
The test was assuming that gtk_text_buffer_paste_clipboard is
synchronous, which is no longer the case.
2017-12-26 23:15:30 -05:00
Matthias Clasen
c176d0c3d8 Simplify ui files
Run gtk3-builder-tool simplify over all our ui files.
2017-12-26 23:12:37 -05:00
Matthias Clasen
1d28a7c2c1 Update NEWS 2017-12-26 20:11:09 -05:00
Matthias Clasen
7be6d18f27 Fix objects-finalize test
This test needs similar fixes to the notify test to
pass a display to GDK objects when instantiating them.
2017-12-26 20:11:09 -05:00
Matthias Clasen
1b6750c1f1 Fix notify test
We need to pass a display when creating more GDK objects now.
2017-12-26 20:06:06 -05:00
Matthias Clasen
8c10849094 Avoid excess notification for GdkEventControllerScroll::flags
We have a test that checks this, and it is the right thing to do.
2017-12-26 20:06:06 -05:00
Matthias Clasen
8d9414c228 Avoid excess notification for GdkCellRendererPixbuf::icon-size
We have a test that checks this, and it is right thing to do.
2017-12-26 20:06:06 -05:00
Matthias Clasen
6c33e37db2 Remove a duplicate doc comment
g-ir-scanner complains about this.
2017-12-26 19:19:12 -05:00
Matthias Clasen
5ba5f2c0c0 gdk: Cosmetic rewording of draw context docs
Avoid draw context <> drawing context confusion,
as far as possible.
2017-12-26 14:39:49 -05:00
Matthias Clasen
fa9037aed5 gdk: Slight doc rearrangement
Mainly, add GdkDrawContext to the docs.
2017-12-26 14:39:49 -05:00
Matthias Clasen
371d527092 window: Remove GtkButton reference from docs
GtkButton doesn't have its own window anymore, so it is
a misleading example here.
2017-12-26 14:39:49 -05:00
Matthias Clasen
5c9ea0cf4f display: Cosmetic doc changes 2017-12-26 14:39:49 -05:00
Matthias Clasen
5ec25cde21 cursor docs: Point to gtk_widget_set_cursor
This is the right API to use for applications.
2017-12-26 14:39:49 -05:00
Matthias Clasen
6374226d6b Add documentation for content (de)serializers 2017-12-26 14:39:49 -05:00
Matthias Clasen
e917949315 Document GdkClipboard::changed 2017-12-26 14:39:49 -05:00
Matthias Clasen
ca2a7c1efd Document more structs 2017-12-26 14:39:24 -05:00
Matthias Clasen
53522f3c25 Document GDK_DISPLAY_XDISPLAY 2017-12-26 13:14:07 -05:00
Matthias Clasen
6f82ba5e5e gdk: Document GdkVulkanContext
New API needs documentation.
2017-12-26 13:00:27 -05:00
Matthias Clasen
dbcf0d1b69 gdk: Move GdkWindowState enum around
We no longer have an event for this, so move the
enum to gdkwindow.h, where it belongs.
2017-12-26 13:00:27 -05:00
Matthias Clasen
bb992ff00d More documentation additions 2017-12-26 13:00:27 -05:00
Matthias Clasen
f307fa99a5 Drop gratitious use of GdkPoint
This is the only use of this undocumented struct,
and it does not make this code any better. Just drop it.
2017-12-26 13:00:27 -05:00
Matthias Clasen
f2ad5ddbb6 Some GdkMonitor documentation additions
Document the ::invalidated signal.
2017-12-26 13:00:27 -05:00
Matthias Clasen
951456dbed Remove leftover API from headers
gdk_window_mark_paint_from_clip was removed in
bddfd7bb41
2017-12-26 13:00:27 -05:00
Matthias Clasen
278c4583fc Document new event getters
New API needs documentation.
2017-12-26 13:00:27 -05:00
Matthias Clasen
d6985d793f Try to make the docs build more quiet
Not sure if this really makes a difference.
2017-12-26 13:00:27 -05:00
Matthias Clasen
97dcf2461e gdk: Remove the event structs from the documentation
No longer public api.
2017-12-26 13:00:27 -05:00
Matthias Clasen
d3920d17fa Document gdk_display_get_setting
New api needs documentation.
2017-12-26 11:51:28 -05:00
Matthias Clasen
22a43dafc8 Remove leftover gdk_event_request_motions from headers
The implementation of this function was removed in
44cb3ccfa1.
2017-12-26 11:51:28 -05:00
Matthias Clasen
1ee72e8ef4 Drop gsk_renderer_get/set_viewport from the docs
These no longer exist.
2017-12-26 11:51:28 -05:00
Matthias Clasen
ffe838e7de gdk: Document GdkDisplay::setting-changed
New api needs documentation.
2017-12-26 11:51:28 -05:00
Matthias Clasen
8df58f953d Some migration guide revisions
Add a few things, reword some others.
2017-12-26 11:51:28 -05:00
Matthias Clasen
7a483bbecc docs: Add new headerbar api
Some functions have been renamed here.
2017-12-26 09:01:57 -05:00
Matthias Clasen
d04f66eb52 Add GtkIconSize back to the docs
And document how it works now.
2017-12-26 08:40:43 -05:00
Matthias Clasen
d5f215f96d gdk: Reshuffle docs slightly
Deemphasize GdkPixbuf in the docs.
2017-12-25 16:40:47 -05:00
Ting-Wei Lan
999cf1b1dc docs: Fix the build of gdk4 documentation
https://bugzilla.gnome.org/show_bug.cgi?id=791926
2017-12-25 14:59:35 -05:00
Matthias Clasen
b379ca3e02 check button: Fix inconsistent state
This has been broken since the inconsistent state
was moved here in 2aea8dfee9.
2017-12-25 11:36:39 -05:00
Ting-Wei Lan
5f8e2fcf93 gdk/broadway/toarray.pl: Don't hard-code the path of perl
https://bugzilla.gnome.org/show_bug.cgi?id=791927
2017-12-25 12:25:54 +08:00
Matthias Clasen
3902a0d3b1 Fix the docs build
We no longer have GtkClipboard.
2017-12-22 22:59:00 -05:00
Matthias Clasen
03cacda09e css: Document font-variant and subproperties
Add the CSS font level 3 properties that we support now
to the docs.
2017-12-22 22:56:35 -05:00
Emmanuele Bassi
e847694e91 Update annotations for GdkDisplay
GdkDisplay is missing various annotations, and the introspection scanner
is complaining about it.
2017-12-21 19:13:28 +00:00
Emmanuele Bassi
90a4e33415 Update annotations for GdkEvent API
The GdkEvent API is missing some gtk-doc stanzas, as well as some
introspection annotations.
2017-12-21 19:07:02 +00:00
Emmanuele Bassi
f27dd8834b docs: Add missing signal parameter
The `flags` parameter is missing, and the introspection scanner is
complaining about it.
2017-12-21 19:00:28 +00:00
Emmanuele Bassi
18a56cd795 build: Ensure we introspect the print operation sources
The documentation and annotations for some of the print API is defined
in platform-specific source files, so we need to ensure we're passing
those files to the introspection scanner in order to avoid warnings, and
to get the appropriate introspected API.
2017-12-21 18:57:25 +00:00
Emmanuele Bassi
cc80a2ec8e Annotate gdk_x11_display_get_screen()
We're missing the gtk-doc stanza, as well as the transfer annotation for
the returned pointer.
2017-12-21 18:49:25 +00:00
Emmanuele Bassi
6c0de43669 Remove unnecessary introspection annotation
Transfer annotations do not apply to integral types.
2017-12-21 18:46:08 +00:00
Emmanuele Bassi
f1ef422871 broadway: Use correct type in assignment
The new type propagation for g_object_ref() is raising a compiler
warning for an assignment with a different type.
2017-12-21 18:42:26 +00:00
Timm Bäder
862fd6f4e8 widgetbowl: Add blurred box shadow demo 2017-12-21 19:12:33 +01:00
Timm Bäder
7a2d30323e gl renderer: try doing outset box shadows
Still fall back in cases we can't handle that way.
2017-12-21 19:12:33 +01:00
Timm Bäder
8b880de4a2 tests: Add outset shadow drawing test 2017-12-21 19:12:33 +01:00
Timm Bäder
d211f42091 gl renderer: Remove unused vertex shader 2017-12-21 19:12:32 +01:00
Timm Bäder
f044b01549 gl renderer: Don't crash if the first op is an opacity one 2017-12-21 19:12:32 +01:00
Timm Bäder
490e15021c gl renderer: Force cross-fade nodes offscreen 2017-12-21 19:12:32 +01:00
Timm Bäder
48be2aed23 gl renderer: Use one function per op type to apply data 2017-12-21 19:12:32 +01:00
Timm Bäder
28499032da gl renderer: Don't leak gl resources 2017-12-21 19:12:32 +01:00
Timm Bäder
5eb4f65c32 showrendernode: Show at least the root node bounds 2017-12-21 19:12:32 +01:00
Timm Bäder
ee27b17a12 gl renderer: Fix indentation mishap 2017-12-21 19:12:32 +01:00
Timm Bäder
a83037c440 gl renderer: Implement cross fade nodes 2017-12-21 19:12:32 +01:00
Timm Bäder
bed03aa319 gl renderer: Fix linear gradient shader color calculation
This fixes both the wrong headerbar color and the broken border color in
of the circular button in the widget-factory.
2017-12-21 19:12:32 +01:00
Timm Bäder
eb221ff305 gl renderer: Only take glyph texture alpha into account
This way, we can use the very same coloring program to draw text shadows
of fonts with colored glyphs.
2017-12-21 19:12:32 +01:00
Timm Bäder
075e6ac266 gl renderer: Fix shadow nodes if the child is a container 2017-12-21 19:12:32 +01:00
Timm Bäder
18e7d777a2 gl renderer: Move declarations to the beginning of the block 2017-12-21 19:12:32 +01:00
Timm Bäder
e9be72a73e gl renderer: Fix use of uninitialized values 2017-12-21 19:12:32 +01:00
Timm Bäder
33457b4035 gl renderer: Ensure texture sizes arent 0
We already ceil() the given float texture sizes here, so if they are
valid, the result should definitely be > 0. Textures with size 0 can't
be properly used, especially not as render targets, where they will
trigger an assertion failure later in a glCheckFramebuffer call.
2017-12-21 19:12:32 +01:00
Timm Bäder
49c7cf36e4 gl renderer: Fix inset and outset shadows in hidpi 2017-12-21 19:12:32 +01:00
Timm Bäder
b03f08960b gl renderer: Fix cairo node surface size in hidpi 2017-12-21 19:12:32 +01:00
Timm Bäder
d9e135dcb5 gl renderer: Fix rounded clips in hidpi 2017-12-21 19:12:32 +01:00
Timm Bäder
3411e648b4 gl renderer: Handle borders in hidpi better 2017-12-21 19:12:32 +01:00
Timm Bäder
64400e82b5 gl renderer: Default to 0px clip and border radius
Finally fix the division by 0 in the clip code.
2017-12-21 19:12:32 +01:00
Timm Bäder
703c4cf003 gl renderer: Ignore render ops before we have a valid program 2017-12-21 19:12:32 +01:00
Timm Bäder
2d3e87da46 gl renderer: Try to fix border rendering 2017-12-21 19:12:32 +01:00
Timm Bäder
a59f380d31 gl renderer: Use one function per node-type
So a profiler can actually tell me what's slow and not just point at
_add_render_ops in all cases.
2017-12-21 19:12:32 +01:00
Timm Bäder
ab53ee7377 gl renderer: Don't render opacity nodes offscreen
We already drag a u_alpha uniform around in every shader, so use that
one.
2017-12-21 19:12:32 +01:00
Timm Bäder
ac6b7b24f9 tests: Add border drawing test 2017-12-21 19:12:32 +01:00
Timm Bäder
fd0b7caa7c gl renderer: Fix shadow shader
We need to take the alpha of the shadow color into account as well.
2017-12-21 19:12:32 +01:00
Timm Bäder
476450b93e gl renderer: Ignore shadow color matrix nodes...
... if the color matrix nodes don't touch the child alpha.
2017-12-21 19:12:32 +01:00
Timm Bäder
98ba28b5d7 gl renderer: Add a helper function
We'll use this for the common case of a color matrix node inside a
shadow node.
2017-12-21 19:12:32 +01:00
Timm Bäder
49785974cf gl renderer: Don't zero initialize render ops GArray 2017-12-21 19:12:32 +01:00
Timm Bäder
7cc868910b gl renderer: Avoid crashing tooltips 2017-12-21 19:12:31 +01:00
Timm Bäder
39a241b763 gl renderer: Sort border sides by color 2017-12-21 19:12:31 +01:00
Timm Bäder
c9af94f6db gl renderer: Keep track of border program state 2017-12-21 19:12:31 +01:00
Timm Bäder
f978bf057f gl renderer: Avoid using a new modelview for shadow nodes
We can just move the vertex data directly.
2017-12-21 19:12:31 +01:00
Timm Bäder
7ad8f211c6 gl renderer: Default to GL_LINEAR scaling filters 2017-12-21 19:12:31 +01:00
Timm Bäder
5cdd46e38e gl renderer: Remove superfluous modelview matrix changes 2017-12-21 19:12:31 +01:00
Timm Bäder
1fce25c7af gl renderer: Remove unused struct member 2017-12-21 19:12:31 +01:00
Timm Bäder
9479bb6bfc gl renderer: Keep track of color matrix op state 2017-12-21 19:12:31 +01:00
Timm Bäder
b33d85b594 gl renderer: Avoid consecutive opacity ops 2017-12-21 19:12:31 +01:00
Timm Bäder
a0e033b2cd gl renderer: Define debug structs inline 2017-12-21 19:12:31 +01:00
Timm Bäder
5d0c279351 gl renderer: Add more detailed render op output 2017-12-21 19:12:31 +01:00
Timm Bäder
7831d9a463 gl renderer: Only draw blurred shadow nodes once 2017-12-21 19:12:31 +01:00
Timm Bäder
7dc6a46cff gl renderer: Remove consecutive clip ops 2017-12-21 19:12:31 +01:00
Timm Bäder
bb69d64a0f gl renderer: Rename a macro 2017-12-21 19:12:31 +01:00
Timm Bäder
8463040ad1 gl renderer: Fix debugging output 2017-12-21 19:12:31 +01:00
Timm Bäder
3b7cfd068b gl renderer: Implement simple border nodes 2017-12-21 19:12:31 +01:00
Timm Bäder
8089cde977 gl renderer: Don't render unblurred text shadows to a texture
We can do the same thing by simply drawing the text in the given shadow
color.
2017-12-21 19:12:31 +01:00
Timm Bäder
d5a759652f gl renderer: Split out text rendering function
We'll use that for text shadow nodes
2017-12-21 19:12:31 +01:00
Timm Bäder
e95b356465 gl renderer: Implement simple shadow nodes 2017-12-21 19:12:31 +01:00
Timm Bäder
c524ac7bb5 gl renderer: Split out a utility function 2017-12-21 19:12:31 +01:00
Timm Bäder
8c9e203458 gl renderer: Fix inset shadow offset calculation 2017-12-21 19:12:31 +01:00
Timm Bäder
47c4bf5be0 gl renderer: Implement unblurred outset shadows 2017-12-21 19:12:31 +01:00
Timm Bäder
5c7838e168 gl renderer: Rework program creation
Make sure all uniform names have to match between the shader names and
the _location integers we save in every Program struct.
2017-12-21 19:12:31 +01:00
Timm Bäder
388157b995 gl renderer: Implement unblurred inset shadows 2017-12-21 19:12:31 +01:00
Timm Bäder
6a1a70c677 gl renderer: Implement blur nodes 2017-12-21 19:12:31 +01:00
Timm Bäder
ff1cacb54a gl renderer: Remove some unused members 2017-12-21 19:12:31 +01:00
Timm Bäder
19700fccb2 gl renderer: Keep track of current program color value 2017-12-21 19:12:31 +01:00
Timm Bäder
2865ab84a9 gl renderer: Don't draw texture nodes to a framebuffer
We don't need to create a texture from a texture node. We can simply use
its texture instead and draw it however we want.
2017-12-21 19:12:31 +01:00
Timm Bäder
e3264d5fd3 gl renderer: Implement color matrix nodes again 2017-12-21 19:12:31 +01:00
Timm Bäder
cb9c4e362c gl render ops: Rename a member 2017-12-21 19:12:31 +01:00
Timm Bäder
b56a7afd19 gl renderer: Factor out a helper function for offscreen drawing 2017-12-21 19:12:30 +01:00
Timm Bäder
95051e13c3 gl ops: Remove dead code
This is already checked further up in that function
2017-12-21 19:12:30 +01:00
Timm Bäder
832920c6ba gl renderer: Optimize text drawing
Text nodes will almost always end up using the exact same texture and
the same program. So, in that case we can simply add vertex data for all
the characters we need to draw and use just one draw call.
2017-12-21 19:12:30 +01:00
Timm Bäder
fa564e1f93 gl renderer: Remove unused VAO 2017-12-21 19:12:30 +01:00
Timm Bäder
d5eeb9d6f0 gl renderer: Stop collecting VAOs in clear_tree
We don't use that part of the gl driver anymore.
2017-12-21 19:12:30 +01:00
Timm Bäder
6606c1f682 gl renderer: Only check for color glyphs once per text node
It does not depend on the glyph, so no need to do it once for every
glyph.
2017-12-21 19:12:30 +01:00
Timm Bäder
5615fd26c2 gl renderer: Implement cairo nodes again 2017-12-21 19:12:30 +01:00
Timm Bäder
a1d3e77347 gl renderer: Move render ops into separate file 2017-12-21 19:12:30 +01:00
Timm Bäder
823369f275 gsk: Move all gskgl* files into gl/ 2017-12-21 19:12:30 +01:00
Timm Bäder
358c139a43 gl renderer: Rework once more
Last time, I swear.
2017-12-21 19:12:30 +01:00
Timm Bäder
dd1a9745db gl renderer: Don't initialize modelview matrix twice 2017-12-21 19:12:30 +01:00
Timm Bäder
59a7584386 gl renderer: Group render node types by render item creation 2017-12-21 19:12:30 +01:00
Timm Bäder
f4304336ea gl renderer: Don't pass MVP to shaders
We already pass both modelview and projection matrix individually.
2017-12-21 19:12:30 +01:00
Timm Bäder
4cf2a482ea gl: Add glyph cache
Based on the one used by the vulkan renderer
2017-12-21 19:12:30 +01:00
Timm Bäder
3e23f6c22b gl renderer: Remove unused member 2017-12-21 19:12:30 +01:00
Timm Bäder
9b400134d5 gl renderer: Remove unused shaders 2017-12-21 19:12:30 +01:00
Timm Bäder
e05b0ae9a4 test-render-nodes: Add transformed clip nodes test 2017-12-21 19:12:30 +01:00
Timm Bäder
7a739e80ef showrendernode: Resize window to a reasonable size instead 2017-12-21 19:12:30 +01:00
Timm Bäder
33aa61ef2c gl renderer: Save clip in every node 2017-12-21 19:12:30 +01:00
Timm Bäder
1f5fd4d564 gl renderer: Don't create framebuffer for texture opacity children
Slowly a pattern emerges...
2017-12-21 19:12:30 +01:00
Timm Bäder
24e69bb877 gl renderer: Implement rounded clip nodes
mostly a proof of concept
2017-12-21 19:12:30 +01:00
Timm Bäder
cd730ccff5 gl renderer: save on some frame buffers
If the child of a color matrix node is a texture, we can directly use
that instead of drawing it to a texture first and then using that
texture.
2017-12-21 19:12:30 +01:00
Timm Bäder
1d1c6a98ce GskGLDriver: Add profiler
Count the newly created textures, the reused ones and the uploads from
cairo surfaces per frame.
2017-12-21 19:12:30 +01:00
Timm Bäder
ddb77d6c9b GskGLDriver: Use float for texture size in create_texture
Render nodes can end up with bounds < 1 since they are floats, and the
implicit cast to int ends up creating a texture with 0 width or height.
Use ceil() instead in create_texture so we don't have to do that on the
caller side everywhere.
2017-12-21 18:25:52 +01:00
Timm Bäder
4aa3f51016 test-render-nodes: Add color matrix test 2017-12-21 18:25:52 +01:00
Timm Bäder
8c8583d04f test-render-nodes: Print a warning if we didn't generate anything 2017-12-21 18:25:52 +01:00
Timm Bäder
04742f320e build: Remove unused variable 2017-12-21 18:25:52 +01:00
Timm Bäder
851a5d48c3 add tests/showrendernode
A .node file viewer.
2017-12-21 18:25:52 +01:00
Timm Bäder
6bce14bee2 Rework the GL renderer 2017-12-21 18:25:52 +01:00
Timm Bäder
5fa5008ee9 gl renderer: Remove some unused code 2017-12-21 18:25:52 +01:00
Timm Bäder
fe7db31663 gl driver: Make some members const 2017-12-21 18:25:52 +01:00
Timm Bäder
b488329104 GskRenderer: Remove viewport property 2017-12-21 18:25:52 +01:00
Timm Bäder
19871cfd68 snapshot: Add & use API for linear gradient nodes
This way, we can also clip the created node bounds to the current clip
of the GtkSnapshot. This works as long as we don't modify the start and
end points, and happens all the time while rendering.
2017-12-21 18:25:52 +01:00
Timm Bäder
d9f1620b2f snapshot: Directly clip color nodes
Clipping a color node is trivial so we do it here directly since that
might later save the entire clip node as well as freeing the fragment
shaders from coloring lots of pixels that will be clipped away.
2017-12-21 18:25:52 +01:00
Timm Bäder
8107b1a2dd snapshot: Fix typo 2017-12-21 18:25:51 +01:00
Timm Bäder
964c6f7d58 x11: Fix wrong condition when unsetting transient-for
Setting a new transient-for parent is only possible if the given parent
window is valid, not when it is NULL or valid.
2017-12-21 18:25:51 +01:00
Matthias Clasen
1c3f343baf Remove font-name leftovers
There were still a few places where the font-name
property was used internally.
2017-12-21 12:18:53 -05:00
Matthias Clasen
559a2bf033 Add a missing include 2017-12-21 12:18:10 -05:00
Matthias Clasen
6ff3222cbd font button: Drop the font-name property
We already have the GtkFontChooser::font property
which serves the same purpose, so get rid of the
duplication.
2017-12-21 11:10:44 -05:00
Matthias Clasen
9620e1e97f tests: Stop using gtk_font_button_get_font_name
It is going away.
2017-12-21 11:10:13 -05:00
Matthias Clasen
8581345acc Remove debug spew 2017-12-21 08:04:26 -05:00
Matthias Clasen
495d00e925 Fix a mis-merge 2017-12-20 10:36:25 -05:00
Matthias Clasen
22f9562928 Implement font-feature-settings
This is a missing part of the CSS font level 3 module.
2017-12-20 10:31:30 -05:00
Matthias Clasen
6042b82964 Update the docs for GtkCssChange
The docs were out of sync with the flags we actually have.
2017-12-20 08:46:03 -05:00
Carlos Garnacho
f93837ceb2 gdk: Remove leftover variable
This is unused and leaked.
2017-12-19 22:58:51 +01:00
Matthias Clasen
5478bd59bf Fix a crash introduced in the previous commit
The signatures of row-inserted and row-deleted are not
identical, so we need to be a bit more careful here.
2017-12-19 14:17:55 -05:00
Matthias Clasen
1b05474979 font chooser: Simplify some code
Instead of separate handlers, just keep a single
handler for both row-inserted and row-deleted.
Slightly less work that way.
2017-12-19 12:10:47 -05:00
Matthias Clasen
e5154547f8 font chooser: Stop listening to style-updated
The only time a style-updated indicates we need
to reload fonts is when it is synthesized by GtkSettings
in response to a fontconfig timestamp change, but
we are listening to those already, anyway.
2017-12-19 11:45:56 -05:00
Timm Bäder
827d04c482 gtk4-demo: Fix font-features UI file 2017-12-19 09:46:27 +01:00
Timm Bäder
f393552fec x11: Guard against NULL window
Otherwise, the NULL parent window causes a crash in the
GDK_WINDOW_IS_DESTROYED call.
2017-12-19 07:39:37 +01:00
Timm Bäder
fcbbaae63c window: Make sure an event has a display
This fixes a crash happening later on when something tries to access the
event's display.
2017-12-19 07:39:29 +01:00
Matthias Clasen
675a4111e9 emoji: Skip overly wide fallback rendering
Some emoji fonts (such as Emoji One), render Emoji sequences
such as some of the family variations using multiple individual
glyphs. This rendering is too wide and breaks our grid layout.
Therefore, we will just skip any sequence whose rendering is
more than twice as wide as a simple smiley.
2017-12-17 22:11:24 -05:00
Matthias Clasen
22269902ed Avoid calling unsetenv too late
Stash the DESKTOP_AUTOSTART_ID env var in a constructor,
before any threads have been created.

https://bugzilla.gnome.org/show_bug.cgi?id=790963
2017-12-17 17:32:05 -05:00
Matthias Clasen
845f2657db cups: Warn only once if colord is not available
No need to keep complaining about this.

https://bugzilla.gnome.org/show_bug.cgi?id=791650
2017-12-17 17:09:55 -05:00
Matthias Clasen
08c699c745 wayland: Handle scale 3 for cursors
This is just a bandaid solution to make scale 3 work.
If people seriously want to go for scales larger than
that, we need a better solution.
2017-12-17 16:41:54 -05:00
Matthias Clasen
9a7624b47a inspector: Allow to bump scale to 3
Might as well allow this, for 'large scale testing'.
2017-12-17 16:40:10 -05:00
Matthias Clasen
21064a41b5 Remove unneeded deprecation guards
No deprecated api used in here, it seems.
2017-12-17 13:15:18 -05:00
Matthias Clasen
1293209d23 Don't place dnd cursor in placeholder text
That is just misleading - the entire placeholder text is going
to be replaced by the drop.
2017-12-17 10:52:33 -05:00
Benjamin Otte
f824439137 dnd: Get rid of IPC widgets
Instead, pass the source window to gdk_drag_begin().

Also make Wayland use this window instead of the one under the pointer
(though those 2 Windows are most likely the same anyway).
2017-12-16 02:48:12 +01:00
Benjamin Otte
3438dcdd4e x11: Add necessary NULL check 2017-12-16 02:48:12 +01:00
Benjamin Otte
8f6194a883 dnd: Remove unused function
The function was referencing itself in ways that bamboozled gcc:
  static void
  foo (void)
  {
    g_signal_handlers_disconnect_by_func (NULL, foo, NULL);
  }

Well done, function, you get your own commit!
2017-12-16 02:48:12 +01:00
Benjamin Otte
aab86f8b98 x11: Try getting ipc_window vs source_window right
This is in preparation for splitting these. Unfortunately, source_window
== ipc_window, so this isn't very debuggable yet.
2017-12-16 02:48:12 +01:00
Benjamin Otte
510581e0ef x11: Use gdk_drag_context_get_display() 2017-12-16 02:48:12 +01:00
Benjamin Otte
5f326d7ec6 x11: Create IPC window outselves
Ignore the passed in IPC window.
2017-12-16 02:48:12 +01:00
Matthias Clasen
4573d2d19b listbox: Fix a crash during keynav
The code was asserting something that was not always holding
true. We can hit row == NULL here on page-up too. Handle that
case by moving to the first row.

https://bugzilla.gnome.org/show_bug.cgi?id=791549
2017-12-15 18:48:50 -05:00
Benjamin Otte
cb9867cb48 dnd: Remove handler for nonexisting signal
The signal has been gone since e3e9bf4bea
2017-12-15 23:57:33 +01:00
Benjamin Otte
31119c89df gtk: Remove unused include 2017-12-15 23:53:18 +01:00
Benjamin Otte
a04afde35c gdk: Remove DRAG_STATUS and DROP_FINISHED events
Those are source-side events that are handled by signals of the
Dragontext these days.
2017-12-15 23:48:36 +01:00
Matthias Clasen
61843d60b2 x11: Avoid crash in fallback move emulation
Quietly do nothing when there is already an ongoing operation.
This matches the behavior of the ewmh code, and is much nicer
than a crash.

https://bugzilla.gnome.org/show_bug.cgi?id=789054
2017-12-15 16:19:09 -05:00
Juan Pablo Ugarte
e0ce028c88 css: Fix segfault when GtkCssStyleChange is NULL on gtk_widget_real_style_updated()
https://bugzilla.gnome.org/show_bug.cgi?id=791281
2017-12-15 10:28:21 -03:00
Matthias Clasen
a326884df8 Mention keymaps in the migration guide
Just another bullet point.
2017-12-15 07:48:36 -05:00
Matthias Clasen
fa27d171d0 Drop gdk_keymap_get_for_display
It has been replaced by gdk_display_get_keymap.
2017-12-15 07:46:35 -05:00
Matthias Clasen
e92c0e85ec Replace gdk_keymap_get_for_display by gdk_display_get_keymap
Replace all uses of the old function by the new one.
No functional change.
2017-12-15 07:44:58 -05:00
Matthias Clasen
1012bbeecf Add gdk_display_get_keymap
This is just a better name for gdk_keymap_get_for_display.
2017-12-15 06:53:13 -05:00
Matthias Clasen
fd85ff0c7a Drop gdk_keymap_get_default()
It is better to use the explicit keymap getter - the
default display may not even use the current gdk backend.
2017-12-14 23:57:54 -05:00
Matthias Clasen
9194ee4973 gdk: Drop GDK_DAMAGE
We haven't been generating events of this type
since we dropped offscreen windows.
2017-12-14 23:35:08 -05:00
Matthias Clasen
65fc43a1f3 Drop GDK_CLIENT_EVENT
We never generate events of this type, so no need
to carry it around.
2017-12-14 22:55:03 -05:00
Matthias Clasen
8d42ab6b91 gdk: Remove explicit event type numbering
The numeric values of event types are irrelevant,
so we don't need to declare them explicitly.
2017-12-14 22:43:53 -05:00
Matthias Clasen
bcf570cc16 Move code around
gdk_window_set_state is now an ordinary (private) setter,
so it should live in gdkwindow.c.
2017-12-14 22:35:27 -05:00
Matthias Clasen
11a946df39 gdk: Drop GdkEventWindowState
No longer generate this event. Instead, emit change
notification for GdkWindow::state.
2017-12-14 22:24:06 -05:00
Matthias Clasen
a4a2ecb21a widget: Remove the ::window-state-event signal
We no longer use this signal, so remove it.
2017-12-14 22:24:06 -05:00
Matthias Clasen
0313b8f0bc gtk: Stop handling GdkEventWindowState
These events have been superseded by GdkWindow::state.
2017-12-14 22:24:06 -05:00
Matthias Clasen
8476fc3fb0 menu: Stop using GdkEventWindowState
These events are going away.
2017-12-14 22:24:06 -05:00
Matthias Clasen
c1f9d7cb16 a11y: Stop using GdkEventWindowState
These events are going way.
2017-12-14 22:24:06 -05:00
Matthias Clasen
40d57ff884 headerbar: Stop using GdkEventWindowState
Use GdkWindow::state instead - the event is going away.
2017-12-14 22:24:06 -05:00
Matthias Clasen
ce251133c0 gtk-demo: Stop using GdkEventWindowState
Use GdkWindow::state instead - the event is going away.
2017-12-14 22:24:06 -05:00
Matthias Clasen
2c267a3cf1 testgtk: Stop using GdkEventWindowState
Use GdkWindow::state instead - the event is going away.
2017-12-14 22:24:06 -05:00
Matthias Clasen
1e1904a9b8 gtk: Stop using GdkEventWindowState
We can instead use the new GdkWindow::state property
change notification. The event is going away.
2017-12-14 22:24:06 -05:00
Matthias Clasen
e5b1867118 gdk: Add a GdkWindow::state property
This will eventually replace the window state event.
2017-12-14 22:24:06 -05:00
Daniel Boles
fe20fc3128 FileChooser: Update set_local_only() doc’s default
The property now defaults to FALSE, but the setter doc didn’t reflect it

While here, add a missing apostrophe too.

https://bugzilla.gnome.org/show_bug.cgi?id=791176
2017-12-14 15:36:43 +00:00
Benjamin Otte
84431ab927 x11: Remove GdkAtom usage from dnd code
Use strings instead.
2017-12-14 13:46:37 +01:00
Benjamin Otte
5d70bbf4c4 display: Remove leftover old clipboard APIs 2017-12-14 13:35:32 +01:00
Krzesimir Nowak
5a0fb278d1 x11: Fix erroneous & to be && 2017-12-14 13:35:32 +01:00
Benjamin Otte
920259c250 x11: Get rid of default Atom converters
No, using the default Wayland display is not okay to query Atoms.
2017-12-14 13:35:32 +01:00
Benjamin Otte
52b1a46549 device: Make axis label a regular string
Atoms are about to die.
2017-12-14 13:35:32 +01:00
Stas Solovey
b1f11464b6 Update Russian translation
(cherry picked from commit d69f998c26)
2017-12-14 09:58:21 +00:00
Matthias Clasen
75dd3315e6 Drop atom apis from the docs
These no longer exist.
2017-12-13 23:47:51 -05:00
Matthias Clasen
84eaf3da7d Drop atom-related cast macros
These don't really add anything, just drop them.
2017-12-13 23:47:02 -05:00
Matthias Clasen
54a6273191 Drop gdk_atom_intern
Atoms are just interned strings now, so we can just
use g_intern_string.
2017-12-13 23:39:03 -05:00
Matthias Clasen
4c083c1ed4 Drop gdk_atom_name
Since atoms are just interned strings now, we can just
cast them to const char * where needed.
2017-12-13 23:26:23 -05:00
Matthias Clasen
e3e9bf4bea Remove no-longer-used signals
GtkWidget::selection-get and ::selection-received are no
longer used, so get rid of them.
2017-12-13 22:53:50 -05:00
Benjamin Otte
b49a9b9933 dnd: Remove gdk_drag_get_selection()
Without selections, drags can't have them either.

Also included is removing the selection from GtkSelectionData.

Includes a bunch of crude cleanups to Wayland code that no longer has to
care about selection atoms.
2017-12-14 04:39:22 +01:00
Benjamin Otte
65fcff87b2 gdk: Remove ability to request selection notifications
Without selections, that's kinda pointless.
2017-12-14 04:20:48 +01:00
Benjamin Otte
f2bb2024c8 gdk: Remove properties
They are not used anymore.

Gone with them are PropertyNotify events.
2017-12-14 03:05:34 +01:00
Benjamin Otte
82aa0eacb2 broadway: Make compile after GdkEvent objectification 2017-12-14 03:05:34 +01:00
Benjamin Otte
38d8fa0b6a gesture: Fix gcc constness warning 2017-12-14 03:05:34 +01:00
Benjamin Otte
d7f34874ab x11: Make unsetting transient-for work
... and just unset it from GtkWindow instead of fiddling with
properties.
2017-12-14 03:05:34 +01:00
Benjamin Otte
a4b42f0b73 gdk: Remove selection defines
And with it, remove the selections section from the docs.

So selections are gone for good now.
2017-12-14 03:05:34 +01:00
Georges Basile Stavracas Neto
8993a51893 vulkan: Destroy buffer before releasing associate memory
Exact same issue as the previous commit.
2017-12-13 23:14:58 -02:00
Georges Basile Stavracas Neto
147a455171 vulkan: Destroy image before releasing associate memory
VkImage contains a reference to the VkDeviceMemory and, because
the current code frees the VkDeviceMemory before destroying the
VkImage that references it, a warning is triggered by the validation
layers.

This is not critical, since we release both resources at the same
place. But the warning triggered by the validation layers sums up
adding 1 MB per second of extra debug logging, making the debugging
process much more painful.

This commit simply swaps the destruction order, and destroys the
VkImage first, then the now unused VkDeviceMemory.
2017-12-13 22:49:16 -02:00
Piotr Drąg
192bdae280 Update POTFILES.in 2017-12-14 01:15:17 +01:00
Carlos Garnacho
2f65a2f5cc gdk: Make gdk_display_peek_event() Return a reference to the event
No need to copy it.
2017-12-14 01:05:48 +01:00
Carlos Garnacho
332b640cd3 gtk: Make gtk_get_current_event() return a reference
All callers in gtk seem to be ok with it, and it makes sense if
we are dealing with events as "static after delivered".
2017-12-14 01:05:48 +01:00
Carlos Garnacho
ee178947d7 gtk: Avoid some event copies
Those places can do with an extra reference.
2017-12-14 01:05:48 +01:00
Carlos Garnacho
d491e49fd6 gtk: s/gdk_event_free/g_object_unref/ 2017-12-14 01:05:48 +01:00
Carlos Garnacho
b03d3fb268 gdk/wayland: s/gdk_event_free/g_object_unref/ 2017-12-14 01:05:48 +01:00
Carlos Garnacho
3021edc38d gdk/x11: s/gdk_event_free/g_object_unref/ 2017-12-14 01:05:48 +01:00
Carlos Garnacho
f79ac6d30b gdk: Remove gdk_window_[gs]et_event_compression()
Motion compression is now the unmodifiable default, callers may
call gdk_event_get_motion_history() to check the uncoalesced
motion history.
2017-12-14 01:05:48 +01:00
Carlos Garnacho
47f04afa48 gtk: Remove CONSTRUCT_ONLY flag from GtkEventControllerScroll::flags
There is a gtk_event_controller_scroll_set_flags() call that's meant
to be called after construction (eg. due to scrolledwindow relayouts
hiding/showing scrollbars). The property shouldn't be construct-only
for consistence.
2017-12-14 01:05:48 +01:00
Carlos Garnacho
ea216accd7 gdk: Implement motion history as motion event data
In the motion compression phase the coalesced events will be saved
as a GdkTimeCoord on the motion event that shall be delivered.

For simplicity (and because history doesn't make much sense otherwise)
event history is only recorded while there are buttons pressed, this
also tidily ensures that those coalesced events would have the same
target widget on the gtk side than the delivered one, because of
implicit grabs.
2017-12-14 01:05:48 +01:00
Carlos Garnacho
a040ed55cc gdk: Keep reference on tools from motion/button events. 2017-12-14 01:05:48 +01:00
Carlos Garnacho
8c9231dbb4 gdk: Move additional code in gdk_event_new() to GdkEvent::constructed
Now that the type is a construct only property, we can initialize the
event fields properly here.
2017-12-14 01:05:48 +01:00
Carlos Garnacho
5ee1d4893a gdk: Make GdkEvent type a construct only property
So it must be set at the time of doing g_object_new().
2017-12-14 01:05:48 +01:00
Carlos Garnacho
ca89ad75b4 gdk: Remove gdk_event_is_allocated()
All events are allocated now.
2017-12-14 01:05:48 +01:00
Carlos Garnacho
0c8c9f59fc gtk: Adapt marshallers to GdkEvent as GObject 2017-12-14 01:05:48 +01:00
Carlos Garnacho
2acbb7b01d gdk: Turn GdkEvent into a GObject
Two warts remain. gdk_event_copy() should be unnecessary as
events should be considered static after delivery, so g_object_ref()
should be just as good. There's a few exceptional cases that the event
is copied and then modifier for later processing, those cases should be
reconsidered individually.

And gdk_event_free() could be likewise turned into g_object_unref(),
many callers remain though.
2017-12-14 01:05:48 +01:00
Carlos Garnacho
1e1f2a6e67 gdk: Remove GdkDisplay from GdkEventPrivate
And add it to GdkEventAny.
2017-12-14 01:05:08 +01:00
Carlos Garnacho
8595e4b1d1 gdk: Figure out the GdkSeat of an event from the GdkDevice
Removes the need for gdk_event_set_seat() and the GdkSeat field from
GdkEventPrivate.
2017-12-14 00:58:32 +01:00
Carlos Garnacho
526486da6b gdk: Use allocated events
Stack allocated GdkEvent structs will not be ok when events become
objects.
2017-12-14 00:58:32 +01:00
Carlos Garnacho
33330ad001 gtk/a11y: Use allocated events
Using stack allocated GdkEvent will not be ok when they become
objects.
2017-12-14 00:58:32 +01:00
Carlos Garnacho
59cab36035 gdk: Fold GdkEventPrivate fields into event structs
Now all events structs are private, it doesn't make as much sense
having GdkEventPrivate wrapping allocating events. This is a first
step towards removing it.
2017-12-14 00:58:32 +01:00
Carlos Garnacho
64decbfd74 gdk: Remove GdkEventType argument from GdkEvent union
It won't stand true anymore that the GdkEventType argument is the
first field of the GdkEvent* structs. All callers have been updated
to use event->any.type instead.
2017-12-14 00:58:32 +01:00
Carlos Garnacho
b9db0b55cb gdk: Refurbish GdkEvent struct hierarchy
Make all specific event structs contain a GdkEventAny, so the base
struct can be extended without modifying structs all over the place.
2017-12-14 00:58:32 +01:00
Matthias Clasen
9aba77e31b Redo drag source event handling
Let the gesture itself handle the events.
2017-12-13 18:56:42 -05:00
Benjamin Otte
54f9aef0d4 gdk: Remove gdk_selection_convert()
It's not used anymore.
2017-12-14 00:44:26 +01:00
Benjamin Otte
ca5f859dc8 dnd: Only send DELETE request on X11
This is Xdnd-specific and doesn't need to happen elsewhere.
2017-12-13 23:52:55 +01:00
Benjamin Otte
4042d5f242 gdk: Remove ability to own a selection
With this, the GDK_EVENT_SELECTION_REQUEST and GDK_EVENT_SELECTION_CLEAR
and the associated GtkWidget signals are gone, too.
2017-12-13 23:39:02 +01:00
Benjamin Otte
53081bd1d8 tests: Remove testselection
With selections goig away, this test is not very useful anymore.
2017-12-13 19:40:24 +01:00
Benjamin Otte
cb3ef5b642 xxx: don't claim dnd selection 2017-12-13 19:37:11 +01:00
Benjamin Otte
b66052f3ce gdk: Remove gdk_selection_add_targets()
It's not needed anymore, now that we can look at the content provider's
formats.

Alose remove all the API in GTK that was used to set it.
2017-12-13 19:27:51 +01:00
Benjamin Otte
65eab87238 x11: Move selection handling to GDK
Instead of claiming the selection in GTK, claim it in the X11 dnd code.
Also handle SelectionRequest and SelectionClear X events there.
2017-12-13 18:31:06 +01:00
Benjamin Otte
8648d5409e dnd: Pass content to gdk_drag_begin()
Instead of just passing the GdkContentFormats, we are now passing the
GdkContentProvider to gdk_drag_begin().
This means that GDK itself can now query the data from the provider
directly instead of having to send selection events.

Use this to provide the private API gdk_drag_context_write() that allows
backends to pass an output stream that this data will be written to.
Implement this as the mechanism for providing drag data on Wayland.

And to make this all work, implement a content provider named
GtkDragContent that is implemented by reverting to the old DND
drag-data-get machinery inside GTK, so for widgets everything works just
like before.
2017-12-13 15:05:27 +01:00
Matthias Clasen
c30cd885dd A forgotten file
These changes belong to the scale button autoscrollling
commit.
2017-12-12 23:23:17 -05:00
Matthias Clasen
9b29369222 Make sure events have displays
This seems to be necessary if you want to call
gdk_display_put_event on them.
2017-12-12 23:21:26 -05:00
Matthias Clasen
7e02ad648c toolbar: Stop using legacy event signals
We can reuse the button gesture here.
2017-12-12 22:55:48 -05:00
Matthias Clasen
fa7ef93bc5 scalebutton: Add autoscrolling
Use the smooth autoscrolling that the scale can do,
and at the same time stop using legacy event signals.
2017-12-12 22:21:43 -05:00
Matthias Clasen
05fbd32c4d button: Add private api to get at the gesture
Attaching another gesture from the outside does not
work currently, so let widgets share their button's
gesture for now.
2017-12-12 22:18:19 -05:00
Matthias Clasen
b891d205dd range: Add private api to autoscroll
This will be used to scroll the scale in scale buttons.
2017-12-12 22:17:49 -05:00
Matthias Clasen
2f6f8a7e6f path bar: Drop non-functional hold-to-scroll code
Scrolling a path bar is of marginal usefulness - you need to
find a really deep place in your filesystem hierarchy in order
to scroll one or two places at best. And the code we had for
this was not working. And it was using legacy event handlers.
Instead of fixing it, remove it.
2017-12-12 20:49:31 -05:00
Benjamin Otte
fb0fdddd76 x11: Refactor xevent filtering some more
We now have a GdkX11Display::xevent signal that gets emitted for every
XEvent and allows you to interrupt processing via TRUE/FALSE return
values.
These return values to correspond to GDK_FILTER_REMOVE and
GDK_FILTER_CONTINUE respectively.

The GDK_FILTER_TRANSLATE case from gdk_window_add_filter() is now meant
to be handled via gdk_display_put_event().
2017-12-13 01:55:56 +01:00
Matthias Clasen
76b93f5598 widget-factory: Avoid a legacy event handler
We can use a gesture instead, here.
2017-12-12 19:46:10 -05:00
Benjamin Otte
4b33a34ce3 x11: Use GdkX11Display::translate-event more 2017-12-13 01:09:32 +01:00
Benjamin Otte
2d86c1a869 x11: Make clipboard use translate-event signal 2017-12-13 00:56:52 +01:00
Benjamin Otte
c93ddf62c3 gdk: Clean up marshalers
Don't generate marshallers that are not needed.

Use the default ones if they exist.
2017-12-13 00:56:52 +01:00
Benjamin Otte
0d1ea05658 x11: Add GdkX11Display:translate-event signal
This is supposed to replace gdk_window_add_filter() in the long run.
2017-12-13 00:56:52 +01:00
Benjamin Otte
f34297cfba x11: Constify XEvent usage 2017-12-13 00:56:52 +01:00
Benjamin Otte
8a453924a0 gdk: Remove gdk_event_put(), peek() etc
We don't want to treat events like they don't belong to displays. So
instead, people should use gdk_display_put/peek/get_event().
2017-12-13 00:56:52 +01:00
Benjamin Otte
5df527edaf x11: Refactor code
This is in preparation for DND.

It moves a lot of code from gdkclipboard-x11.c to
gdkselectionoutputstream-x11.c to untangle it from GdkX11Clipboard
usage.
2017-12-13 00:56:52 +01:00
Benjamin Otte
80dcdd3df6 gdk: Remove unused function
Fun fact: This function was never used.
2017-12-13 00:56:52 +01:00
Matthias Clasen
1b9aa1b708 a11y: drop the focus tracker
This code was doing horrible things, and the atk documentation
for the focus tracking feature says that this is deprecated and
not used anymore. So lets not do it.
2017-12-12 14:49:44 -05:00
Matthias Clasen
33fdcca2cf placesview: Make middle click work
This does not cost us much, and improves consistency.
2017-12-12 13:56:15 -05:00
Matthias Clasen
6896e9402e Deprecate many legacy event signals
Mark the following signals as deprecated:
event, event-after, button-press-event, button-release-event,
touch-event, scroll-event, motion-notify-event, enter-notify-event,
leave-notify-event, property-notify-event, selection-clear-event,
selection-request-event, selection-notify-event, selection-received,
selection-get, proximity-in-event, proximity-out-event. Most
of these have suitable replacements in event controllers and
gestures already. The selection-related signals will soon be
irrelevant when selection handling moves to GDK.

Set G_ENABLE_DIAGNOSTIC=1 to see deprecation
warnings for uses of these signals.
2017-12-12 11:04:49 -05:00
Matthias Clasen
20bdb347cd Install gtkeventcontrollermotion.h
Public headers need to be listed in gtk/meson.build.
This was overlooked when I added the controller.
2017-12-12 10:39:16 -05:00
Piotr Drąg
cb8888a985 Update POTFILES.in 2017-12-12 16:33:22 +01:00
Matthias Clasen
a20a828b57 Add GtkEventControllMotion to the docs 2017-12-12 10:26:03 -05:00
Matthias Clasen
c3851c5469 paned: Stop using motion notify
We can use the new motion event controller that
was introduced for this purpose.
2017-12-12 09:42:05 -05:00
Matthias Clasen
3aa6890e3e about dialog: Stop using event-after as well
We can just use a multipress gesture for this purpose.
2017-12-12 09:42:05 -05:00
Matthias Clasen
56a41f174e about dialog: Stop using motion notify
We can use the new motion event controller for this.
2017-12-12 09:42:05 -05:00
Matthias Clasen
ecdf8c64fe label: Use GtkEventControllerMotion
This lets us avoid legacy event signals here.
2017-12-12 09:42:05 -05:00
Matthias Clasen
911f9fb0ee Add a simple motion eventcontroller
This can serve as a replacement for the legacy
event signals for enter/leave/motion notify.
2017-12-12 09:42:05 -05:00
Matthias Clasen
d871fd12cc Try to make a composite entry
This is an attempt to see how much work is needed to
reproduce entry icons by just putting an entry and images
in a box, with some css glue.
2017-12-12 09:42:05 -05:00
Benjamin Otte
b80d14ba19 placessidebar: Don't use root coordinates 2017-12-12 00:31:49 +01:00
Benjamin Otte
04ac4c66ae dnd: Pass device, not event
You don't start a dnd operation with a device, you start it with an
event.
2017-12-12 00:31:49 +01:00
Benjamin Otte
23c798b41d dnd: No longer allow passing -1
Nobody ever does that and special cases are evil.
2017-12-12 00:29:51 +01:00
Benjamin Otte
756b276070 dnd: Remove button argument from drag_begin()
It was unused.
2017-12-12 00:29:51 +01:00
Matthias Clasen
1e4aeb2efb calendar: Stop using a legacy event handler
Replace the motion_notify handler by a drag gesture.
2017-12-10 22:15:12 -05:00
Matthias Clasen
474d36499a Adwaita: Set an icon size for drag icons
This makes drag icons set from icon names come out
at a size that it large enough to not disappear under
the drag cursor.
2017-12-10 21:17:13 -05:00
Matthias Clasen
c2bdae23a1 Set a style class for drag icons
This lets us use the new icon-size machinery to
ensure we don't have tiny drag icons when using
named icons.
2017-12-10 21:16:31 -05:00
Benjamin Otte
643a6c2311 gdk: Remove gdk_drag_manage_dnd()
Instead, pass the actions as part of gdk_drag_begin() and insist DND is
always managed.

A new side effect is that gdk_drag_begin() can now return %NULL.
2017-12-11 01:46:33 +01:00
Benjamin Otte
7e0844d92f dnd: No point in determining the keyboard
We only use the pointer.
2017-12-11 01:02:31 +01:00
Benjamin Otte
218efa62ef dnd: Pass dx/dy instead of x_root/y_root
This way, we don't need root coordinates when computing the dnd start
position.
2017-12-11 01:02:31 +01:00
Benjamin Otte
a7c3c794df dnd: Make gdk_drag_context_set_device() private
There's no need to call it from GTK anymore, because we pass the device
to gdk_drag_begin().
2017-12-11 01:02:31 +01:00
Benjamin Otte
33a634be33 calendar: Don't request drag data on every motion event
At least wait until we've received the previous one.
2017-12-11 01:02:31 +01:00
Benjamin Otte
565d8325c4 gdk: Remove outdated gdk_drag_begin() alternatives
There's only one that's ever used, so delete the others and rename this
one to gdk_drag_begin().
2017-12-11 01:02:31 +01:00
Matthias Clasen
6af4947e70 link button: Set a drag icon
It is a bit odd to drag nothing around, so set an icon.
2017-12-10 14:05:01 -05:00
Matthias Clasen
642588b9cd docs: Don't mention css for setting cursors
We don't have a plan to make this work, so lets not
talk about it in the docs.
2017-12-09 23:59:31 -05:00
Matthias Clasen
c35cb0eb1b entry: Allocate the progress bar only what it needs
We were allocating the progress bar to the full size
of the entry. This made entry icons loose their cursors,
since they were 'covered' by the progress bar, even though
it doesn't draw anything there.
2017-12-09 23:48:35 -05:00
Colomban Wendling
69344322d1 Fix updating the widget accessible description when using its tooltip
We need to notify ATK the description changed when the tooltip text associated
with the widget changes and gtk_widget_accessible_get_description() would use
it as the description.

https://bugzilla.gnome.org/show_bug.cgi?id=779009
2017-12-09 21:24:44 -05:00
Daniel van Vugt
3b2f939590 Fix irregular gdk_frame_clock_get_frame_time
This fixes stuttering in animations that rely on the regularity of
gdk_frame_clock_get_frame_time.

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

BEFORE
gdkgears:
58 FPS and visibly stuttering
gnome-maps on a 59.95Hz monitor:
"paint" g_get_monotonic_time +17278μs, gdk_frame_clock_get_frame_time +17278μs
"paint" g_get_monotonic_time +17449μs, gdk_frame_clock_get_frame_time +17426μs
"paint" g_get_monotonic_time +17620μs, gdk_frame_clock_get_frame_time +17600μs

AFTER
gdkgears:
60 FPS and smoother
gnome-maps on a 59.95Hz monitor:
"paint" g_get_monotonic_time +18228μs, gdk_frame_clock_get_frame_time +16680μs
"paint" g_get_monotonic_time +15010μs, gdk_frame_clock_get_frame_time +16680μs
"paint" g_get_monotonic_time +17134μs, gdk_frame_clock_get_frame_time +16680μs
2017-12-09 20:52:36 -05:00
Benjamin Otte
7a17865b22 dnd: Remove "delete" argument from gtk_drag_finish()
The argument is ignored by anything but X11.
It's treated like suggested_action == MOVE.

So do that in gtk_drag_finish(), too.
2017-12-10 01:33:38 +01:00
Benjamin Otte
803cbd576f dnd: Introduce gdk_drop_read_async() and use it
This is the replacement for selection usage.

Backend implementations for X11 (missing support for backwards compat
formats like COMPOUND_TEXT) and Wayland are included.

GTK code should be adapted to use gdk_drop_read_*() functions instead
of gtk_drag_get_data().
2017-12-10 01:09:14 +01:00
Benjamin Otte
963264a73a gdk: Fix wrong usage of g_task_propagate_pointer()
The return value is transfer full, not transfer none.
2017-12-10 01:09:14 +01:00
Benjamin Otte
234d34366a clipboard: Add the useful stuff from reverted commit
This is the parts of dc50e0637f that
should have been committed but were reverted in
b5c62cf86f to unbreak the build.
2017-12-10 01:09:14 +01:00
Benjamin Otte
0d31eb8670 dnd: Add gdk_drag_context_get_display()
Also turn it into a readable, construct-only property.

Every GDK object should have this. (Apart from GdkDisplay, obviously.)
2017-12-10 01:09:14 +01:00
Benjamin Otte
815cd0ed68 gdk: Include gio.h in gdktypes.h
It's where we include all our external dependencies.

This way, we don't have to include it in all headers again and again.
2017-12-10 01:09:14 +01:00
Carlos Garnacho
8233cf3688 gtkwindow: Allow edge resizing from corners if constraints forbid either side
The fix is twofold. First, when checking that a corner is resizable, we must
check the constraints on both edges. Second, when checking either edge we
must include both perpendicular sides in order to allow those to be
resizable when the constraint does not allow resizing the edge being
checked.
2017-12-09 22:19:57 +01:00
Carlos Garnacho
6b4dd4be6c gtkwindow: Use shadow border when calculating resize areas positions
This way resize areas are correctly positioned right outside the visible
window edge on all sides.
2017-12-09 17:33:44 +01:00
Carlos Garnacho
f6ef18ac74 gtkwindow: Do not account handle size when checking content area
This is necessary to bring back the L-shaped resize corners. On all edges
(not corners) the handle width is determined by the border size.
2017-12-09 17:32:02 +01:00
Rico Tzschichholz
d872640927 Fix some parameter name mismatches to make g-ir-scanner happier 2017-12-09 15:36:35 +01:00
Matthias Clasen
b3ebffa07d Switch the order for cursor lookup
When looking for the cursor to apply, start from the innermost
widget and go up. This is the right behavior for cases like
entry icons. The top-down order we were using so far is the
right behavior for cases like global wait cursors. Since we
have entry icons in gtk, but not global wait cursors, lets
pick the other order for now.
2017-12-09 08:35:23 -05:00
Timm Bäder
da0582075a treeview: Don't draw background twice
This is done unconditionally for all widgets these days.
2017-12-09 13:15:07 +01:00
Timm Bäder
f7f0461471 recorder: Show rounded clip node corner size info 2017-12-09 13:14:59 +01:00
Timm Bäder
329683f746 snapshot: Don't create blur nodes with radius 0 2017-12-09 13:14:51 +01:00
Timm Bäder
f6f1dfb55d snapshot: Collapse color matrix nodes
Color matrix nodes as the child of other color matrix nodes can happen
quite frequently as a result of CSS. To ease the renderer
implementations, collapse chains of color matrix nodes into one.
2017-12-09 13:14:44 +01:00
Timm Bäder
484e453780 Fix a few overlooked casts
glib warns about these now.
2017-12-09 13:14:00 +01:00
Matthias Clasen
e7ed7c1913 paned: Grab during the drag
This is necessary to ensure we get the right cursor.
2017-12-08 21:09:24 -05:00
Marco Trevisan (Treviño)
29f36fed08 cssshadowvalue: don't apply the y_scale offset twice to the shadow
As per commit 942e904 this changed causing a regression that
seems to be visible only when scale > 2.

https://bugzilla.gnome.org/show_bug.cgi?id=791363
2017-12-08 18:23:10 -05:00
Matthias Clasen
072f06abf7 Fix fallout from g_object_ref change
g_object_ref now returns the type of the object that was
passed. Introduce cast as necessary to avoid warnings due
to this.
2017-12-08 17:48:47 -05:00
Timm Bäder
1c9e3af482 css node tests: Update expected output 2017-12-08 21:09:03 +01:00
Matthias Clasen
029a84aa74 Fix fallout from the show-close-button rename
I had overlooked ui files. We should really
validate those during build.
2017-12-08 11:29:14 -05:00
Philip Withnall
276c462553 mir: Fix potential use of NULL GDBusConnection
If we fail to connect to the session bus, it would be a bit silly to
immediately try and use that NULL connection.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://bugzilla.gnome.org/show_bug.cgi?id=668590
2017-12-08 09:55:27 +00:00
Matthias Clasen
fec0dc2b13 Rename GtkHeaderBar::show-close-button
It is about all window buttons, so rename it to ::show-title-buttons.

https://bugzilla.gnome.org/show_bug.cgi?id=779862
2017-12-07 22:37:06 -05:00
Jonas Ådahl
6412d25602 wayland: Destroy the xdg_imported after the wl_surface
This way the window manager can handle destruction while having the
transient-for relationship still valid.

https://bugzilla.gnome.org/show_bug.cgi?id=791062
2017-12-07 22:13:30 -05:00
Jonas Ådahl
7c743e6f41 wayland: Maybe postpone xdg-foreign state setup until mapping
In order to map a window with the correct initial parent-child
relationship when a modal dialog is set up to be a child of an imported
foreign window, the relationship must be set up before the window is
mapped.

In order to do this, if a window is not yet mapped, postpone the
relationship setup until when the window is eventually mapped.

https://bugzilla.gnome.org/show_bug.cgi?id=791062
2017-12-07 22:13:30 -05:00
Colin Leroy
0156c52a2c placesview: Present FUSE-reachable network shares in Other Locations
The documentation about gtk_file_chooser_set_local_only() states
that "non-native files may still be available using the native
filesystem via a userspace filesystem (FUSE)."
The code that made this possible in GTK+2 was missing from GTK+3 and
that represented a regression for Linux users in numerous applications
(Firefox, Thunderbird, Chromium, ...)

https://bugzilla.gnome.org/show_bug.cgi?id=787128
2017-12-07 21:31:46 -05:00
Carlos Garnacho
7531be3510 gdk: Add GDK_SEAT_CAPABILITY_TABLET_PAD
Tablet pads don't adapt really well to any other capability, so add a
distinct one to be able to query those properly.

https://bugzilla.gnome.org/show_bug.cgi?id=790920
2017-12-07 21:27:33 -05:00
Carlos Garnacho
4c45022ed0 gdk: Add gdk_seat_get_master_pointers()
Traditionally (and on most backends) there's a single master pointer driven
by all pointing devices. The notable exception is Wayland though, where
master pointing devices are created per capability in the case of
pointer/touch, and one for each drawing tablet.

This function call makes it easy to access all these.

https://bugzilla.gnome.org/show_bug.cgi?id=790920
2017-12-07 21:27:14 -05:00
Matthias Clasen
62f1695cb3 Move editing to button release
This will free up primary button press for drags.
2017-12-07 21:25:44 -05:00
Matthias Clasen
b6f33919b7 Make sure stopped spinner stay visible
This demo needs stopped spinners to be visible,
so the user can interact with them.
2017-12-06 23:49:48 -05:00
Matthias Clasen
2d85e8df8b Fix a typo in the docs 2017-12-06 23:39:27 -05:00
Matthias Clasen
79ddb14404 Add a Cut menuitem to the dnd demo 2017-12-06 23:36:35 -05:00
Matthias Clasen
e104cf012d More work on the dnd demo
Still no dnd in the drag-and-drop demo...
2017-12-06 23:10:56 -05:00
Timm Bäder
49e624bbe9 paned: Restrict picking to allocation
Same reason as GtkViewport does it: We might allocate child widgets
outside of the paned's content allocation. For drawing, we add a clip
node.

This was causing the "Record" button in the inspector recorder to ignore
pointer events since the treeview column header label in the GtkPaned
was swallowing it.
2017-12-06 08:23:03 +01:00
Timm Bäder
1aa811ce12 Remove all gtk_widget_get_content_size usages
And remove the function itself. Make everything use gtk_widget_get_width
and gtk_widget_get_height instead.
2017-12-06 07:56:12 +01:00
Matthias Clasen
2dae71c619 Add some copy-paste for widgets demo
Not sure this is quite right yet.
2017-12-05 17:45:39 -08:00
Matthias Clasen
2a49371e07 Start a dnd demo
Nothing to see yet.
2017-12-05 16:22:06 -08:00
Matthias Clasen
20cbb3f745 Update gtk docs for recent changes
Clipboards are gone, textures appear...
2017-12-05 08:56:09 -08:00
Matthias Clasen
48f1e53e1e Drop get/set_scale_factor from gsk docs
They no longer exist.
2017-12-05 08:39:04 -08:00
Alexander Larsson
df2716a109 broadway: Add broadway_server_lookup_surface helper 2017-12-05 16:10:06 +01:00
Alexander Larsson
2cad2c21e6 broadway: Make the use of next_texture_id clearer
It used to actually be pre-incremented, so meant like "one before
next id".
2017-12-05 15:54:36 +01:00
Alexander Larsson
d141bd4121 broadway: Use "surface" instead of window/toplevel for browser object
Als fixes indentation/tabs and removes some unused code.
2017-12-05 15:50:34 +01:00
Alexander Larsson
e80ad0e0f9 broadway: Remove references to unused BROADWAY_EVENT_DELETE_NOTIFY 2017-12-05 15:50:34 +01:00
Alexander Larsson
4694885015 broadway: Remove now unused toplevel surface 2017-12-05 15:50:34 +01:00
Christian Hergert
dc8320c129 autocleanups: allow g_autoptr() usage with GtkTreePath
As the summary says, this allows using g_autoptr(GtkTreePath). This is
useful for API that uses out parameters for GtkTreePath that need to be
freed.

https://bugzilla.gnome.org/show_bug.cgi?id=791234
2017-12-05 12:33:50 +00:00
Emmanuele Bassi
51db8f8f53 Ensure that the path is always set
We are using `path` unconditionally, but it can be conditionally filled.
To avoid inconsistent internal state, and a compiler warning, let's
assert that the variable is always set.
2017-12-05 11:07:46 +00:00
Emmanuele Bassi
66f7f1768f Fix the build
Use the right argument name in the preconditions check.
2017-12-05 11:02:20 +00:00
Matthias Clasen
4a11baa372 gdk: Documentation improvements 2017-12-04 23:52:48 -08:00
Matthias Clasen
4ab15a8292 docs: Drop some no longer existing functions 2017-12-04 23:15:06 -08:00
Matthias Clasen
b5c62cf86f Revert "clipboard: Add gdk_clipboard_set()"
This reverts commit dc50e0637f.

This broke the build.
2017-12-04 23:09:54 -08:00
Benjamin Otte
dc50e0637f clipboard: Add gdk_clipboard_set()
This API allows specifying a GType and va_args of a value of that type
to set the clipboard contents. This massively simplifies setting weird
object types into the clipboard.
2 example patches included in this patch are the GtkTextBuffer and the
file list in the file chooser.

Using gobject-introspection, this should work without specifying the
type, so that you can literlally say
  clipboard.set ("Hello World")
or
  clipboard.set (pixbuf)
which is why I've also marked all other setters as (skip). They just
exist in C as wrappers for type safety reasons.
2017-12-05 05:29:03 +01:00
Benjamin Otte
4658d7ea54 dnd: Remove x/y coordinates from drag-data-received
This is in preparation of using input streams to show that these
coordinates aren't needed most of the time and can otherwise be saved
during GtkWidget::drag-drop.
2017-12-05 05:29:00 +01:00
Matthias Clasen
6f00c1b626 Expand the docs
Cross-reference the serializers.
2017-12-04 16:28:33 -08:00
Matthias Clasen
ddcd687617 Document gdk_content_provider_contents_changed 2017-12-04 16:08:32 -08:00
Matthias Clasen
91499d4b0e gdk: Expand the clipboard documentation 2017-12-04 16:06:02 -08:00
Matthias Clasen
77f0e678ec gdk: Fill in some blanks in the docs
This is just an initial cut; more work is needed.
2017-12-04 15:58:30 -08:00
Matthias Clasen
d5afb9e805 Add a long description for GdkTexture 2017-12-04 11:04:02 -08:00
Matthias Clasen
384a999032 Move GdkGrabStatus docs
This enum was the odd man out in the initialization docs.
Move it to GdkSeat where grabbing happens nowadays.
2017-12-04 10:36:19 -08:00
Matthias Clasen
edfb86fe10 Add new stuff to the gdk docs
Document all the things.
2017-12-04 10:32:17 -08:00
Matthias Clasen
5cc7bf5dbd Fix the gdk doc build
Some types don't exist anymore.
2017-12-04 10:03:23 -08:00
Timm Bäder
8619ff0744 switch: Remove unused variable 2017-12-04 18:35:48 +01:00
Benjamin Otte
2f12eb616a wayland: Initialize variable
Otherwise we get NULL-warnings when we try to use (read: unref) it.
2017-12-04 18:28:53 +01:00
Matthias Clasen
841eb45b66 actionbar: Add more docs for gtk_action_bar_get_revealed
This stops gtk-doc complaints.
2017-12-04 07:42:01 -08:00
Matthias Clasen
b912416be5 about dialog: Add some missing docs
gtk_about_dialog_set/get_system_information are new,
and were missing docs.
2017-12-04 07:42:01 -08:00
Matthias Clasen
5c1a46c149 docs: Remove gtk_application_is_inhibited
It doesn't exist anymore.
2017-12-04 07:42:01 -08:00
Timm Bäder
93df23d962 Remove some more gtk_widget_get_content_size uses 2017-12-04 12:42:52 +01:00
Timm Bäder
1ed364a000 widgetbowl: Add some more widget types 2017-12-04 12:24:33 +01:00
Timm Bäder
78832732c4 testswitch: Remove unnecessary gtk_widget_show calls 2017-12-04 12:24:27 +01:00
Timm Bäder
3a3783dfcd image: Stop using gtk_widget_get_content_size 2017-12-04 12:24:18 +01:00
Timm Bäder
dbc4796d6a popover: Stop using gtk_widget_get_content_size 2017-12-03 22:05:15 +01:00
Timm Bäder
7cc9bee7a2 spinner: Stop using gtk_widget_get_content_size 2017-12-03 22:04:59 +01:00
Benjamin Otte
52b1cd40d1 gsk: Remove gsk_render_node_set_scaling_filters()
This is a leftover from the very early rendernode that we forgot to delete.

This can be seen by the fact that it is settable on an immutable object.
2017-12-03 21:57:21 +01:00
Piotr Drąg
794a2bfd00 Use Unicode quotation marks in new strings
See https://developer.gnome.org/hig/stable/typography.html

https://bugzilla.gnome.org/show_bug.cgi?id=772371
2017-12-03 18:38:39 +01:00
Piotr Drąg
a5815ad5c6 Update POTFILES.in 2017-12-03 18:24:36 +01:00
Руслан Ижбулатов
bcc77e169c GDK W32: Remove stray debug code
I have no idea how this slipped into master (these two lines are not present
in the same commit that went into gtk-3-22).
2017-12-03 06:10:03 +00:00
Benjamin Otte
acee3809b3 dnd: Remove unused variables 2017-12-03 06:50:51 +01:00
Matthias Clasen
6ab72b2653 Remove GdkDragProtocol from the api
...together with apis that return it. We were not using this
information in GTK+ at all, so no need to provide it.
2017-12-03 06:41:08 +01:00
Matthias Clasen
8b1b9f8c55 Drop api that is only for unmanaged dnd
These functions are not needed as public api anymore.
2017-12-03 06:24:24 +01:00
Matthias Clasen
e74c46fc4e dnd: Handle rootwin drop in gdk
This lets us drop the only use of the drag protocol in gtk.
2017-12-03 06:22:25 +01:00
Matthias Clasen
6cfb55a396 dnd: Remove much of the unmanaged dnd 2017-12-03 06:17:42 +01:00
Benjamin Otte
ff577e6c2c wayland: Add primary clipboard subclass
I decided to put this in a custom subclass, because then I could keep
the whole gtk primary protocol self-contained.

The other option would have been reusing GdkWaylandClipboard, but that
didn't seem worth it, especially because that code needs to interact
with the DND machinery, while the primary doesn't.
2017-12-03 05:46:49 +01:00
Benjamin Otte
ef69daacdf wayland: Implement taking over the clipboard
The clipboard is now complete.
That was fast.
2017-12-03 05:46:49 +01:00
Benjamin Otte
82002eabfe wayland: Implement reading the clipboard
We now keep track of what's in the clipboard and allow people to read
its contents.
2017-12-03 05:46:49 +01:00
Benjamin Otte
00192266a1 wayland: Add skeleton for a GdkClipboardWayland
Creates the source file and a custom subclass and makes sure it's used
by GDK.
2017-12-03 05:46:49 +01:00
Benjamin Otte
437d70f569 gdk: Get rid of owner change events
They're unused now.
2017-12-03 05:46:49 +01:00
Benjamin Otte
2d5c82b4ec gtk: Remove GtkClipboard 2017-12-03 05:46:49 +01:00
Benjamin Otte
c8edc6ed58 icon-browser: Port to new clipboard 2017-12-03 05:46:49 +01:00
Benjamin Otte
c833b47b21 gtk-demo: Port to GdkClipboard 2017-12-03 05:46:49 +01:00
Benjamin Otte
18bf0eb61a clipboard: Change image convenience APIs
Don't use pixbufs anymore, use textures.
2017-12-03 05:46:49 +01:00
Benjamin Otte
a34836f35b gdk: Add (de)serializers for GDK_TYPE_TEXTURE
We want to use textures more, so we should be able to use them for
copy/paste and dnd.
2017-12-03 05:46:49 +01:00
Benjamin Otte
ead67a7c17 x11: Handle case where clipboard was reclaimed quickly
When the reply to a TARGETS request comes in, the clipboard may already
be reclaimed by the local app. Deal with that case (in an ugly way,
strictly speaking we should use a cancellable here).

This happens for example at startup when the initial TARGETS requests
have not been answered until after the main widow popped up. And if such
a window immediately claims the primary clipboard (like when the initial
focus is inside an entry), this race will happen.
2017-12-03 05:46:49 +01:00
Benjamin Otte
24c934f8c0 entry: Port to GdkClipboard 2017-12-03 05:46:49 +01:00
Benjamin Otte
5abd7a39a2 x11: Implement storing the clipboard 2017-12-03 05:46:49 +01:00
Benjamin Otte
b75546d0fb x11: Implement MULTIPLE requests 2017-12-03 05:46:48 +01:00
Benjamin Otte
3ea258de26 tests: Don't crash if widgets go away before clipboard
Don't g_signal_connect() to the clipboard without protection - the
clipboard might outlast you and still emit signals.
2017-12-03 05:46:48 +01:00
Benjamin Otte
ea18793965 x11: Introduce GdkX11PendingSelectionNotify
This object tracks the SelectionNotifyEvent that has to be sent in
response to a SelectionRequest.

Currently it just looks like code reshuffling, but it's a prerequisite
for handling MULTIPLE, which requires to only send the notify after
every stream has writtten at least once.

But anyway, code is cleaner now, so it's a win!
2017-12-03 05:46:48 +01:00
Benjamin Otte
bcc0d4b5f0 x11: Split out a function
This will be necessary for MULTIPLE handling.
2017-12-03 05:46:48 +01:00
Benjamin Otte
0ff3340da7 main: Implement storing all clipboards 2017-12-03 05:46:48 +01:00
Benjamin Otte
4cce109e16 application: Put shared code into a common function 2017-12-03 05:46:48 +01:00
Benjamin Otte
fe7c283aea clipboard: Add infrastructure to store clipboards
Clipboard managers will be so happy once the backends actually implement
it!
2017-12-03 05:46:48 +01:00
Benjamin Otte
51e46cc898 contentprovider: Add ref_storable_formats()
This is to be used for advocating to clipboard managers.
2017-12-03 05:46:48 +01:00
Benjamin Otte
ca96fac488 filechooserwidget: Port to new clipboard
We use the new GDK_TYPE_FILE_LIST here.
2017-12-03 05:46:48 +01:00
Benjamin Otte
6b326b14c0 gdk: Add GDK_TYPE_FILE_LIST with serializers
This is a GSList of GFile and we want it so we can operate with lists of
files and text/uri-list.

I chose GSList over GList because that's what the GtkFileChooser API
uses, too.
2017-12-03 05:46:48 +01:00
Benjamin Otte
928c98a84e gdk: Add serializers and deserializers for GFile
in particular, support:
GFile <=> text/uri-list
GFile  => text/plain
2017-12-03 05:46:48 +01:00
Benjamin Otte
39d4622563 tests: Improve formats list for testclipboard2 2017-12-03 05:46:48 +01:00
Benjamin Otte
5632d0eabb label: Port to new clipboard 2017-12-03 05:46:48 +01:00
Benjamin Otte
f53848c360 textview: Redo clipboard handling
Instead of using GtkClipboard and handling everything ourselves, we now
put GtkTextBuffer into the GdkClipboard and register (de)serializers for
text/plain.
2017-12-03 05:46:48 +01:00
Benjamin Otte
4e06aaeaa8 gdk: Add gdk_content_formats_new_for_gtype()
Many places create formats for a single tpye, so make it easy for them
to get this without having to create a builder first.
2017-12-03 05:46:48 +01:00
Benjamin Otte
cc07800570 gdk: Allow setting task data on (de)serializers
This mirrors GTask.
2017-12-03 05:46:48 +01:00
Benjamin Otte
c146132a4a gtk-demo: Port clipboards example to new clipboard 2017-12-03 05:46:48 +01:00
Benjamin Otte
8cd5e0af1a recentchooser: Port to GdkClipboard 2017-12-03 05:46:48 +01:00
Benjamin Otte
909b6877bd linkbutton: Port to GdkClipboard 2017-12-03 05:46:48 +01:00
Benjamin Otte
825612b419 a11y: Port to GdkClipboard 2017-12-03 05:46:47 +01:00
Benjamin Otte
54c8a4b3b7 widget: Add gtk_widget_get_clipboard()
... and gtk_widget_get_primary_clipboard().

They both give out the new GdkClipboard.
2017-12-03 05:46:47 +01:00
Benjamin Otte
a59572f96d widget: gtk_widget_get_clipboard => gtk_widget_get_old_clipboard
Just rename the function, so the previous one can be used for the
new clipboard.
2017-12-03 05:46:47 +01:00
Benjamin Otte
6fffa5b171 tests: Open a 2nd display in testclipboard2
This allows testing local transfer of data as well as remote transfer
(by transferring data between clipboards of both Displays).
2017-12-03 05:46:47 +01:00
Benjamin Otte
134076e738 x11: Implement claiming the X Selection with the clipboard
... and of course support writing to other apps.
2017-12-03 05:46:47 +01:00
Benjamin Otte
e2014850b9 tests: Add possibility to set invalid UTF-8 and clear clipboard 2017-12-03 05:46:47 +01:00
Benjamin Otte
c66a61d896 x11: Add gdk_x11_display_get_max_request_size()
There's multiple places in the clipboard code where I need it, so make
it a custom function.
2017-12-03 05:46:47 +01:00
Benjamin Otte
8e132ef0c4 clipboard: Allow claiming the clipboard to fail
Also make clipboard_claim() a vfunc so backends can override it.

Because the whole operation a vfunc, backends have the option of adding
code before the actual claim is done and potentially even fail or do
something after the successful claim.
2017-12-03 05:46:47 +01:00
Benjamin Otte
7426f1a16b gdkcontentformats: Change the matching API
Instead of having just one function that has the gtype and mime type as
out arguments, have 3 functions: 1 that finds any match, 1 that finds a
GType match and one for a mime type match.

This makes the API way more convenient to use.
2017-12-03 05:46:47 +01:00
Benjamin Otte
25c3895836 clipboard: Add serialization
This completes the local clipboard code.
2017-12-03 05:46:47 +01:00
Benjamin Otte
12ca641ff5 clipboard: Implement local fallback clipboard transfers
This requires implementing a "pipe" so we can have 2 streams running:
  contentprovider => serializer => outputstream
  inputstream => deserializer => reader
And the pipe shoves the data from the outputstream into the inputstream.
2017-12-03 05:46:47 +01:00
Benjamin Otte
888e5257e0 clipboard: Introduce GdkContentProvider
GdkContentProvider is the object that represents local data in the
clipboard.

This patch only introduces the object and adds the clipboard properties,
it does not yet provide a way for the actual implementations to access
it.

The only access that is implemented is the local shortcut GValue access.
2017-12-03 05:46:47 +01:00
Benjamin Otte
3023d254dd clipboard: Make value getters set the passed in value
Don't return a const GValue, that's ugly API. Instead require people to
pass in a preinitialized GValue and set that one.
2017-12-03 05:46:47 +01:00
Benjamin Otte
9b78d76873 x11: Improve fallbacks for text
(1) Try all passed in formats in order if one of them fails.
(2) Don't blindly accept all formats, make sure they are mime types
(3) Add a bunch of special non-mime types that plug converters to
    get to mime types
2017-12-03 05:46:46 +01:00
Benjamin Otte
88684baecf clipboard: Add gdk_clipboard_read_text_async()
Also add deserializers for G_TYPE_STRING.
2017-12-03 05:46:28 +01:00
Benjamin Otte
02d1f90d13 clipboard: Add gdk_clipboard_read_pixbuf_async() 2017-12-03 05:46:28 +01:00
Benjamin Otte
91910ba013 gdk: Im[plement content deserializing
Add infrastructure to do GInputStream => GType conversions. Use that to
implement gdk_clipboard_read_value() which reads into GValues.
2017-12-03 05:46:27 +01:00
Benjamin Otte
970cb100af x11: Improve debugging output for selection input stream 2017-12-03 05:46:27 +01:00
Benjamin Otte
41f70e18af clipboard: Refactor gdk_clipboard_read() to be async
This allows us not just to pass any mime type to the read function, but
it also makes it possible to pass multiple mime types and the clipboard
can then try them in order until it finds a supported one.

This is so far not implemented though.
2017-12-03 05:46:26 +01:00
Benjamin Otte
516f35b865 x11: Use async queue and implement sync reads on selections stream
Turns out, way too many async operations are implemented by running the
sync operation in a thread. The easiest solution is to support that is
to use a GAsyncQueue for the buffers and deadlock if called from the
main thread.
2017-12-03 05:43:24 +01:00
Benjamin Otte
3506ae6085 tests: Add a new test app for GdkClipboard 2017-12-03 05:43:24 +01:00
Benjamin Otte
c91a38b013 clipboard: Implement gdk_clipboard_read() 2017-12-03 05:43:24 +01:00
Benjamin Otte
13fb3fd4a0 x11: Implement INCR reads 2017-12-03 05:43:24 +01:00
Benjamin Otte
fe9045d82e x11: Various clipboard cleanups
(1) Turn X11 clipboard event handling into a regular filter function
(2) Maintain a timestamp in the clipboard, so we can pass it when
    querying selections.
2017-12-03 05:43:24 +01:00
Benjamin Otte
a5ab9a9671 clipboard: Add gdk_clipboard_claim_remote()
This allows the remote clipboard to take over. The X11 clipboard already
does that.
2017-12-03 05:43:24 +01:00
Benjamin Otte
4728dd0a9e x11: Add an initial clipboard implementation
This does nothing but download the targets and debug-print them.
2017-12-03 05:43:24 +01:00
Matthias Clasen
e94b9b9a62 gdk: A GdkClipboard API draft
This commit adds a GdkClipboard object which is intended to
replace GtkClipboard, eventually.
2017-12-03 05:43:24 +01:00
Руслан Ижбулатов
174a36257f GDK W32: Plug a resource leak
Ensure that surfaces allocated in the impl are destroyed in finalize()

https://bugzilla.gnome.org/show_bug.cgi?id=787089
2017-12-03 03:19:02 +00:00
Piotr Drąg
4198434261 Update Polish translation 2017-12-02 18:45:33 +01:00
Benjamin Otte
481c6ad99a dnd: Add gtk_drag_set_icon_texture() 2017-12-02 16:21:58 +01:00
Benjamin Otte
20de4c86ad selection: Add texture getter/setter 2017-12-02 16:21:58 +01:00
Benjamin Otte
85b3f6d372 image: Add gtk_image_new_from_texture()
Docs and header knew about this function.
There just was no implementation.
2017-12-02 16:21:58 +01:00
Benjamin Otte
373848f561 image: Store pixbufs as textures, not surfaces 2017-12-02 16:21:58 +01:00
Benjamin Otte
9048d40bc2 vulkan: Fix mask shader to premultiply color
The inColor wasn't premultiplied, so the resulting colors were wrong
with translucent borders.
2017-12-02 16:21:58 +01:00
Benjamin Otte
abc8d61730 vulkan: Fix border shader to premultiply color
The inColor wasn't premultiplied, so the resulting colors were wrong
with translucent borders.
2017-12-02 16:21:58 +01:00
Руслан Ижбулатов
ae76d19663 GDK W32: Remove an unnecessary type check
No idea why it's here, the hash table can store any kind of data,
there's no reason why it wouldn't be able to store an old X string type.
Might be a holdout from the old days, when strings were handled in
a special way (stored directly in the clipboard?).

https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:42 +00:00
Руслан Ижбулатов
c89c19d2f9 GDK W32: Make sure drag source window is not NULL
This prevents GTK from throwing a bunch of warnings when it tries
to get drag source window -> screen of that window -> ipc widget for that screen,
and then tries to attach a signal handler to that widget.

Specifically, this happens when we get a DnD move from another
application.

https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:41 +00:00
Руслан Ижбулатов
f0d04f82f8 GDK W32: Special handling for DELETE requests
1) Ensure that any DELETE requests from the target are sent to GDK, even if
   both the source and the target are in the same process and it
   is therefore possible to use a shortcut and call the handler directly
   in GTK layer
2) Ensure that target GDK doesn't do anything when GTK asks it to send
   a DELETE request, just report back immediately (the code up the stack
   does not check for successfullness when request is DELETE, so not giving
   it any data is OK).

The source code already synthesizes a DELETE request, so that side is
also taken care of.

https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:40 +00:00
Руслан Ижбулатов
5e2e0af8b4 GDK W32: Preserve the target value for change_property()
We need to know the target atom value to know when we need to
do something with side-effects (since side-effects are expressed via
special target values). Previously, the code side-stepped that by looking
at the data type (which was rather unique for the one side-effect
target that we supported, signalled by the TARGETS target),
but for the DELETE target that seems to be no longer an option, hence the new
field to carry this information past the convert_selection() routine.

This prevents GDK from throwing a warning when trying to convert
a DELETE target, which has no format or data objects set.

The side-effects for the DELETE target happen earlier, in GTK layer.
By the point it gets to change_property(), it's a no-op.

https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:39 +00:00
Руслан Ижбулатов
44bc05df80 Fix a nefarious typo 2017-12-02 10:38:38 +00:00
Руслан Ижбулатов
5d0bfdd840 GDK W32: Ensure that selection request is processed
To do that, run the message loop for one second or until the side-effect
of running the selection request handler is achieved (as opposed to
running it until the event is no longer queued).

The disavantage of this method is that if the event handling is
somehow missed (due to a variety of reasons - after all, it's not
a straight path from an event being queued to property_change()
being called), this will loop for one second. Since we do process
events during that time, this will not hang the application, but
might still restrict some of the functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:37 +00:00
Руслан Ижбулатов
a66017a6a0 GDK W32: Refuse to release mouse grab while in DnD mode
Handle WM_CANCELMODE and do nothing in response to it when DnD is
active. Otherwise pass it to DefWindowProc, which will call ReleaseCapture()
on our behalf.
This prevents us from losing mouse capture when alt-tabbing during DnD
(this includes the feature of Windows Explorer where dragging stuff over
a window button in the taskbar causes that window to receive focus, i.e.
keyboardless alt-tabbing).

https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:36 +00:00
Руслан Ижбулатов
6d37ed6256 GDK W32: Update layered windows on opacity changes
Without this patch layered windows are only updated when they are moved
by the user or then their contents changes. This patch adds opacity
changes to the list of things that make GDK update a window. Without this
windows that don't redraw and are not moved by the used (DnD drag indicator
windows, for example) don't change their opacity.

(This commit is cherry-picked from the gtk-3-22 branch)

https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:35 +00:00
Руслан Ижбулатов
6c29e81051 W32: Massive W32 DnD fix
Massive changes to OLE2 DnD protocol, which was completely broken before:
* Keep GdkDragContext and OLE2 objects separate (don't ref/unref them
  together, don't necessarily create them together).
* Keep IDataObject formats in the object itself, not in a global variable.
* Fix getdata() to look up the request target in its format list, not in the
  global hash table
* Create target GdkDragContext on each drag_enter, destroy it on drag_leave,
  whereas IDropTarget is created when a window becomes a drag destination
  and is re-used indefinitely.
* Query the source IDataObject for its supported types, cache them in the
  target (!) context. This is how GTK+ works, honestly.
* Remember current_src_object when we initiate a drag, to be able
  to detect later on that the data object is ours and use a
  shortcut when querying targets
* Make sure GDK_DRAG_MOTION is only sent when something changes
* Support GTK drag cursors
* Ensure that exotic GTK clipboard formats are registered
  (but try to avoid registering formats that can't be used between applications).
* Don't enumerate internal formats
* Ensure that DnD indicator window can't accept drags or receive any kind of input
  (use WS_EX_TRANSPARENT).
* Remove unneeded indentation in _gdk_win32_dnd_do_dragdrop()
* Fix indentation in gdk_win32_drag_context_drop_finish()
* Remove obsolete comments in _gdk_win32_window_register_dnd()
* Check for DnD in progress when processing WM_KILLFOCUS, don't emit a grab
  break event in such cases (this allows alt-tabbing while DnD is in progress,
  though there may be lingering issues with focus after dropping...)
* Support Shell ID List -> text/uri-list conversion, now it's possible
  to drop files (dragged from Explorer) on GTK+ applications
* Explicitly use RegisterClipboardFormatA() when we know that the string
  is not in unicode. Otherwise explicitly use RegisterClipboardFormatW()
  with a UTF8->UTF16 converted string
* Fix _gdk_win32_display_get_selection_owner() to correctly bail
  when selection owner HWND is NULL (looking up GdkWindow for NULL
  HWND always succeeds and returns the root window - not the intended
  effect)
* More logging
* Send DROP_FINISHED event after DnD loop ends
* Send STATUS event on feedback
* Move GetKeyboardState() and related code into _gdk_win32_window_drag_begin(),
  so that it's closer to the point where last_pt and start_pt are set
* Use & 0x80 to check for the key being pressed. Windows will set low-order bit
  to 1 for all mouse buttons to indicate that they are toggled, so simply
  checking for the value not being 0 is not enough anymore.
  This is probably a new thing in modern W32 that didn't exist before
  (OLE2 DnD code is old).
* Fixed (hopefully) and simplified HiDPI parts of the code.

Also adds managed DnD implementation for W32 GDK backend (for both
OLE2 and LOCAL protocols). Mostly a copy of the X11 backend code, but
there are some minor differences:
* doesn't use drag_window field in GdkDragContext,
  uses the one in GdkWin32DragContext exclusively
* subtracts hotspot offset from the window coordinates when showing
  the dragback animation
* tries to consistently support scaling and caches the scale
  in the context
* Some keynav code is removed (places where grabbing/ungrabbing should
  happen is marked with TODOs), and the rest is probably inert.

Also significantly changes the way selection (and clipboard) is handled
(as MSDN rightly notes, the handling for DnD and Clipboard
 formats is virtually the same, so it makes sense to handle
 both with the same code):
* Don't spam GDK_OWNER_CHANGE, send them only when owner
  actually changes
* Open clipboard when our process becomes the clipboard owner
  (we are doing it anyway, to empty the clipboard and *become* the owner),
  and then don't close it until a scheduled selection request event
  (with TARGETS target) is received. Process that event by announcing
  all of our supported formats (by that time add_targets() should have
  been called up the stack, thus the formats are known; just in case,
  add_targets() will also schedule a selection request, if one isn't
  scheduled already, so that late-coming formats can still be announced).
* Allow clipboard opening for selection_convert() to be delayed if it
  fails initially.
* The last two points above should fix all the bugs about GTK+ rising
  too much ruckus over OpenClipboard() failures, as owner change
  *is allowed* to fail (though not all callers currently handle
  that case), and selection_convert() is asynchronous to begin with.
  Still, this is somewhat risky, as there's a possibility that the
  code will work in unexpected ways and the clipboard will remain open.
  There's now logging to track the clipboard being opened and closed,
  and a number of failsafes that try to ensure that it isn't kept open
  for no reason.
* Added copious notes on the way clipboard works on X11, Windows and GDK-W32,
  also removed old comments in DnD implementation, replaced some of them
  with the new ones
* A lot of crufty module-global variables are stuffed into a singleton
  object, GdkWin32Selection. It's technically possible to make it a
  sub-object of the Display object (the way Wayland backend does),
  but since Display object on W32 is a singleton anyway... why bother?
* Fixed the send_change_events() a bit (was slightly broken in one of the
  previous iterations)
* Ensure that there's no confusion between selection conversion (an artifact
  term from X11) and selection transmutation (changing the data to be W32-compatible)
* Put all the transmutation code and format-target-matching code into gdkselection-win32.c,
  now this code isn't spread across multiple files.
* Consequently, moved some code away from gdkproperty-win32.c and gdkdnd-win32.c
* Extensive format transmutation checks for OLE2 DnD and clipboard.
  We now keep track of which format mappings are for transmutations,
  and which aren't (for example, when formats are passed as-is, or when
  a registered name is just an alias)
* Put transmutation code into separate functions

* Ensure that drop target keeps a format->target map for supported formats,
  this is useful when selection_convert() is called, as it only receives a
  single target and no hints on the format from which the data should
  be transmuted into this target.
* Add clear_targets() on W32, to de called by GTK
* Use g_set_object() instead of g_ref_object() where it is allowed.
* Fix indentation (and convert tabs to spaces), remove unused variables

(This commit is cherry-picked from the gtk-3-22 branch)

https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:34 +00:00
Руслан Ижбулатов
3237c2172a GDK W32: Don't leak the atom name string
https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:33 +00:00
Руслан Ижбулатов
c4617d3268 GDK W32: Fix a typo in OLE2 DnD code
https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:32 +00:00
Руслан Ижбулатов
6a770517cc Only register application/x-rootwindow-drop on X11
application/x-rootwindow-drop is not useful anywhere else,
so put it under #ifdef GDK_WINDOWING_X11

On W32 this prevents toplevels from automatically becoming valid
drop targets with a useless drop type.

(This commit is cherry-picked from the gtk-3-22 branch)

https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:31 +00:00
Руслан Ижбулатов
33de691d9f GDK W32: More flexible modal operation mode
Instead of using a boolean to indicate a modal operation being in progress,
use a set of flags, and allow these to be set and unset independently.

Specifically, this allows WM_CAPTURECHANGED handler to only act when a drag-move or
drag-resize modal operation is in progress, and ignore DND (which can also cause
WM_CAPTURECHANGED to be posted). This avoids a crash due to assertion failure when
OLE2 DND code tries to end a modal operation that was already ended by the WM_CAPTURECHANGED
handler.

(This commit is cherry-picked from the gtk-3-22 branch)

https://bugzilla.gnome.org/show_bug.cgi?id=786121
2017-12-02 10:38:30 +00:00
Руслан Ижбулатов
323a601123 GDK W32: fix monitor pruning code
Decrement the counter for each removed element, otherwise we skip
one element every time we remove one. Also, no need for continue here.
2017-12-02 10:38:29 +00:00
Руслан Ижбулатов
50bbac6005 GDK W32: Correctly report window position in HiDPI mode
Window position returned by get_frame_extents() should be scaled.

Also take this opportunity to apply the same rounding that X11 backend
applies.

https://bugzilla.gnome.org/show_bug.cgi?id=788053
2017-12-02 10:38:28 +00:00
Chun-wei Fan
eb6d5b6b27 GDK-Win32: Fix AeroSnap on HiDPI
Commit 1d0fad3 revealed that there were some assumptions made that were
actually to compensate for the bug fixed by that commit, so we need to
remove those assumptions as they would result in AerSnap to not work
properly on HiDPI screens.

Also re-do how we set the x and y positions of our GdkWindow, so that we
are more consistent across the board when we go between a GDK window
coordinate and a Windows API window cooredinate.

This would also simplify the code a bit.

https://bugzilla.gnome.org/show_bug.cgi?id=785999
2017-12-02 10:38:27 +00:00
Руслан Ижбулатов
d7e2017c28 GDK W32: Handle drivers that do not send WT_CSRCHANGE after WT_PROXIMITY
Some drivers don't do that (not sure whether that is the correct behaviour
or not). Remember each WT_PROXIMITY with LOWORD(lParam) != 0 that we get,
then look for a WT_CSRCHANGE. If WT_CSRCHANGE doesn't come, but a WT_PACKET
does, assume that this device is the one that sent WT_PROXIMITY.

Also include fallback code to ensure that WT_PACKETs for an enabled device
disable the system pointer, because WT_PROXIMITY handler might have
enabled it by mistake, since it's not possible to know which device left
the proximity (it might have been a disabled device).

https://bugzilla.gnome.org/show_bug.cgi?id=778328
2017-12-02 10:38:26 +00:00
Руслан Ижбулатов
3c9b667d3e GDK W32: Apply HiDPI scale properly to monitors
Previously HiDPI scale was retrieved and applied too late in the initialization
process to affect monitor size and monitor workarea size, but the code that
initializes these sizes *did* try to use the scale, even though it was always
getting scale=1.

To fix this, move the too-late code into monitor enumeration routine.
This also fixes a probable semantic bug where width and height were divided
by scale, again.

Now monitor and workarea should be in application pixels (i.e. divided by scale),
as intended.

https://bugzilla.gnome.org/show_bug.cgi?id=778835
2017-12-02 10:38:25 +00:00
Руслан Ижбулатов
27ed9fb11d GDK W32: Different maximized window position for non-CSD windows
It seems that WM interprets the same MINMAXINFO contents differently
depending on which styles the window has. Play along.

https://bugzilla.gnome.org/show_bug.cgi?id=765161
2017-12-02 10:38:24 +00:00
Руслан Ижбулатов
58ba4d6a3e GDK W32: Ensure that we use made-up monitors when there are none
Previously GDK only made up monitors when it initially found none. Now it
also makes up monitors when it initially finds some, but later fails to get
their informatin in a normal way and finally prunes them out, being left with
zero monitors.

Having zero-length monitor array is unexpected and causes a number
of critical warnings and some critical functionality (such as displaying
drop-down menus) fails in such cases.

Ideally, there might be such a way to interrogate W32 API that produces the
information about non-real (but active) monitors out of it so that it isn't
necessary for us to make stuff up. However, this code is already complicated,
and i am not prepared to dig W32 API to find a way to do this.

This fixes the issues people had when they accessed a Windows desktop via RDP.

https://bugzilla.gnome.org/show_bug.cgi?id=777527
2017-12-02 10:38:23 +00:00
Руслан Ижбулатов
f7ae36739a GDK W32: Fix idiotic gdk_win32_display_get_monitor() implementation
Replace the code borrowed from the X11 backend with the code borrowed from Wayland backend. Now GTK doesn't crash when the number of monitors is zero.
2017-12-02 10:38:22 +00:00
Руслан Ижбулатов
c36d66bdb6 GDK W32: Use keyboard hook to detect AeroSnap combinations better
Windows WM handles AeroSnap for normal windows on keydown. We did this
on keyup only because we do not get a keydown message, even if Windows WM
does nothing with a combination. However, in some specific cases it DOES
do something - and we have no way to detect that. Specifically, winkey+downarrow
causes maximized window to be restored by WM, and GDK fails to detect that. Then
GDK gets a keyup message, figures that winkey+downarrow was pressed and released,
and handles the combination - by minimizing the window.

To overcome this, install a low-level keyboard hook (high-level ones have
the same problem as normal message loop - they don't get messages when
Windows WM handles combinations) and use it to detect interesting key combinations
before Windows WM has a chance to block them from being processed.

Once an interesting combination is detected, post a message to the window, which
will be handled in due order.

It should be noted that this code handles key repetitions in a very crude manner.

The downside is that AeroSnap will not work if hook installation function call fails.
Also, this is a global hook, and if the hook procedure does something wrong, bad things
can happen.

https://bugzilla.gnome.org/show_bug.cgi?id=776031
2017-12-02 10:38:21 +00:00
Руслан Ижбулатов
cba75d8239 GDK W32: Handle CapsLock as part of the key shift level
Instead of using some kind of flawed logic about modifying a keypress result
when CapsLock is toggled, just add a CapsLock shift level (and all derived
shift levels, i.e. Shift+CapsLock and CapsLock+AltGr and Shift+CapsLock+AltGr)
and query Windows keyboard layout API about the result of keypresses involving
CapsLock.

Keysym table is going to be (roughly) twice as large now, but CapsLock'ed
keypresses will give correct results for some keyboard layouts (such as
Czech keyboard layout, which without this change produces lowercase letters
for CapsLock->[0,2,3,4...] instead of uppercase ones).

Keymap update time also increases accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=165385
2017-12-02 10:38:20 +00:00
Руслан Ижбулатов
33442d953d GDK W32: Special handling for VK_PAUSE
Similar to VK_DIVIDE, this key can't be mapped to a scancode by
MapVirtualKeyEx(). Googling suggests that this is a known bug.

https://bugzilla.gnome.org/show_bug.cgi?id=769214
2017-12-02 10:38:19 +00:00
Руслан Ижбулатов
e1240b42ed GDK W32: Change WM_SYSMENU style switch logic
Instead of checking for window state and giving it extra styles that
fit, just give it all styles that it is missing. It turned out that
otherwise it is impossible to, for example, restore a maximized window
via sysmenu. Also, be more flexible towards GDK/WM window state mismatches
and consider the window minimized/maximized if *either* GDK or WM thinks so.

https://bugzilla.gnome.org/show_bug.cgi?id=776485
2017-12-02 10:38:19 +00:00
Руслан Ижбулатов
9e5fc16307 GDK W32: Remove unneeded assertion
Just set check_for_dpi_awareness = TRUE and eventually it will be handled
correctly, even if setDpiAwareFunc() returns E_ACCESSDENIED or shcore functions
are NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=777031
2017-12-02 10:38:18 +00:00
Руслан Ижбулатов
285ebd58a8 GDK W32: Handle maximizing correctly for small primary monitors
When primary monitor is smaller than the actual monitor on which the
window is being maximized, the WM will do widnow size adjustments
that will completely screw the window size if we try to make it
smaller than 100% fullscreen (to account for taskbar size, for example).

Fix this by overriding maximized window size during WM_WINDOWPOSCHANGING.

https://bugzilla.gnome.org/show_bug.cgi?id=775808
2017-12-02 10:38:17 +00:00
Руслан Ижбулатов
c7bdf643c5 GDK: Make sure W32 backend compiles without GdkDeviceManager
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-12-02 10:37:23 +00:00
Carlos Garnacho
645e67231e gtkeventcontrollerscroll: Add some docs 2017-12-02 00:29:37 +01:00
Matthias Clasen
7fcd3bee0d Add GtkEventControllerScroll to the docs
It is not actually documented yet, unfortunately.
2017-12-01 14:17:04 -08:00
Matthias Clasen
6241ae009e docs: Some revision to the migration docs
Cover more of the recent changes, and revise some of the wording.
2017-12-01 11:51:53 -05:00
Matthias Clasen
4930153413 Finish conversion of pixbuf cell renderer icon size
Change the name of the property from stock-size to icon-size,
and make it an enum property instead of uint. This makes it
impossible to specify invalid numeric values in ui files, and
at the same time makes it possible to refer to the existing
values by their nick.

Fix up the callers.
2017-12-01 10:36:17 -05:00
Matthias Clasen
1c59db9bff placesview: Drop the word stock from the docs
It does not really add anything here, and makes it harder
to grep for occurrences of stock ids.
2017-12-01 10:30:21 -05:00
Matthias Clasen
77d12c0451 recent chooser: Stop specifying stock-size
We were using a no-longer-existing numeric value here,
and we can just rely on the theme to set this now.
2017-12-01 10:30:21 -05:00
Matthias Clasen
dc12dc4495 toolbutton: Remove the word stock from internal docs
We no longer support stock items.
2017-12-01 10:30:20 -05:00
Matthias Clasen
60c3afe0fe recent chooser: Remove the word stock from the docs
We don't support stock items anymore.
2017-12-01 10:30:20 -05:00
Matthias Clasen
86ae1df257 filechooser: Remove the word stock from the docs
It does not really add anything here, and makes it harder
to grep for occurrences of stock ids.
2017-12-01 10:30:20 -05:00
Matthias Clasen
8c95071eea entry: Remove references to stock ids from the docs
We no longer support stock images.
2017-12-01 10:30:20 -05:00
Matthias Clasen
6de5cd57e7 image definition: Drop unused struct
We no longer support stock images.
2017-12-01 10:30:20 -05:00
Matthias Clasen
2218020db9 Fix the doc tools build 2017-12-01 10:30:11 -05:00
Matthias Clasen
b9035fc3a6 widget-factory: Fix up icon size handling
Make the icon grid on page 2 work with our new
approach to icon sizes.
2017-12-01 10:29:53 -05:00
Alexander Larsson
478b1d56f8 Revert "gtksnapshot: Merge trivial clip duplicates"
This reverts commit d95cbb2757.

This is better solved by commit 94184eda42
2017-12-01 09:08:57 +01:00
Timm Bäder
c42e026058 snapashot: Optimize rounded clip nodes
If the rounded clip node is rectilinear, we can simplify it to a normal
clip node. If not, we really need to use a rounded clip node. In both
cases, we can do the same check we do when collecting normal clips and
avoid the clip node altogether if the child node does not get clipped
anyway.

This saves between 3 and 10 nodes in the widget factory, depending on
what page gets rendered.
2017-12-01 08:14:01 +01:00
Timm Bäder
94184eda42 snapshot: Only create clip nodes if we need to
Clip nodes have a clip rect and we only need to actually create a clip
node if any child node gets clipped at all. If the clip rect conains the
child node bounds entirely, we don't need a clip node.
2017-12-01 07:38:43 +01:00
Timm Bäder
7b60ee9316 widgetbowl: Only use one widget type
Every added widget having a separate random widget type makes it useless
to use the widgetbowl demo for any sort of performance comparison.
Instead. use only one widget type for all the moving children but make
that changable.
2017-12-01 07:33:52 +01:00
Timm Bäder
dfc7a531db wayland: Never send NULL app id
The old gdk_get_program_class was never returning NULL, but
g_get_prgname might. So use the same fallback app id name we were using
before.
2017-12-01 07:30:25 +01:00
Timm Bäder
34e233e1c3 GskVulkanGlyphCache: Remove unused struct member 2017-12-01 07:30:25 +01:00
Timm Bäder
ff35fbf120 window: Plug a memory leak 2017-12-01 07:30:25 +01:00
Matthias Clasen
d005109133 Drop unused gtkcssstylefuncs.c
Clean up all the places where the header was still
included needlessly.
2017-11-30 18:46:54 -05:00
Matthias Clasen
eb32a2c228 css style funcs: Avoid pixbufs
We can get what we need with GdkTexture.
2017-11-30 17:40:41 -05:00
Matthias Clasen
dc15978ac8 Avoid GdkPixbuf in docs
GdkTexture is preferred now.
2017-11-30 17:32:05 -05:00
Matthias Clasen
a1c0b81bae icon helper: Avoid gratitious pixbuf use
We can just get the texture directly from the icontheme.
2017-11-30 17:31:17 -05:00
Matthias Clasen
029165638b mountoperation: Store icons as textures
This reduces the amount of pixbufs in this code.
2017-11-30 16:48:25 -05:00
Alexander Larsson
61ea8e8676 broadway: Add some (disabled) debugging tools 2017-11-30 21:57:42 +01:00
Alexander Larsson
af890e6677 broadway: Don't send node updates to browser if nothing changed 2017-11-30 21:57:42 +01:00
Alexander Larsson
d43008b2a5 broadway: Fix texture hash function 2017-11-30 21:57:42 +01:00
Alexander Larsson
d95cbb2757 gtksnapshot: Merge trivial clip duplicates
I got a lot of "clip in clip" cases, for example a CellClip with a
CellTextClip inside. It is really trivial to merge these when we
pop and makes it easier for all backends, so lets do that.
2017-11-30 21:57:42 +01:00
Alexander Larsson
f5e0986230 vulkan: Don't crash if vkEnumeratePhysicalDevices fails 2017-11-30 21:57:42 +01:00
Alexander Larsson
c30073793e broadway: Improve logging
We now log backwards, so that the latest is always visible.
Also, we use <pre> with a smaller size.
2017-11-30 21:57:42 +01:00
Alexander Larsson
521b09cc96 broadway: Send diffs of node trees
Reusing pre-created nodes is a lot faster both in terms of
dom modifications and of transfer sizes.
2017-11-30 21:57:42 +01:00
Alexander Larsson
3d4a9324e6 broadway: Add broadway_node_equal 2017-11-30 21:57:42 +01:00
Alexander Larsson
46c4869945 broadway: Prepare for implementing diff 2017-11-30 21:57:42 +01:00
Alexander Larsson
e43f031769 broadway: Add div for container nodes
We need this so that all nodes have divs, otherwise diffing is going
to be very hard.
2017-11-30 21:57:42 +01:00
Alexander Larsson
1820362b2b broadway: Deserialize node tree in server
This doesn't really change anything, but it is in preparation for diffing
the trees.
2017-11-30 21:57:42 +01:00
Alexander Larsson
907e071c90 broadway: Add a texture cache
This ensures we never upload a texture we already have locally available.
2017-11-30 21:57:42 +01:00
Alexander Larsson
d284c3fa85 broadway: Re-add seat and core device creation 2017-11-30 21:57:42 +01:00
Piotr Drąg
8cf2f3c3f1 Update POTFILES.in 2017-11-30 16:10:50 +01:00
Matthias Clasen
2edd3741f6 Use the new texture utils here
One less place where we juggle pixbufs.
2017-11-30 07:54:52 -05:00
Matthias Clasen
b8b33d1f36 Make texture variants of some pixbuf utils
This will let us avoid direct pixbuf use in some places.
2017-11-30 07:54:27 -05:00
Matthias Clasen
bd1a9c1afe recent manager: Drop an unused field 2017-11-30 07:03:20 -05:00
Matthias Clasen
a9f12892ea Fix up a doc comment 2017-11-29 23:39:06 -05:00
Matthias Clasen
f57aa47a40 Remove some unused includes
These show up in a grep for "pixbuf".
2017-11-29 23:39:06 -05:00
Matthias Clasen
b65f871929 Use a texture instead of a pixbuf in gtk_render_icon
This gets rid of more GdkPixbuf in the API.

Update all callers.
2017-11-29 23:30:47 -05:00
Matthias Clasen
0b39631464 textview: Replace pixbufs by textures
This affects a few apis, such as gtk_text_iter_get_pixbuf,
gtk_text_buffer_insert_pixbuf and GtkTextBuffer::insert-pixbuf,
which have all been replaced by texture equivalents.

Update all callers.
2017-11-29 23:22:13 -05:00
Benjamin Otte
3d4743ee62 textview: Remove serialization API
It's unused. Plain text is not using that framework, neither is
in-process same-display transmission.

So it was only useful for sharing text with custom tags across
applications, and nobody is doing that.
2017-11-29 23:03:33 -05:00
Benjamin Otte
138abdbc47 a11y: Remove AtkStreamableContent implementation
That is some old code that still uses IOChannels, and the only
pseudouser is at-spi-atk's commented out code that is still using
CORBA types.

So get rid of it now before I need to start adapting it to the new
clipboard.
2017-11-29 23:03:33 -05:00
Matthias Clasen
c088d69f93 icon theme: Remove unused code
The deprecated api to add builtin icons was removed
a year ago, so we don't need the code anymore that deals
with looking up builtin icons.
2017-11-29 22:25:57 -05:00
Matthias Clasen
0063145ed8 tooltip: Set icon from texture instead of pixbuf
Another part of removing GdkPixbuf from APIs.
2017-11-29 22:17:59 -05:00
Matthias Clasen
dfd194a5fa Drop gtk_cell_view_new_with_pixbuf
We have a texture-based alternative for this now.
2017-11-29 20:26:28 -05:00
Matthias Clasen
c750c0e571 Drop gdk_cursor_new_from_pixbuf
Part of the push to remove GdkPixbuf from the API.
2017-11-29 20:16:43 -05:00
Matthias Clasen
7217689e02 docs: Remove mentions of gdk_cursor_new_from_pixbuf
This function is going away.
2017-11-29 20:14:53 -05:00
Matthias Clasen
1fcfff6861 dnd: Stop using gdk_cursor_new_from_pixbuf
We can just use gdk_cursor_new_from_texture here.
2017-11-29 20:13:26 -05:00
Matthias Clasen
a8a156e63c Fix the build 2017-11-29 20:12:43 -05:00
Matthias Clasen
c2a38612a9 Drop gtk_drag_source_set_icon_pixbuf
Part of removing GdkPixbuf from the API.
2017-11-29 20:02:47 -05:00
Matthias Clasen
c51703be60 testdnd: Stop using gtk_drag_source_set_icon_pixbuf
We can avoid it here as well.
2017-11-29 20:02:01 -05:00
Matthias Clasen
c0d6fd4f86 icon-browser: Stop using gtk_drag_source_set_icon_pixbuf
We can just use gtk_drag_source_set_icon_name.
2017-11-29 20:01:32 -05:00
Matthias Clasen
2ac0df0b75 Drop gtk_css_image_surface_new_for_pixbuf
It is unused private api.
2017-11-29 19:47:57 -05:00
Matthias Clasen
8cdaaffd42 Avoid pixbufs when loading themed icons
We can directly get a texture from GtkIconTheme now.
2017-11-29 19:44:30 -05:00
Matthias Clasen
507ef68faa Add gtk_cell_view_new_with_texture
Just more api to replace pixbufs with textures.
2017-11-29 19:28:53 -05:00
Matthias Clasen
7b032a9862 Drop gtk_snapshot_render_icon
Its not used, and we are working towards removing
GdkPixbuf in the API.
2017-11-29 18:34:45 -05:00
Matthias Clasen
4db2426336 window: Stop using GdkPixbuf
We can get by with just using GdkTexture.
2017-11-29 17:28:15 -05:00
Matthias Clasen
83ab83043e Cosmetic formatting fixes 2017-11-29 17:28:15 -05:00
Christophe Fergeau
9259ca98f3 wayland: Fix indentation of previous commit 2017-11-29 12:21:19 +01:00
Christophe Fergeau
ff3da0818c wayland: emit GDK_SELECTION_CLEAR on owner changes
The wayland backend currently never emits GDK_SELECTION_CLEAR events.
GtkClipboard uses this signal in order to clear the clipboard owner when
the selection is set to something outside the application.
This commit ensures the wayland backend emits GDK_SELECTION_CLEAR before
setting the clipboard owner to NULL, as this means we lost the
selection.

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=790031
2017-11-29 11:29:30 +01:00
Christophe Fergeau
93f6f253ea wayland: Remove unused data structure
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=790031
2017-11-29 11:29:29 +01:00
Matthias Clasen
65808418e1 Drop gtk_application_is_inhibited
This function returns global session state that may
not be available to applications (e.g. in sandboxed
environments), and is not needed by applications,
so just drop it, instead of keeping a function around
that can't be guaranteed to work.
2017-11-28 23:02:58 -05:00
Matthias Clasen
4371f370bc Improve the docs
Document that gtk_application_is_inhibited can't
be guaranteed to work.
2017-11-28 22:52:44 -05:00
Benjamin Otte
4ebbb19e25 inspector: Reorganize stack
There are too many stack elements in the main stack. So add a substack
for the pages that display common global state. The appropriate name I
found for it was "Global".

It's used to house the General, Visual, Resources and Statistics pages
for now.
2017-11-29 04:22:53 +01:00
Benjamin Otte
c60df96deb inspector: remove visible=TRUE properties
This is the defualt these days.
2017-11-29 04:22:53 +01:00
Matthias Clasen
0dfe12fab0 gdk: Add some missing autocleanups
GdkMonitor and GdkSeat were missing here.
2017-11-28 15:03:48 -05:00
Rico Tzschichholz
2d797dd816 Fix some parameter name mismatches to make g-ir-scanner happier 2017-11-28 15:24:49 +01:00
Carlos Garnacho
cabfdd5c48 gdkseatdefault: Use TABLET_STYLUS capability for styli/erasers/cursors
Those are devices created for drawing tablets, so using the "pointer"
capability is far too generic.
2017-11-27 21:41:25 +01:00
Carlos Garnacho
7decad177c gdk/wayland: Emit GdkSeat::device-added/removed
Those were never sent in this backend...
2017-11-27 19:51:38 +01:00
Matthias Clasen
43e59258e4 Fix up _gtk_widget_list_devices
When I rewrote that function to not use GdkDeviceManager,
I overlooked that the window filtering needs to apply
to the master pointer as well, as other code assumes
that _gtk_widget_get_device_window will return non-NULL
on the devices in the list. Fix this.
2017-11-27 12:35:10 -05:00
Matthias Clasen
8747c7a42a Fix a typo
The signal is called ::unpaired-release.
2017-11-27 10:56:09 -05:00
Милош Поповић
2b14a82b72 Update Serbian translation 2017-11-27 10:38:07 +00:00
Matthias Clasen
268ebb3a46 listbox: Handle unpaired releases as well
Same as for flowbox in the previous commit.
2017-11-26 19:52:01 -05:00
Carlos Garnacho
0567b41f24 gtkflowbox: Activate items on ::unpaired-release
If the flowbox is single-click.

https://bugzilla.gnome.org/show_bug.cgi?id=789163
2017-11-26 19:42:03 -05:00
Carlos Garnacho
bce91555f5 gtkgesturemultipress: Add ::unpaired-release signal
This signal will be emitted whenever the gesture received a
button release or touch end event without a pairing button
press or touch begin. This usually happens when grabs transfer
input from one widget to another mid-press.

https://bugzilla.gnome.org/show_bug.cgi?id=789163
2017-11-26 19:42:03 -05:00
Matthias Clasen
b8c58f41b6 wayland: Don't provide gsetting if dconf is not available
This makes gtk+ fall back to reading ~/.config/gtk-3.0/settings.ini
on systems with Wayland, but without dconf (do those exist?).

https://bugzilla.gnome.org/show_bug.cgi?id=790201
2017-11-26 19:40:28 -05:00
Kjell Ahlstedt
7ef5858f8d GtkWindow: Fix the down-scaling in icon_from_list()
Must use floating-point division to get the correct scale factors.
cairo_set_source_surface() must be called after cairo_scale().

https://bugzilla.gnome.org/show_bug.cgi?id=790287
2017-11-26 18:54:59 -05:00
Piotr Drąg
70ff1ef216 Update POTFILES.in 2017-11-25 17:32:53 +01:00
Matthias Clasen
1884558470 wayland: Drop GdkWaylandDeviceManager
This object had no functionality left.
2017-11-25 11:04:15 -05:00
Matthias Clasen
05149a391f Drop GdkDeviceManager entirely
Nothing uses it anymore.
2017-11-25 11:04:15 -05:00
Matthias Clasen
7e40fcc344 Drop the ::device-manager property
Not used for anything anymore.
2017-11-25 11:04:15 -05:00
Matthias Clasen
bad53bc201 x11: Stop deriving from GdkDeviceManager
We can just derive from GObject.
2017-11-25 11:04:15 -05:00
Matthias Clasen
da8bcc7ed9 wayland: Stop deriving from GdkDeviceManager
We can just derive from GObject.
2017-11-25 11:04:15 -05:00
Matthias Clasen
01278e591c win32: Stop deriving from GdkDeviceManager
We can just derive from GObject.
2017-11-25 11:04:15 -05:00
Matthias Clasen
1471c64fb2 quartz: Stop deriving from GdkDeviceManager
We can just derive from GObject.
2017-11-25 11:04:15 -05:00
Matthias Clasen
fd958939be Drop the GdkDeviceManager::display property
Move this to the backends, and stop deriving
from GdkDeviceManager.
2017-11-25 11:04:15 -05:00
Matthias Clasen
7c33baabd2 Remove the get_client_pointer vfunc 2017-11-25 11:04:15 -05:00
Matthias Clasen
0ec491ea9d Drop the get_client_pointer vfunc
There is no api using this anymore.
2017-11-25 11:04:15 -05:00
Matthias Clasen
b6a634fe38 Drop the list_devices vfunc
We no longer have api that uses this.
2017-11-25 11:04:15 -05:00
Matthias Clasen
ecb96257b9 Drop gdk_device_manager_list_devices
It is not used and GdkDeviceManager is going away.
2017-11-25 11:04:15 -05:00
Matthias Clasen
30a037c4fe gdk: Drop devicemanager signals
Nobody is emitting them anymore.
2017-11-25 11:04:15 -05:00
Matthias Clasen
efbcb38fdf wayland: Stop emitting devicemanager signals
Nobody is listening to these signals anymore.
2017-11-25 11:04:15 -05:00
Matthias Clasen
c9261f50aa x11: Stop emitting devicemanager signals
Nobody is listening to these anymore, so there
is no point in emitting them.
2017-11-25 11:04:14 -05:00
Matthias Clasen
cd3d2badf0 display: Drop the device_manager for good
This is now entirely the backends responsibility.
2017-11-25 11:04:14 -05:00
Matthias Clasen
639d93687f wayland: Stop using display->device_manager
We can keep the device manager in the backend.
2017-11-25 11:04:14 -05:00
Matthias Clasen
95ae688072 quartz: Stop using display->device_manager
We can keep the device manager in the backend.
2017-11-25 11:04:14 -05:00
Matthias Clasen
ab0aea900c win32: Stop using gdk_display_get_device_manager
We can keep the devicemanager in the backend.
2017-11-25 11:04:14 -05:00
Matthias Clasen
aae4fafad2 x11: Stop using gdk_display_get_device_manager
We can keep the displaymanager in the backend.
2017-11-25 11:04:14 -05:00
Matthias Clasen
6489bc1929 broadway: Remove devicemanager implementation
It is not used and not needed anymore.
2017-11-25 11:04:14 -05:00
Matthias Clasen
1023249e31 broadway: Stop using GdkDeviceManager
We can use the GdkSeat apis for this.
2017-11-25 11:04:14 -05:00
Matthias Clasen
903959301b display: Stop using devicemanager internally
We can just use the seats to find out about device removals.
2017-11-25 11:04:14 -05:00
Matthias Clasen
1f6fb4e716 Drop GdkDeviceManager APIs
No longer used outside of the backends.
2017-11-25 11:04:14 -05:00
Matthias Clasen
a4cd4535dc Don't mention GdkDeviceManager in docs
It is going away.
2017-11-25 11:04:14 -05:00
Matthias Clasen
480ea400f3 Drop support for setting event masks for floating devices
These are very rarely needed, and are X11-specific.
If it turns out that somebody needs this, it can come
back as X11-specific functionality.
2017-11-25 11:04:14 -05:00
Matthias Clasen
4c40accbb9 gdk: Move gdk_disable_multidevice tot he X11 backend
This api only ever did something for X11, so move
it there. Update the docs and adapt the only caller.
2017-11-25 11:04:14 -05:00
Matthias Clasen
0cfc812a5d Drop gdk_display_get_device_manager API
GdkDeviceManager is being replaced by GdkSeat.
2017-11-25 11:04:14 -05:00
Matthias Clasen
835805ad61 treeview: Don't use GdkDeviceManager
We can just as well use GdkSeat to enumerate (attached)
devices. Note that this change excludes floating devices
from consideration.

This keeps the copy-pasted code in sync with gtkwindow.c
2017-11-25 11:04:14 -05:00
Matthias Clasen
7c0a1ddb05 window: Don't use GdkDeviceManager
We can just as well use GdkSeat to enumerate (attached)
devices. Note that this change excludes floating devices
from consideration.
2017-11-25 11:04:14 -05:00
Matthias Clasen
2250daeb53 widget: Don't use GdkDeviceManager
We can just as well use GdkSeat to enumerate the devices.
2017-11-25 11:04:13 -05:00
Matthias Clasen
c0d3ed0739 Fix the build
A stray GdkScreen leftover.
2017-11-25 11:02:29 -05:00
Matthias Clasen
371ea7cbe9 gdk: Remove a leftover GdkScreen 2017-11-25 10:17:19 -05:00
Matthias Clasen
9b582db492 gsk: Quiet a compiler warning
We insist on handling all cases in a switch, nowadays.
2017-11-24 08:51:22 -05:00
Daniel Boles
630f83957a Entry:show-emoji-icon is in GTK+ 3 too
Document the earliest version reached.
2017-11-23 17:21:36 +00:00
Daniel Boles
89c51f51e2 Be more specific in ::insert-emoji Since tag
I had been unsure whether to include the minor version, but
:show-emoji-icon already did, so do the same here to match.
2017-11-23 17:18:36 +00:00
Alexander Larsson
820f999f14 broadway: Disable fallback spew by default 2017-11-23 10:48:29 +01:00
Alexander Larsson
cfb76fedb6 broadway: Roundtrip each update to rate limit redraw 2017-11-23 10:48:29 +01:00
Alexander Larsson
12d3cd8f29 broadway: Handle cairo nodes
This means we can directly upload these as textures, rather than
create a new surface and draw it into that. We still have to upload,
but there isn't a lot we can do about this as for these nodes
we generally redraw everything each time.
2017-11-23 10:48:29 +01:00
Alexander Larsson
4d1eca0d57 broadway: Handle texture gsd nodes 2017-11-23 10:48:29 +01:00
Alexander Larsson
b74959a605 broadway: Add clip node 2017-11-23 10:48:29 +01:00
Alexander Larsson
7a180f554d broadway: Don't log cache hits 2017-11-23 10:48:29 +01:00
Alexander Larsson
0d4a26f148 broadway: Cache color translated textures
These happen a lot due to the recolored symbolics
2017-11-23 10:48:29 +01:00
Alexander Larsson
9e5a22bbe5 broadway: Add opacity node 2017-11-23 10:48:29 +01:00
Alexander Larsson
9b1f6acc2b broadway: Add shadow node 2017-11-23 10:48:29 +01:00
Alexander Larsson
cbbbf49043 broadway: Add node cache for text 2017-11-23 10:48:29 +01:00
Alexander Larsson
6cc96318c8 broadway: Remove inflate code
This is not used anymore
2017-11-23 10:48:29 +01:00
Alexander Larsson
278370c8e5 broadway: Add linear gradient node 2017-11-23 10:48:29 +01:00
Alexander Larsson
f7ff6dbb66 broadway: Add RoundedClip node 2017-11-23 10:48:29 +01:00
Alexander Larsson
0083c084e4 broadway: Add inset shadow 2017-11-23 10:48:29 +01:00
Alexander Larsson
35ceb8e626 broadway: Add outset shadow node 2017-11-23 10:48:29 +01:00
Alexander Larsson
0ad523038c broadway: Fix border node positioning 2017-11-23 10:48:29 +01:00
Alexander Larsson
cf03229a99 broadway: Add border node 2017-11-23 10:48:29 +01:00
Alexander Larsson
5a8d204c83 broadway: Clean up node parser 2017-11-23 10:48:29 +01:00
Alexander Larsson
0b38ab339e broadway: Add color nodes 2017-11-23 10:48:29 +01:00
Alexander Larsson
cfdb3952c6 broadway: Fix input events 2017-11-23 10:48:29 +01:00
Alexander Larsson
97c0d112af broadway: Don't swap node trees until all images are loaded 2017-11-23 10:48:29 +01:00
Alexander Larsson
fd0285de09 broadway: Rewrite textures in nodes to global 2017-11-23 10:48:29 +01:00
Alexander Larsson
54e7a8f0c0 broadway: Remove remaining unused window_update code 2017-11-23 10:48:29 +01:00
Alexander Larsson
f7d8ee041b broadway: Initial version of using actual render nodes 2017-11-23 10:48:29 +01:00
Alexander Larsson
cc7423855b broadway: Use textures to configure window contents
Instead of using the old buffer code, just use textures to define the
window contents.
2017-11-23 10:46:47 +01:00
Alexander Larsson
a4636a06a7 broadway: Actually upload textures to client 2017-11-23 10:46:47 +01:00
Alexander Larsson
ef79621c44 broadway: Introduce global ids for the textures 2017-11-23 10:46:47 +01:00
Alexander Larsson
48d587d255 broadway: Add support for uploading textures to daemon 2017-11-23 10:46:47 +01:00
Alexander Larsson
f31d7e1f91 broadway: Support fd passing in protocol
This will be used to pass buffers
2017-11-23 10:46:47 +01:00
Alexander Larsson
43a02da07b broadwayd: Read using socket API
This changes nothing, but it allows us to later recieve
unix messages and thus fd passing
2017-11-23 10:46:47 +01:00
Alexander Larsson
620d3cf402 broadway: Only support (non-abstract) sockets
We want to use fd passing, so drop tcp
2017-11-23 10:46:47 +01:00
Alexander Larsson
23845a57a9 broadway: Add GskBroadwayRenderer
This is a custom renderer for broadway windows, although at the
moment it doesn't really do anything other than the old cairo
fallbacks.
2017-11-23 10:46:47 +01:00
Daniel Boles
9fef90b0f7 Add Since to ::insert-emoji, and some trivialities
Document when these keybinding signals were added.
2017-11-22 22:36:31 +00:00
Matthias Clasen
567447456e text view: Support the Emoji chooser
Similar to GtkEntry, add an "Insert Emoji" context
menu item, and add the same keybindings. We don't
add the icon here, since it is not clear where it
would go.

https://bugzilla.gnome.org/show_bug.cgi?id=790029
2017-11-22 16:50:10 -05:00
Matthias Clasen
462a77ffb5 Fix indentation mishap 2017-11-22 16:50:10 -05:00
Daniel Boles
fecce75c73 SpinButton: Explain meaning of nullable Adjustment
configure() marked the @adj argument as (allow-none) but did not explain
what passing NULL would do. Fix that, and move it to (nullable) as well.
2017-11-22 20:58:28 +00:00
Daniel Boles
98c1f16002 doc: Replace uses of #NULL with %NULL 2017-11-22 20:58:28 +00:00
Daniel Boles
23f7208235 CellRendererPixbuf: Link stock-size doc → IconSize
Add a doc comment for :stock-size in order to link to GtkIconSize.
2017-11-22 20:48:11 +00:00
Daniel Boles
7c2e28c8c5 doc: TextLayout: Add missing (out) annotations
and move from (allow-none) to (optional)
2017-11-22 20:48:11 +00:00
Bastien Nocera
ef031d87be frame-clock: Fix typo in API documentation 2017-11-22 15:24:19 +01:00
Chun-wei Fan
e076cc7b1f GDK/Win32: Fix build after GDK Root Window and DND changes
Ensure that things build again, and instead use the Windows API to
acquire the screen dimensions (note: this may need to be scaled for
HiDPI, but since I do not own a WinTab-based device, I will need to
keep the dimensions as-is for now).

Also update the gdkdnd-win32.c code to use formats rather than targets.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-11-22 22:18:28 +08:00
Chun-wei Fan
a687fd9aeb gtk/gskpango.c: Use g_snprintf()
This fixes the build of GTK+ master on Visual Studio 2013 (and possibly
others) as snprintf() may not be supported even if the required C99
features are supported by the compiler.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-11-21 14:22:23 +08:00
Chun-wei Fan
8059975f74 gtk/gtkseclection.c: Don't build X11 items unconditionally
Limit building the X11 items only when GDK_WINDOWING_X11 is defined.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-11-21 14:16:19 +08:00
Chun-wei Fan
824837486b gtkimcontextime.c: Fix call to gtk_style_context_get()
The state argument was removed in commit 1518fe0 (API: stylecontext:
Remove state argument from getters), but we missed updating this file
until commit 5b94fe6 (stylecontext: Make first property name explicit),
as the compiler did not issue any warnings on the (now-defunct) usage.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-11-21 14:16:06 +08:00
Benjamin Otte
c82378ea57 gdk: Add GType support to GdkContentFormats
This is not used by anything yet, but add it now, so people looking at
this new code can make sense of it.
Plus, the documentation mentions it, so better have the docs make sense.

It will be used once we add support for conversions to GDK and allow
doing cipboard/dnd by GValue.
2017-11-20 23:22:28 +01:00
Benjamin Otte
1a70ca75e8 gdk: Sanitize GdkContentFormats API
Make sure the API reflects the idea that GdkContentFormats is a set
containing mime types. In particular, treat the object itself as a
plural - it's named content format`S' after all - and therefor use
the correct verb form.

Also make GdkContentFormats keep an array instead of a list, now that
it's immutable.
2017-11-20 23:15:11 +01:00
Benjamin Otte
fc2ce5a925 gdk: Make GdkContentFormats immutable 2017-11-20 23:13:10 +01:00
Benjamin Otte
1a482ad276 gdk: Add GdkContentFormatsBuilder
Yes, the name is too long.
No, I couldn't think of a shorter one.
2017-11-20 23:12:48 +01:00
Benjamin Otte
d6a209816b gdkdnd: Make GdkDragContext->formats a GdkContentFormats
Instead of it being a GList of GdkAtoms.
2017-11-20 23:12:33 +01:00
Benjamin Otte
9a6ec4e959 contentformats: Rename GtkTargetList
It's now called GdkContentsFormat
2017-11-20 23:12:33 +01:00
Benjamin Otte
0638bbb5d5 gdk: Move GtkTargetList to GDK
It's gonna be renamed next, so put it in the right source file already.

For now retain the old name to keep the diff small.
2017-11-20 23:12:33 +01:00
Benjamin Otte
0b40ad32f3 selection: Make GtkTargetList members private
Outside of the target list, don't access it directly, instead use public
APIs like the newly introduced gtk_target_list_intersects().
2017-11-20 23:12:33 +01:00
Benjamin Otte
c863ac0f90 dnd: Remove GtkTargetEntry and GtkTargetFlags
warning: We don't do any same-app checks anymore so you currently can
copy local data into external apps.

This will be fixed later.
2017-11-20 23:12:33 +01:00
Matthias Clasen
49d02eff93 emoji chooser: break out a helper function
This is just a small cleanup.
2017-11-19 22:43:36 -05:00
Matthias Clasen
5a6c6070d6 remove debug spew 2017-11-19 22:43:36 -05:00
Piotr Drąg
24ed997cfb Update POTFILES.in 2017-11-20 00:14:14 +01:00
Matthias Clasen
4d9b7b2359 entry: Add a key binding for the emoji chooser
Make Ctrl-. and Ctrl-; bring up the emoji chooser.

https://bugzilla.gnome.org/show_bug.cgi?id=789160
2017-11-19 18:06:19 -05:00
Matthias Clasen
1cd5df9404 emoji chooser: Make menu key work as expected
Whenever we have a right-click action, we should make
the menu key work as a keyboard-accessible alternative.
2017-11-19 18:04:38 -05:00
Matthias Clasen
d3a358b9bd Adwaita: Bring fix focus in flowbox
Bring back the focus rectangle for flowbox children.
Its absence makes keynav in flowboxes really difficult.
2017-11-19 18:04:31 -05:00
Matthias Clasen
5e748ce940 emoji chooser: handle right-click
Whereever we handle long-press for touch, it makes sense to handle
right-click as a faster alternative for mouse-based interaction.

This commit makes right-click work to bring up the variation
selector for Emojis.
2017-11-19 18:04:26 -05:00
Matthias Clasen
4d0a57fe0b listbox: Listen to ::stopped on the press gesture
Otherwise, we end up interpreting grab notify's as
button releases, which is not right. This matches
what GtkFlowBox does.
2017-11-19 14:49:58 -05:00
Matthias Clasen
2f9d980c93 Trivial cleanup
Better to use G_SOURCE_REMOVE than FALSE, for clarity.
2017-11-19 09:28:00 -05:00
Matthias Clasen
1f8debbac9 emoji chooser: Don't leak gestures
We were not freeing these gestures as we should.
2017-11-19 09:27:53 -05:00
Matthias Clasen
a8531605db Some more interning
This avoids more strdups at startup.
2017-11-18 08:18:11 -05:00
Matthias Clasen
997f0de4d5 a11y: Intern a string 2017-11-17 23:25:45 -05:00
Matthias Clasen
7dded559c0 cell area: Use GTK_PARAM_READWRITE consistently 2017-11-17 23:25:07 -05:00
Matthias Clasen
315db6d505 wayland: Intern signal names 2017-11-17 23:22:02 -05:00
Matthias Clasen
7c4a1a596f icon helper: Avoid a few string copies 2017-11-17 23:21:24 -05:00
Matthias Clasen
8c06cd5f98 styleproperty: Use G_PARAM_STATIC_STRINGS 2017-11-17 22:56:25 -05:00
Matthias Clasen
ffd6baec42 gtk: Intern css names
This avoids a bunch of strdups at startup.
2017-11-17 22:49:57 -05:00
Matthias Clasen
4dc4db56dc wayland: Intern settings keys 2017-11-17 22:47:49 -05:00
Matthias Clasen
3b06ae5072 gdk: Intern signal names
We were forgetting this in a few places.
2017-11-17 22:47:26 -05:00
Matthias Clasen
a129053ed9 gdk: Use G_PARAM_SPEC_STATIC_STRINGS throughout
This avoids some string copies at startup.
2017-11-17 21:38:08 -05:00
Matthias Clasen
dd7163a699 settings: Use gdk_display_set_cursor_theme
This allows us to reduce the amount of ifdef ugliness.
2017-11-17 17:56:03 -05:00
Matthias Clasen
c2f6208ce5 Add private api for setting cursor theme
This is implemented in multiple gdk backends,
and we can avoid and ugly ifdef cascade in gtk
by adding a vfunc for this.
2017-11-17 17:42:12 -05:00
Matthias Clasen
2d591cde78 Include gdk-private.h
This gives us access to private gdk api.
2017-11-17 16:34:04 -05:00
Matthias Clasen
1ec93bdda6 gdk: Move code around
Move the gdk_display functions to gdkdisplay.c.
They are misplaced in gdkevents.c.
2017-11-17 16:22:21 -05:00
Matthias Clasen
4865c3273a clipboard: Use gdk_display_get_last_seen_time
This removes the backend dependent code from gtkclipboard.c.
A good thing!
2017-11-17 15:40:49 -05:00
Matthias Clasen
dbb18ad5d8 gdk: Add a private method to get a server timestamp
This is needed in the clipboard code. We don't make
it public, since that code is destined to eventually
live in gdk anyway.
2017-11-17 15:39:08 -05:00
Piotr Drąg
fc579b121a Update POTFILES.in 2017-11-17 20:02:41 +01:00
Matthias Clasen
6263286c4a Drop gdkscreen.h
Nothing uses GdkScreen anymore, so we can get rid of it.
2017-11-17 13:54:04 -05:00
Matthias Clasen
0b8c88f7d6 quartz: Remove remaining uses of GdkScreen 2017-11-17 13:47:15 -05:00
Matthias Clasen
a62e75964c quartz: Make GdkQuartzScreen a plain object
No need to derive this from GdkScreen anymore.
2017-11-17 13:47:15 -05:00
Matthias Clasen
77f921f5de quartz: Drop an unused include
No GdkScreen apis are used in here.
2017-11-17 13:47:15 -05:00
Matthias Clasen
c7b5cb8e8e quartz: Avoid a screen argument
The screen is never used in _gdk_quartz_screen_get_setting,
so drop it.
2017-11-17 13:47:15 -05:00
Matthias Clasen
0f2d7d41f1 win32: Remove remaining uses of GdkScreen 2017-11-17 13:47:15 -05:00
Matthias Clasen
d24ae9c032 win32: Make GdkWin32Screen a plain object
No need to derive this from GdkScreen anymore.
2017-11-17 13:47:14 -05:00
Matthias Clasen
211d72e545 win32: Avoid a screen argument
The screen is never used in _gdk_win32_screen_get_setting,
so drop it.
2017-11-17 13:21:24 -05:00
Matthias Clasen
e8353eab26 win32: Remove an unused include
No GdkScreen apis are used in here.
2017-11-17 13:20:53 -05:00
Matthias Clasen
34fa61e13c Fix the build 2017-11-17 13:12:51 -05:00
Matthias Clasen
71c463ae85 x11: Drop GdkX11Visual as public api
There was no useful functionality left here,
so just remove this from the api altogether.
2017-11-17 13:03:11 -05:00
Matthias Clasen
8ced2c6478 x11: Stop using GdkScreen altogether
Derive GdkX11Screen directly from GObject, and
remove the last remaining uses of GdkScreen.
2017-11-17 10:51:55 -05:00
Matthias Clasen
2daa7d1a53 x11: Stop using GdkScreen in api
This type is going away, so switch to using GdkX11Screen
everywhere.
2017-11-17 10:51:55 -05:00
Matthias Clasen
abb1d59d4e Stop calling _gdk_screen_close
It does nothing useful, and is going away.
2017-11-17 10:51:55 -05:00
Matthias Clasen
a5e1276924 Stop including gdkscreen.h
It is not used anymore.
2017-11-17 10:51:55 -05:00
Philip Withnall
bd89ff4c9e broadway: Add missing dependency to build
The generated file clienthtml.h is #included by broadway-server.c, which
is one of the sources of the broadway library — so clienthtml.h needs to
be one of the sources of that library too.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://bugzilla.gnome.org/show_bug.cgi?id=790489
2017-11-17 10:14:42 +00:00
Alexander Larsson
810ba4edcf broadway: Fix toplevel handling
The toplevels list contains GdkWindowImplBroadways, and we shouldn't
free it.
2017-11-17 10:37:01 +01:00
Benjamin Otte
f4ec6290f8 gdk: Remove gdk_flush()
If you need to flush a display, use gdk_display_flush().

There is never a need to flush displays you don't know about.
2017-11-17 08:36:35 +01:00
Benjamin Otte
8d7d5343d8 gtk-demo: No need to gdk_flush() here
And if there was a need, GDK should have done it.
2017-11-17 08:36:35 +01:00
Benjamin Otte
594aae71e5 toolbar: Remove gdk_flush() calls
It's not 2003 anymore.
2017-11-17 08:07:27 +01:00
Benjamin Otte
0019178014 main: Don't gdk_flush() after every main loop wait
For a start, this makes gtk_main() work different from g_main_loop_run()
calls.

But most importantly, modern GDK does proper syncing itself and doesn't
need to rely on a catch-all to get it right.
2017-11-17 08:07:10 +01:00
Matthias Clasen
9629f9acc9 Add a comment
Document that gdk-private.h is meant for private gdk<>gtk apis.
2017-11-17 00:37:10 -05:00
Matthias Clasen
fc0f7dc217 Remove gdkprivate.h
This is one-too-many private headers. Move the few
declarations here to gdkinternals.h.
2017-11-17 00:34:04 -05:00
Matthias Clasen
cc97c71883 Drop generic error trap api from the docs 2017-11-17 00:17:29 -05:00
Matthias Clasen
38c8310969 Drop gdkmain.h 2017-11-17 00:16:09 -05:00
Matthias Clasen
3f0d42f74b Stop including gdkmain.h
It is empty now.
2017-11-17 00:16:09 -05:00
Matthias Clasen
26d5b04124 Drop an empty file
Nothing deprecated left!
2017-11-17 00:08:24 -05:00
Matthias Clasen
6e94be3f50 Drop the error trap vfuncs
No longer used.
2017-11-17 00:08:24 -05:00
Matthias Clasen
30e6a4c29d Drop the generic error trap api
This is only implemented on X11, so we don't
need generic api for it.
2017-11-17 00:08:24 -05:00
Matthias Clasen
fe93bc7627 tests: Test the x11-specific error trap api
The other one is gone.
2017-11-17 00:08:24 -05:00
Matthias Clasen
90d502fdbd x11: Fix error traps in the dnd code
The code for grabbing keys was using a generic
error trap call, and more concerning, it was forgetting
to pop the trap.
2017-11-16 23:56:11 -05:00
Matthias Clasen
daacd25344 selection: Use x11-specific traps
The generic trap api is going away.
2017-11-16 23:42:55 -05:00
Matthias Clasen
8b3e9fe35c mountoperation-x11: Use x11-specific traps
The generic trap api is going away.
2017-11-16 23:36:21 -05:00
Matthias Clasen
5517ab0651 Drop an unused variable
These are no longer used.
2017-11-16 23:27:14 -05:00
Matthias Clasen
92f49ed3e3 Drop a duplicate definition
GDK_PRIORITY_EVENTS is already defined in gdkevents.h
2017-11-16 23:23:42 -05:00
Matthias Clasen
6bf215bc15 Drop gdk_set_program_class
Together with the corresponding getter.
This is x11-specific functionality.
2017-11-16 23:22:08 -05:00
Matthias Clasen
d73898437f x11: Add gdk_x11_display_set_program_class
The program class is a very X-specific concept.
There should be x11-backend api to deal with it.
2017-11-16 23:21:06 -05:00
Matthias Clasen
49f3d86c84 wayland: Stop using gdk_get_program_class
This is an abuse, at best. If we need to pass the
app id down here, lets pass the app id.
2017-11-16 23:18:03 -05:00
Matthias Clasen
95876cbc9c Remove gdk/gdkx.h
It was just a kludge.
2017-11-16 23:00:01 -05:00
Matthias Clasen
39386275a4 Move some code around
Move gdk_disable_multidevice to gdkdisplaymanager.[hc].
2017-11-16 22:54:26 -05:00
Matthias Clasen
211f16d68b Drop gdk_notify_startup_complete
This function and its variant are just wrappers
around the display-specific function.
2017-11-16 22:45:52 -05:00
Matthias Clasen
dca8c8e189 gtk: Stop using gdk_notify_startup_complete_with_id
This function is about to go away. Instead, use the
display-specific function that this is a wrapper of.
2017-11-16 22:45:04 -05:00
Matthias Clasen
419a9af28c gdk: Move some headers around
Move gdk_flush and gdk_set_allowed_backends to where they
belong.
2017-11-16 22:18:45 -05:00
Matthias Clasen
baf40d35c5 Drop gdk_beep
This is an unnecessary wrapper around gdk_display_beep.
2017-11-16 22:10:26 -05:00
Matthias Clasen
9d9674a7ca im context thai: Stop using gdk_beep
It is about to go away.
2017-11-16 22:09:44 -05:00
Matthias Clasen
ce13dbba10 Drop gdk_set_double_click_time
This is an unnecessary and not-recommended-to-be-used
wrapper around gdk_display_set_double_click_time.
2017-11-16 22:04:25 -05:00
Benjamin Otte
3f5178dc21 selection: Remove the info uint
Instead of allowing people to pass a uint user-data, insist on them
comparing mime types.

The user data was a uint instead of a pointer anyway, so uniqueness
could not be guaranteed and it caused more issues than it was worth.
And that's ignoring the fact that it basically wasn't used.
2017-11-16 22:59:43 +01:00
Benjamin Otte
5da3059175 selection: Remove gtk_target_table_*() functions 2017-11-16 22:59:42 +01:00
Benjamin Otte
b200d4f099 textview: Stop playing shenanigans with the target list
This breaks GtkSourceView adding custom targets on top of GtkTextView,
but we'll fix that later.
2017-11-16 22:59:42 +01:00
Benjamin Otte
47e75b34a4 selection: Make GtkTargetEntry not allocatable
And remove it being registered as a boxed type (lol).
2017-11-16 22:59:42 +01:00
Matthias Clasen
e62ec97707 HighContrast: misc fixes
The HighContrast theme was not parsing anymore, due to
leftover widget style properties, and some missed cleanups,
like -gtk-icon-effect. Also update for the new focus handling,
and make checks and radios sharp again.
2017-11-15 18:08:46 -05:00
Matthias Clasen
a4c4df3b95 Adwaita: Make checks and radios sharp again
The assets we have are 14x14, set -gtk-icon-size to reflect that.
2017-11-15 18:07:52 -05:00
Matthias Clasen
d9a146f54a Change icon-size properties
We no longer support registering custom icon sizes, so
we can make these properties just enums. This also lets
us specify them by nick in ui files. Nice!
2017-11-15 14:22:17 -05:00
Matthias Clasen
a28cf475af image: Update docs
Mention the new icon-size style classes, update the docs
for removed arguments and return values, and add new
functions to the docs.
2017-11-15 14:22:17 -05:00
Matthias Clasen
f16fb1373e Document -gtk-icon-size
Add this property to the list of CSS properties.
2017-11-15 14:22:17 -05:00
Matthias Clasen
43a9b82797 Support -gtk-icon-size for builtins
This makes css icons more similar to themed icons, which
is the overall goal here.
2017-11-15 14:22:17 -05:00
Matthias Clasen
0d23606653 Drop gtk_icon_size_lookup
Add a new, private gtk_image_get_image_size to replace it, and
update the remaining callers in a suitable way.
2017-11-15 14:22:17 -05:00
Matthias Clasen
866ff2b8f0 recentchooser: Use GIcon instead of GdkPixbuf 2017-11-15 14:22:17 -05:00
Matthias Clasen
c6c3427507 iconhelper: Query size via CSS
Instead of looking at the icon size, look at the CSS value for
-gtk-icon-size. Set style classes depending on icon size instead.

Trivially change Adwaita and HighContrast to report the same values as
before.
2017-11-15 14:22:17 -05:00
Matthias Clasen
2301d8d90b enums: Change GtkIconSize values
The new values are the ones we intend to keep. The old ones had
duplicated meanings and nobody knew which one to take.
2017-11-15 14:22:17 -05:00
Benjamin Otte
e5da85631a image: Don't take icon size in set_from_definition() 2017-11-15 14:22:17 -05:00
Matthias Clasen
67268bcc23 filechooserwidget: icon size is always 16 2017-11-15 14:22:17 -05:00
Matthias Clasen
b598a5ab78 filechooserbutton: icon size is always 16
So define it that way.
2017-11-15 14:22:17 -05:00
Benjamin Otte
e0a5f4e081 cellrendererspinner: Don't track old icon size
It was only used to avoid gtk_icon_size_lookup() calls and those aren't
expensive.
2017-11-15 14:22:17 -05:00
Matthias Clasen
dbfaa99107 image: Remove icon-size argument from icon setters
Instead, add a function gtk_image_set_icon_size() for the cases where
overriding the icon size is necessary.

Treat icon sizes the same way as pixel sizes, too. So gtk_image_clear()
no longer unsets the icon size.
2017-11-15 14:22:17 -05:00
Benjamin Otte
049cc6aa01 image: Change getters
Instead of returning the icon size with them, make
gtk_image_get_icon_name() and gtk_image_get_gicon() only return the icon
itself.

As a benefit, we can turn them into regular getters that return values
instead of requiring out parameters.

Instead, provide gtk_image_get_icon_size() to query the icon size.
2017-11-15 14:22:17 -05:00
Benjamin Otte
f53b72e5ff button: Get rid of icon size
In fact, make gtk_button_new_from_icon_name() just set the icon-name
property instead of creating a GtkImage.
2017-11-15 14:22:16 -05:00
Benjamin Otte
3da65ff233 scalebutton: Remove icon size 2017-11-15 14:22:16 -05:00
Benjamin Otte
a7754a14b5 toolbar: Remove icon sizes 2017-11-15 14:22:16 -05:00
Benjamin Otte
8df61992d7 tooltips: Remove GtkIconSize usage 2017-11-15 14:22:16 -05:00
Benjamin Otte
129dc7d73b css: Add -gtk-icon-size
This will replace GtkIconSize in future patches.
2017-11-15 14:22:16 -05:00
Benjamin Otte
dcc2577b97 introspection: Fix build 2017-11-15 19:33:26 +01:00
Benjamin Otte
e9629a5149 wayland: Fix initial cursor
Make sure the initial cursor isn't random which would happen due to an
early exit when cursor == pointer->cursor triggered because both were
NULL.
2017-11-15 19:07:17 +01:00
Benjamin Otte
4c4e914806 gdk: Replace GDK_NONE with NULL 2017-11-15 19:07:17 +01:00
Benjamin Otte
cb941956d3 gdk: Turn GdkAtom into a const char *
Instead of an integer, it is now a char pointer. We also use
g_intern_string() instead of doing the interning ourselves.
2017-11-15 19:07:17 +01:00
Benjamin Otte
0451c6d30c gdk: Make GDK_NONE Atom translate to NULL
Instead of the string "NONE" we now use NULL.
2017-11-15 19:07:17 +01:00
Benjamin Otte
a385a50260 gdk: Get rid of magic special atoms 2017-11-15 19:07:17 +01:00
Benjamin Otte
41f9a174e2 x11: Remove special casing for GdkAtoms
This is in preparation for the GdkAtom removal
2017-11-15 19:07:17 +01:00
Benjamin Otte
5a1a11bcde dnd: Make GtkDragDest and GtkDragSource use GtkTargetList
This gets rid of GtkTargetEntry in the API and consistently uses
GtkTargetList.
2017-11-15 19:07:17 +01:00
Benjamin Otte
7efc5a1558 clipboard: Consistently use GtkTargetList
Some code was using GtkTargetList, some used GtkTargetEntry and some
GtkTargetPair.
2017-11-15 19:07:16 +01:00
Benjamin Otte
fb94f79094 selection: Remove #ifdef WAYLAND
Instead, turn the functions into backend API:
  gdk_broadway_display_add_selection_targets()
  gdk_broadway_display_clear_selection_targets()
Remove the old per-backend functions, too.
2017-11-15 19:07:16 +01:00
Benjamin Otte
13ca03efb1 cellrendererpixbuf: Remove stock-detail property
GTK3 didn't use that property already...
2017-11-14 18:37:38 -05:00
Benjamin Otte
515b13fdd5 messagedialog: Remove unused header 2017-11-14 18:24:43 -05:00
Matthias Clasen
0436cc44fc win32: Remove all checks for GDK_WINDOW_ROOT
We are no longer creating windows of this type, so no
need to check for it.
2017-11-14 18:16:19 -05:00
Matthias Clasen
e2682e62a8 win32: Remove all uses of get_root_window
This is following similar changes done in the x11 and
broadway backends, but it has not been built.
Some fixups may be needed.
2017-11-14 18:16:19 -05:00
Benjamin Otte
77efc60a15 placessiderbar: Fix sunny compilation
Make compilation not warn about unused variables when compiling with
HAVE_CLOUDPROVIDERS undefined.
2017-11-13 23:45:18 +01:00
Benjamin Otte
457bf3b604 widget: No need to update events
GtkWindow queues for all events anyway, so the needed ones are already
there.
2017-11-13 23:41:38 +01:00
Benjamin Otte
ed1b6a9bed gdkwindow: Remove event_mask arguments from constructors 2017-11-13 23:41:38 +01:00
Benjamin Otte
ef5a6835b2 window: Set ALL_EVENT_MASK
This is a trivial commit that does a big change: We now ignore event masks.

Further commits will clean up code, but if bisection ends up here, you
know it's because code is getting delivered events that it weren't getting
before.
2017-11-13 23:41:37 +01:00
Benjamin Otte
de40ced21c gdk: Fix GDK_ALL_EVENTS_MASK
This mask was forgotten to update when the last 2 event masks were
added, probably because it looks like it's already maxed.
2017-11-13 23:41:37 +01:00
Benjamin Otte
9d56cee622 widget: Remove gtk_widget_set_device_enabled()
Nobody is using it.
2017-11-13 23:41:37 +01:00
Matthias Clasen
5f73afae3d x11: Remove mentions of GDK_WINDOW_ROOT
This backend never creates a window of this type, so no
need to check for it anymore.
2017-11-13 16:47:50 -05:00
Matthias Clasen
964cdaf3a3 x11: Stop creating a root window
We no longer need it.
2017-11-13 16:39:54 -05:00
Matthias Clasen
5999b1c73a x11: Store toplevel list in GdkDisplay
This will let us get rid of the root window.
2017-11-13 16:32:34 -05:00
Matthias Clasen
8af666cb4f x11: Remove another use of the root window
We just need the X root window here.
2017-11-13 16:09:47 -05:00
Matthias Clasen
724863c275 icontheme: Add a trailing / when enumerating resources
This avoids extra string copies in GResource.
2017-11-13 12:13:42 -05:00
Carlos Soriano
1b1cb8295b gtkplacessidebar: Fix new tab/window handling for cloud accounts
It wasn't taking into account whether the sidebar had support for them
or not, resulting in a file chooser with open in new tab/window menu
items when it's not supported.

To fix it, do as with the other menus and check for the availability of
new tab/window flags.

https://bugzilla.gnome.org/show_bug.cgi?id=786123
2017-11-13 16:57:02 +01:00
Carlos Soriano
f54e7712c5 gtkplacessidebar: Adapt to libcloudproviders 0.2.x
And a few improvements on the way.

https://bugzilla.gnome.org/show_bug.cgi?id=786123
2017-11-13 16:55:10 +01:00
Matthias Clasen
2ff175938d application: Append a / to the icon resource path
g_resources_enumerate_children expects the path to end
in a '/' (even though thats not stated in the docs), and
will copy it if that isn't the case. Avoid the copy
by putting  a '/' there to begin with.
2017-11-13 07:35:18 -05:00
Matthias Clasen
ec1ea0db04 icontheme: Append a / to the resource path
g_resources_enumerate_children expects the path to end
in a '/' (even though thats not stated in the docs), and
will copy it if that isn't the case. Avoid the copy
by putting  a '/' there to begin with.
2017-11-13 07:33:35 -05:00
Benjamin Otte
e0d3602331 a11y: Handle a treeview with no columns
Code was spewing criticals to stderr because of nonexisting columns. So
check that there's actually an existing column first.
2017-11-13 03:51:53 +01:00
Benjamin Otte
b968147e0a treeview: Only update vadjustment in size_allocate()
The 2 calls even do different things, but because the one in allocate
always overrides the one here...
2017-11-13 01:53:45 +01:00
Benjamin Otte
f31a51a1c8 treeview: Pass height to allocate as argument
Instead of exporting a function to query it.
2017-11-13 01:28:16 +01:00
Benjamin Otte
b47ff72ebc progresstracker: Don't hand out NaN
When the duration is set to 0, clamp it to 1us. This way we're almost
correct: We should really instantly finish, but we don't. But we do
respect the delay.

Doing this properly would require some refactoring of how the progress
tracker actually maintains progress, and this is just a quick fix.
2017-11-12 06:22:34 +01:00
Benjamin Otte
6eead8f6a3 treeview: Use gtk_widget_get_width()
... instead of gtk_widget_get_allocated_width() and same for height.

This makes the treeview do the right thing when used with padding.
2017-11-12 05:46:06 +01:00
Benjamin Otte
61ecd10240 treeview: Don't allocate columns outside of size_allocate() 2017-11-12 05:38:58 +01:00
Benjamin Otte
5db1aa5401 treeview: Fix RTL column header allocation 2017-11-12 05:37:06 +01:00
Benjamin Otte
48de0bf741 treeview: width_changed is always true, so remove it
Also, sanitize the RTL correction code that made sure resizing the width
of a treeview would keep the contents glued to the right border instead
of the left border.
2017-11-12 05:31:21 +01:00
Matthias Clasen
7839e0d7d5 x11: Fix a crash
This was crashing the moment a second window is opened.
2017-11-11 12:07:11 -05:00
Matthias Clasen
f40b3bc5bc Fix up managed dnd
Since commit 6c56d04cee,
we were doing some calls twice in the managed dnd case,
leading to double drops.
2017-11-11 07:50:11 -05:00
Benjamin Otte
af13d474e8 textview: Remove GDK windows 2017-11-11 05:37:37 +01:00
Benjamin Otte
26909ee913 textview: Simplify gtk_text_view_buffer_to_window_coords()
... and gtk_text_view_window_to_buffer_coords()
2017-11-11 05:25:22 +01:00
Benjamin Otte
2533ad723a textview: Use text_window_get_width()/height()
Instead of poking the GdkWindow. They have the same size after all.
2017-11-11 05:12:07 +01:00
Benjamin Otte
17600b6bab textview: Make the semi-private headrs really private
Rename the files to have the private.h ending.

And remove gtktextdisplay.h from the installed files.
2017-11-11 05:01:31 +01:00
Benjamin Otte
d18b10a3d7 textview: Store border window sizes in a custom struct
That way, we don't need to have a GtKRequisition in every TextWindow.
2017-11-11 04:30:00 +01:00
Benjamin Otte
d65d5d0a84 gtktexttag: Remove GtkTextTag::event and gtk_text_tag_event()
GtkSourceView is not using it, so it's unneeded. And it's certainly
diving deep into event internals of GtkTextView which hinders a proper
gesturization.
2017-11-11 04:25:11 +01:00
Benjamin Otte
52424d8640 textview: Hide the selection bubble better
The selection bubble is not part of the text windows, so hiding it
during scroll should not be done in the text window code.

Also remove an unused variable that was only set in that code but never
read.
2017-11-11 02:49:08 +01:00
Benjamin Otte
e9dd5f327f flowbox: Compute view box from correct variables 2017-11-11 02:49:08 +01:00
Matthias Clasen
12837f6905 Drop the last use of GDK_MULTIHEAD_SAFE
This define is not used anymore, this was a leftover.
2017-11-10 16:14:19 -05:00
Kjell Ahlstedt
b0d1ae4a5c GtkCssImageIconTheme: Don't try to unref a NULL pointer
In gtk_css_image_icon_theme_snapshot(), don't try to unref icon_info
if it's NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=790171
2017-11-10 16:48:30 +01:00
Benjamin Otte
1da8c1b27f rendericon: Add missing include 2017-11-10 15:04:13 +01:00
Benjamin Otte
5b94fe6342 stylecontext: Make first property name explicit
Insist that a first non-NULL property is passed to
gtk_style_context_get().

This is in particular relevant because of dropping the state argument
since GTK3, and code like
  gtk_style_context_get (context, state, "font", &font);
would keep compiling without warnings without this change.
2017-11-10 14:56:42 +01:00
Benjamin Otte
51c5ccf412 a11y: Report correct spinner size 2017-11-10 14:56:42 +01:00
Benjamin Otte
723bf44887 calendar: Fix for GTK4 changes 2017-11-10 14:56:42 +01:00
Benjamin Otte
f4e1a2b849 testgtk: Draw the right area in alpha window test
Even broken stuff is easier now.
2017-11-10 14:56:42 +01:00
Benjamin Otte
3f7ada506e examples: Use right function to query size 2017-11-10 14:56:42 +01:00
Benjamin Otte
2ff5038b09 testgtk: Fix some more old drawing area uses 2017-11-10 14:56:42 +01:00
Benjamin Otte
2620323fac tests: After 20 years, update the simple test to modern GTK
It's 3 lines shorter!
And it works again!
2017-11-10 14:56:42 +01:00
Benjamin Otte
93c42bcbe0 testgtk: Fix rotated text demo
Use proper DrawingArea APIs here.
2017-11-10 14:56:42 +01:00
Matthias Clasen
bdb442be21 x11: Reduce uses of the root window
Avoid calling the get_root_window api that returns
a GdkWindow in some places, and instead use the X
root window directly.
2017-11-09 22:52:37 -05:00
Matthias Clasen
2aa52c7d00 Simplify the gtk_snapshot_icon_texture API
Instead of passing the color matrix in from the outside,
just pass a boolean and set up the matrix internally.
2017-11-08 22:21:42 -05:00
Matthias Clasen
7aa236fbb2 Fix a compiler warning 2017-11-08 22:09:34 -05:00
Matthias Clasen
a381ee6a55 Fix a typo 2017-11-08 22:09:23 -05:00
Matthias Clasen
23162bf0de filesystem: Drop surface-based APIs
These are no longer used.
2017-11-08 21:56:28 -05:00
Matthias Clasen
8460034f58 filechooserwidget: Use GIcons
This lets us avoid much of the symbolic icon rendering api.
2017-11-08 21:56:28 -05:00
Matthias Clasen
9aba7e3aa7 filechooserbutton: Use GIcons
This lets use avoid much of the symbolic icon rendering api.
2017-11-08 21:56:28 -05:00
Matthias Clasen
4148795c8b filesystem: Add GIcon getters
We want to move away from surfaces, and instead pass
GIcons and GdkTextures around.
2017-11-08 21:56:28 -05:00
Chun-wei Fan
c06b1cc103 Win32: Re-work cursor handling
Like the X11 and Wayland backends, re-work how the cursors are being
handled.  So, we use a hash table to cache up the HCURSORS that we
create along the way.

We still need to cache up the icon/cursor themes since this is something
that is not part of Windows but was added on to support icon/cursor themes
such as Adwaita on Windows, but should be in-line with what is going on in
GdkCursor.

Also, remove the _gdk_grab_cursor global variable in gdkprivate-win32.h,
and replace it with another variable in the GdkWin32Display structure,
to make things cleaner in the process.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-11-09 08:30:09 +08:00
Matthias Clasen
c83665005a Use color matrices for -gtk-recolor
Use the same approach we take for recoloring in GtkIconHelper now.
As part of this change, GtkCsSImageRecolor is changed to not derive
from GtkCssImageUrl anymore.
2017-11-08 10:04:38 -05:00
Daniel Boles
6f54e1fc6d CssProvider: Fix doc of min theme version loaded
The code shows that we only load back to 4.0, but this still said 3.0.
2017-11-08 09:22:49 +00:00
Daniel Boles
6a9c14b2fa CssProvider: Use consistent theme name placeholder
commit 475d916eb9 added various paths that
use theme-name for this, but the existing path already used THEME, with
a subsequent description referring to the latter. So use that everywhere
2017-11-08 09:22:46 +00:00
Matthias Clasen
6e4f7ad857 Fix the build 2017-11-08 00:37:04 -05:00
Matthias Clasen
acf58063a7 css image: Use GdkTexture api directly
No need to load a pixbuf anymore, we can just
directly create textures.
2017-11-07 23:04:36 -05:00
Matthias Clasen
44a3f6bb41 css: Use a color matrix for recoloring -gtk-icontheme
This is the same approach we are already using in
GtkIconHelper.
2017-11-07 21:39:47 -05:00
Matthias Clasen
1da7dc890c Make the recoloring code more robust
Pass both width+height and scale, so we can handle the case
where width+height are zero and we are using the file, scaled.
2017-11-07 21:27:38 -05:00
Matthias Clasen
6ebd2d384b fix the build 2017-11-07 19:56:11 -05:00
Matthias Clasen
284fd36e5d Fix symbolic.svg rendering
With the shader approach to symbolic recoloring, we must
not recolor the svgs anymore as we're loading them. Instead,
load them the same way that gtk-encode-symbolic-svg does.

This fixes the rendering of large symbolic icons e.g. the
'no search results found' page in the file chooser.
2017-11-07 18:56:32 -05:00
Matthias Clasen
73a3d4b785 wayland: Drop an unused function
We no longer create a root window, so need to have
a function for it.
2017-11-07 07:43:09 -05:00
Benjamin Otte
2177b191ba x11: Correctly set icons
X11 obviously doesn't use 4 bytes for a 4 bytes pixel. Rather, it uses
unsigned long, which happens to be 8 bytes these days.
2017-11-07 12:24:43 +01:00
Matthias Clasen
efd86912f0 broadway: Drop the root window
We already have a list of toplevels, so we don't
need the root window for this.
2017-11-06 21:51:30 -05:00
Matthias Clasen
6261f5f7b8 wayland: Drop the root window
We can just keep a list of toplevels in the display.
2017-11-06 18:52:37 -05:00
Marek Cernocky
f94002fedb Updated Czech translation 2017-11-06 21:04:50 +01:00
Matthias Clasen
20fab69c38 Drop gdk_display_get_root_window
This is no longer used.
2017-11-05 21:45:51 -05:00
Matthias Clasen
063db3630b x11: Stop using gdk_display_get_root_window
Use the backend api for this.
2017-11-05 21:45:51 -05:00
Matthias Clasen
5db2352eba x11: Make gdk_x11_display_get_root_window available
This will replace the frontend api of the same name.
2017-11-05 21:45:51 -05:00
Matthias Clasen
c1c919cf7d win32: Stop using gdk_display_get_root_window
Use the newly introduced backend api for this purpose.
2017-11-05 21:45:51 -05:00
Matthias Clasen
be75984485 win32: Make gdk_win32_display_get_root_window available
This will be used to replace the equivalent frontend api,
which is going away.
2017-11-05 21:45:51 -05:00
Benjamin Otte
f80a90d39a widget: Don't leak the cursor on destruction 2017-11-06 03:28:34 +01:00
Matthias Clasen
2eb78a2374 wayland: Stop using gdk_display_get_root_window
We can just use the display field directly.
2017-11-05 19:44:39 -05:00
Matthias Clasen
f3150c3a43 Typo fix 2017-11-05 19:43:39 -05:00
Matthias Clasen
a163d5b7a7 broadway: Stop using gdk_display_get_root_window
We can just use the field in the display.
2017-11-05 19:37:54 -05:00
Matthias Clasen
c08a6a062f Stop using the root window in gdk_window_create_similar_image_surface
Just create a plain image surface if we don't get a window.
This should work just fine and lets us drop another implicit
use of the root window.
2017-11-05 19:30:54 -05:00
Matthias Clasen
de83fc48bf Stop defaulting to the root window in gdk_window_get_geometry
This function is not documented as accepting NULL for the
window, and we don't want to have the root window sneakily
appear in the api like this.
2017-11-05 19:29:49 -05:00
Matthias Clasen
50cf11d398 Make toplevels have parent == NULL
This is a move towards removing root windows as a frontend
gdk concept.
2017-11-05 19:28:37 -05:00
Matthias Clasen
119c433882 x11: Handle parent being NULL when creating windows
We want to make toplevels have a NULL parent, this
gets us ready for it.
2017-11-05 19:25:22 -05:00
Matthias Clasen
c16a0bd9b7 Drop gdk_display_get_toplevel_windows
Nothing uses this private api anymore, so we can drop it.
2017-11-05 18:39:01 -05:00
Matthias Clasen
28a8d03c0b x11: Drop use of gdk_display_get_toplevel_windows
Use the newly introduced helper for this task.
2017-11-05 18:36:49 -05:00
Matthias Clasen
76b6d86659 x11: Add a helper to get all toplevels
This will let us avoid frontend API for this task.
2017-11-05 18:33:56 -05:00
Matthias Clasen
e980f68f5b quartz: Drop another use of gdk_display_get_toplevel_windows
This one was forgotten in the previous commit.
2017-11-05 18:30:03 -05:00
Matthias Clasen
4f701c71f1 quartz: Drop use of gdk_display_get_toplevel_windows
We can use the newly added helper function for this.
2017-11-05 18:28:27 -05:00
Matthias Clasen
c44e693b26 quartz: Add a function to get all toplevels
This will let us avoid frontend API for this.
2017-11-05 18:27:49 -05:00
Matthias Clasen
84a3772ef6 broadway: Stop using gdk_display_get_toplevel_windows
We already keep a list of all toplevels in the broadway
display struct. Just use it.
2017-11-05 18:19:04 -05:00
Piotr Drąg
206da9774d Update Polish translation 2017-11-05 21:56:03 +01:00
Piotr Drąg
08d5ed5875 placessidebar: correct quotation marks in a new string 2017-11-05 21:18:53 +01:00
Alexandru Pandelea
2421e745b9 placessidebar: add starred location item
Add an item for showing all files marked as favorite. This item will
open all files that have the nao:predefined-tag-favorite tag

https://bugzilla.gnome.org/show_bug.cgi?id=785176
2017-11-05 21:02:04 +01:00
Matthias Clasen
807cac2c79 quartz: Drop mentions of foreign windows
The quartz backend never creates foreign windows,
so no need to check for window type.
2017-11-05 12:09:06 -05:00
Matthias Clasen
08be6651d6 Expand the cursors demo text
Explain what why we show each cursor 4 times.
2017-11-05 11:27:06 -05:00
Matthias Clasen
909330f347 wayland: Fix animated cursors
We must reset the image delay when stopping the timeout,
otherwise the code setting it up thinks it is still running.

This fixes cursor animation only working for the very first
enter of a widget with an animated cursor, as seen in the
cursors example in gtk4-demo.
2017-11-05 11:27:06 -05:00
Benjamin Otte
1cee71049a emojichooser: animate the adjustment
... instead of doing a dance with the scrolled window to get it to scroll
the adjustment.
2017-11-05 16:12:35 +01:00
Benjamin Otte
e6f5085255 gtk-demo: Fix popover positioning in popover test 2017-11-05 15:22:14 +01:00
Benjamin Otte
3a3f73a4dc gtk-demo: Don't use get_allocation()
Use get_width()/get_height() instead.
2017-11-05 15:01:30 +01:00
Benjamin Otte
c4ecc0993a flowbox: Don't call get_allocation()
That's wome outdated workaround code from the last version of GTK3.
2017-11-05 14:46:01 +01:00
Benjamin Otte
73077c4e90 viewport: Implement clipping for picking
This is necessary because picking is no longer automatically constrained
to a widget's box. So all clipping widgets need to constrain their
clipping, too.

This patch does that for GtkViewport only.
2017-11-05 07:19:22 +01:00
Benjamin Otte
b3f69c130e testsuite: Update expected results for scale changes 2017-11-05 06:58:05 +01:00
Benjamin Otte
8900024697 testsuite: Unrealize renderers before unreffing
This is now necessary, because the GL renderer crashes if we don't
enforce it.
2017-11-05 06:55:01 +01:00
Benjamin Otte
e8b2493680 aboutdialog: Clean up for logo being a texture 2017-11-05 06:50:28 +01:00
Benjamin Otte
22472c1924 entry: Remove surface icons
We have texture icons.
2017-11-05 06:45:01 +01:00
Benjamin Otte
0f5d807cae iconhelper: Don't render to surface anymore
Just go directly to texture.
2017-11-05 06:30:45 +01:00
Benjamin Otte
bc552e74d8 menubutton: Don't fiddle with prelight state 2017-11-05 05:13:17 +01:00
Benjamin Otte
4ee02725b4 themes: Do expander arrow :hover properly
We want to prelight the arrow even when the label is hovered.
2017-11-05 05:13:17 +01:00
Benjamin Otte
e3effc8df2 expander: Don't do :hover yourself
GTK does it for you.
2017-11-05 05:13:17 +01:00
Benjamin Otte
c4a9fa9865 range: Stop trying to be smarter than GTK
GTK deals with PRELIGHT properly itself now, so there's no need to try
do it manually.
2017-11-05 05:13:17 +01:00
Benjamin Otte
4bb9a6360f range: Use gtk_widget_pick() to pick the mouse location
That's rather unsuccessful so far because it requires skipping a bunch
of irrelevant widgets, but oh well...
2017-11-05 05:13:17 +01:00
Benjamin Otte
994287b71f widget: Make gtk_widget_pick() really slow
We cannot fast-track picking by using gtk_widget_contains(). Child
widgets may extend their parent using ie negative margins.

This is not just a theoretical concern, this is what's happening right
now with GtkScale's sliders relative to the trough.

The problem is that we now iterate through all widgets, even when they
aren't anywhere near the mouse pointer. So essentially every pick
operation is now guaranteed O(N_WIDGETS) which used to be the worst case
that pretty much never happened.
2017-11-05 05:13:17 +01:00
Benjamin Otte
cf1cd19b61 range: Stack widgets properly
The trough widgets have the slider on top of the fill level and the
hilight widget. Make sure the widget stacking respects that.

This is particularly relevant because picking event targets should pick
the slider and not the hilight widget.
2017-11-05 05:13:17 +01:00
Benjamin Otte
897fdaf1c0 entry: Texture properties are objects
Carelessly copy/pasting made them boxeds. Oops.
2017-11-05 05:13:17 +01:00
Benjamin Otte
cf2d549e92 widget: Implement gtk_widget_pick()
... and use it.
2017-11-05 05:13:17 +01:00
Matthias Clasen
65a7557fc1 Fix some typos
Correct function names in the docs, etc.
2017-11-04 23:51:25 -04:00
Matthias Clasen
844b75356d Documentation fixes
Make sure textures show up in the gdk docs.
2017-11-04 23:47:02 -04:00
Piotr Drąg
b36c197fc7 Update POTFILES.skip 2017-11-05 00:26:47 +01:00
Benjamin Otte
e484af8e96 wayland: Fix embarassing bug
Yes, I did not get to test this code path until now. Because nobody uses
icon surfaces, boo!
2017-11-05 00:07:18 +01:00
Benjamin Otte
9b37f5a45f gtk-demo: Update cursors demo
It's all glade-ified, hurray!
It also now properly tests image cursors, named cursors and fallbacks.
I'm not gonna tell how many bugs I found though.
2017-11-05 00:07:18 +01:00
Benjamin Otte
7e137b2524 gdk: Use G_N_ELEMENTS() when iterating over constant arrays
And do that everywhere.

Because if we don't, we're gonna crash sometimes.
2017-11-05 00:07:18 +01:00
Benjamin Otte
d092e8dd78 gdk: Fix fallback names for the help cursor 2017-11-05 00:07:18 +01:00
Benjamin Otte
8d849458ac docs: You can't modify textures
So there's no need to tell people they must not do that.
2017-11-05 00:07:17 +01:00
Benjamin Otte
70846c85b3 window: Make icons GdkTextures
Cairo surfaces are bad, mkay?
2017-11-05 00:07:17 +01:00
Benjamin Otte
b4b7c27274 aboutdialog: Make logo a texture property
Get rid of cairo surfaces!
2017-11-05 00:07:17 +01:00
Benjamin Otte
b12a53406d builder: Mirror GdkPixbuf abilities for GdkTexture
In particular, allow specifying a filename for a GDK_TYPE_TEXTURE
property. This makes it easy to transition properties from Pixbuf type
to Texture type without having to touch resource files.
2017-11-05 00:07:17 +01:00
Benjamin Otte
2d959553e9 image: Add the ability to set textures
This also adds it to all other places that use the same infrastructure:
GtkEntry and GtkCellRendererPixbuf
2017-11-05 00:07:17 +01:00
Emmanuele Bassi
481b5d1b89 Partially revert GskTexture → GdkTexture rename
Excessive use of sed when moving GskTexture to GDK; the GskTextureNode
should still live under the GSK namespace.
2017-11-04 15:06:00 +00:00
Benjamin Otte
c5a631b999 inspector: Unrealize renderer before unreffing
See previous patch for a description on why that is necessary.
`
2017-11-04 15:22:25 +01:00
Benjamin Otte
bd287ba3cf renderer: Assert having been unrealized in dispose
We cannot unrealize a renderer in the dispose function, because that
would cause this chain to happen:
  gsk_gl_renderer_dispose
  gsk_renderer_dispose
  gsk_renderer_unrealize
  gsk_gl_renderer_unrealize
So we would call into thje GL renderers unrealize when it has already
(partially) disposed itself and ause accesses to dead variables.
2017-11-04 15:22:25 +01:00
Benjamin Otte
4c2bae3a1a texture: Add gdk_texture_new_from_file()
and gdk_texture_new_from_resource().

While doing set, turn all GDK_AVAILABLE_IN_3_90 into
GDK_AVAILABLE_IN_3_94 because that's now true after the renaming.
2017-11-04 15:22:25 +01:00
Benjamin Otte
a0ff63e162 iconhelper: Compute surface size without icon helper
This is so we can do the next batch of changes
2017-11-04 15:22:25 +01:00
Benjamin Otte
197eeade74 textview: Use gtk_widget_set_cursor()
This currently breaks because we still use GdkWindows. Soon...
2017-11-04 15:22:25 +01:00
Benjamin Otte
f7646cf541 textview: Remove GdkWindow usage from the public API
A sideeffect is that we don't set the correct parent window on child
widgets anymore, but that is hopefully going to be fixed once we get rid
of child windows completely.
2017-11-04 15:22:25 +01:00
Rico Tzschichholz
7b0ed47525 x11: Make gdk_x11_display_get_xcursor be recognized as instance method 2017-11-04 13:23:02 +01:00
Chun-wei Fan
3228149892 gdk/win32: Fix Win32 GL Context switching
Since on Windows we need to use a good amount of temporary GL contexts,
we need to switch back to the original GL contexts we were using when
we are done with the temporary GL contexts, otherwise multi-GL windows
will cause confusions causing display artifacts and crashes.

Also, use the GdkWin32GLContext::gl_hdc consistently throughout
the code and remove the GdkWin32Display::gl_hdc as Lukas K pointed out
that GdkWin32Display::gl_hdc becomes out-of-date and so the HDC that the
GL context is bound to becomes incorrect in sceanarios using multiple
windows with GtkGLArea/GdkGLArea items (which would cause the artifacts in
programs that use multiple windows with GtkGLArea/GdkGLArea items, and it
turns out that GdkWin32Display::gl_hdc is actually not necessary to help
keep track of the HDCs we use for our GL contexts.

This will also fix on Windows with GDK_GL=always, or when GSK's gl
renderer is used.

Partly based on patch from Lukas K <lu@0x83.eu>

https://bugzilla.gnome.org/show_bug.cgi?id=789213
2017-11-04 10:39:03 +08:00
Chun-wei Fan
6a12a3cd10 gdk/win32: Fix build after GdkScreen and cursor cleanups
Move the leftovers from the removals to use the current APIs, to fix the
build.  Also for gdk_device_virtual_set_window_cursor(), only do
something when a valid GdkCursor is passed in here.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-11-04 10:32:21 +08:00
Benjamin Otte
a409320cda gtk: Use gtk_widget_set_cursor()
... and gtk_widget_set_cursor_from_name() instead of setting cursors on
GdkWindows.
2017-11-04 01:37:03 +01:00
Benjamin Otte
d78bbb7e96 x11: Don't use g_hash_table_steal()
It returns TRUE/FALSE, not the item you've stolen, so if you free that,
your X connections is gonna have a BadCursor.
2017-11-04 01:35:59 +01:00
Benjamin Otte
b38a4cb824 widget: Export gtk_widget_set_cursor()
Widgets can now set their favorite cursor using public API.

This is very necessary because all cursor-setting APIs are still
setting it on their GdkWindow, which by now is the toplevel - oops.
2017-11-04 01:00:27 +01:00
Benjamin Otte
9323d098a6 gdk: Cursors no longer have a display
Change constructors to reflect that.

While doing so, also add a fallback argument to the cursor constructors,
so it is now possible to create cursors with fallback.
2017-11-04 00:07:13 +01:00
Benjamin Otte
e2996732b9 testsuite: Remove cursor tests
Cursors always exist now, it does not make sense to test that their
creation fails anymore.
2017-11-04 00:07:13 +01:00
Benjamin Otte
4e7a056777 gdk: Cursors are created generically
There are no longer subclasses for cursors now.
2017-11-04 00:07:13 +01:00
Benjamin Otte
ec824b9e50 wayland: Redo cursor handling
This is in line with the X11 changes last patch.
2017-11-04 00:07:13 +01:00
Benjamin Otte
e294f71555 x11: Redo cursor handling completely
Instead of creating a GdkX11Cursor, create GdkCursors. Cache the XCursor
in a hash table instead.

Also, make use of the new fallback mechanism for fallback code: Make
sure to provide cursors for the names that are guaranteed to exist, but
do not do bad attempts at displaying texture surfaces.
Black/White/transparent is not a replacement for those.
2017-11-04 00:07:13 +01:00
Benjamin Otte
d30d55be9e gdk: Make cursors instantiable
This way, backends can instantiate GdkCursor objects directly.

Do that for broadway to test that it indeed works.
2017-11-04 00:07:13 +01:00
Benjamin Otte
428547e14f gdk: Add gdk_cursor_hash() and gdk_cursor_equal()
This is so GDK backends can put cursors into hash tables and avoid
duplicates.
2017-11-04 00:07:13 +01:00
Benjamin Otte
6b2ea46a5f gdk: Add gdk_cursor_get_fallback()
There's no way to use it yet, but I want it to be available for
refactoring the backends.
2017-11-04 00:07:13 +01:00
Benjamin Otte
5adf21a17d cursor: Turn new_from_surface() into new_from_texture()
Also turn all the arguments into read-only properties on the GdkCursor
object.
2017-11-04 00:07:13 +01:00
Benjamin Otte
0cad0caf7d broadway: Don't crash on startup 2017-11-04 00:07:13 +01:00
Benjamin Otte
81c2bebaca gdk: Remove ability to download a cursor 2017-11-04 00:07:13 +01:00
Benjamin Otte
ca3c23662c GskTexture => GdkTexture
We want this thing to replace GdkPixbuf, so it has to live in GDK.
2017-11-04 00:07:13 +01:00
Benjamin Otte
8ba9ae6012 gdk: Add gdk_cursor_get_name()
Also add the GdkCursor::name property.
2017-11-04 00:07:13 +01:00
Benjamin Otte
a1759a0a52 gdk: Get rid of GdkCursorType
Now that we no longer have API that uses cursor types, don't keep them
around.
2017-11-04 00:07:13 +01:00
Carlos Garnacho
b8d3f88ddb gtkwindow: Use event target widget for WM handling special paths
The check used to achieve discarding events not meant for the window
widget itself (because they are handled in the regular paths). Using
the target widget is the equivalent now.
2017-11-03 22:19:13 +01:00
Kjell Ahlstedt
23014438d6 GtkWindow: Tidy up after icon became a cairo surface
Use g_value_set/get_boxed() in gtk_window_get/set_property(), case PROP_ICON.
icon_from_list() shall always add a reference to the returned icon.
gtk_window_set_icon() must accept icon != NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=789870
2017-11-03 20:05:28 +01:00
Timm Bäder
11b8f27b76 notebook: Fix setting show-tabs
show-tabs=FALS means the notebook is not supposed to show tabs,
regardless of whether it has a current page or not.
2017-11-03 11:22:44 +01:00
Timm Bäder
2603fa0cc3 notebook: Remove useless call to gtk_widget_reset_style 2017-11-03 11:22:44 +01:00
Khaled Hosny
8709deee71 Update Arabic translation 2017-11-03 12:00:37 +02:00
Timm Bäder
4f4ac29cd2 glarea: Use content size of the widget
For buffer sizes, etc. We only draw in the content area after all.
2017-11-03 10:47:02 +01:00
Timm Bäder
018daaeea8 rendernodeview: Use content size instead of allocated size 2017-11-03 10:47:02 +01:00
Timm Bäder
2283cbad92 colorplane: Use content size everywhere 2017-11-03 10:47:02 +01:00
Timm Bäder
34f3c6bd52 revealer: Create clip node for right widget size
It should use gtk_widget_get_width/height here to get the correct
content size of the revealer.
2017-11-03 10:47:02 +01:00
Benjamin Otte
8aa68110bd x11: Remove gdk_x11_grab_server()
Luckily, this one is unused.
2017-11-02 12:47:50 +01:00
Benjamin Otte
9c98adcd15 gdk: Remove GdkWindow.set_device_cursor() vfunc
That one calls through to GdkDevice.set_window_cursor(), so let's just
use that one.
2017-11-02 12:42:58 +01:00
Benjamin Otte
d380cf114b x11: Remove outdated functions from API
We don't want generic APIs that do random stuff on the default X display.
2017-11-02 12:42:58 +01:00
Benjamin Otte
f33c20920b x11: Add API to query root window and screen from GdkDisplay 2017-11-02 12:42:16 +01:00
Timm Bäder
8f55647fbb widget: Add get_width() and get_height() 2017-11-02 11:54:06 +01:00
Timm Bäder
8fa20f87e4 testwidgetfocus: Make focused button more obvious 2017-11-02 11:25:41 +01:00
Timm Bäder
dea8233663 widget: Remove stray prototype
gtk_cairo_transform_to_window is gone.
2017-11-02 11:25:41 +01:00
Emmanuele Bassi
d2e9a5fa88 x11: Use backend-specific API to get GdkScreen
The gdk_display_get_default_screen() function was removed, but the X11
GdkEventSource still lobs around GdkX11Screen instances.
2017-11-02 06:42:49 +00:00
Matthias Clasen
4a2dc53a76 Drop foreign window checks in Broadway
The broadway backen never creates foreign windows,
so no need to check for this type of window.
2017-11-01 22:55:34 -04:00
Matthias Clasen
6ba48bd0d8 Drop foreign window checks in Wayland
The wayland backend never creates foreign windows,
so no need to check for this type of window.
2017-11-01 22:55:27 -04:00
Matthias Clasen
9f6b556dc2 Stop using foreign windows for xsettings
Stop wrapping the xsettings manager window in a foreign
window. This means that we cannot use the gdk window filter
APIs anymore, so just do the filtering in a non-generic
way.
2017-11-01 22:55:17 -04:00
Matthias Clasen
5bd8884bf8 Stop providing the owner in GdkEventOwnerChange
This information is rarely useful, and it is one
of the last places where we create foreign windows.
2017-11-01 22:53:24 -04:00
Matthias Clasen
33195d473c Remove an unused function 2017-11-01 22:49:52 -04:00
Matthias Clasen
3a5b478e0f wayland: Some cursor cleanups
Remove methods that are not used.
2017-11-01 22:35:19 -04:00
Matthias Clasen
c958818631 Some forgotten cleanups 2017-11-01 21:53:50 -04:00
Matthias Clasen
2a60928157 t Remove gdk_cursor_new_for_display
The preferred api to create cursors is by name, and the
GdkCursorType enumeration can directly trace its ancestry
to the horrible X cursor font. So lets stop using it.
2017-11-01 21:49:05 -04:00
Matthias Clasen
47fb329279 tests: Stop using gdk_cursor_new_for_display
The name-based api is the one we prefer.
2017-11-01 21:22:21 -04:00
Matthias Clasen
fa5e3ee54e label: Stop using gdk_cursor_new_for_display
We prefer to use the name-based api for cursors nowadays.
2017-11-01 21:19:31 -04:00
Matthias Clasen
ee72860804 Drop GdkScreen from the docs
It is no longer part of the api.
2017-11-01 20:59:54 -04:00
Matthias Clasen
3b7763eebc Drop gdk_screen_get_display
This is not longer used.
2017-11-01 20:57:46 -04:00
Matthias Clasen
dcf2553f23 win32: Stop using gdk_screen_get_display
We can just use the field directly.
2017-11-01 20:54:50 -04:00
Matthias Clasen
b44ef37a21 quartz: Stop using gdk_screen_get_display
We can just use the field directly.
2017-11-01 20:54:22 -04:00
Matthias Clasen
93053adbf6 mir: Stop using gdk_screen_get_display
Just use the field directly.
2017-11-01 20:48:03 -04:00
Matthias Clasen
fee93d8d7b x11: Stop using gdk_screen_get_display
Never necessary, we can just use the field directly.
2017-11-01 20:48:03 -04:00
Matthias Clasen
a16a25151c Drop GdkScreen from public api
It is still used by some of the backends, so keep the
files around.
2017-11-01 19:44:29 -04:00
Matthias Clasen
0f9e9a9ec2 wayland: No more screen
This gets rid of the GdkWaylandScreen object and all
remnants of GdkScreen in the wayland backend.
2017-11-01 19:44:29 -04:00
Matthias Clasen
81cda3dcf7 Use x11-specific api to get at the screen
gdk_display_get_default_screen is going away.
2017-11-01 19:44:28 -04:00
Matthias Clasen
047eac5a96 x11: Add backend api to get the screen
gdk_display_get_default_screen is gone, but we still
have x11-specific screen apis that GTK+ is using, so
we need an alterative way to get the screen object.
2017-11-01 19:44:28 -04:00
Matthias Clasen
8144d31ebe Stop talking about GdkScreen in the docs
This api is going away.
2017-11-01 19:44:28 -04:00
Matthias Clasen
7f0b5297c6 Drop gdk_display_get_default_screen
Also remove the backend implementations.
This api is no longer used.
2017-11-01 19:44:28 -04:00
Matthias Clasen
adfbc82202 Fix a compiler warning. 2017-11-01 19:44:28 -04:00
Matthias Clasen
feb870add3 Drop gdk_screen_get_default
This function is not used anymore.
2017-11-01 19:44:28 -04:00
Matthias Clasen
a5ba92830e x11: Stop using gdk_screen_get_default
This api is going away.
2017-11-01 19:44:28 -04:00
Matthias Clasen
03ae29b7c5 quartz: Stop using gdk_screen_get_default
This api is going away.
2017-11-01 19:44:28 -04:00
Matthias Clasen
e3daf986ca x11: Stop using gdk_display_get_default_screen
There's no point in using this api here, we can directly
get the screen member from the GdkX11Display struct.
2017-11-01 19:44:28 -04:00
Matthias Clasen
473c642131 win32: Remove an unused function
This also removed the last use of gdk_display_get_default_screen
from the win32 backend.
2017-11-01 19:44:28 -04:00
Matthias Clasen
44a173824e quartz: Stop using gdk_display_get_default_screen
The GdkScreen api is going away. The quartz screen is
a singleton anyway.
2017-11-01 19:44:28 -04:00
Matthias Clasen
1605d378e5 Don't use GdkScreen here
The GdkScreen api is going away, so avoid using it, both
in code and in documentation.
2017-11-01 19:44:28 -04:00
Matthias Clasen
08bd079938 Remove leftover code
Nothing is setting this object data anymore, so no point
in cleaning it up.
2017-11-01 19:44:28 -04:00
Matthias Clasen
bee74e8243 broadway: No more screen
This gets rid of the GdkBroadwayScreen object and all
remnants of GdkScreen in the broadway backend.
2017-11-01 19:44:28 -04:00
Matthias Clasen
e41936c19c Fix a typo
A display is not of type GDK_TYPE_SCREEN.
2017-11-01 19:44:28 -04:00
Benjamin Otte
bd6b6ed93c gdk: Remove VisibilityNotify events 2017-11-01 22:00:34 +01:00
Benjamin Otte
c0ccad56f9 widget: Don't tell people to wait for nonexisting events 2017-11-01 22:00:34 +01:00
Daniel Boles
f24b286417 Adwaita: Fix Entry:has-frame if backdrop/disabled
by explicitly including these in the selector removing the border, to
avoid other rules on these pseudoclasses overriding the .flat class.

https://bugzilla.gnome.org/show_bug.cgi?id=789733
2017-11-01 20:24:56 +00:00
Daniel Boles
a58a5219b9 HighContrast: Fix GtkEntry:has-frame not working
• Remove the box-shadow at the top when the entry is in the foreground
• Bump precedence so that :disabled entries do not have .flat overridden
• Also add :backdrop to stop HCInverse getting a lighter BG in :backdrop

https://bugzilla.gnome.org/show_bug.cgi?id=789733
2017-11-01 20:24:55 +00:00
Daniel Boles
ff66de366c Inspector: better default split of CSS nodes/props
Move the default pos of the Paned handle to 400px from the left, i.e.
50% of the default width of the window. The previous position at 300px
from left meant the node treeview was too narrow & could easily result
in the (useful) State column not being visible in the case of many
apps. The properties pane doesn't need to be as big as it was anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=788898
2017-11-01 20:24:55 +00:00
Benjamin Otte
9d51134459 entry: Remove unused variable 2017-11-01 20:55:41 +01:00
Benjamin Otte
801d69017a switch: Use gtk_widget_contains() 2017-11-01 20:52:57 +01:00
Benjamin Otte
bcced800ea x11: Remove screen-specific macros 2017-11-01 20:51:14 +01:00
Benjamin Otte
b6e0c9392a button: Use gtk_widget_contains() 2017-11-01 20:50:33 +01:00
Benjamin Otte
9b0d9aa7a6 wayland: Remove unused variable 2017-11-01 20:09:06 +01:00
Benjamin Otte
d88c441764 widget: Add gtk_widget_contains() 2017-11-01 19:46:59 +01:00
Matthias Clasen
606345cbaa Change the fullscreen-on-monitor api
Use GdkMonitor here, since that is our primary monitor
object now, and GdkScreen is going away.
2017-11-01 14:17:20 -04:00
Matthias Clasen
f2655b055d monitor: Add a ::valid property
This is slightly more useful than the existing
::invalidate signal, since it can be queried at
any time.
2017-11-01 14:17:20 -04:00
Benjamin Otte
2d31a5499a gdk: Remove gdk_get_display_arg_name()
Since we're no longer allowing arguments, this is always NULL now.
2017-11-01 18:26:34 +01:00
Benjamin Otte
b4ad1a5618 testsuite: Remove unused test using long-gone API 2017-11-01 18:18:24 +01:00
Benjamin Otte
5f4e0d33f1 gdk: Remove nonexisting function from internal header 2017-11-01 18:17:55 +01:00
Benjamin Otte
b880296354 window: Unset transient parent in set_display()
If somebody changes a window's display, the transient parent cannot
stay if it's on a different display.
2017-11-01 18:17:11 +01:00
Andrew Crerar
edffa8d6ed Resolving undefined reference to gdk_get_default_root_window
https://bugzilla.gnome.org/show_bug.cgi?id=789777
2017-11-01 17:04:32 +00:00
Benjamin Otte
047cf67cb2 broadway: Fix fallout from screen changes 2017-11-01 16:03:16 +01:00
Benjamin Otte
8059f9bb3a window: Clear the renderer un unrealize
We disconnect from the GDK window, so the renderer can't keep any useful
state.

Plus, we might be using an entirely different window next time we
realize (after a call to gtk_window_set_display() for example) that should
use a completely different renderer anyway.
2017-11-01 15:48:00 +01:00
Benjamin Otte
6b3d979196 gskgl: Deal with being rerealized 2017-11-01 15:48:00 +01:00
Benjamin Otte
161f891d55 x11: Make gdk_x11_display_open() public API
People should be able to explicitily open displays to their backends.
2017-11-01 15:48:00 +01:00
Matthias Clasen
0411cc5620 Drop GdkVisual
This type was unused except for serving as a parent
for GdkX11Visual. Just move the fields to that type.
2017-10-31 22:44:15 -04:00
Matthias Clasen
727aa6cb08 Drop the monitors-changed signal
We are not using it anymore.
2017-10-31 22:42:33 -04:00
Matthias Clasen
29ffecb39c Drop gdkvisual.h from the installed headers. 2017-10-31 22:07:34 -04:00
Matthias Clasen
61a3a90f89 Don't mention GdkVisual in the docs
It is going away.
2017-10-31 22:05:58 -04:00
Matthias Clasen
883c0d1708 Remove a no-longer existing function 2017-10-31 21:59:47 -04:00
Matthias Clasen
e424dcb049 wayland: Stop using ::monitors-changed
Instead of connecting to this signal for every single window,
walk the window tree from the root window.
2017-10-31 21:48:58 -04:00
Matthias Clasen
67cea50383 Drop gdk_get_default_root_window
This is a trivial convenience function, and it is barely used.
2017-10-31 21:30:59 -04:00
Matthias Clasen
524fcbecfd Drop gdk_screen_get_root_window
This function is no longer used.
2017-10-31 21:28:28 -04:00
Matthias Clasen
463fba18a6 Port to gdk_display_get_root_window
This is the replacement for the GdkScreen api of the same name.
2017-10-31 21:27:24 -04:00
Matthias Clasen
68a61e9ac6 Drop gdk_screen_get_toplevel_windows 2017-10-31 20:49:50 -04:00
Matthias Clasen
8f129ddd13 Use gdk_display_get_toplevel_windows
This replaces the GdkScreen api of the same name.
2017-10-31 20:47:57 -04:00
Matthias Clasen
5cb5bdf1bc Add gdk_display_get_toplevel_windows
This is replacing the corresponding GdkScreen api, which
is going away. To implement this, we need to add a
get_root_window vfunc to GdkDisplay.
2017-10-31 20:29:48 -04:00
Matthias Clasen
0839aae3c8 monitor: remove GdkScreen mention from docs
No need to refer to GdkScreen here.
2017-10-31 19:15:01 -04:00
Matthias Clasen
01dfb49bbe Drop the screen resolution api
GTK+ now uses the gtk-xft-dpi setting directly.

Note: this commit only fixes the backends that
currently provide this setting. The win32 and
Quartz backends still need to be fixed.
2017-10-31 19:13:21 -04:00
Matthias Clasen
31b7555b7b Stop using screen resolution
This api is going away.
2017-10-31 18:53:29 -04:00
Matthias Clasen
a27bfaa0a3 Drop the GDK_DPI_SCALE variable
It complicates the dpi handling, and was really just a workaround
for non-dpi aware applications when hidpi support was first introduced.
2017-10-31 18:37:54 -04:00
Matthias Clasen
b36b7f08fb Drop gdk_pango_context_get_for_display
This api does not offer much over the pango api, and
the use of the resolution here is causing layering
problems.
2017-10-31 18:15:50 -04:00
Matthias Clasen
1641ef4799 tests: Stop using gdk_pango_get_context_for_display
This api is going away.
2017-10-31 18:14:08 -04:00
Matthias Clasen
0cd88cd6b7 Stop using gdk_pango_get_context_for_display
The function does nothing useful for us.
2017-10-31 17:52:24 -04:00
Matthias Clasen
2d6bd1ae6d Drop gdk_window_get_screen
This includes removing the GdkScreen argument from the
create_window_impl display vfunc.
2017-10-31 17:25:01 -04:00
Matthias Clasen
85e209a9c3 dnd: Remove remnants of screen tracking
There is only one screen nowadays, no need to track it.
2017-10-31 17:25:01 -04:00
Julian Sparber
2c42d8d6ed AboutDialog: Fix accepting GTK_LICENSE_AGPL_3_0
Add the ‘new’ GTK_LICENSE_AGPL_3_0 to the allowed enum range checked in
gtk_about_dialog_set_license_type(), so this value can actually be used.

https://bugzilla.gnome.org/show_bug.cgi?id=789678
2017-10-31 18:56:26 +00:00
Julian Sparber
e11e304d10 icon-browser: Centre Copy button in dialog again
This patch moves the "Copy to Clipboard" button into the same container
as the description label, to centre the button regardless of the number
of icons shown in the grid.

https://bugzilla.gnome.org/show_bug.cgi?id=789134
2017-10-31 18:41:55 +00:00
Daniel Boles
33d29f6671 gdkmonitor: Fix typo 2017-10-31 18:41:55 +00:00
Benjamin Otte
e78402ec94 tests: Remove completely outdated test
The test was fiddling with screens and trying crazy stuff. We don't do
things like that anymore.
2017-10-31 19:03:55 +01:00
Benjamin Otte
e60da87a94 testsuite: Update for screen => display property changes 2017-10-31 19:00:56 +01:00
Benjamin Otte
2740f5eeee inspector: Fix property being "display" now 2017-10-31 18:37:48 +01:00
Matthias Clasen
a3cffa5072 Drop GdkScreen from GdkDevice apis
Returning the screen does not add anything here and
GdkScreen is going away.
2017-10-31 12:30:38 -04:00
Matthias Clasen
f8cad19829 dnd: Drop GdkScreen from apis
Drop the screen argument from gdk_dnd_find_window_for_screen
and rename the function to gdk_dnd_find_window. The screen
argument does not add anything here since the drag context
is already tied to the display. Update all backends, and
update all callers.
2017-10-31 10:18:10 -04:00
Timm Bäder
c97e2af23b widget: Make invalidation coordinates widget-relative
Consider the coordinates passed to gtk_widget_queue_draw_region to be
relative to @widget's origin, not its parent. That implies passing
priv->allocation or priv->clip to _queue_draw_region of a widget means
using its parent as @widget.

This fixes GtkScrolledWindow overshoot invalidation, which assumed the
coordinates to be widget-relative and not parent-relative.
2017-10-31 10:10:53 +01:00
Timm Bäder
3dca25b6e4 textview: Remove {top,bottom,left,right}_border
These are now the same as the equivalent _margin values.
2017-10-31 10:10:53 +01:00
Timm Bäder
3c0657f0fd textview: Stop fiddling with CSS padding
This is done automatically now and doing it again here means we apply
the padding twice.
2017-10-31 10:10:53 +01:00
Timm Bäder
45c03a9263 widget: Rename color variable to match the color 2017-10-31 10:10:53 +01:00
Timm Bäder
23a1328fda viewport: Simplify child allocation
allocation->x and allocation->y are always 0
2017-10-31 10:10:53 +01:00
Timm Bäder
f576002e9e widget: Improve get_request_mode vfunc docs 2017-10-31 10:10:53 +01:00
Timm Bäder
099990fcbe gskpango: Remove GDK api macros
They only belong on public functions.
2017-10-31 10:10:53 +01:00
Benjamin Otte
3967072c66 docs: Fix up some places that still said screen instead of display 2017-10-31 08:25:37 +01:00
Benjamin Otte
ccd52a410e settings: Remove gtk_settings_get_for_screen()
All users of it are gone now.
2017-10-31 08:25:37 +01:00
Benjamin Otte
648d040395 widget: Remove gtk_widget_get_screen()
Replace the remaining users with "correct" code that does not need that
function anymore.
2017-10-31 08:25:37 +01:00
Benjamin Otte
4a43229d0b invisible: Make it use display, not screen 2017-10-31 08:25:37 +01:00
Benjamin Otte
b9504a547a mountoperation: Move from screen to display 2017-10-31 08:25:37 +01:00
Benjamin Otte
07164e098a window: Turn gtk_window_set_screen() into gtk_window_set_display()
And have a priv->display instead of a priv->screen.

Includes turning gtk_menu_set_screen() into gtk_menu_set_display(),
because that function just forwards to its window.
2017-10-31 08:25:37 +01:00
Chun-wei Fan
b0dc8514e4 gdk/win32: Fix build after GdkScreen and settings changes
Implement GdkDisplay->get_setting() using the existing
_gdk_win32_screen_get_setting() and get rid of GdkScreen->get_setting()
as a result, to follow the changes in GDK.

Also, since we don't emit settings events in the Windows GDK backend,
but we acquire settings to print using GDK_SETTING, drop all references
related to GDK_SETTING since that is now removed.  Update the debug
strings that are print out as a result
(gdk_screen_get_setting->gdk_display_get_setting).

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-10-31 14:50:24 +08:00
Benjamin Otte
941a621ea9 styleprovider: Fix fallout from merge
StyleProvider should inherit from GObject, not from itself.
2017-10-31 06:17:40 +01:00
Benjamin Otte
e8053622eb gtk: Fix debug build
It seems I didn't have debug builds enabled and forgot some
return_if_fail()s when doing the last patch.
2017-10-31 06:10:26 +01:00
Piotr Drąg
0bf88db6cf Update POTFILES.in 2017-10-31 05:28:36 +01:00
Benjamin Otte
83fb7a649f css: Merge GtkStyleProviderPrivate into GtkStyleProvider
This is just lots of renaming.

The interface remains private, so the public API does not change, apart
from removing the definition of the Interface object to avoid
subclassing.
2017-10-31 04:33:54 +01:00
Benjamin Otte
c8986e66ce window: Remove gtk_window_get_screen()
It's identical to gtk_widget_get_screen(), just use that one.
2017-10-31 04:33:54 +01:00
Benjamin Otte
1c36c6ed4d widget: Remove gtk_widget_has_screen()
All widgets always have a screen (or display).
2017-10-31 04:33:11 +01:00
Matthias Clasen
43b0fcb727 Forgotten file 2017-10-30 23:06:17 -04:00
Matthias Clasen
ba91af62ad Drop gdk_app_launch_context_set_screen
This function is not necessary, since we already know the display.
2017-10-30 23:01:34 -04:00
Matthias Clasen
c20d217d8f printoperation: Stop using gdk_app_launch_context_set_screen
It is not necessary.
2017-10-30 23:01:01 -04:00
Matthias Clasen
f0189aecbc Drop gdk_event_set/get_screen
These functions have been replaced by display variants.
2017-10-30 22:22:00 -04:00
Matthias Clasen
f63d01b782 gtk: Stop using gdk_event_get_screen
Use gdk_event_get_display instead.
2017-10-30 22:22:00 -04:00
Matthias Clasen
525e2a7944 gdk: Stop using gdk_event_set_screen
Use gdk_event_set_display instead.
2017-10-30 22:22:00 -04:00
Matthias Clasen
c74ee7a159 Add gdk_event_get/set_display
The GdkScreen apis are going away, this is a replacement.
2017-10-30 22:22:00 -04:00
Benjamin Otte
ecd5b399a4 icontheme: Use GdkDisplay instead of GdkScreen 2017-10-31 03:05:55 +01:00
Benjamin Otte
9151e0b9f5 stylecontext: Port to use display instead of screen 2017-10-31 03:05:54 +01:00
Benjamin Otte
a2e625692e gtk-demo: Remove calls to gtk_style_context_reset_widgets()
Those calls have been unneeded for a long time - since we gained the
changed signal on the StyleProvider in fact.
2017-10-31 03:05:54 +01:00
Matthias Clasen
5c2e254f65 Drop gdk_pango_context_get
This is a trivial convenience api, and it is not used in gtk.
2017-10-30 21:36:37 -04:00
Matthias Clasen
ffb3bc438e tests: Stop using gdk_pango_context_get.
We can just as well get the display ourselves.
2017-10-30 21:35:48 -04:00
Matthias Clasen
1f114b1257 Drop gdk_pango_context_get_for_screen
GdkScreen is going away, and this api is unused in gtk.
2017-10-30 21:29:48 -04:00
Benjamin Otte
cb0c7d6cf3 immulticontext: Remove unused variable 2017-10-31 00:44:35 +01:00
Benjamin Otte
44614394e6 widget: Turn screen-changed signal into display-changed 2017-10-31 00:43:11 +01:00
Benjamin Otte
59cfd56365 settings: Don't store the screen in the settings object
Screens are going away.

Code that still needs the screen just gets it from the display.
2017-10-31 00:42:32 +01:00
Matthias Clasen
9e5f4f94b3 immulticontext: Avoid GdkScreen api
No need for it here either.
2017-10-30 19:30:29 -04:00
Matthias Clasen
297889e080 immodule: Avoid GdkScreen api
Another place where it is not needed.
2017-10-30 19:27:36 -04:00
Matthias Clasen
24903e3fab modules: Avoid GdkScreen api
No need for this here either.
2017-10-30 19:19:38 -04:00
Matthias Clasen
0cd864283f assistant: Avoid GdkScreen api
There is no need at all here to use gtk_settings_get_for_screen.
2017-10-30 19:19:38 -04:00
Matthias Clasen
a1a5f556cb Some documentation updates
Document gtk_settings_get_for_display instead of for_screen.
2017-10-30 18:59:41 -04:00
Matthias Clasen
154117218c Drop gdk_screen_get_setting
It has been replaced by gdk_display_get_setting.
2017-10-30 17:03:09 -04:00
Matthias Clasen
d9809df8ce wayland: Stop using gdk_screen_get_setting
Use gdk_display_get_setting instead.
2017-10-30 17:01:46 -04:00
Matthias Clasen
51ba0b41a2 x11: Stop using gdk_screen_get_setting
Use gdk_display_get_setting instead.
2017-10-30 17:01:18 -04:00
Matthias Clasen
378c7648ba Drop the GdkScreen get_setting vfunc
It is unused.
2017-10-30 16:53:17 -04:00
Matthias Clasen
42d2b50515 x11: Don't set the GdkScreen get_setting vfunc
We are not using it anymore.
2017-10-30 16:52:56 -04:00
Matthias Clasen
2a4da2cfcd wayland: Don't set the GdkScreen get_setting vfunc
We are not using it anymore.
2017-10-30 16:52:39 -04:00
Matthias Clasen
2a3e7e93d3 broadway: Don't set the GdkScreen get_setting vfunc
We are not using it anymore.
2017-10-30 16:52:21 -04:00
Matthias Clasen
dea277520f quartz: Don't set the GdkScreen get_setting vfunc
We are not using it anymore.
2017-10-30 16:51:59 -04:00
Matthias Clasen
96f1e83877 mir: Don't set the GdkScreen get_setting vfunc
We don't use it anymore.
2017-10-30 16:51:38 -04:00
Matthias Clasen
e821c2fc2f gtk: Avoid using gdk_screen_get_setting
We can get the setting from the display instead.
2017-10-30 16:51:20 -04:00
Matthias Clasen
f9cc7ca140 Add gtk_settings_get_for_display
This will help us avoiding screens in many places.
2017-10-30 16:50:14 -04:00
Matthias Clasen
6dbb1e20a6 Stop using the GdkScreen get_setting vfunc
We can now call the GdkDisplay implementation instead.
2017-10-30 16:45:36 -04:00
Matthias Clasen
f9dacd6de0 use the GdkDisplay get_setting vfunc
Instead of calling the GdkScreen implementation, use our
own vfunc now.
2017-10-30 16:44:47 -04:00
Matthias Clasen
19157c5bf4 x11: Implement the GdkDisplay get_setting vfunc
Just call the GdkScreen vfunc.
2017-10-30 16:44:18 -04:00
Matthias Clasen
4ffe9ca70c wayland: Implement the GdkDisplay get_setting vfunc
Just call the GdkScreen vfunc.
2017-10-30 16:43:50 -04:00
Matthias Clasen
729aeef6ab broadway: Implement the GdkDisplay get_setting vfunc
This is just a trivial implementation.
2017-10-30 16:43:13 -04:00
Matthias Clasen
c63c672ba8 quartz: Implement the GdkDisplay get_setting vfunc
Just call the GdkScreen vfunc.
2017-10-30 16:42:49 -04:00
Matthias Clasen
a9ea420b65 mir: Implement the GdkDisplay get_setting vfunc
Just call the corresponding screen vfunc.
2017-10-30 16:41:59 -04:00
Matthias Clasen
f2055bfb7b gdk: Add a get_setting vfunc to GdkDisplay
This will eventually replace the GdkScreen vfunc of the
same name.
2017-10-30 16:39:49 -04:00
Matthias Clasen
a518072e87 Remove GdkScreen api usage
Use GdkDisplay equivalents where they exist.
2017-10-30 16:06:42 -04:00
Matthias Clasen
1f22c6532e Store the display inside GtkSettings
This is a step towards dropping GdkScreen.
2017-10-30 15:56:03 -04:00
Matthias Clasen
209f24f962 Remove gdk_setting_get
This is a minor convenience api, and it is unused.
2017-10-30 15:31:02 -04:00
Matthias Clasen
e99687194a Forgotten files
Clean up the setting event from headers and docs too.
2017-10-30 10:08:32 -04:00
Matthias Clasen
10ba84a6a9 gdk: Drop settings events
We are not emitting these events anymore, so lets remove them
from the api. The GdkSettingAction enum is moved to xsettings-client.c
where its only use remains.
2017-10-30 09:49:02 -04:00
Matthias Clasen
7e8e4dcf76 x11: Stop emitting settings events
Not needed anymore.
2017-10-30 09:49:02 -04:00
Matthias Clasen
5d4c979425 wayland: Stop emitting setting events
Not needed anymore.
2017-10-30 09:49:02 -04:00
Matthias Clasen
627c0ae549 quartz: Stop emitting setting events
Not needed anymore.
2017-10-30 09:49:02 -04:00
Matthias Clasen
d3e45cf087 mir: Stop emitting setting events
Not needed anymore.
2017-10-30 09:49:02 -04:00
Matthias Clasen
2926669a9b gtk: Stop handling settings events
We don't need this anymore, now that we use the ::setting-changed
signal.
2017-10-30 09:48:51 -04:00
Matthias Clasen
a8aff6ef8f gtk: Connect to GdkDisplay::setting-changed
We still handle the setting event, for now.
That will be removed in a future commit.
2017-10-30 09:29:54 -04:00
Matthias Clasen
8686526b4a x11: Emit GdkDisplay::setting-changed
We still generate the event too.
That will be removed in a future commit.
2017-10-30 09:29:09 -04:00
Matthias Clasen
3c0614994f wayland: Emit GdkDisplay::setting-changed
We still generate the event too.
That will be removed in a future commit.
2017-10-30 09:28:29 -04:00
Matthias Clasen
36a94b49c7 quartz: Emit GdkDisplay::setting-changed
We still generate the event too.
That will be removed in a future commit.
2017-10-30 09:27:59 -04:00
Matthias Clasen
bb6c8a475f mir: Emit GdkDisplay::setting-changed
We still generate the event too.
That will be removed in a future commit.
2017-10-30 09:23:16 -04:00
Matthias Clasen
61d13b0f14 gdk: Add settings api to GdkDisplay
This commit adds gdk_display_get_setting and a ::setting-changed
signal, which will replace the settings event we use now. Note
that I've done away with the GdkSettingAction argument that the
event has, since we are not using it at all.
2017-10-30 09:21:47 -04:00
Lukas K
15491cf6e4 make GDK_DEBUG=opengl work on win32 2017-10-30 14:39:55 +08:00
Chun-wei Fan
64a489adbf input/IME: Defer the emit of the "commit" signal
On Windows, when IME is used, each keystroke results in the
WM_IME_COMPOSITION event being sent first.  This means that in our case
when one decides on to accept the input that is in the preedit buffer,
we first get from Windows the WM_IME_COMPOSITION event
(where we emit the commit signal), followed by the WM_IME_ENDCOMPOSITION
event (where we emit the pair of preedit-changed and preedit-end
signals).

Since commit f11f989 (GtkEntry: Remove recompute idle), we do the input
recomputation directly, this will cause a pair of "Pango-WARNING:
Assertion failed: (index >= 0 && index <= layout->length)" being shown,
as gtkentry.c's priv->preedit_length and priv->preedit_cursor was unable
to be reset to 0 in time as a result of the recomputation triggered by
the commit being done before the reset of priv->preedit_length and
priv->preedit_cursor (which are no longer valid as we essentially say
that we are done with the preedit buffer).

As we could only acquire the final string that was entered in this
preedit session when we handle the WM_IME_COMPOSITION event, fix this by
saving up the final string we acquire from Windows IME in UTF-8 when we
handle the WM_IME_COMPOSITION event from Windows, and emit the commit
signal with that string after we emit the preedit-changed and
preedit-end signals when we handle the WM_IME_ENDCOMPOSITION event from
Windows, which comes afterwards.

Also fix the formatting of the code around the parts of the files that
was changed.

https://bugzilla.gnome.org/show_bug.cgi?id=787142
2017-10-30 14:33:06 +08:00
Benjamin Otte
916981f66e cssimagescaled: Remove now unused struct member 2017-10-30 02:55:46 +01:00
Benjamin Otte
f29b7744bb gdk: Remove leftovers from GdkScreen::size-changed removal 2017-10-30 02:30:44 +01:00
Benjamin Otte
481189867a inspector: Use the new monitor change signals
And on't use the GdkScreen anymore now that the GdkDisplay provides all
the information we care about.
2017-10-30 02:30:44 +01:00
Benjamin Otte
d5155ef982 screen: Remove unused vfuncs 2017-10-30 02:30:44 +01:00
Timm Bäder
91f40eb088 widget: Make parent property read-only 2017-10-29 18:03:10 +01:00
Timm Bäder
09239eb670 widget: Don't notify :parent when rearranging widgets
gtk_widget_reposition_after is also valid to call if the widget already
has a parent, so don't notify the parent property in that case.
2017-10-29 17:27:53 +01:00
Timm Bäder
ff6cd8f75e widget: Remove parent-set signal
When a widget unparents its child widget manually in finalize, this can
lead to the parent-set signal being emitted for those child widgets. The
parent already has a ref_count of 0 though, so it can't be used in a
meaningful way. Specifically, emitting the signal will already try to
ref the parent which prints a critical.

Since GtkWidget already has a "parent" property, one can use its notify
signal instead to get notified when the parent widget changes.
2017-10-29 17:24:12 +01:00
Timm Bäder
0be4166b89 inspector: Remove node != NULL check from recorder model
We use NULL to remove the selection.
2017-10-29 13:44:12 +01:00
Timm Bäder
8b0f60bb6f checkbutton: Destroy indicator widget when draw-indicator is FALSE 2017-10-29 13:27:03 +01:00
Benjamin Otte
457bd2b9ee cssimagescaled: Just return the computed image
... instead of returning either itself with uncomputed images or a
copy of itself with only one computed image and lots of other
uncomputed images that we're never gonna look at again.

This fixes expressions like -gtk-scaled(-gtk-recolor(...),-gtk-recolor(...))
which Adwaita uses for checkmarks and bullets.
2017-10-29 06:41:12 -04:00
Matthias Clasen
598d22d194 Avoid creating trivial shadow nodes
The Vulkan renderer creates a fallback surface for each shadow
node, even if we end up not rendering anything to it. Avoiding
this is a nice optimization.
2017-10-28 16:10:46 -04:00
Matthias Clasen
99d3d31314 Adwaita: Use scaled icons for checks and bullets
This gives us crip rendering on hidpi screens.
2017-10-28 15:22:54 -04:00
Matthias Clasen
1dbc50f3f8 Adwaita: Add scaled version of bullets and checks
We use these assets as .symbolic.png now, so for hidpi, we
should provide @2 variants.
2017-10-28 15:20:11 -04:00
Matthias Clasen
ca7c148687 gsk: Apply scale factor for fallback rendering
This fixes blurry text and icons whenever we apply shadows
in a hidpi window. Shadow nodes are the last ones that we
still use fallback for, and this was causing us to render
the text blurry.
2017-10-28 14:38:49 -04:00
Matthias Clasen
439e1054c4 Triival cleanup
No need to go to the window, we store a copy of the scale factor
in the render pass object.
2017-10-28 14:38:21 -04:00
Matthias Clasen
a48015d3c6 inspector: Show details for shadow nodes
One of the few node types that we're not detailing yet.
2017-10-28 14:30:03 -04:00
Matthias Clasen
a0bbd14325 gsk: Scale glyphs in the glyph cache
Pass a scale factor when caching glyphs or looking them
up in the cache. The glyphs in the cache are rendered
with subpixel precision determined by the scale. Update
all callers to pass a scale factor according to the window
scale. This lets us render crisp glyphs on hidpi systems.
2017-10-28 13:13:31 -04:00
Matthias Clasen
6560961c59 vulkan: Handle changing window scale
The code that checks for the proper size of the our swapchain
was not taking window scale fully into account. With this change,
setting the window scale to 2 in the inspector causes the window
to grow and rendering to be scaled up as expected, with Vulkan,
in the same way it already is with cairo.
2017-10-28 11:57:53 -04:00
Matthias Clasen
dc0570cc17 gsk: Drop the GskRenderer::scale-factor property
This is can always be obtained from the window that is already
associated with the renderer, no need to maintain a separate
property for it.
2017-10-28 11:49:39 -04:00
Emmanuele Bassi
02eb344950 x11: Query whether we have GLX support
Epoxy 1.4 has new ad hoc API that we can use to check whether GLX is
available on the current system.

If we didn't use this API, we'd have to manually dlopen libGL (or its
equivalent on different OSes) and check if it had GLX symbols; since
Epoxy already does all of this internally, we can simply ask it instead.

https://bugzilla.gnome.org/show_bug.cgi?id=775279
2017-10-28 09:46:15 -04:00
Emmanuele Bassi
183538c2e2 Bump up the dependency on libepoxy
We are going to use new API to detect whether or not GLX is available
before calling GL API.

https://bugzilla.gnome.org/show_bug.cgi?id=775279
2017-10-28 09:46:15 -04:00
Timm Bäder
50d9484083 Adwaita: Add back visible focus outlines for list rows 2017-10-28 11:46:35 +02:00
Timm Bäder
4dee08dd52 sizerequest: Don't pass uninitialized values to measure
The GtkWidgetClass::measure vfunc is not required to assign a value to
any of the (out) parameters, so we need to initialize the locals we pass
to it, otherwise we can end up with a garbage size request.
2017-10-28 11:42:08 +02:00
Federico Mena Quintero
559d32420c GtkPathBar: Centralize handling of outstanding cancellables
The path bar would crash if we disposed it before all pending I/O
operations had finished.  Now we remember all the outstanding
operations directly in the GtkPathBarPrivate, and deal with them
consistently.
2017-10-27 17:18:38 -05:00
Matthias Clasen
ea91ab1d99 gsk: Make text nodes more compact
The copy of the PangoGlyphString we do here was showing up
in some profiles. To avoid it, allocate the PangoGlyphInfo array
as part of the node itself. Update all callers to deal with
the slight api change required for this.
2017-10-27 17:13:40 -04:00
Olivier Fourdan
999848e0c6 wayland: scale down reported monitor geometry
According to the documentation, gdk_monitor_get_geometry() reports the
monitor geometry in ”application pixels”, not in ”device pixels”,
meaning that the actual device resolution needs to be scaled down by the
scale factor of the output.

x11 backend does that downscaling, whereas Wayland backend did not,
causing a discrepancy depending on the backend used.

https://bugzilla.gnome.org/show_bug.cgi?id=783995
2017-10-27 16:01:38 -04:00
Simon McVittie
bdd2ca9a60 GtkHeaderBar: Reconsider buttons if any tiling state changes
Looking at the 1-bit "tiled or not?" state is not necessarily
enough.

Signed-off-by: Simon McVittie <smcv@debian.org>

https://bugzilla.gnome.org/show_bug.cgi?id=789357
2017-10-27 12:14:44 -02:00
Drew DeVault
1b279e3d4a Wayland: Implement KDE's SSD protocol
If the compositor prefers server-side decorations and the client doesn't
customize the title bar, we disable client-side decorations and let the
compositor know. Otherwise, we continue to use client-side decorations.

Signed-off-by: Drew DeVault <sir@cmpwn.com>

https://bugzilla.gnome.org/show_bug.cgi?id=781909
2017-10-26 15:51:56 -04:00
Olivier Fourdan
028e39d6ee wayland: Do not constrain saved window size
Under Wayland, an xdg_surface.configure with size 0x0 means it's up to
the client to set its size.

When transitioning from maximized state to un-maximized, the Wayland
compositor will send such an 0x0 configure so that the client can
restore its original size.

However, the original size was already constrained, so re-applying
size constrains can lead to a smaller size when using size increments.

Avoid this caveat by not applying size constrains when we are restoring
the original size.

https://bugzilla.gnome.org/show_bug.cgi?id=777072
2017-10-26 15:49:42 -04:00
Florian Müllner
07beb6dba2 appchooserwidget: Don't limit application list unconditionally
As documented, GtkAppChooser is "typically [used] for the purpose of
opening a file". However given that applications that support neither
opening files nor URLs are filtered out, the chooser is not actual
useful for any other (atypical) usage. Change that by only applying
the filtering if a content-type was set, and use the full unfiltered
list otherwise.

https://bugzilla.gnome.org/show_bug.cgi?id=789327
2017-10-26 06:18:01 -04:00
Christian Persch
29d1cc2fcd actionable: Allow all detailed action name formats
Use g_action_parse_detailed_name() to enable use of this API
for actions with non-string parameter.

https://bugzilla.gnome.org/show_bug.cgi?id=788841
2017-10-26 06:16:59 -04:00
Marek Kasik
fda120ceec printing: Install printbackends
Add "install : true" for each printbackend so that they are installed.

https://bugzilla.gnome.org/show_bug.cgi?id=789185
2017-10-26 09:49:13 +02:00
Matthias Clasen
db49d12fcf wayland: Don't spew warnings for blank cursors
We were unnecessarily spewing warnings when blank cursors
were getting a new scale set. Standardize on "none" as the
name for blank cursors, and avoid the warning.

https://bugzilla.gnome.org/show_bug.cgi?id=775217
2017-10-26 00:29:10 -04:00
Matthias Clasen
d2d8fb0528 icon-browser: Make non-symbolic icons visible again
The commit that added the scalable size to the details dialog
inadvertedly caused all icons to be hidden. No need to do that.
2017-10-25 23:58:09 -04:00
Matthias Clasen
5bdc67f3f6 Drop gtk_cell_renderer_get_size
This function has been deprecated since 3.0, time to drop it.
2017-10-25 22:27:19 -04:00
Matthias Clasen
fb8589671d Drop unused includes of gtkrender.h
We don't use the gtk_render apis internally anymore.
Drop these includes so it is clear where the remaining
uses are.
2017-10-25 21:46:46 -04:00
Matthias Clasen
f8e74e8f04 Some minimal theme fixes for focus drawing
We don't want focus rectangles everywhere, so set them up
explicitly for the widgets where we want them, and only
if focus(visible) is set.
2017-10-25 18:35:32 -04:00
Matthias Clasen
46d4deeb1e Remove a shortcut in gtk_widget_set_focus_child
Since focus can now be represented by more than one state,
just looking at the focus_child is no longer sufficient - we
may fail to propagate :focus(visible) if we do so. For now,
just remove the shortcut and always do the work.
2017-10-25 18:26:06 -04:00
Matthias Clasen
0d4bd034c6 Always draw outline
We can now control with CSS where there the outline
is drawn.
2017-10-25 17:59:00 -04:00
Matthias Clasen
4209c1762d Support the new state in CSS selectors
Make :focus(visible) match the new state.
2017-10-25 17:59:00 -04:00
Matthias Clasen
8b15eabad2 Set the new state flag
For now, we only set the new visible focus state
on the focus widget, when we have visible focus.
Later on, we will allow setting it on other widgets.
2017-10-25 17:49:43 -04:00
Matthias Clasen
18b8a7f91f Add a state flag for visible focus
The new flag is called GTK_STATE_FLAGS_FOCUS_VISIBLE.
2017-10-25 17:49:43 -04:00
Andrea Azzarone
b6c41e57e2 gdk: Clear GL context when window is withdrawn
Some clients (e.g. gnome-online-accounts) quickly unmap and map
a window. With some backends the backend surface will be replaced
causing the application to crash because the GL context is still
using the old surface. Clearing the GL context when a window is
withdrawn fixes this.

https://bugzilla.gnome.org/show_bug.cgi?id=789141
2017-10-25 09:37:36 -04:00
Timm Bäder
0d82de585c Adwaita: Remove focus outlines from scrollbars and scales
gtk3 didn't have focus outlines for these, so remove them for now.

Sorry lapo.
2017-10-25 09:34:52 +02:00
Chun-wei Fan
20fc576275 gtk/gtkcssenumvalue.c: Deal with __builtin_popcount on MSVC
__builtin_popcount is a GCCism that is used to count the number of bits
involved, which means any non GCC/CLang compilers won't like the code,
meaning that on MSVC builds we must implement it ourselves.

We first use __cpuid() to check whether the CPU supports the popcount
instruction, if it does, we use the __popcnt intrinsic, otherwise
(untested, since I don't have a system that does not have the
instruction), we use the suggested hacks at
http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-10-25 00:53:37 +08:00
Chun-wei Fan
5b9177f53b testsuite/gsk/test-render-nodes.c: Include <stdlib.h>
This is so that the compiler won't complain about our use of exit()

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-10-25 00:50:21 +08:00
Chun-wei Fan
a601e5d10e gtk/gtkwin32theme.c: Include gdk/gdkprivate.h
We still need to access the GdkEvent structure here directly, as using
the GdkEvent getters is likely not worth the trouble involved.

Please see Emmanuele's comment (#97) of the following bug URL.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-10-25 00:48:01 +08:00
Chun-wei Fan
006207e95e gdk/win32/gdkwindow-win32.c: Fix gdk_win32_window_set_icon_list()
The list of surfaces passed into the function may be NULL, so don't try
to initialize the surfaces if it is so, to avoid a crash.

Also, remove the cast to GdkPixbuf* for getting surfaces->data, as we
are already using a cairo_surface_t*.

https://bugzilla.gnome.org/show_bug?id=773299
2017-10-25 00:46:50 +08:00
Chun-wei Fan
a65730f38f modules/input/gtkimcontextime.c: Fix build
The GdkEvent structure became opaque, so we need to update the code so
that we use the getters and setters here.

https://bugzilla.gnome.org/show_bug?id=773299
2017-10-25 00:46:11 +08:00
Benjamin Otte
373b407bd2 Fix build
Don't do two things at once and forget to run ninja before pushing.
2017-10-24 18:26:08 +02:00
Benjamin Otte
8549e62d85 Add default return values to switch statements
We are using g_assert_not_reached() without doing anything, assuming it
aborts the program. In release builds however, it is ignored.
2017-10-24 18:21:03 +02:00
Emmanuele Bassi
46f475664d Add a return value
When building with G_DISABLE_ASSERT, the g_assert_not_reached()
statement won't do anything, and we're going to fall through, and the
compiler will emit a warning that we're not returning anything from a
function with a return value.
2017-10-24 16:58:06 +01:00
Matthias Clasen
6c74a8c755 inspector: Show more render node details
Should clip and container node details.
2017-10-24 15:24:23 +02:00
Chun-wei Fan
4d44865f42 gdk/win32/gdkwindow-win32.c: Fix build
Make up for the missed commas...
2017-10-24 13:56:29 +08:00
Benjamin Otte
e1572e003a vulkan: No need to redefine gl_PerVertex
The compiler has those predefined, so use them.
2017-10-24 01:29:28 +02:00
Benjamin Otte
e4dbff6bfc vulkan: Delete unused shaders
These have been renamed to .frag/.vert, apparently the originals weren't
deleted.
2017-10-24 01:29:28 +02:00
Matthias Clasen
4f6cee3ee3 Mention pixbufs in the migration guide
They are being phased out.
2017-10-23 18:33:15 +02:00
Alexander Larsson
96b04836d8 Drop all uses of GdkPixbufAnimation in the gtk APIs
These are basically animated gifs, and don't fit well in how
modern things animate.
2017-10-23 16:56:49 +02:00
Benjamin Otte
3a8f2ae64f build: Warn about ignored qualifiers
https://bugzilla.gnome.org/show_bug.cgi?id=789351
2017-10-23 16:30:57 +02:00
Emmanuele Bassi
dd4c800542 Remove unnecessary const
We return a scalar value, so we don't need it to be constant.

https://bugzilla.gnome.org/show_bug.cgi?id=789351
2017-10-23 15:23:09 +01:00
Alexander Larsson
b1250935a0 GtkIconHelper: Remove unused code 2017-10-23 15:34:17 +02:00
Alexander Larsson
0089e4ad58 Drop pixbuf support in IconHelper and ImageDefinition
These are no longer used, instead we always covert to surface as
early as possible and drop the pixbuf.

This means we never store both the pixbuf and the surface at
for any longer time, which is wasteful. Also, its one step further
to drop GdkPixbufs from generic use in our APIs.
2017-10-23 15:28:33 +02:00
Alexander Larsson
61b2ab5d90 GtkDragSource: Don't use gtk_image_definition_new_pixbuf
We want to get rid of pixbuf image definitions.

Long term this should probably be gtk_drag_source_set_icon_surface instead.
2017-10-23 15:28:33 +02:00
Alexander Larsson
e205ae9fc1 CellRendererPixbuf: Never store pixbufs
Rather than store the pixbufs as themselves we immediately convert
them to surfaces. In the uncommon case that a pixbuf is read back
from the renderer we generate a new one from the surface data.
2017-10-23 15:28:33 +02:00
Alexander Larsson
2b194089dd GtkImage: Drop support for storing pixbufs
This drops the pixbuf property and the pixbuf getters. We keep
gtk_image_new/set_from_pixbuf, but these are small helpers that
immediately convert to a surface, and there is no way to later get
back the pixbuf you passed in.

The from file/resource codepaths are also changed to load a surface
instead of a pixbuf.
2017-10-23 15:28:33 +02:00
Timm Bäder
7ee2ab32b8 window: Use correct destroy notify for icon list
The list contains cairo_surface_t instances now, not GdkPixbuf anymore.
2017-10-23 14:43:47 +02:00
Timm Bäder
134ba2ebf7 icontheme: Silence some compiler warnings 2017-10-23 14:23:52 +02:00
Matthias Clasen
493f5d6b18 dnd: Add more surface apis
The new function, gtk_drag_source_set_icon_surface, is for setting
a drag source icon without using GdkPixbuf.
2017-10-23 14:16:31 +02:00
Alexander Larsson
d3fc937b4d GtkWindow/GdkWindow: Finish converting icons to surfaces
There were some parts left, for instance gdk_window_set_icon_list.
2017-10-23 13:45:25 +02:00
Alexander Larsson
6f8644ad25 GtkEntry: Use surfaces, not pixbufs for bitmapped icons 2017-10-23 13:45:25 +02:00
Alexander Larsson
7a0ce9804f aboutdialog: Use set_boxed on surface
cairo_surface_t is boxed, not a GObject.
2017-10-23 13:45:25 +02:00
Matthias Clasen
dfaed90f67 inspector: show color matrix node details
Show the matrix and the offset for color matrix nodes.
2017-10-23 11:47:23 +02:00
Matthias Clasen
a072f9fc06 Use a color matrix for symbolic icons
The recoloring of symbolic icons is just a color matrix
operation.
2017-10-23 11:47:17 +02:00
Matthias Clasen
e4cdbef092 Allow passing a color matrix when rendering icons
This will be used for symbolic icons.
Update all callers.
2017-10-23 11:44:52 +02:00
Matthias Clasen
b543257e42 icon helper: Use cached textures
Use a cached texture for themed icons if we can.
Currently, we only do this for non-symbolic icons.
2017-10-23 08:07:35 +02:00
Matthias Clasen
02db8ccd89 icon theme: Add a texture cache
Return cached textures for icons. This lets us avoid duplicate
texture uploads for icons whose surfaces we already cache.
2017-10-23 08:07:35 +02:00
Matthias Clasen
6c7d9c6445 recent manager: Remove dead code
These functions are no longer used.
2017-10-23 08:07:08 +02:00
Timm Bäder
9f1716edaa testsuite: Disable vulkan tests when vulkan isn't available
They are always going to fail in that case anyway.
2017-10-23 08:02:57 +02:00
Timm Bäder
f59e5b2b31 adwaita: Remove focus outlines from textviews 2017-10-23 07:58:07 +02:00
Matthias Clasen
8eea3e2ddd window: Correct the property definition for icon
cairo surfaces are boxed types, not objects.
2017-10-23 07:39:12 +02:00
Matthias Clasen
85503a8f95 about dialog: Correct the property definition for logo
cairo surfaces are boxed types, not objects.
2017-10-23 07:38:36 +02:00
Matthias Clasen
e584a70820 Drop gtk_drag_set_icon_pixbuf from the docs too
It no longer exists.
2017-10-23 06:21:59 +02:00
Matthias Clasen
8b84df422b Drop gtk_recent_info_get_icon
We are moving away from pixbuf-based apis.
Use gtk_recent_info_get_gicon instead.
2017-10-23 06:21:59 +02:00
Matthias Clasen
b940872005 Add gtk_image_get_surface to the docs
This was missed.
2017-10-23 05:59:30 +02:00
Matthias Clasen
b775238bc4 Document new clipboard apis
These are surface-based replacements for some pixbuf apis.
2017-10-23 05:58:54 +02:00
Matthias Clasen
65408a0b0c Document new selection apis
Document the new cairo surface-based apis for GtkSelection.
2017-10-23 05:58:54 +02:00
Matthias Clasen
50006c229f Drop gtk_drag_set_icon_pixbuf
We are moving away from GdkPixbuf in the api.
Use surface-based replacements instead.
2017-10-23 05:58:54 +02:00
Matthias Clasen
b72cda47fa Use surface apis in testnotebookdnd
Stop using gtk_drag_set_icon_pixbuf.
This api is going away.
2017-10-23 05:58:54 +02:00
Matthias Clasen
89ad359628 tests: Use surface apis in testimage
Stop using gtk_drag_set_icon_pixbuf.
This api is going away.
2017-10-23 05:58:54 +02:00
Matthias Clasen
ff6698cf5f gtk-demo: Use surface apis in the clipboard demo
Stop using gtk_drag_set_icon_pixbuf.
This api is going away.
2017-10-23 05:58:54 +02:00
Matthias Clasen
a783470491 tests: Convert dnd test to surface apis
Stop using gtk_drag_set_icon_pixbuf in testdnd2.
This api is going away.
2017-10-23 05:58:54 +02:00
Matthias Clasen
27e89c69cd selection: Add another surface api
Of course, we need a getter too.
2017-10-23 05:58:54 +02:00
Alexander Larsson
a4f7d0c0e0 GtkAboutDialog: Use surfaces for logo 2017-10-22 23:03:19 +02:00
Alexander Larsson
d22c91127f gtk_image_get_surface: Add docs 2017-10-22 22:57:55 +02:00
Alexander Larsson
aa873e7709 GtkWindow: Use cairo_surface_t for icons 2017-10-22 22:57:21 +02:00
Matthias Clasen
d8a4503c53 recent chooser: Don't use pixbuf based apis
Use gtk_drag_set_icon_surface here.
2017-10-22 22:23:01 +02:00
Matthias Clasen
6c57432e79 recent manager: always return a GIcon
Make gtk_recent_info_get_gicon return a useful GIcon in
all cases.
2017-10-22 22:22:55 +02:00
Matthias Clasen
ad00108678 selection: Add surface based apis
Add gtk_selection_data_set_surface.
2017-10-22 22:22:44 +02:00
Matthias Clasen
e5ce3144e0 image: Add surface based apis
Add gtk_image_get_surface.
2017-10-22 22:22:37 +02:00
Matthias Clasen
8f6fbc9c24 clipboard: Add surface apis
Add gtk_clipboard_set_surface and gtk_clipboard_wait_for_surface.
2017-10-22 22:22:31 +02:00
Matthias Clasen
9e78fbaac4 Fix compiler warnings
I overlooked these when I recently did the render node api changes.
2017-10-21 15:17:36 +02:00
Timm Bäder
afea254526 overlay: Remove unused NULL-check 2017-10-20 15:12:28 +02:00
Timm Bäder
04c550bfb5 window: Make sure we query the window size before size-allocate'ing 2017-10-20 14:56:29 +02:00
Timm Bäder
73b52665e6 gdkevents: Remove gtk_widget_set_events mention
Doesn't exist anymore.
2017-10-20 14:56:29 +02:00
Timm Bäder
09750f9937 renderborder: Don't snapshot all-invisible borders
If all of the borders have an alpha of 0, we don't need to snapshot
anything.
2017-10-20 14:56:29 +02:00
Timm Bäder
99026d2df8 renderbackground: Minimize style lookups
Move the early returns up so we don't look up all those css values for
no reason.
2017-10-20 14:56:29 +02:00
Timm Bäder
f5b0692cfc widget: Remove outdated comment on get_allocation
The allocation passed to gtk_widget_size_allocate can be retrieved these
days, using gtk_widget_get_allocated_size.
2017-10-20 14:55:53 +02:00
Matthias Clasen
55df74a102 window: Remove dead code
GtkWindow never has a parent widget, so we never need to create
a child window for it.
2017-10-20 14:43:11 +02:00
Matthias Clasen
e474e9e274 Remove some outdated information
Render nodes don't have transformations, currently.
Only transform nodes do.
2017-10-20 13:54:01 +02:00
Matthias Clasen
771be092da docs: Add render node api 2017-10-20 13:54:01 +02:00
Matthias Clasen
b76c5abb57 Tweak transform node apis
Rename the getter to follow the peek naming scheme.

Update all callers.
2017-10-20 13:54:01 +02:00
Matthias Clasen
04f6b26205 gsk: Tweak text node apis
Rename getters to follow the peek naming pattern.

Update all callers.
2017-10-20 13:54:01 +02:00
Matthias Clasen
243bd4f0c8 gsk: Tweak cairo node apis
Rename the surface getter to peek, following other render
node getters, and make the surface-based constructor private,
since it is not something we want to encourage.

Update all callers.
2017-10-20 13:54:01 +02:00
Matthias Clasen
eee89587c3 Make render node getter public
Keeping these private does not really buy us anything.
2017-10-20 13:54:01 +02:00
Matthias Clasen
0e1785ed48 Bump version to 3.93
This lets us add new API without deprecation warnings.
2017-10-20 13:54:01 +02:00
Emmanuele Bassi
95beabe4d6 build: Fix gtk_tools array expansion
The gtk_tools variable is an array of arrays; adding a new element
requires to maintain the same type, or we'll get a build failure when
we try to extract the newly added element.
2017-10-20 11:22:45 +01:00
Chun-wei Fan
18abb78bfd Meson: Support Windows builds
Add the necessary machinery into the Meson definition files so that we
can build for Windows.

Since we don't have Wayland or X support for our use case here, disable
them once we know that we are building for Windows, as they are
(otherwise) enabled by default, and enable the items that need to be
built for Windows builds.

Exclude gtk4-launch from Windows builds as that is something that
is not supported on Windows.

As we won't have gio-unix on Windows, and PangoFT2 is optional, don't use
fallbacks for them when we are on Windows (but do use fallbacks for
gio-win32, as it will be used).

Also, clean up meson.build a bit as we can just force-include
msvc_recommended_pragmas.h from GLib since we depend on GLib, and so we
can handle these warnings from msvc_recommended_pragmas.h instead.

https://bugzilla.gnome.org/show_bug.cgi?id=785210
2017-10-20 17:30:58 +08:00
Michael Catanzaro
73ef640736 Revert "gdk/wayland: Avoid idempotent wl_subsurface.set_position calls"
This reverts commit 1607f8c4c6.

https://bugzilla.gnome.org/show_bug.cgi?id=784314
2017-10-19 19:52:11 -05:00
Carlos Garnacho
ce1cfee48c icon-browser: Remove GtkEventBox from .ui file
The patch adding scalable icons' info was forward ported too much as-is
to master. The event box is both unused and unnecessary here.
2017-10-19 16:13:47 +02:00
Matthias Clasen
b564dd853c Avoid super-luminous pixels
The color-matrix shader was creating pixels with r,g,b > a in
some cases, which leads to unexpected test failures. In particular
this as visible the opacity render node test for opacity 0.
2017-10-19 15:16:54 +02:00
Marc-Antoine Perennou
4808829352 gdk: add accessor for GdkEventOwnerChange::reason
https://bugzilla.gnome.org/show_bug.cgi?id=789198

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-10-19 14:37:28 +02:00
Matthias Clasen
374e4a1e77 Add 3.94 version macros 2017-10-19 12:18:52 +02:00
Matthias Clasen
9c391e7a9f Optimize away trivial opacities
No need to go color matrix on an opacity of 0 or 1.
2017-10-19 12:08:39 +02:00
Debarshi Ray
7ee0e65631 GtkGestureZoom: Don't leak the list of sequences
https://bugzilla.gnome.org/show_bug.cgi?id=789149
2017-10-19 10:03:46 +02:00
Matthias Clasen
82e33823a9 Add a test for opacity render nodes
This test currently fails with the Vulkan renderer, despite
having its own reference image.
2017-10-18 23:45:43 +02:00
Matthias Clasen
99f42bb72e 3.92.1
Change the project name back to gtk+ to avoid trouble with
tarball names not matching ftpadmin expectations.
2017-10-18 23:17:27 +02:00
Matthias Clasen
e4259eaeaa 3.92.0 2017-10-18 18:52:06 +02:00
Matthias Clasen
a2aa128178 Fix tools test 2017-10-18 18:52:06 +02:00
Matthias Clasen
c54294e2e1 Add a forgotten file 2017-10-18 18:52:06 +02:00
Piotr Drąg
3a3dbafd1d Update POTFILES.skip 2017-10-18 17:54:07 +02:00
Matthias Clasen
2f96592e80 Use the cairo renderer for gtk tests for now
We haven't tracked down yet why the window size tests
fail with Vulkan, so use cairo for now.
2017-10-18 17:30:20 +02:00
Matthias Clasen
4a22704d82 Fix test environments 2017-10-18 17:30:20 +02:00
Matthias Clasen
f8f94ab329 Install tools tests
At the same time, update the expected test output to match
the current tools output, and write diff and ref files in /tmp.
2017-10-18 17:30:20 +02:00
Matthias Clasen
896316a9d1 Install gtk tests
Some of these currently fail on my system.
2017-10-18 17:30:20 +02:00
Matthias Clasen
090832c6fa redo the gdk installed tests 2017-10-18 17:30:20 +02:00
Matthias Clasen
b7098a0ebc testsuite: be a bit more verbose
This may help tracking down some failures.
2017-10-18 17:30:20 +02:00
Matthias Clasen
389307eb2c Install separate render node test for cairo and vulkan
The vulkan test currently fails.
2017-10-18 17:30:20 +02:00
Matthias Clasen
fb22f84059 testsuite: don't write into installed locations
Save the output of the render node tests in /tmp.
2017-10-18 17:30:20 +02:00
Matthias Clasen
4c64509b28 Install gdk tests
This was missing so far
2017-10-18 17:30:20 +02:00
Matthias Clasen
b0b0095cf8 Test suite cosmetics
Reshuffle things a bit more, sort the test files into subdirectories,
and shorten their names.
2017-10-18 17:30:20 +02:00
Matthias Clasen
68503c3e13 Add some backend-specific reference images for render nodes 2017-10-18 17:30:20 +02:00
Matthias Clasen
e9d47e9516 Run the gsk tests for both cairo and vulkan
The vulkan tests fail currently.
2017-10-18 17:30:20 +02:00
Matthias Clasen
abe7d8a846 More testsuite cosmetics
Unify the test naming some more.
2017-10-18 17:30:20 +02:00
Matthias Clasen
3166dc45e8 Fix the a11y test 2017-10-18 17:30:20 +02:00
Matthias Clasen
cd87b02103 Update expected output of statusbar a11y test 2017-10-18 17:30:20 +02:00
Matthias Clasen
9da057568c Fix GtkStatusbarAccessible
GtkStatusbar is no longer a container, so GtkStatusbarAccessible
can no longer be a container accessible.
2017-10-18 17:30:20 +02:00
Matthias Clasen
0c61095630 gtk4-demo: Stop using pixdata resources
This does not really help, and pixdata is deprecated.
2017-10-18 17:30:20 +02:00
Matthias Clasen
3287469929 gtk: Stop using pixdata resources
It does not really help, and pixdata is deprecated.
2017-10-18 17:30:20 +02:00
Matthias Clasen
50c8221058 testsuite: Add missing files 2017-10-18 17:30:20 +02:00
Matthias Clasen
2a71a4382a testsuite: Use the cairo renderer for now 2017-10-18 17:30:20 +02:00
Matthias Clasen
8b63b180d3 Distribute all test files 2017-10-18 17:30:20 +02:00
Matthias Clasen
e6b94ef699 Updates 2017-10-18 17:30:20 +02:00
Matthias Clasen
91497348bf Update all css parser tests
I have not tracked down in detail where all these changes originate,
this commit just gets things back to working again.
2017-10-18 17:30:20 +02:00
Matthias Clasen
6b2eafe1bb Drop widget style property test 2017-10-18 17:30:20 +02:00
Matthias Clasen
5824d8b5ee Stop testing deprecated css features 2017-10-18 17:30:20 +02:00
Timm Bäder
e0623fb5ad emojichooser: Plug memory leak 2017-10-17 08:54:08 +02:00
Julian Sparber
6f71e40546 icon-browser: Add scalable icons to icon detail modal window
When making mockups for GNOME apps in Inkscape, looking for symbolic
icons is a common task. Searching for icons in the file system is clumsy,
and icon-browser provides a much better interface for finding them.
However, currently there is no way to insert the symbolic icons as SVG
directly from icon-browser, so right now it is only useful for finding
the name.

This patch adds a sixth column to the modal window that appears when
clicking a symbolic icon. The icon in this column is labeled "scalable",
and dragging it onto another window results in the vector icon URI being
inserted.

This enables a much simpler workflow when designing with symbolic icons.

https://bugzilla.gnome.org/show_bug.cgi?id=778930
2017-10-16 14:26:42 +02:00
Carlos Garnacho
1607f8c4c6 gdk/wayland: Avoid idempotent wl_subsurface.set_position calls
These may not result on wl_surface.frame callbacks, yet we do trigger
a frame clock tick that would get stuck on the lack of such callback.

https://bugzilla.gnome.org/show_bug.cgi?id=784314
2017-10-16 11:31:00 +02:00
Aurimas Černius
c286fad473 Updated Lithuanian translation 2017-10-15 21:30:15 +03:00
Daniel Boles
a5c0a5c546 a11y/entry: Fixups for previous commit
We still declare all variables at the start of the block.

Also, we can use the fast private _gtk_widget_get_allocation().

https://bugzilla.gnome.org/show_bug.cgi?id=784509
2017-10-15 12:58:25 +01:00
Samuel Thibault
9af088693a a11y/entry: Fix text coords not adjusted for alloc
What is missing is the "allocation" part of x/y coordinates. Since
gtk_entry_realize doesn't call gtk_widget_set_window(priv->text_area),
the coordinates returned by gdk_window_get_origin don't include it.

This patch fixes this.

https://bugzilla.gnome.org/show_bug.cgi?id=784509
2017-10-15 12:37:44 +01:00
Daniel Boles
29b8cfc952 Range: Fix inverted horizontal scroll wheel events
Bug 737175 aimed to ensure that scrolling up on a horizontal range would
result in its value increasing, as that’s what users intuitively expect.
However, its commit 416c370da1 meant that,
if the event gives scroll deltas, we inverted our delta unconditionally.

So it broke horizontal scrolling: scrolling left moved the slider right…

We must only invert if using dy as delta. dx already has the right sign,
so inverting it was wrong.

https://bugzilla.gnome.org/show_bug.cgi?id=788905
2017-10-14 18:56:32 +01:00
Timm Bäder
d2f027a9d9 gtkcssimagefallback: Implement equals()
The default equals() implementation in gtkcssimage.c just returns FALSE.
This avoids needless redraws, e.g. for disabled switches.
2017-10-14 17:29:48 +02:00
Timm Bäder
00ce3abd6c listboxrow: Remove measure() and size_allocate() impls
GtkListBoxRow is a GtkBin which already does this.
2017-10-14 17:27:55 +02:00
Timm Bäder
4e24cb8588 css: Add GTK_CSS_AFFECTS_ICON_SIZE
And use it in GtkIconHelper. This way, we can avoid resizes when e.g.
the fg color of a symbolic icon changes.
2017-10-14 17:27:55 +02:00
Timm Bäder
ce5560a790 iconhelper: Short-circuit clear() if it's cleared already 2017-10-14 17:27:55 +02:00
Timm Bäder
c4c6a20998 popover: Explicitly call queue_allocate in tick callback
_gtk_window_set_popover_position is begin called in size-allocate.
2017-10-14 17:27:55 +02:00
Timm Bäder
d5fd2dca66 window: Remove widget parameter from popover_size_allocate
We already get that via the popover parameter.
2017-10-14 17:27:55 +02:00
Timm Bäder
c02e04b7b8 widget: Whitespace fix
Fallout from one of my earlier commits so not changing ownership here.
2017-10-14 08:12:05 +02:00
Timm Bäder
ec18661bbb widget: Only check display debug flags if the global ones are set
The gtk_widget_get_display call in this if statement is showing up in
profiles. It ends up walking up the hierarchy to the toplevel to get its
GdkScreen, etc. so it is relatively costly. Avoid that call in most
cases by first checking if the RESIZE debugging is enabled for any of
the displays and only then checking if it is enabled for the widget's
display.
2017-10-14 07:37:06 +02:00
Timm Bäder
eee335557c widget: Avoid some type checks when invalidating window
Use the private _gtk_widget_get_has_window instead of the public version
2017-10-14 07:26:09 +02:00
Timm Bäder
0be1ad437a adjustment: Drop priv pointer 2017-10-13 12:49:33 +02:00
Daniel Boles
be5a7b2db2 Fixed: If can’t add child, don’t add to child info
If the call to set_parent() failed, we were still adding the child to
the internal list of children, despite that it was not really added.
That meant we could later try to do invalid stuff with that non-child.

Fix that by asserting and giving up if the child that the user is
attempting to add is already parented.

https://bugzilla.gnome.org/show_bug.cgi?id=701296
2017-10-13 09:50:19 +01:00
Daniel Boles
9dde11bdea Fixed: Don’t dereference before typechecking 2017-10-13 09:50:19 +01:00
Daniel Boles
3a91d36913 icon-browser: Stop repeating folder-documents too 2017-10-13 00:24:41 +01:00
Daniel Boles
3354ad080b StyleContext: Add CSS snippet language comments
The language is useful for parsing tools, such as that of gtkmm, which
otherwise assumes these are C snippets and elides them from its
generated documentation.
2017-10-12 19:40:45 +01:00
Carlos Garnacho
06b21b4bec testsuite: Make all gesture test touches happen in the middle of the window
The event coordinates are (so far) irrelevant to what we are testing here,
just make all events happen in the middle of the window in order to ensure
all widgets receive it. More importantly, avoid using fixed pixel distances,
since we don't get guarantees about window sizes.

Fixes the gestures testsuite on X11.
2017-10-12 18:32:27 +02:00
Timm Bäder
54ed2d1e63 testsuite: Updated expected GtkSwitch nodes
The slider comes last now.
2017-10-12 16:09:31 +02:00
Timm Bäder
9bc7581f1c css: Replace _AFFECTS_TEXT with _TEXT_SIZE and _TEXT_CLIP
It was used to mark css properties that affect widgets with text, but it
caused unnecessary invalidations. E.g. 'color' was marked as
AFFECTS_TEXT but changing just the color of a label should not
automatically queue a resize, which is what the code in
gtk_widget_real_style_updated does.

Replace this flag with GTK_CSS_AFFECTS_TEXT_SIZE and
GTK_CSS_AFFECTS_TEXT_CLIP, which GtkWidget can use only if the widget
actually has text.
2017-10-12 15:42:03 +02:00
Timm Bäder
30096de341 csstypesprivate: Remove AFFECTS_PANGO_LAYOUT mention
Doesn't even exist!
2017-10-12 15:42:03 +02:00
Timm Bäder
2c9bbb9a71 GtkCssStyleChange: Only print values that really changed 2017-10-12 15:42:03 +02:00
Timm Bäder
a6904ba2cc widget: Use blue for resize debugging
Red is already taken by drawing.
2017-10-12 15:42:03 +02:00
Timm Bäder
d027e365d3 glarea: Make the code snippet compile 2017-10-12 15:42:03 +02:00
Timm Bäder
114f232a99 drawingarea: Fix code snippet
Remove state parameter to gtk_style_context_get_color
2017-10-12 15:42:03 +02:00
Timm Bäder
f2ca2e1242 window: Make code snippets compile
Fix the wrong signature of a size_allocate signal handler
2017-10-12 15:42:03 +02:00
Carlos Garnacho
40a2b91a6c testsuite: Update gestures test to pointer emulation removal
Now all widgets are mandated to handle the real thing, which means no
pointer events are emulated for the pointer emulating touch. The output
of these tests relied on this fact, so update to the tests handling real
touch events.
2017-10-12 14:47:15 +02:00
Carlos Garnacho
ff31bdd334 testsuite: Fix gesture test inconsistencies due to legacy event handling
Legacy GtkWidget vmethods are now handled on an event controller, which
due to being the very first controller added to every widget, runs in
a different order than the previously hardcoded.

Probably testing legacy events is not really futurible, specially after
we stop installing this legacy controller by default. I'll leave the
choice to remove these specific tests for later though.
2017-10-12 14:47:15 +02:00
Carlos Garnacho
d4a6c2c241 gtkwidget: Check return value before running bubble phase
If the target widget gets the event consumed on the target phase,
we should not attempt to bubble up, not even within the same widget.
2017-10-12 14:47:15 +02:00
Carlos Garnacho
564ae6967d gtkwidget: Lookup target widget when propagating emulated pressed
After a gesture first claims, and later rejects a touch sequence,
a press event will be propagated further along. However propagation
got messed up since we only emitted as far as the toplevel.
2017-10-12 14:47:15 +02:00
Matthias Clasen
cb19bbba0c Update the css style test
The new font-variant support affected the output here.
2017-10-12 17:23:35 +08:00
Matthias Clasen
18519a7ca0 Make css node and style tests run
Just like the previous commit, we need to set G_TEST_SRCDIR.
2017-10-12 16:06:03 +08:00
Matthias Clasen
37f1d180c3 Make css parser tests run
We need to set G_TEST_SRCDIR and friends for this to do anything.
Setting it reveals that a bunch of the tests are broken.
2017-10-12 15:58:05 +08:00
Matthias Clasen
9ea8235cc7 Update some a11y tests 2017-10-11 20:09:21 -05:00
Matthias Clasen
f09b5a8953 Fix a typo 2017-10-11 19:59:07 -05:00
Matthias Clasen
eb71cd195a testsuite: cosmetics
Put all tests in a suite, and order them in a nicer way.
This makes the test output look better.
2017-10-11 19:33:43 -05:00
Daniel Boles
9c3479b605 Settings: Mention Shift+primary click on Range too
This already existed, and since this doc blurb is already inflating
dramatically, what’s another half a line?
2017-10-11 22:35:31 +01:00
Daniel Boles
46e46ba099 Settings: Reflect resurrected middleclick in Range
and while here, make the explanation more explicit as to which values do
what, & use general Range terminology instead of focussing on scrollbars

https://bugzilla.gnome.org/show_bug.cgi?id=787669
2017-10-11 21:55:41 +01:00
Daniel Boles
1e8a166e34 ToggleButton: Actually show buttons in new snippet
Also, create a Window, instead of a Dialog without a transient parent,
which is (noisily) discouraged. Then s/content_area/box/g to match.
2017-10-11 21:15:54 +01:00
Emmanuele Bassi
eaae832697 docs: Clarify the visibility of buttons in GtkStackSwitcher
If a page in the GtkStack is not visible, then the GtkStackSwitcher
won't show a button for it.
2017-10-11 20:21:28 +01:00
Matthias Clasen
2120ea60ed range: Bring back middle clicks
It does not hurt us to keep middle clicks doing the same
as shift-primary clicks. This makes the transition from gtk2
less painful in terms of muscle memory.

https://bugzilla.gnome.org/show_bug.cgi?id=787669
2017-10-11 14:07:53 -05:00
Philip Withnall
7e8831d668 gtktextview: Add a missing g_assert_not_reached() for switch default
Clarifies the code and helps catch invalid enum values before they
propagate further. Also add a comment about why two seemingly legitimate
values are not handled there (they’re handled higher up in the file).

Coverity CID: 1457700

Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://bugzilla.gnome.org/show_bug.cgi?id=788787
2017-10-11 17:26:54 +01:00
Timm Bäder
1c232ed583 bindings: Fix code snippet
Just use a more realistic example, adapted from gtklistbox.c
2017-10-11 13:01:27 +02:00
Timm Bäder
da3d2593b2 accellabel: Fix code snippet 2017-10-11 12:56:42 +02:00
Timm Bäder
bec55e216c aboutdialog: Fix code snippets
Define all variables and fix a missing comma in the first
gtk_show_about_dialog call.
2017-10-11 12:55:01 +02:00
Timm Bäder
0f8abcd112 applicationwindow: Fix code sample
Declare all variables, use proper GtkApplication constructor and the
right GTK_APPLICATION() cast for gtk_application* API.
2017-10-11 12:41:47 +02:00
Timm Bäder
236098f89b togglebutton: Fix code snippet
Remove gtk_box_pack_start usage, gtk_dialog_get_content_area, fix wrong
gtk_dialog_new parameters and actually add a output_state callback.
2017-10-11 12:35:55 +02:00
Timm Bäder
cc5fb1db03 gtksettings: Fix code snippet
gtk_init does not take any arguments anymore and
GTK_TYPE_IMAGE_MENU_ITEM is gone.
2017-10-11 12:21:20 +02:00
Timm Bäder
8ff713840b label: Make all code snippets properly compile 2017-10-11 12:18:22 +02:00
Timm Bäder
b2fd6dd3dd accellabel: Document new API 2017-10-11 11:08:46 +02:00
Timm Bäder
e19dae4b74 conview: Fix rubberband coordinates when scrolling 2017-10-11 10:55:20 +02:00
Timm Bäder
21108475a8 iconview: Remove double-MAX when updating rubberband 2017-10-11 10:50:03 +02:00
Timm Bäder
9455c92b99 rendericon: Fix texture transformation
Use the one from snapshot_icon, which works.
2017-10-11 09:24:35 +02:00
Timm Bäder
c8add3d169 modelmenuitem: Fix icon/label alignment
gtk_box_pack_end will put the label child at the right side of the label
(in LTR orientation), but we want it left, directly next to the icon.
Also remove the spacing from the box child as this is a theme thing.
2017-10-11 09:03:40 +02:00
Timm Bäder
b3fedda29e grid: Only pass baselines to children that request it 2017-10-11 08:50:21 +02:00
Timm Bäder
e7e3ef9d3e grid: Simplify allocating children
allocation->x and allocation->y are always 0. MAX'ing width/height with
1 is also wrong now since 0 is a valid width/height for widgets.
2017-10-11 08:50:21 +02:00
Timm Bäder
804476a07f eventcontrollerscroll: Emit ::scroll for -1/+1 discrete steps
The > 1 meant it only emits the signal for -2/+2 steps.
2017-10-11 08:50:21 +02:00
Timm Bäder
ac7e1081b5 tests: Add testgridbaseline
Which shows that GtkGrid currently computes baselines for all rows even
though not all of them might request a baseline.
2017-10-11 08:50:18 +02:00
Timm Bäder
abed139a59 cssnode: Delay getting the parent style until we need it
There's an early return before.

Look at all those saved cycles.
2017-10-11 07:35:09 +02:00
Matthias Clasen
5d86d209e9 Don't set child position in a ui file
It is not necessary, and causes assertions in some of
our tests.
2017-10-10 19:40:29 -04:00
Benjamin Otte
0836e8cf59 cssnode: Don't put wrong styles in the style cache
~Company ╡ so TL;DR: we put the static style in the cache, but then
       ⤷ ╡ compute a child style from the animated style in the cache
       ⤷ ╡ and we put the child style also in the cache (because
       ⤷ ╡ it's not animated)
       ⤷ ╡ then we run the animation, but reuse the cache every time
       ⤷ ╡ for both child and parent
       ⤷ ╡ so after the animation is done, we end up with a cache that
       ⤷ ╡ has the correct static style for the parent but an
       ⤷ ╡ incorrect static style for the child
       ⤷ ╡ because that static style was computed from the
       ⤷ ╡ initial animated style

This fixes https://bugzilla.gnome.org/show_bug.cgi?id=763517
2017-10-10 21:45:18 +02:00
Timm Bäder
a22ef67b17 cssnodedeclaration: Add gtk_css_node_declaration_to_string 2017-10-10 20:59:57 +02:00
Timm Bäder
7e8f2f6178 build: Drop redundant workaround
This is fixed and we require a meson > 0.39 anyway.
2017-10-10 12:53:06 +02:00
Timm Bäder
af734c4007 rendernode: Don't leak mem_surface 2017-10-10 09:49:35 +02:00
Timm Bäder
657983cfda Don't try to snapshot invisible icons
These spew criticals when width == 0 || height == 0.
2017-10-10 09:49:35 +02:00
Timm Bäder
f50832864e scalebutton: Fix comparison for empty icon list 2017-10-10 09:49:35 +02:00
Timm Bäder
c1af127c28 stylecontext: Fix doc comment
There is no @cr here anymore.
2017-10-10 09:49:35 +02:00
Timm Bäder
63eb3517be GdkDisplay: Add a private _emit_opened
So we don't have to use the slower g_signal_emit_by_name in startup
paths.
2017-10-10 09:49:35 +02:00
Timm Bäder
4a03e86d4f textdisplay: Remove widgets parameter from gtk_text_layout_draw
All calls in gtk+ were passing NULL anyway.
2017-10-10 09:49:35 +02:00
Timm Bäder
b994cac6dd grid: Drop priv pointer 2017-10-10 09:49:35 +02:00
Matthias Clasen
a4deb7e7b4 Reshuffle the css tests a bit 2017-10-10 00:18:21 -04:00
Matthias Clasen
8c41365437 Reshuffle the a11y tests a bit 2017-10-10 00:16:31 -04:00
Matthias Clasen
c57b402d9d Add an install-tests option
Use this to enable or disable installed tests.
2017-10-10 00:14:48 -04:00
Matthias Clasen
a45e497fdf Install css api test again 2017-10-09 23:35:19 -04:00
Matthias Clasen
a2ee124d99 Install css style tests again
Reinstate the installed tests for css style.
2017-10-09 23:32:13 -04:00
Matthias Clasen
6c294e6804 Install css parser tests again
Reinstate the installed tests for the css parser.
2017-10-09 23:29:10 -04:00
Matthias Clasen
e5aa2021a0 Install css node tests again
Reinstate the installed tests for css nodes.
2017-10-09 23:24:23 -04:00
Matthias Clasen
366fb44d20 Fix docs build
this include file can't be found, so just do without it.
2017-10-09 21:58:50 -04:00
Matthias Clasen
07b1030438 Towards a working docs build
Add back images, content_files and expand_content files.
2017-10-09 19:36:12 -04:00
Anders Jonsson
709a1ec287 Update Swedish translation 2017-10-09 23:19:22 +00:00
Matthias Clasen
6bfdd772a5 Towards a working docs build
Pass mode: 'none' so escaping of <> in doc comments works.
2017-10-09 19:07:05 -04:00
Marek Cernocky
9ee414891c Updated Czech translation 2017-10-09 21:32:02 +02:00
Matej Urbančič
3aeacb2faa Updated Slovenian translation 2017-10-09 20:54:24 +02:00
Piotr Drąg
8eb39bd5ce Update Polish translation 2017-10-09 20:42:22 +02:00
Piotr Drąg
5678b70faf gdk: Translate some more key names
These are used in the Keyboard panel of GNOME Settings.

https://bugzilla.gnome.org/show_bug.cgi?id=787866
2017-10-09 20:33:14 +02:00
Marek Kasik
3d233743ec printing: Don't show duplicate printers
Check UUID for printers obtained via DNSSD whether
they are already installed on local CUPS server.
Don't show such printers.

Not all printers published via DNSSD have UUID entry though.

https://bugzilla.gnome.org/show_bug.cgi?id=786794
2017-10-09 17:54:50 +02:00
Matthias Clasen
49ab093f26 Add a transform node reftest 2017-10-08 23:19:35 -04:00
Matthias Clasen
4db1a7541a Add another cross-fade reftest 2017-10-08 22:45:05 -04:00
Matthias Clasen
672fb60879 snapshot: Use a better placeholder
An empty container has the same effect as transparency
with the cairo renderer, but creates black with Vulkan.
To avoid this, explicitly use a transparent color node.

This fixes the css blendmode example in gtk4-demo with
the Vulkan renderer.
2017-10-08 22:19:22 -04:00
Matthias Clasen
e3f5a8bd47 Regenerate blendmodes reftest 2017-10-08 21:13:43 -04:00
Matthias Clasen
76aa237cce Fix blendmode shader
My reading of the spec formulas was imperfect.
2017-10-08 21:12:22 -04:00
Matthias Clasen
090ec2e56f Revise coordinate handling for blend nodes
This is the same change that was applied to cross-fade
nodes.
2017-10-08 20:06:33 -04:00
Matthias Clasen
cd4892c50a Stop using gsk_cairo_node_new_for_surface
Best to avoid handling the surface ourselves.
2017-10-08 20:05:16 -04:00
Matthias Clasen
6e5ded8492 Add another blendmodes reftest
This tests all blendmodes. Again, the Vulkan renderer fails.
2017-10-08 19:58:09 -04:00
Matthias Clasen
5280a2c874 Revise the coordinate handling one more time
This makes the new reftests pass and hopefully does not
break other things.
2017-10-08 19:21:52 -04:00
Daniel Boles
2cd65158a0 Dialog: Clarify that response ID 0 is not reserved
I only got so far in math, but it looks to me like zero isn’t positive.
We don’t reserve it, so be clear about that.
2017-10-08 22:21:12 +01:00
Daniel Boles
77b75bdab1 MenuButton: Document the correct no-direction icon
Document open-menu-symbolic, which we use, not view-context-menu, which
does not exist.
2017-10-08 21:09:42 +01:00
Matthias Clasen
87aaa5685b Add a cross-fade node ref test
The Vulkan renderer doesn't pass this one either, currently.
2017-10-08 14:36:35 -04:00
Matthias Clasen
eacdeec29e Add a blendmode node reftest
The Vulkan renderer doesn't pass this, currently.
2017-10-08 14:29:27 -04:00
Matthias Clasen
ab22734159 Fix application window snapshot differently
As Timm Baedert pointed out, the previous fix made the
menubar go on top of popovers, which is just wrong. Instead,
make gtk_window_snapshot handle all direct children of the
window, taking care to stack popovers correctly.
2017-10-08 14:03:19 -04:00
Matthias Clasen
8dc48d0322 Expand the repeat node test
Still not exhaustive, but enough to find some issues.
2017-10-08 13:50:41 -04:00
Matthias Clasen
1fe4e12356 Add a repeat node test 2017-10-08 12:23:18 -04:00
Matthias Clasen
df549c4e9f Add a basic cairo node test 2017-10-08 12:21:45 -04:00
Matthias Clasen
95f29de710 Allow backend-specific reference images
This is not ideal, but lets us deal with differences for now.
2017-10-08 12:21:36 -04:00
Matthias Clasen
9a9aec05c0 vulkan: Fix cross-fade node coordinates
This is the same fix as was just committed for blendmode nodes.
2017-10-08 11:31:55 -04:00
Matthias Clasen
4d7b8f5a66 vulkan: Fix blendmode coordinate handling
We were node handling coordinates correctly when dealing
with differently sized child nodes in a blendmode node.
This was showing up in the gtk4-demo css blendmode example,
for blendmodes other than normal.
2017-10-08 09:02:35 -04:00
Matthias Clasen
fe6e80fdde vulkan: Fix repeat node coordinates
We were not treating non-trivial child bounds right at all.
This was visible in the css blendmode cmyk example in gtk4-demo,
for the normal blendmode.
2017-10-08 09:02:35 -04:00
Matthias Clasen
9e613be8c6 inspector: Show child bounds for repeat nodes
The more information, the better.
2017-10-08 09:02:35 -04:00
Umang Jain
74a677a79d Create tests for cairo node
https://bugzilla.gnome.org/show_bug.cgi?id=788534
2017-10-08 18:22:34 +05:30
Umang Jain
a933c7c4bd gsk: Move gsk_cairo_node_new_for_surface into public API
https://bugzilla.gnome.org/show_bug.cgi?id=788534
2017-10-08 18:22:34 +05:30
Umang Jain
74f8fc80d3 gsk: Fix serialization of cairo node
https://bugzilla.gnome.org/show_bug.cgi?id=788534
2017-10-08 18:22:34 +05:30
Daniel Boles
6cafb62e9b testmenubutton: Fix inverted keynav in the GtkMenu
GtkMenu’s own keynav code, which actually bothers to account for the
layout of items, only happens if columns > 1. So, adding items to 1
column using a reverse loop meant they were placed in the Menu’s list of
children in that order, and because we only have 1 column, Menu passes
keynav up to MenuShell, which doesn’t adjust for the items’ positions.

‘Fix’ that here by adding items in the same order they’ll have when laid
out in the Menu, so keynav does what you’d expect, not the opposite. For
that, it’s simpler just to use gtk_container_add().

Let’s presume users are using add(), attach() with a non-inverted loop,
or attach() with arguments that create 2+ columns and so GtkMenu keynav.
2017-10-08 13:17:04 +01:00
Timm Bäder
007e4639a8 snapshot: Set blend mode directly after pushing state
This is important since _push_state returns a pointer into a GArray
which could be invalidated and point to garbage after the subsequent
push_state call.
2017-10-08 08:28:35 +02:00
Matthias Clasen
f597de817e snapshot: Fix blend mode handling
We were getting out states confused and were always creating
a blend mode node with mode NORMAL.
2017-10-07 23:31:47 -04:00
Matthias Clasen
515f5268c2 gtk4-demo: fix a typo
The blend mode is called saturation, not saturate.
2017-10-07 23:26:57 -04:00
Matthias Clasen
f8c48240d9 Adwaita: theme the shortcuts window search results
Add some margins, and, since we can, also move the spacing here.
2017-10-07 22:45:49 -04:00
Matthias Clasen
c9eab36216 Shortcuts window: Make search results themable
Add a style class to the box containing search results,
so we can apply style here.
2017-10-07 22:45:05 -04:00
Matthias Clasen
4903f809a6 application window: Make menubar appear
This needed to be ported to snapshot, still.
2017-10-07 22:24:09 -04:00
Matthias Clasen
de2074d3a3 Adwaita: theme shortcuts windows a bit
Add some space around the content.
2017-10-07 20:13:13 -04:00
Matthias Clasen
fee3d20e44 shortcuts: Add css names to some widgets
This will let us put some styling in place for these.
2017-10-07 20:12:18 -04:00
Matthias Clasen
e1338e4e12 gtk4-demo: Fix the scrollbar popup menu example
A scrollbar is not a range anymore, so the callback
needs some adjustments (!).
2017-10-07 19:54:47 -04:00
Matthias Clasen
7e64ee52a8 scrollbar: keep populate-popup signal working
This is used for example in the source tab of gtk4-demo.
It broke because GtkScrollbar no longer is a GtkRange,
but rather has one. So we need to forward the signal.
2017-10-07 19:53:19 -04:00
Matthias Clasen
9f8f3fc7ac notebook: Don't steal right-clicks from content
We only want to pop up the context menu in the tab strip.
2017-10-07 19:26:39 -04:00
Matthias Clasen
0f0557157b Adwaita: Fix scrollbar theming a bit
Reinstate the fine-tune mode scrollbars.
2017-10-07 19:10:58 -04:00
Matthias Clasen
f2a7e1219b scrollbar: Correct css docs
The .fine-tune class appears on the range node.
2017-10-07 19:10:10 -04:00
Matthias Clasen
e49615184a Drop the env var for scrolling control
This was never meant to be an official api, but rather
a transition help. Time to drop it for GTK+ 4.
2017-10-07 18:27:51 -04:00
Matthias Clasen
5b8b892dd6 textview: Fix memory handling
When cleaning up the text appearance struct, we forgot
to add the new strikethrough_rgba member to the copy
function.
2017-10-06 23:06:52 -04:00
Matthias Clasen
41cd4c812e printing: Fix page drawing
We were drawing frames around our drawing areas.
2017-10-06 22:50:03 -04:00
Matthias Clasen
8e1ef3620a printing: Some fixes to the print dialog
Hide widgets that are meant to be hidden initially, and use
the right spin button apis.
2017-10-06 22:33:55 -04:00
Matthias Clasen
acb12e1198 button: Fix label alignment in checks and radios
Yes, this is ugly, but the alternative is broken ui.
2017-10-06 22:32:53 -04:00
Matthias Clasen
4d3cdfae44 gtk-demo: Deal with big images
We don't want to grow our window to huge size just because
there is a big source image.
2017-10-06 21:59:34 -04:00
Matthias Clasen
481ba13e8e gtk-demo: Add a new overlay demo
Replace the not very impressive transparent demo with
the blur-behind example.
2017-10-06 21:58:56 -04:00
Matthias Clasen
f352a0ec2b gtk-demo: Fix the overlay demo
We must make the label and the entry separate overlays, or
the entry will also be clickthru.
2017-10-06 21:35:21 -04:00
Matthias Clasen
6d75d0966a gtk-demo: Fix up the drawingarea example
This was not working anymore.
2017-10-06 20:42:04 -04:00
Matthias Clasen
0caec25ee0 gtk-demo: Make the color chooser example non-resizable
No need for it.
2017-10-06 20:42:04 -04:00
Daniel Boles
4269ca0bfa HC: Avoid inflated titlebar separator in GEdit etc
It was selecting paned separator, which means any separator at any level
of descent within a paned, including the toplevel container in GEdit.

We need to be more specific and only select the relevant separator that
is the direct child of the paned. This is what Adwaita does.

https://bugzilla.gnome.org/show_bug.cgi?id=788573
2017-10-07 01:30:49 +01:00
Daniel Boles
497e877755 TreeViewCol: Fix SEGV on remove/add, + memory leak
Nulling priv->button in _unset_tree_view() is asymmetrical: we create
it via init(), not _set_tree_view(), so we shouldn’t null in the latter.

Worse, doing so manifests in criticals + a SEGV easily with basic use of
testtreecolumns, removing the TVC from a TV then trying to add it to one

Finally, the wrong null-out meant dispose() failed to unref the button,
so it leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=728452
https://bugzilla.gnome.org/show_bug.cgi?id=788614
2017-10-07 00:46:37 +01:00
Daniel Boles
af28c031fc TreeViewCol: Don’t try to disconnect null treeview
https://bugzilla.gnome.org/show_bug.cgi?id=788614
2017-10-07 00:46:37 +01:00
Daniel Boles
161b063909 Revert "treeviewcolumn: Don't leak button"
This reverts commit 2c28c627c1.

See following commits: the real problem is setting priv->button to NULL
soon after this, so this just makes that wrong decision look more right.

https://bugzilla.gnome.org/show_bug.cgi?id=788614
2017-10-07 00:45:40 +01:00
Daniel Boles
65b6e92c27 iconbrowser: Don’t repeat folder-download-symbolic
It was in both [general] with a description and [other] with none.
Leave it in [other] with the other folder- icons, + the description.

bonus: this makes all of [general] fit in our default window size!
2017-10-07 00:44:24 +01:00
Daniel Boles
c1a5afb3a8 FileChooserButton: Avoid unref()ing a null model 2017-10-07 00:44:24 +01:00
Matthias Clasen
ad9c70537d gtk-demo: Fix the assistant demo
The progress bar was no longer expanding as intended,
due to the demise of GtkBox::expand.
2017-10-06 19:38:16 -04:00
Matthias Clasen
b5fe4c0a1d settings: Don't assert in notify
We can legitimately hit the default case in this switch,
so don't assert that we don't.
2017-10-06 19:30:27 -04:00
Matthias Clasen
b9b03cf570 gskrenderer: Make the window property not construct
We never set this, since it is assigned as a side-effect
of realizing the renderer. Make this a plain readonly property.
2017-10-06 19:29:42 -04:00
Matthias Clasen
10ec3e91f5 vulkan: Add some missing cases to switch 2017-10-06 18:29:00 -04:00
Benjamin Otte
43c212ac28 build: Enable -Wswitch-enum and -Wswitch-default
This patch makes that work using 1 of 2 options:

1. Add all missing enums to the switch statement
  or
2. Cast the switch argument to a uint to avoid having to do that (mostly
   for GdkEventType).

I even found a bug while doing that: clearing a GtkImage with a surface
did not notify thae surface property.

The reason for enabling this flag even though it is tedious at times is
that it is very useful when adding values to an enum, because it makes
GTK immediately warn about all the switch statements where this enum is
relevant.
And I expect changes to enums to be frequent during the GTK4 development
cycle.
2017-10-06 21:23:39 +02:00
Benjamin Otte
2ac66328a3 build: Turn on more warning flags
-Wshadow these days does not overwarn anymore like it did in gcc 4.
There are no warnings inside gtk, so better enable it to keep it that
way.

-Wuninitialized also has no positives, so I'm gonna turn it on just
because.
2017-10-06 21:23:39 +02:00
Matthias Clasen
e7b79e2097 gtk-demo: Keep treeviews expanding
This is fallout from GtkBox::expand child property going away.
2017-10-06 14:21:19 -04:00
Carlos Garnacho
a0de570e47 gtktreeview: Transform cell area to widget coordinates
GtkCellArea uses event coordinates (thus in treeview relative
coordinates), but calculations used to happen in bin window coords.
We can just offset the cell area by the bin window, fixes cell
renderer activation and edition.
2017-10-06 18:26:08 +02:00
Carlos Garnacho
f7d02bfb61 treeviewcolumn: Don't swallow motion/crossing events
If the column is not clickable, it may make some sense to stop
event propagation here for button events. However motion events
should be left alone.

Fixes treeview column resize pointer cursors, since that's
implemented up the bubbling phase in the treeview.
2017-10-06 18:25:44 +02:00
Carlos Garnacho
0724fa7f61 treeview: Transform motion event coords to "bin window" coords
The operations rely there on bin window relative coordinates, but we
are receiving GtkTreeView relative coordinates there. Fixes clicking
on treeview expanders, which was offset by visible headers.
2017-10-06 18:23:26 +02:00
Timm Bäder
d832e5b2dd modelbutton: set_relative_to(NULL) the popover in dispose
We do set_relative_to(menu_button) when creating it so we should do this
here (or nothing).
2017-10-06 17:35:28 +02:00
Timm Bäder
2c28c627c1 treeviewcolumn: Don't leak button
We g_object_ref_sink the button in _create_button, so we need to unref
it ourselves.
2017-10-06 17:23:34 +02:00
Timm Bäder
d292ebc7bd filechooserbutton: Don't leak priv->model 2017-10-06 17:14:31 +02:00
Timm Bäder
b34c84ab6d applicationwindw: Don't leak show-help-overlay action 2017-10-06 16:30:31 +02:00
Timm Bäder
9115291515 widget-factory: Don't leak GPropertyAction instances 2017-10-06 16:30:20 +02:00
Benjamin Otte
c1e9869329 build: Don't turn off critical warnings
-Wint-conversion is important because it checks casts from ints to
pointers.

-Wdiscarded-qualifiers is important to catch cases where we don't
strings when we should.
2017-10-06 16:03:08 +02:00
Benjamin Otte
defcf17d3d gtk-demo: Remove old build file
The includes are now generated with a Python script, so remvoe the old
perl script.
2017-10-06 16:03:07 +02:00
Benjamin Otte
2936953d9f build: Remove old Makefile.inc files
They seem to have been forgotten in the meson transition
2017-10-06 16:03:07 +02:00
Piotr Drąg
0fa46b4123 Update Polish translation 2017-10-06 15:55:55 +02:00
Matthias Clasen
ec1addf618 Some updates 2017-10-06 09:15:23 -04:00
Timm Bäder
869d9e8fe7 Widget: make sure windowed widgets have a 1×1 min size 2017-10-06 14:38:07 +02:00
Timm Bäder
3b9aa2f8d9 widget: Allow 0×0 allocations
Don't MAX the allocations with 1 anymore.
2017-10-06 14:38:07 +02:00
Timm Bäder
aef86a8b2c searchbar: Remove superfluous padding
So it's not 6px high when the child revealer is concealed.
2017-10-06 14:38:07 +02:00
Timm Bäder
9125dc7069 box: Drop priv pointer 2017-10-06 14:24:52 +02:00
Timm Bäder
02a526c04a image: Remove mention on gdk-pixbuf-csource
gdk-pixbuf-csource as well as gdk_pixbuf_new_from_inline are deprecated.
Mention GResource instead.
2017-10-06 10:40:23 +02:00
Daniel Boles
fbf24d1bd0 HC: Add border/hilight when hovering flat buttons
The border and icon highlight are useful feedback that was defeated by
CSS precedence. It worked for .titlebuttons due to their implementation,
but the same was not true for custom .flat buttons. This makes it so.

https://bugzilla.gnome.org/show_bug.cgi?id=788580
2017-10-06 02:40:42 +01:00
Daniel Boles
70fa5be983 HC: Flat titlebuttons became non-flat in backdrop
When the window was backdropped, they suddenly regained their border.
This was clearly not intentional or of any practical use to anyone.

Shuffle around some selectors so that the backdrop ones do not override
the flat ones and make the borders magically reappear when backdropped.

Note that, whereas standard titlebuttons get the border on :hover, other
.flat buttons in the headerbar do not. That should probably be fixed too

https://bugzilla.gnome.org/show_bug.cgi?id=788580
2017-10-06 02:40:15 +01:00
Daniel Boles
018bee64aa HighContrastInverse: Make window borders visible
They were hard-coded to a transparent black, but that is our bg colour
in HC Inverse, so windows stacked on top of each other or a dark
background blended together into a mush.

Fix this by making the $_wm_border* colours relative to the fg colour,
so that HighContrastInverse gets borders that are transparentised white.

https://bugzilla.gnome.org/show_bug.cgi?id=788575
2017-10-06 00:38:53 +01:00
Daniel Boles
efaf9948be HC: Fix MessageDialog’s rounded bottom borders
A missing decoration selector meant that we got a solid black background
behind the rounded corners of the dialog.

Copy the equivalent code from Adwaita, including nicely rounding the
focus outline too (& sorry, but this needs more newlines to be readable)
2017-10-06 00:25:10 +01:00
Daniel Boles
84de918ce0 HighContrast: Fix titlebar containing >1 headerbar
by migrating the relevant code from Adwaita, to dodge unwanted doubling
up of the bottom border and such.

https://bugzilla.gnome.org/show_bug.cgi?id=769877
2017-10-05 23:03:01 +01:00
Marco Trevisan (Treviño)
d2a577d797 HighContrast: set min-height for headerbars
https://bugzilla.gnome.org/show_bug.cgi?id=784562
2017-10-05 22:36:52 +01:00
Daniel Boles
0fb4a018f5 HC: Copy working tooltip code from Adwaita & tweak
There were various problems, like only selecting on .tooltip and not the
widget node tooltip, not being specific enough for tooltip.csd, etc. So,
specific theming was absent, and default popup window styles got applied

This commit copies in the better working tooltip CSS from Adwaita, but
applies a couple of changes to make it work better in the HC themes:
 • Reduce the transparency of the tooltip, so we achieve higher contrast
 • Drop the black text-shadow, as it is not useful on this more black bg

Note: we may then need to re-add some of this to the .tooltip class. But
it is unclear what needs done there. While Adwaita is not doing it, we
are better not to confuse by keeping it in HC only; we should try to be
as close as possible, to make it easier for HC to keep up with Adwaita.

https://bugzilla.gnome.org/show_bug.cgi?id=769879
2017-10-05 19:40:36 +01:00
Daniel Boles
6b2c8bfcf1 HC: Give tooltips a border for contrast on Inverse
https://bugzilla.gnome.org/show_bug.cgi?id=769879
2017-10-05 18:44:04 +01:00
Daniel Boles
3ad7a86961 HighContrast: Actually style tooltips...
We need to select on the widget itself too, not just other things with
the .tooltip class.

https://bugzilla.gnome.org/show_bug.cgi?id=769879
2017-10-05 18:44:04 +01:00
Xavi Ivars
fd7d0067c3 [l10n] Updated Catalan (Valencian) translation 2017-10-05 18:05:24 +02:00
Timm Bäder
7770bdcb36 switch: Fix int/double comparison
We get a double coordinate.
2017-10-05 10:21:54 +02:00
Timm Bäder
786d89cd9d scrolledwindow: Make sure gtk_get_current_event_state returned a state
Technically correct and pleases Coverity.
2017-10-05 10:21:54 +02:00
Timm Bäder
3515a27f8e appchooserdialog: Remove unused macro 2017-10-05 10:21:54 +02:00
Timm Bäder
f9744cf194 combobox: Remove unneeded queue_resize call
The remove/add/set_parent/unparent calls in there already do the
necessary work.
2017-10-05 10:21:47 +02:00
Daniel Boles
a4fda99539 HighContrast: Correctly select window decoration
We need

    .window-classes decoration

but within the decoration parent selector, we were doing
&.window-classes, which gave us

    decoration.window classes

We need to fix this by selecting on .window-classes &

https://bugzilla.gnome.org/show_bug.cgi?id=788496
2017-10-05 01:40:24 +01:00
Matthias Clasen
090b833d8b wayland: fix a typo
This was noticed in the gtk3 backport of these changes.
2017-10-04 20:04:12 -04:00
Daniel Boles
88b15beb0a updateiconcache: Avoid confusing loop construct
n_attach_points is the result of g_strv_length(): the index at which the
string vector ends in NULL. So by definition, when i == n_attach_points,
string[i] == NULL, and there is no need to check for the latter. The
fact that we did appears to confuse static analysers, as the dereference
and index check were inverted from what would normally be safe. We could
reverse them, but we may as well just remove the unnecessary NULL check.

https://bugzilla.gnome.org/show_bug.cgi?id=788458
2017-10-04 22:59:11 +01:00
Colomban Wendling
e4754a007b Enter submenus when activating their parent item
This gives consistent behavior with e.g. Qt, Mozilla's suites and
LibreOffice (with non-truly native backends like "gen" and "gtk",
but unlike "gtk2" and "gtk3" ones that probably use true GTK menus).

This behavior is expected by at least some accessibility users, and
it seems good to behave like other common applications and toolkits
in this area.  There should be no issue in doing so either for current
users, as it only enters the submenu instead of not doing anything.

https://bugzilla.gnome.org/show_bug.cgi?id=778811
2017-10-04 22:52:18 +01:00
Georges Basile Stavracas Neto
04456404be -wayland: Safeguard against NULL gtk_surface1
There is no guarantee that the gtk_surface won't be NULL,
and Wayland API does not safeguard against NULL, so we have
to do that ourselves here.

We were also mistakenly cheking for the surface version off
by one, fix that too by checking if the surface version is
equal or greater.
2017-10-04 18:30:34 -03:00
Daniel Boles
f63519dc01 TreeMenu: Remove accidentally duplicated doc lines
Not that it actually matters, as this is not public anymore, but this
was done accidentally. Also, sync a property description to ComboBox.
2017-10-04 12:05:13 +01:00
Daniel Boles
06941c593d testcombo: Test grid :row- and :column-span-column
Ditch two items that were white and so weren’t visible on our standard
theme anyway, and use the new space to test extra grid-mode properties.

Note that if we do this then, as before, we set the ListStore on the
ComboBox before appending to it, that produced runtime warnings like:

Gtk-CRITICAL **: gtk_menu_attach: assertion 'left_attach < right_attach' failed

I didn’t look into that yet, but it may indicate that attaching items
vs. recognising their spans don’t occur in the correct order. For the
purposes of testing this, I just create the CB after filling its model.
2017-10-04 11:17:57 +01:00
Daniel Boles
9c3ea3f9a0 ComboBox|TreeMenu: Slightly clarify wrap-width doc 2017-10-04 10:22:21 +01:00
Daniel Boles
5849b98568 ComboBox|TreeMenu: Clarify :row|column-span-column
ComboBox and TreeMenu warned in the doc for :row-span-column that the
value must not exceed :wrap-width, but :wrap-width does not interact
with the number of rows; it’s the :column-span-column that’s relevant.

Also: Warn that spans must be > 0 for rows too, and that column spans <=
:wrap-width are also not useful for items at menu column positions > 0.

Finally, refer to items having spans, not values, as we were already
talking about values in the model (and rows in the menu).
2017-10-04 10:22:20 +01:00
Felipe Borges
5a32b78ba1 build: Bump minimum GLib version to 2.53.7
Otherwise it fails to build with:

GLib-Genmarshal-WARNING **: failed to open "--pragma-once":
No such file or directory

https://bugzilla.gnome.org/show_bug.cgi?id=788230
2017-10-03 21:29:57 -04:00
Matthias Clasen
ffaaba6676 inspector: Add gsk and vulkan information
Show the used gsk renderer, as well as some information
about Vulkan, in the General tab.
2017-10-03 21:06:50 -04:00
Daniel Boles
f4ffd261db widget-factory: Demo different Frame border-styles
This shows not all, but the interesting/less predictable styles, and
the ones that correspond to the :shadow-types that were here before.
2017-10-02 20:22:41 +01:00
Daniel Boles
06bf049b1a Revert "widget-factory: Usefully demo Frame shadow types"
This reverts commit 6ee2bf6286.

There is a way to get different kinds of borders: it's CSS. It's better
to keep the 4 Frames and demo the different styles we can do using CSS.
2017-10-02 19:50:02 +01:00
Daniel Boles
252b03c43e Frame: Enhance CSS docs
Indicate how the old shadow types are replaced by CSS border-style et
al., and quote the names of nodes and classes for easier readability.
2017-10-02 19:50:02 +01:00
Carlos Garnacho
3bdc9d7b3a imcontext: Fix typo on ctrl+shift+u hex sequences handling
This condition was meant to exit when the event has no keyval (eg. fed a
non-keyboard event somehow).
2017-10-02 18:13:57 +02:00
Timm Bäder
604da889ea snapshot: Fix mixup when creating crossfade nodes
We need to set the progress on the end node.
2017-10-02 15:25:44 +02:00
Timm Bäder
f5297e6f4b snapshot: Use one GPtrArray for all nodes
Instead of creating one GPtrArray per GtkSnapshotState and saving nodes
in there, create one GPtrArray per snapshot and assign a
start_node_index to every GtkSnapshotState as well as a n_nodes variable
so every state knows which nodes belong to it.
2017-10-02 14:34:47 +02:00
Timm Bäder
8e59b3b387 snapshot: Use one large GArray for all states
Allocating all of them separately shows up in profiles.
2017-10-02 14:34:47 +02:00
Timm Bäder
d2afa1d72a gtkroundedbox: Remove some unneeded conditionals
Always pass exactly 4 GtkCssValue* parameters to apply_border_radius
and make sure they are properly const.
2017-10-02 14:34:47 +02:00
Matthias Clasen
8beb78149d Start reftests for gsk
Add a framework similar to what we have for gtk reftests
that lets us drop in a function to generate render nodes,
and compare reference output.
2017-10-02 00:21:56 -04:00
Matthias Clasen
47464ce4da Create tests for gsk box shadows 2017-10-01 22:55:32 -04:00
Matthias Clasen
a4d984fb18 Create tests for GskTextNode 2017-10-01 22:09:43 -04:00
Matthias Clasen
3aaea0ef40 Clip intermediate textures
In some cases, we were creating gigantic intermediate textures
only to clip out a small section afterwards (e.g. in the listbox
example in gtk4-demo). This is wasteful if we apply effects on
the texture, such as blur or color-matrix. So, clip the dimensions
of the intermediate texture with the current clip. To make this
feasible, we move the texture coordinate computation out of the
pipeline setup functions into the node_as_texture function where
this clipping happens.

One extra complication we encounter is that the node might get
clipped away completely. Since Vulkan does not allow to create
empty images, we bail out in this case and not draw anything.

With these changes, the listbox example in gtk4-demo goes from
32M pixels of intermediate texture to 320000.
2017-10-01 19:22:04 -04:00
Timm Bäder
0f6574dd05 stylecontext: Drop priv pointer 2017-10-01 09:19:09 +02:00
Timm Bäder
b5c3c51124 spinner: Remove priv pointer 2017-10-01 09:19:09 +02:00
Timm Bäder
29a6c66aec switch: Remove priv pointer 2017-10-01 09:19:09 +02:00
Timm Bäder
edaa2c42ee label: Remove priv pointer 2017-10-01 09:19:09 +02:00
Timm Bäder
bcaed4b420 image: Remove some unneeded includes 2017-10-01 09:19:09 +02:00
Timm Bäder
2da82f890a image: Remove priv pointer
Look at all the free ram!
2017-10-01 09:19:09 +02:00
Timm Bäder
a32725bc9a iconhelper: Don't inherit from GObject
It's not a GtkCssGadget anymore, it doesn't have any properties or
signals either and it's not public. Further, its lifetime is very clear
the way it's being used inside GTK+.
2017-10-01 09:19:09 +02:00
Timm Bäder
773973db78 cssshadowsvalue: Don't heap-allocate shadows
This showed up in profiles in certain scenarios, so export a
_get_n_shadows getter instead and let callers provide a sufficiently
large allocated array of GskShadows, which we can use with
g_alloc/g_newa.
2017-10-01 09:19:09 +02:00
Timm Bäder
53409623e5 switch: Remove some unneeded includes 2017-10-01 09:19:09 +02:00
Matthias Clasen
4e33be124d Add a forgotten rename
When I renamed blend to texture, I overlooked that the color
text pipeline also uses this shader. Fix it.
2017-09-30 17:58:23 -04:00
Matthias Clasen
50bea37320 Reshuffle things a little bit
Instead of having a function with lots of arguments in
GskVulkanRender that we call from GskVulkanRenderPass which
then just calls back into GskVulkanRenderPass, just create
the new render pass object locally, and an api to add it
to the list that GskVulkanRender keeps. This makes it
a lot easier to preserve all the relevant parameters from
the parent render pass.
2017-09-30 17:58:23 -04:00
Matthias Clasen
983e0b7956 Small simplification
Just keep the viewport as a graphene_rect_t, we don't need
to use the Vulkan type here.
2017-09-30 17:58:23 -04:00
Matthias Clasen
4c29102753 vulkan: Add a counter for intermediate textures
Count how many pixels of intermediate textures we create.
If we can count it, we can optimize it.
2017-09-30 17:58:23 -04:00
Matthias Clasen
3a37440be6 Cosmetics
Factor out a helper function.
2017-09-30 17:58:23 -04:00
Matthias Clasen
52afccb6a3 Fix a doc comment
It was missing a return.
2017-09-30 17:58:23 -04:00
Benjamin Otte
e9dedc5036 inspector: GSK_IS_RENDER_NODE() does NULL-check
That means we don't need an extra one just so gcc can complain.
2017-09-30 20:23:11 +02:00
Matthias Clasen
836e18cc96 Support repeat nodes in vulkan
We can use the texture pipeline for this, with a repeating sampler.
2017-09-29 23:08:14 -04:00
Matthias Clasen
31d8fe3a6a vulkan: Add a repeating sampler
None of the render ops use it, yet.
2017-09-29 23:08:14 -04:00
Matthias Clasen
e382f956f3 vulkan: Move sampler creation down
This is in preparation of allowing multiple samplers.
2017-09-29 23:08:14 -04:00
Matthias Clasen
5577fde990 vulkan: Rename blend pipeline to texture
This is what it does, and the name blend is easily
confused with blend-mode.
2017-09-29 23:08:09 -04:00
Matthias Clasen
538e7c7982 vulkan: Allow to control scaling in the blend pipeline
Pass in a second rect that defines the size of the texture.
Update the sole caller to pass in the same rect, for unchanged
behavior.
2017-09-29 22:12:25 -04:00
Matthias Clasen
e91051a562 vulkan: Fix setup for dependent render passes
We were not correctly preserving the modelview transform.
2017-09-29 15:58:16 -04:00
Daniel Boles
29d40196e6 docs: css-properties: Fix wrongly repeated colour 2017-09-29 18:14:07 +01:00
Timm Bäder
c8c39af454 testsuite: Add test case for previous commit
This previously led to a loop in the child widgets.
2017-09-29 12:16:06 +02:00
Timm Bäder
a196ad725a widget: Fix inserting child widgets at the beginning
We have to care about the child widget's current prev/next sibling as
well.
2017-09-29 12:15:23 +02:00
Timm Bäder
18837248a6 build: Add widgetorder unit test to build system 2017-09-29 12:10:42 +02:00
Timm Bäder
392af59140 box: Remove return value from box_pack
Unused.
2017-09-29 10:50:33 +02:00
Timm Bäder
ad1f5fe61a box: Remove size_allocate_no_center
GtkBox never has a center widget these days.
2017-09-29 10:49:41 +02:00
Timm Bäder
f38555712b adwaita: Remove outlines from focused entries for now 2017-09-29 09:23:56 +02:00
Matthias Clasen
5d698c1452 Recorder: Add details for inset and outset shadow nodes 2017-09-28 21:41:24 -04:00
Matthias Clasen
9e2e6c1115 gsk: Fix a typo
Repeating linear gradient nodes share most of the implementation
with linear gradient nodes, but they shouldn't share the class name.
2017-09-28 21:06:52 -04:00
Matthias Clasen
352b566179 Recorder: Show details about linear gradient nodes 2017-09-28 21:06:35 -04:00
Matthias Clasen
89261d18c2 Recorder: Show details of blur nodes 2017-09-28 19:48:42 -04:00
Matthias Clasen
5e4f7301d6 recorder: Show details for blend nodes 2017-09-28 19:40:03 -04:00
Matthias Clasen
e45ab76664 gsk: remove gsk_blend_node_get_blend_mode from public api
We don't have any other such getters in the public api at
this point, so leave this one out as well.
2017-09-28 19:39:16 -04:00
Matthias Clasen
0d8b2535d8 Recorder: Show details of crossfade nodes 2017-09-28 19:20:25 -04:00
Matthias Clasen
2d5a121c3c recorder: Show details for opacity nodes 2017-09-28 19:14:32 -04:00
Matthias Clasen
9e9df66b81 Recorder: Show details of border nodes 2017-09-28 18:58:18 -04:00
Matthias Clasen
ae549c6ce4 recorder: Put text color in the right row
It ended up in the wrong place by accident.
2017-09-28 18:41:39 -04:00
Matthias Clasen
cddf415cbb Recorder: Show colors visually for text too
Just because we can do it.
2017-09-28 18:37:47 -04:00
Matthias Clasen
2da234d70d Reshuffle the recorder ui a bit
Make it possible to see the properties and the rendering at
the same time, it makes navigating easier.
2017-09-28 18:37:00 -04:00
Matthias Clasen
e58ee9ad52 recorder: Show surfaces and textures
This makes the properties list much more interesting.
2017-09-28 18:17:38 -04:00
Matthias Clasen
65bfdf4b15 recorder: Show text node properties 2017-09-28 17:16:41 -04:00
Matthias Clasen
149dd1f558 recorder: show color information for color nodes
A first step towards showing more information for render nodes.
2017-09-28 15:54:30 -04:00
Timm Bäder
29a4f0ce1f Plug some memory leaks
Make sure the scroll controllers in GtkComboBox and GtkScrolledWindow
get destroyed.
2017-09-28 20:01:01 +02:00
Timm Bäder
29dd0a940e GdkEvent: OWNER_CHANGE events have a selection as well 2017-09-28 20:01:01 +02:00
Timm Bäder
74ce20451f GdkEvent: Unref user_data in free
gdk_event_set_user_data refs it and this was creating pretty bad leaks.
2017-09-28 20:01:01 +02:00
Matthias Clasen
535529ca98 vulkan: Measure gpu time
Since this value is only meaningful if we wait for the rendering
to end, we only keep this timer if GSK_RENDERING_MODE=sync is
enabled.
2017-09-28 10:29:16 -04:00
Matthias Clasen
72d043d51f gsk: Change the profiler setup
Move away from the idea of intra-frame sampling, since we only
push samples once per frame, anyway. Instead, make the profiler
keep a rolling average of the last n frames.
2017-09-28 10:26:01 -04:00
Matthias Clasen
767966933d gsk: Redo the sampling in the profiler
Reset the min/max/average counters before calculating,
and only print the values if we have samples. In addition,
print the number of samples.
2017-09-28 10:25:49 -04:00
Matthias Clasen
4d8e7d71ca gsk: Add a profile counter for vulkan render passes
This is interesting now that we have multiple render passes.
2017-09-28 08:39:22 -04:00
Matthias Clasen
d61a715909 vulkan: Implement multiple render passes
Whenever we need a node as a texture, we now start a new render
pass that renders the node into a new intermediate texture, and
set up a semaphore to make the current render pass wait for it.

As part of this reorganization, much of the setup and drawing
code moved from gskvulkanrender.c to gskvulkanrenderpass.c.
2017-09-28 08:39:22 -04:00
Matthias Clasen
cbf897ab22 Add an api to get the vertex data for a render pass 2017-09-28 08:39:22 -04:00
Matthias Clasen
85e4e0672a Add semaphores to the command buffer submit api
Allow to pass in semaphores to wait for before executing
and to signal after executing the command buffer. This
just exposes the capabilities of the underlying Vulkan
api. Update all callers to pass no semaphores, for now.

We will use this in the future.
2017-09-28 08:39:22 -04:00
Matthias Clasen
ff188f6bf0 Add an api to create intermediate textures
The new function creates a vulkan image that is suitable for
use as a framebuffer to render to and as a texture to read from.
2017-09-28 08:39:22 -04:00
Piotr Drąg
91bb86ca20 inspector: Mark missing strings for translation 2017-09-28 14:01:57 +02:00
Sam Thursfield
c9df0c34bf flowbox: Fix annotation for GListModel binding callback
The GtkFlowBoxCreateWidgetFunc type lacked GObject Introspection
annotations for its arguments. This made gtk_flow_box_bind_model()
unusable from Python as the callback function would be passed useless
values.

The annotations that I've added match those of the similar callback
type GtkListBoxCreateWidgetFunc.

https://bugzilla.gnome.org/show_bug.cgi?id=780758
2017-09-27 13:33:20 +02:00
Matthias Clasen
485470511f vulkan: Update the outset-shadow fragment shaders
These were missing the blur-radius parameter that is written
by the vertex shader, causing Vulkan validation to complain.
2017-09-26 18:24:52 -04:00
Matthias Clasen
145e4fde92 gsk: Fix Vulkan validation errors for image upload
I've finally figured out the right combination of src and dest
stage and access flags to make all validation warnings go away.
This commit only fixes the direct upload code.
2017-09-26 18:18:31 -04:00
Matthias Clasen
d812fc8a94 gdk: Tone down Vulkan validation
Don't show informational messages by default, only warnings
and errors. This makes it much easier to see what is going
on.
2017-09-26 18:17:27 -04:00
Daniel Elstner
08e37532b9 gdk-wayland: Do not leak dummy 1x1 surface on every draw
When using EGL, neither leak nor re-create the dummy 1x1 Cairo
surface every time gdk_wayland_window_ensure_cairo_surface()
is called.

https://bugzilla.gnome.org/show_bug.cgi?id=775126
2017-09-26 21:14:21 +02:00
Matthias Clasen
ae2c645a2a gsk: report fallback pixels as a profile counter
This makes the value show up in the inspector without
any extra work. We report the number per-frame, since
that makes the most sense.
2017-09-25 21:02:21 -04:00
Matthias Clasen
cfbd6b4b99 gsk: Add a way to reset profiler counters
It is often useful to count things per-frame, and reset
the counter afterwards.
2017-09-25 20:58:10 -04:00
Matthias Clasen
b1e98d106d vulkan: add a frame counter to the profiler
This is just to match the gl renderer and to learn how
counters work.
2017-09-25 18:37:22 -04:00
Matthias Clasen
171fef4b87 Fix a typo 2017-09-25 17:53:54 -04:00
Matthias Clasen
816b47d70d gsk: Make profiler counters more useful
Make it possible to have counters that get incremented
by values other than 1.
2017-09-25 17:03:06 -04:00
Matthias Clasen
4970404d33 gsk: count fallback pixels
Always helps to have some measure of progress.
2017-09-25 09:28:18 -04:00
Debarshi Ray
60cee7339f GtkBuilder: Enforce "class" as a mandatory attribute for <object>
https://bugzilla.gnome.org/show_bug.cgi?id=786931
2017-09-25 15:26:34 +02:00
Rico Tzschichholz
d09f695172 gsk: Some g-i annotation fixes 2017-09-25 11:15:14 +02:00
Matthias Clasen
f6626a9e0e gsk: Documentation additions
Document newly added apis, and ensure that all public apis
are listed in the docs.
2017-09-24 22:26:39 -04:00
Matthias Clasen
b5ac277654 Plug a memory leak
A function with ensure in the name would better check if the
thing it is supposed to ensure already exists.
2017-09-24 21:48:07 -04:00
Daniel Boles
00f8a11aec Label: Replace allow-none with nullable/optional 2017-09-24 19:32:19 +01:00
Timm Bäder
da701ede91 emojichooser: Plug a memory leak 2017-09-24 18:15:41 +02:00
Andre Klapper
44b9b6caee Fix broken translations of 'calendar:' settings (ignored translator comments) 2017-09-23 23:42:55 +02:00
Matthias Clasen
4a5ac93762 gsk: Fix a prefix mishap
There shouldn't be any gst_ functions in here...
2017-09-23 13:15:30 -04:00
Matthias Clasen
a7f077a3a9 Cosmetics
Go back to a single GskVulkanOpRender that can
handle 0, 1 or 2 sources.
2017-09-23 09:47:05 -04:00
Matthias Clasen
3c98b90fc6 vulkan: Implement nonseparable blendmodes
This is a directly-from-the-spec, unoptimized implementation.
2017-09-23 09:16:58 -04:00
Matthias Clasen
d61f6ff393 vulkan: Implement blend modes
This is another example for a 2-texture shader.
So far, only separable blend modes are implemented.
The implementation is not optimized, with an
if-else cascade in the shader.
2017-09-23 01:59:50 -04:00
Matthias Clasen
b192120f39 vulkan: fix a clip handling problem
We were looking at uninitialized memory here, instead
of the type of the source clip, as we should.

This showed up as mispositioned clip in the first frame
of a crossfade stack transition, and also as overdraw in
sliding stack transitions.
2017-09-22 22:16:10 -04:00
Matthias Clasen
a75d995bd4 vulkan: Implement crossfade
This is the first shader using two textures. It almost works.
2017-09-22 22:16:10 -04:00
Matthias Clasen
8ad0539cf7 vulkan: Drop GskVulkanPipelineLayout
We already move the descriptor set layout out of it,
so we can just as well keep the pipeline layouts in
the render object as well, and get rid of this extra
object. Update all callers.
2017-09-22 22:16:09 -04:00
Matthias Clasen
9b0ee4ac99 Allow different pipeline layouts
These are differentiated by the number of textures; currently
we have shaders with 0 and 1 textures.
2017-09-22 22:16:09 -04:00
Matthias Clasen
5ff6481310 Add a getter to the pipeline layout directly from the pipeline
This is a step towards allowing multiple pipeline layouts.
2017-09-22 22:16:09 -04:00
Matthias Clasen
4c7a51f88a vulkan: Move descriptor set layout to the render object
We want to maintain a single descriptor set layout while introducing
multiple pipeline layouts, so split this off.
2017-09-22 22:16:09 -04:00
Arash Mousavi
87a112a5ad Update Persian translations 2017-09-22 22:54:21 +03:30
Rico Tzschichholz
9f259a7391 gdk: Add g-i annotations for new event getters 2017-09-22 14:18:00 +02:00
Matthias Clasen
88664f7ccb Fix a typo 2017-09-21 22:53:49 -04:00
Emilio Pozuelo Monfort
00932b2c11 Drop gail-4.0.pc.in
libgail is gone.
2017-09-21 20:34:26 +02:00
Matthias Clasen
e97a78840f gsk: vulkan: Drop an unused api
We don't use the upload-single-region api anymore.
No need to keep it around.
2017-09-21 13:47:17 -04:00
Matthias Clasen
dbc0caf27d vulkan: Batch uploads from the glyph cache
This uses the new api that was introduced in the previous
commit.
2017-09-21 13:45:01 -04:00
Matthias Clasen
64322a2c41 vulkan: Add an api to update multiple image regions
Instead of doing multiple copy commands with a tiny buffer
for each glyph, we can just batch them all together. This
also avoids the issue of creating multiple barriers for the
same image.
2017-09-21 13:42:57 -04:00
Matthias Clasen
9a1460218c vulkan: Quiet another validation warning
It complains if a vertex shader has an out that is not matched
to an in of the fragment shader.
2017-09-21 12:05:00 -04:00
Matthias Clasen
8e26864778 vulkan: Quiet another validation error 2017-09-20 23:46:16 -04:00
Matthias Clasen
75bf6db5e0 Cosmetic change 2017-09-20 23:26:15 -04:00
Matthias Clasen
ce06c4b840 gsk: Make repeat nodes deserializable
This was just a simple oversight.
2017-09-20 23:26:15 -04:00
Matthias Clasen
b18ab9761a gsk: Fix serialization of text nodes 2017-09-20 23:26:15 -04:00
Matthias Clasen
b5eeb98374 Add simple aging for the glyph cache
This should prevent the cache from growing out of bounds.
2017-09-20 23:26:14 -04:00
Lionel Landwerlin
7d7f8e5f8e gsk vulkan: Use new api in the glyph cache
Use the newly introduced gsk_vulkan_image_new_for_atlas.
2017-09-20 23:26:14 -04:00
Lionel Landwerlin
b97fb75146 gsk: vulkan: rework image layout/access transitions
By tracking the last transition we can build the appropriate barriers.
Also use the most appropriate initial layout/access at creation :

for linear image : predefined (we prepare the content ourself through memcpy)
for everything else : undefined (we don't care about the content, will most likely be erase)
2017-09-20 23:26:14 -04:00
Lionel Landwerlin
28bd26ca06 gsk: vulkan: silence anisotropy validation warning 2017-09-20 23:26:14 -04:00
Matthias Clasen
b321b26a73 glyph cache: Upload glyphs incrementally
This does not work yet.
2017-09-20 23:26:14 -04:00
Matthias Clasen
7bbd4d41e0 vulkan: pass the context when creating a glyph cache 2017-09-20 23:26:14 -04:00
Matthias Clasen
5ee5af9bc8 vulkan: Add an upload_region api to GskVulkanImage
This will let us update larger textures incrementally.
Sadly, it does not work yet.
2017-09-20 23:26:14 -04:00
Matthias Clasen
6dbec5e4fc Add some debug output for the glyph cache
Print out some statistics and dump the glyph caches to a png,
for now.
2017-09-20 23:26:14 -04:00
Matthias Clasen
baeff2a49b Make the glyph cache grow as needed
Make it possible to have more than one texture in the
glyph cache, and create new ones when we run out of space
in the existing ones.
2017-09-20 23:26:14 -04:00
Matthias Clasen
cead00757d vulkan: Move glyph cache to a separate file
Otherwise things will get too messy.
2017-09-20 23:26:14 -04:00
Matthias Clasen
4d4a0212fb vulkan: Better glyph cache api
Move the glyph caching api to something that can support using
multiple textures. We now split the text render ops into multiple
ops for different textures, and make each op render just a substring
of the text node's glyph string.
2017-09-20 23:26:14 -04:00
Daniel Boles
c0fdf522dd ToolItem: Fix nullable annotation put on wrong arg
D’oh
2017-09-20 23:55:15 +01:00
Daniel Boles
9c7e996bce gdkseatdefault: Grab touch events where applicable
gdk_seat_default_grab() grabs POINTER_EVENTS if the capability is
GDK_SEAT_CAPABILITY_ALL_POINTING. But that enumerator is a union that
includes GDK_SEAT_CAPABILITY_TOUCH, but we never grabbed TOUCH_EVENTS,
an unused macro that was presumably created with this purpose in mind.

So, check which of the ALL_POINTING capabilities we have, and set the
right mask of POINTER_EVENTS and/or TOUCH_EVENTS as required.

As part of this, explicitly let TABLET_STYLUS take over pointer events,
as this is the intended behaviour and was the effective result before.

This should fix touch events being lost in migrating from Device.grab()
to Seat.grab(GDK_SEAT_CAPABILITY_ALL_POINTING), as found by Inkscape.

https://bugzilla.gnome.org/show_bug.cgi?id=781757
2017-09-20 19:19:35 +01:00
Daniel Boles
761194dad7 Overlay: Document style classes added per position 2017-09-20 19:19:25 +01:00
Piotr Drąg
38d1c78ff3 Update POTFILES.in 2017-09-19 19:49:39 +02:00
Carlos Garnacho
e0a3c9d2de gtkmain: Ensure to emit real GDK_LEAVE_NOTIFY events.
If we got a GDK_LEAVE_NOTIFY event from GDK, we would reset the
GtkPointerFocus, but the event would be silently consumed.
2017-09-19 18:40:51 +02:00
Carlos Garnacho
fb81d7fc8f gdk/x11: Implement GDK_CROSSING_TOUCH_BEGIN/END/DEVICE_CHANGE events
The behavior where a touchpoint takes over the pointer position is
really backend dependent. Since this went away from the generic code,
implement it here.
2017-09-19 18:40:51 +02:00
Carlos Garnacho
97139e4027 gdk: Remove remainings of fake crossing event delivery across touch
This was by all lights broken, and is basically an implementation detail
of the X11 backend since the pointer emulating touch just steals the pointer
cursor, so should be reimplemented there.
2017-09-19 18:40:51 +02:00
Carlos Garnacho
f3b0a3780e gdk: Coalesce 2 GdkWindow fields in GdkPointerWindowInfo struct
One used to point to the toplevel and the other to the client-side window
that the pointer pointed to. The latter was made to be like the former in
most places, so put those together, and fix the remaining cases where the
variable might not end up with a toplevel/native window.
2017-09-19 18:40:51 +02:00
Carlos Garnacho
c00567a64c gdk: Remove unused variable
It was supporting API that has been removed.
2017-09-19 18:40:51 +02:00
Carlos Garnacho
0317b0d18d gdk: Remove implicit touch grab accounting
This is not necessary now that there's no client-side windows to track.
The only removed piece that could make sense is emission of grab broken
events, but it's already an stretch since the semantics of those with
multi-touchpoint is unclear.

Anyhow, This should be fixed at the GTK level, while we let GDK deal with
seat/device level grabs.
2017-09-19 18:40:51 +02:00
Carlos Garnacho
44cb3ccfa1 gdk: Remove motion hints
Motion hints are now literally a thing of the past. Everything should be
using the full motion event stream.
2017-09-19 18:40:51 +02:00
Carlos Garnacho
3e1f672170 gdk: Drop generation of synthesized crossing events on grabs
GDK just needs to care about toplevels nowadays, which means these events
are already delivered from the windowing. We don't need to generate
intra-window crossing events ourselves.
2017-09-19 18:40:50 +02:00
Carlos Garnacho
a9988e18b0 gtk: Remove 2BUTTON and 3BUTTON events and event types
Those should be interpreted by widget-local gestures, not guessed at a
high level with no notions of the specific context. Users will want
GtkGestureMultiPress to replace these events.
2017-09-19 18:40:50 +02:00
Carlos Garnacho
403a724164 gdk: Remove array of event masks
This has been unused since all events are just forwarded instead of
checking client-side windows evmasks.
2017-09-19 18:40:50 +02:00
Carlos Garnacho
1f91ca0cec gtklistbox: Remove enter/leave/motion event handlers
Those worked similarly to those in GtkFlowBox, but would additionally
handle "active" state for child rows. Simplify this to just enabling/
disabling active state on gesture press/release, we don't get the
nice state updates when hovering around with a mouse button pressed,
but the rationale from flowbox applies here, and makes a nice cleanup.
2017-09-19 18:40:50 +02:00
Carlos Garnacho
7d196db4c0 gtkcolorswatch: Remove enter/leave event handlers
Those just maintained prelight state, which is already managed internally.
2017-09-19 18:40:50 +02:00
Carlos Garnacho
9d5c04012e gtkbutton: Remove enter/leave event handlers
They just maintain priv->in_button and widget state up-to-date, this
basically matters during user interaction, and is already maintained
in the gesture ::update handler. This seems to be sufficient.
2017-09-19 18:40:50 +02:00
Carlos Garnacho
c4d57f85f4 gtkflowbox: Drop crossing/motion event handlers
Those basically controlled priv->active_child_active, which would
1) trigger a redraw when the pointer enters/leaves it, and 2) ensure
that press/release happen on the same child for it to be activated.

The former is not necessary, and the latter can be simplified by
just checking again the child on the coordinates given by the
::release gesture handler. This makes all enter/leave/motion_notify
event handlers unneeded.
2017-09-19 18:40:50 +02:00
Carlos Garnacho
27a391bad8 gtkspinbutton: Remove motion notify handler
It does nothing nowadays.
2017-09-19 18:40:50 +02:00
Carlos Garnacho
b31029457b gtkcalendar: Use scroll event controller 2017-09-19 18:40:50 +02:00
Carlos Garnacho
cf6ecc9095 gtkscrolledwindow: Use scroll event controller
All kinetic scrolling initial velocity calculations are now
taken from the scroll controller. The handling of timeouts
to snap back when overshooting has been also made to just
apply on devices that can't emit ::scroll-begin/end.
2017-09-19 18:40:50 +02:00
Carlos Garnacho
ad05caedd3 gtkspinbutton: Use scroll event controller 2017-09-19 18:40:50 +02:00
Carlos Garnacho
9a204921ae gtkscalebutton: Use scroll event controller 2017-09-19 18:40:50 +02:00
Carlos Garnacho
861916fd0b gtkrange: Use scroll event controller 2017-09-19 18:40:49 +02:00
Carlos Garnacho
f3474645c4 gtkpathbar: Use scroll event controller 2017-09-19 18:40:49 +02:00
Carlos Garnacho
d0e27ba760 gtkmenu: Use scroll event controller 2017-09-19 18:40:49 +02:00
Carlos Garnacho
215c4ed419 gtkcombobox: Use scroll event controller 2017-09-19 18:40:49 +02:00
Carlos Garnacho
c3fbd58916 gtk: Add GtkEventControllerScroll
This is a GtkEventController implementation to handle mouse
scrolling. It handles both smooth and discrete events and
offers a way for callers to tell their preference too, so
smooth events shall be accumulated and coalesced on request.

On capable devices, it can also emit ::scroll-begin and
::scroll-end enclosing all ::scroll events for a scroll
operation.

It also has builtin kinetic scrolling capabilities, reporting
the initial velocity for both axes after ::scroll-end if
requested.
2017-09-19 18:39:03 +02:00
Carlos Garnacho
2985bf3313 gdk/x11: Avoid delivering emulated scroll events
We now just propagate the real event, and let the caller deal
with smooth vs discrete.
2017-09-19 18:39:03 +02:00
Carlos Garnacho
d271b135bb gdk/wayland: Drop emission of emulated scroll events
A wl_pointer.frame can now only result on one scroll event
being emitted.
2017-09-19 18:39:03 +02:00
Carlos Garnacho
f2ded6a685 gtk: Change gtk_propagate_event() to propagate both ways.
This change is made for consistency, it doesn't make sense to expose
one-way propagation, as it can only break expectations from GTK+. This
function might be made entirely private in the future, but it still
makes sense to do this in one go for our internal usecases.
2017-09-19 18:39:03 +02:00
Carlos Garnacho
6fd905e4e1 gdk/x11: Drop motion/button events emulated from touch
We now always listen to touch events. Just avoid delivering both
types of events.
2017-09-19 18:39:03 +02:00
Carlos Garnacho
c02d0f3c0a eventcontroller: Drop event_mask API
This is unchecked, we can remove it entirely as well.
2017-09-19 18:39:03 +02:00
Carlos Garnacho
5b9287ed77 gtkwidget: Drop pointer emulation out of touch events
Users of touch events are required to either use a GtkGesture, or handle
touch events themselves.
2017-09-19 18:39:03 +02:00
Carlos Garnacho
8c350459ae gtk: Run GtkWidgetClass event signals inside a GtkEventController
This will allow further cleanups and optimizations in capture/target/bubble
event delivery. For simplicity, ATM every widget will receive its own
GtkEventControllerLegacy, it could be desirable to add finer control over
this in the future, so widgets that fully use event controllers for input
management can do away without this legacy piece.
2017-09-19 18:39:03 +02:00
Matthias Clasen
b350db58e0 testsuite: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
e1ea408161 tests: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
d5d0ee6f9d examples: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
880d44aa48 widget: Give up on GdkEvent api for now 2017-09-19 18:39:03 +02:00
Matthias Clasen
0ab20b6253 treeview: Give up on GdkEvent api for now
There's multiple places where events are manually generated
here, this needs more thought.
2017-09-19 18:39:03 +02:00
Matthias Clasen
d0c92fba69 entry accessible: Give up on GdkEvent api for now
Just include gdkeventsprivate.h here for now. This may be
resolved by just dropping icon support from GtkEntry down
the road.
2017-09-19 18:39:03 +02:00
Matthias Clasen
0554f6372b a11y: Stop listening for configure events
This needs to be done differently.
2017-09-19 18:39:03 +02:00
Matthias Clasen
7306f55912 Add some more GdkEvent getters 2017-09-19 18:39:03 +02:00
Matthias Clasen
25ab8f7c6b gtk-demo: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
208a85c3fe treev view column: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
56189fdb74 clipboard: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
efd287feb3 a11y: Use GdkEvent API in some places
More work needed.
2017-09-19 18:39:03 +02:00
Matthias Clasen
853602bf63 tooltip: Use GdkEvent API
And at the same time, reshuffle things slightly to avoid
creating synthetic events.
2017-09-19 18:39:03 +02:00
Matthias Clasen
96daf93821 text view: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
9c477951cb text handle: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
aeaa42121f selection: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
f43849901d search bar: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
c7225bc8c1 scrolled window: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
7793e8f071 places view: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
5d5ae459c4 place sidebar: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
3b266de66c path bar: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
75b16ac855 pad controller: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
ebc66eefa8 menu shell: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
d7ccf36d71 menu item: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
b99c3d33ec im context simple: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
67489349a5 header bar: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
50701abcc3 gesture zoom: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
5430751644 gesture swipe: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
1a8f0686ca gesture single: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
17832f9617 gesture rotate: Use GdkEvent API 2017-09-19 18:39:03 +02:00
Matthias Clasen
b5b84e6abe gesture drag: Use GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
7d6a2a832c gesture: Use GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
9794dc5628 window accessible: Use GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
16781c8598 widget accessible: Use GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
66d8483fdf Add more GdkEvents API 2017-09-19 18:39:02 +02:00
Matthias Clasen
974b99694d xim: Convert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
c68c754f3e settings: Convert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
7cbd35dd86 gesture rotate: Partially convert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
d20efc15a9 gesture: Partially convert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
6b4dfcadaf flowbox: Convert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
c586a6486f file chooser widget: Covert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
2246387d21 expander: Convert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
7ed6add550 entry: Convert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
067e209582 dnd: Convert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
c12a54a3ed cell renderer accel: Convert to GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
01b993d1fb bindings: Convert to use GdkEvent API 2017-09-19 18:39:02 +02:00
Matthias Clasen
5488009150 Add more getters for event fields 2017-09-19 18:39:02 +02:00
Carlos Garnacho
c7431f46b5 gdk: Make GdkEvent structs/union opaque
All users are forced to deal with events as opaque pointers, only
using API to access the info.
2017-09-19 18:39:02 +02:00
Carlos Garnacho
63eecd3dfa bindings: Partially update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
e5a3e95b8c a11y: Partially update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
261fdad7ca inspector: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
177f3ef655 gtkwindow: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
14a28224e4 treeview: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
b4f88e1544 tooltip: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
9f32f5f994 textview: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
35301530bb texthandle: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
e2eb20208b spinbutton: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
0a55573ca3 scrolledwindow: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
627a73cf57 scalebutton: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
e41844f751 recentchoooser: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
c0b77a2941 range: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
5785db64ce popover: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
8803886319 placesview: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
2abfc602ca placessidebar: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
e6349c940e paned: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
b9db1a5410 notebook: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
46336aaebe mountoperation: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
e023367a8a menu: Update to using GdkEvent API
To some extent, plenty of root coordinate calculations left...
2017-09-19 18:39:02 +02:00
Carlos Garnacho
1b6ff9df76 listbox: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
dee14dda8d imcontext: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
3d7ad2af4f iconview: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
7545b908de gesture: Update to using GdkEvent API
To some extent, pad and touchpad gesture events need extra API.
2017-09-19 18:39:02 +02:00
Carlos Garnacho
67239f112e fontchooser: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
e67090df91 flowbox: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
c48a196d77 filechooser: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
75d8175715 entrycompletion: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
e46a1d32f0 entry: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
92be6488c4 combobox: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
df4b0340a6 colorswatch: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
510554f679 colorplane: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
a46173980e coloreditor: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
75492e3cef cellrendererspin: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
769ce02aef cellarea: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
ff187eeb17 calendar: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
fac9ba0fff button: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
96e7777198 appchooserwidget: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
9b7b1b65b6 aboutdialog: Update to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
668bb1bddd modules: Update input context impls to using GdkEvent API 2017-09-19 18:39:02 +02:00
Carlos Garnacho
ab5f02771a gdk/wayland: Don't make gtk_shell1 v2 mandatory
It may result in a protocol error on older mutters, as GTK+ will
invariably request a higher version than what's available. Make
GTK+ also accept v1 if it's all the compositor has got.
2017-09-19 18:35:20 +02:00
Matthias Clasen
49aada63ee css: Drop the new indent api again
It is not used anymore, and it was not a good idea.
2017-09-18 23:22:38 -04:00
Matthias Clasen
6859f0a6d1 css: Use enums instead of idents for font-variant properties
As Benjamin says, ident should only be used if any value
is valid, which is not the case here. So use enums instead,
which should also be more efficient. To handle the more
complicated cases like font-variant-ligatures, we have to
introduce flags-like values.
2017-09-18 23:22:38 -04:00
Georges Basile Stavracas Neto
01911b5ecd wayland: Bump GTK_SHELL1 version to 2
Otherwise, we can't negotiate the latest version with the
compositor, making the compositor use v1 of the protocol and
pretty much ignoring all the edge constraints work.
2017-09-18 23:51:03 -03:00
Piotr Drąg
33c24f7380 Update Polish translation 2017-09-19 02:11:26 +02:00
Daniel Boles
50106521d6 Window: Clarify documentation of set_application()
Clarify that ::destroy, not ::hide*, removes a window from its app, by
replacing the mention of open windows with the blurb on destruction from
:application, completing commit 7db4bee4b6

Also link to the equivalent gtk_application_(add|remove)_window() calls,
since Application.add_window() already links back to Window:application.

* unless you use gtkmm…

https://bugzilla.gnome.org/show_bug.cgi?id=639931
2017-09-19 00:20:17 +01:00
Daniel Boles
7178ab8e41 PlacesSidebar: Avoid unused mem if !CLOUDPROVIDERS
The member GList *cloud_rows is only ever used if HAVE_CLOUDPROVIDERS is
defined, so don’t declare it if not.
2017-09-19 00:20:17 +01:00
Daniel Boles
94eecf57dc PlacesSidebar: Unref cloud_manager in dispose()
We ref the CloudProviders singleton in init() but did not unref it in
dispose(). Do so, using g_clear_object().

https://bugzilla.gnome.org/show_bug.cgi?id=787600
2017-09-18 23:30:57 +01:00
Daniel Boles
383fa87993 SidebarRow: Unref CloudProvider on change/finalize
It was never unref()d, either when replacing the existing GObject in
set_property(), cleaning up in finalize(), or becoming a placeholder.

Fix by using g_set_object() and g_clear_object() to unref as needed.

This also drops the check that the newly set object is a valid cloud
provider account, as we don’t do the equivalent for any of the other
object-typed properties, and Carlos didn’t think this was important.

https://bugzilla.gnome.org/show_bug.cgi?id=787600
2017-09-18 23:30:57 +01:00
Matthias Clasen
f87dc24867 Fix a typo
The property is called font-variant-alternates, not -alternatives.
Correct this everywhere.
2017-09-18 18:10:08 -04:00
Matthias Clasen
92398bb1bb css: implement font-variant as a shorthand
Drop the current css2-style font-variant property and
replace it with a shorthand as specified in the css3 fonts
module. Currently, we fully support the font-variant-ligatures,
font-variant-position, font-variant-caps, font-variant-numeric
and font-variant-east-asian subproperties. font-variant-alternatives
is only partially supported.
2017-09-18 14:27:06 -04:00
Matthias Clasen
b91f3ce331 css: Implement font-variant-east-asian
This is translated to the corresponding OpenType features.
2017-09-18 14:26:57 -04:00
Matthias Clasen
8a7f2ca0be css: Implement font-variant-alternatives
This is only a partial implementation, since we don't support
@font-feature-values. The only supported value is historical-forms,
for now.
2017-09-18 14:26:57 -04:00
Matthias Clasen
b99cb70299 css: Implement font-variant-numeric
This gets translated to the corresponding OpenType features.
2017-09-18 14:26:57 -04:00
Matthias Clasen
8525afc408 css: Implement font-variant-caps
This gets translated to the corresponding OpenType features.
2017-09-18 14:26:57 -04:00
Matthias Clasen
01ed84fbef css: Implement font-variant-position
This gets translated to the corresponding OpenType features.
2017-09-18 14:26:57 -04:00
Matthias Clasen
c4cbe5feca css: Implement font-variant-ligatures
This gets translated into corresponding OpenType features.
2017-09-18 14:26:57 -04:00
Matthias Clasen
cee4622567 css: Implement font-kerning
This gets translated to the OpenType feature kern.
2017-09-18 14:26:57 -04:00
Matthias Clasen
6420dd934f Add an auxiliary ident parsing function
This lets us conveniently create ident values from
multiple candidates.
2017-09-18 14:26:57 -04:00
Debarshi Ray
edaaefcb74 build: Bump minimum Meson version to 0.42.1
Otherwise it fails to build with:

  FAILED: gtk/im-ipa@sha/imipa.c.o
  ...
  In file included from ../gtk/gtkintl.h:4:0,
                   from ../modules/input/imipa.c:28:
  /opt/include/glib-2.0/glib/gi18n-lib.h:27:2: error: #error You must
          define GETTEXT_PACKAGE before including gi18n-lib.h. Did you
          forget to include config.h?
   #error You must define GETTEXT_PACKAGE before
           including gi18n-lib.h.  Did you forget to include config.h?
    ^~~~~
  ../modules/input/imipa.c:144:3: error: ‘GETTEXT_PACKAGE’ undeclared
          here (not in a function)
     GETTEXT_PACKAGE,     /* Translation domain */
     ^~~~~~~~~~~~~~~
  ../modules/input/imipa.c:145:4: error: ‘GTK_LOCALEDIR’ undeclared
          here (not in a function)
      GTK_LOCALEDIR,     /* Dir for bindtextdomain (not strictly
              needed for "gtk+") */
      ^~~~~~~~~~~~~
2017-09-18 18:04:34 +02:00
Anders Jonsson
0b54b415ab Update Swedish translation 2017-09-18 11:22:25 +00:00
Anders Jonsson
44993e4393 Update Swedish translation 2017-09-18 11:20:48 +00:00
Georges Basile Stavracas Neto
0bdaebef1e window: Improve detection of edge constraint support
Instead of relying on special values of edge constraints, this
patch adds an internal-only gdk_window_supports_edge_constraints()
function that by default returns FALSE, and is implemented by
GdkWindowWayland and GdkWindowX11.

This way, we can properly detect server-side support for this
feature and adapt accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=783669
2017-09-17 23:16:48 -03:00
Georges Basile Stavracas Neto
b1c4e9afef window: Add individual CSS classes based on edge constraints
The last touch on this patch series is making GtkWindow able to
selectively adjust various UI details based on the different
tiled edges. The main driver here is that we don't want to show
shadows on edges that are constrained.

This patch adds the necessary code to do that, while still
maintaining compatibility with the old ways.

https://bugzilla.gnome.org/show_bug.cgi?id=783669
2017-09-17 23:16:48 -03:00
Georges Basile Stavracas Neto
03204f8cdb x11: Add support for _GTK_EDGE_CONSTRAINTS atom
Following the previous patch, where edge constraints support
was added to the Wayland backend, this patch introduces the
necessary code to handle the _GTK_EDGE_CONSTRAINTS atom from
X11 backend.

https://bugzilla.gnome.org/show_bug.cgi?id=783669
2017-09-17 23:16:48 -03:00
Georges Basile Stavracas Neto
e9cc77ecc8 wayland: consider edge constraints in surface configuration
Now that GTK windows have the ability to properly handle
per-edge tiling constraints, this patch extends GTK's
internal Wayland protocol to have a proper enum with the
relevant edge data.

Once this approach is validated, we can think of upstreaming
this work as an official Wayland protocol extension.

https://bugzilla.gnome.org/show_bug.cgi?id=783669
2017-09-17 23:16:48 -03:00
Georges Basile Stavracas Neto
45f4844880 window: handle tiled edges separately
GTK windows don't have their tiling states really
hooked into the client-side decoration code, and
the only effect it has is disabling the resizing
edges.

With the introduction of per-edge tiling information,
we are backed by much more precise data on how the
window manager wants the app to behave.

This patch, then, fixes GtkWindow to take into account
per-edge tiling information. For compatibility purposes,
the previous tiled field was kept, and thing will just
continue working if no edge information is supplied.

https://bugzilla.gnome.org/show_bug.cgi?id=783669
2017-09-17 23:16:48 -03:00
Georges Basile Stavracas Neto
019f0af0eb gdk: introduce edge constraint states
These states will be consumed by GtkWindow in order to
have better edge management on tiling situations. Their
values are supplied by the compositor, and will be send
through and X11 Atom or a Wayland protocol extension.

https://bugzilla.gnome.org/show_bug.cgi?id=783669
2017-09-17 23:16:48 -03:00
Matthias Clasen
d0cae3ecba Fix the -gtk-outline-radius shorthand
It needs to refer to the -gtk-prefixed subproperties now.
2017-09-17 21:17:30 -04:00
Matthias Clasen
d3198536a4 Drop support for deprecated pseudo-classes
We no longer have any of those.
2017-09-17 17:04:16 -04:00
Matthias Clasen
a08e2b5692 Drop code parsing deprecated forms of url
We no longer allow whitespace between url and (.
2017-09-17 17:01:29 -04:00
Matthias Clasen
d1b77fd60f Drop code handling deprecated style properties
We no longer have any deprecated style properties.
2017-09-17 16:59:26 -04:00
Matthias Clasen
82b86c2c1c Drop the aliasing api for style properties
This was added to deprecate style properties. All deprecated
style properties are gone now, so this is no longer needed.
2017-09-17 16:57:53 -04:00
Matthias Clasen
793513993b Drop the gtk-key-bindings property
This has been deprecated for a while. Just use the -gtk-prefixed
name.
2017-09-17 16:57:53 -04:00
Matthias Clasen
226aee0828 Drop the icon-shadow property name
This has been deprecated for a while. Just use the -gtk-prefixed
name.
2017-09-17 16:57:53 -04:00
Matthias Clasen
de3179e7c0 Drop aliases for outline radius
The outline-{top,bottom}-{left,right}-radius names have been
deprecated for a while, so lets remove them. Everybody should
just use the -gtk-prefixed names for these properties.
2017-09-17 16:57:53 -04:00
Matthias Clasen
d3727817ff Drop support for one-stop gradients
These have been deprecated for a while. Time to make this an
error for GTK+ 4.
2017-09-17 16:53:02 -04:00
Matthias Clasen
737cae8e10 Drop support for pango syntax in css
This has been deprecated for a while, so it should go away
for GTK+ 4.
2017-09-17 16:52:55 -04:00
Daniel Boles
f714500b8d Adwaita: Fix color of focus outline on colorswatch
The focus outline disappeared as the colour of the swatch got close to
the normal focus outline colour, which is alpha(currentColor, 0.3).

Fix by making the outline an alpha’d version of the tick colour, but
more opaque than normal outlines. 0.6 seems good enough; feel free to
improve it, but at least this ensures the outline can’t vanish anymore.

HighContrast achieves this already because it applies the color property
to the main node, not the overlay. Doing that means the outline is fully
opaque, which is fine for HC obviously but was excessive for Adwaita.

https://bugzilla.gnome.org/show_bug.cgi?id=787757
2017-09-16 17:02:48 +01:00
Daniel Boles
7c809cfb73 Adwaita: dark: Make colorswatch.light tick visible
It used $text_color unconditionally, but in :dark, text is white, so we
overlaid a white tick on any light colours, all the way to white itself.

Using these named colours doesn’t make practical or semantic sense.
Instead, use white/black over dark/light swatches, as in HC, so all
variant–swatch combos work. Light looks the same, & :dark works now.

For backdrop, use alpha 0.5, unlike 0.7 in HC, as that seemed excessive
& different from the current effect. 0.5 is almost identical to how
$backdrop_fg_colour is a 50% mix of $fg_color, & matches backdrop text.

https://bugzilla.gnome.org/show_bug.cgi?id=787531
2017-09-16 17:02:48 +01:00
Carlos Garnacho
8a26fd3308 tests: Update testoverlay "Chase" testcase to gtk4 crossing events
The intent is detecting enter events into the overlayed label, so just
connect to ::enter-notify-event on the label with no GdkWindow checks.
2017-09-15 21:11:22 +02:00
Daniel Boles
7161b57063 Expander: get_label() return is nullable
Also, use gchar to match the header.
2017-09-15 18:25:47 +01:00
Emmanuele Bassi
67d9cefb72 build: Declare cairo_libs outside MSVC check block
Otherwise there won't be a reference to it on non-MSVC builds.
2017-09-15 15:57:34 +01:00
Chun-wei Fan
84ff9e93d5 build: Add fallback dependency discovery for MSVC
For dependencies that do not generate pkg-config files for their Visual
Studio build systems, we need to look for them using cc.has_header() and
cc.find_library(), namely for Cairo and HarfBuzz, if one does not have
crafted pkg-config files for them (which, by themselves may be
error-prone).

As a result, we will still try to look for Cairo and HarfBuzz using
pkg-config, but will give another shot at them on Visual Studio using
cc.has_header() and cc.find_library() if they couldn't be found via
pkg-config.

https://bugzilla.gnome.org/show_bug.cgi?id=785210
2017-09-15 21:41:16 +08:00
Chun-wei Fan
fc5f391110 build: Correct PangoCairo required version
We ought to use pango_req instead of cairo_req for the version required
for PangoCairo.

https://bugzilla.gnome.org/show_bug.cgi?id=785210
2017-09-15 21:41:15 +08:00
Chun-wei Fan
0b783f6750 meson.build: Fix Vulkan library detection on Visual Studio
The Vulkan .lib file that is supplied by the LunarG Vulkan SDK is
vulkan-1.lib, not vulkan.lib, so make sure we look for the right
libraries when building on Visual Studio (I am not sure whether the
LunarG SDK will work for MinGW/mingw-w64 builds, as only Visual Studio
.lib files are provided).

Note that this will require one to set LIB and INCLUDE appropriately to
find the Vulkan .lib and header files, and possibly PATH if one's video
drivers do not contain the Vulkan runtime DLL.

https://bugzilla.gnome.org/show_bug.cgi?id=785210
2017-09-15 21:41:15 +08:00
Chun-wei Fan
60297b9fc7 testsuite: Fix builder test on Windows/MSVC
Visual Studio does not support things like -Wl,export-dynamic, so we
need to export those symbols by using __declspec(dllexport).  So, we
decorate these with macros which we define accordingly for this purpose.

https://bugzilla.gnome.org/show_bug.cgi?id=785210
2017-09-15 21:41:15 +08:00
Chun-wei Fan
0332dbca94 gtk/gentypefuncs.py: Open files in utf-8 encoding
On Python-3.x, we need to set the encoding when opening files, when this
script is run, as it might contain items that are not supported by the
system's locale (for example, non-English Windows).  So, we use a
wrapper to set the encoding on Python 3.x, but open the file as we did
when using Python 2.x, since file encodings are not supported there.

https://bugzilla.gnome.org/show_bug.cgi?id=785210
2017-09-15 21:41:15 +08:00
Chun-wei Fan
e5a1de1c19 gdk/gdkconfig.h.meson: Add GDK_WINDOWING_WIN32
This is so that Meson can add this define once it is determined that we
are building for Windows.

https://bugzilla.gnome.org/show_bug.cgi?id=785210
2017-09-15 21:41:15 +08:00
Daniel Boles
89790bb412 Expander: Annotate new()’s label arg as nullable
to match new_with_mnemonic()
2017-09-14 21:21:09 +01:00
Daniel Boles
050531a9f2 Expander: Replace (allow-none) with (nullable)
The former is deprecated in favour of the latter.
2017-09-14 21:21:08 +01:00
Daniel Boles
3cd117e3a1 Expander: Explain how to conditionally style arrow 2017-09-14 21:21:08 +01:00
Daniel Boles
d48f904e3c Spinner: Document how to select on animated in CSS
This is not particularly obvious, so it seems worth including.
2017-09-14 19:25:50 +01:00
Daniel Boles
4cb00d9546 gtk-demo/theming: Don’t mislead about raised class
This class is not added by any widgets nor themed by Adwaita/HC.
However, it is presented here as if it does something. It doesn’t.

But we changed the 2 buttons with the .raised class to use symbolic
icons, unlike their ‘unraised’ counterparts, which is unnecessarily
confusing and might make people think .raised affects icons somehow.

So, make them use the same icons in all cases; that way, if .raised is
ever made to do anything, 6 years later, what it does will be clear.

https://bugzilla.gnome.org/show_bug.cgi?id=644248
2017-09-14 18:35:18 +01:00
Daniel Boles
6ee2bf6286 widget-factory: Usefully demo Frame shadow types
Instead of showing the 4 types except for GTK_SHADOW_NONE, which are all
treated identically and provide no way for themes to differentiate, just
keep 2 Frames, and make one of them GTK_SHADOW_NONE to demo a flat Frame
2017-09-14 18:35:08 +01:00
Daniel Boles
ac4faad8a2 Frame: Add missing fixed-width format to enums 2017-09-14 18:29:08 +01:00
Timm Bäder
c3a191abe2 build: Add directories to the summary 2017-09-14 18:22:36 +02:00
Timm Bäder
c8efb575f8 iconview: Stop using ::button-{press,release}-event
Use a gesture instead.
2017-09-13 17:58:45 +02:00
Timm Bäder
054df8e6ec calendar: Stop using ::button-{press,release}-event 2017-09-13 17:37:25 +02:00
Daniel Boles
d207e03918 FlowBox: Explain how to avoid inflated min size
along the orthogonal orientation. It seems a FlowBox on its own can only
handle being shrunk along its main orientation. The orthogonal requests
a huge min size – reserving what it would need if the main orientation
got its min size, which would flow all children in 1 line orthogonally.

Adding it to a ScrolledWindow (any policy) enables free shrinking, so
size_allocate() can reflow how users in this situation probably expect.

https://bugzilla.gnome.org/show_bug.cgi?id=787021
2017-09-12 22:49:48 +01:00
Hiroyuki Ito
efaf99b039 ColorButton: Don’t destroy dialog @ ::delete-event
Without specifically connecting ::delete-event to something, the dialog
will be destroyed when it is closed, for example by pressing Esc. This
meant that when dismissing it this way, unlike by pressing Cancel, any
custom palette would be lost when the dialog was next opened, and so on.

Resolve this by making ::delete-event just do GTK_RESPONSE_CANCEL, so
closing the dialog has the same effect as clicking its Cancel button.

https://bugzilla.gnome.org/show_bug.cgi?id=787444
2017-09-12 20:52:43 +01:00
Stas Solovey
c2739ba1e7 Update Russian translation
(cherry picked from commit eeeb8f21e2)
2017-09-12 19:15:39 +00:00
Philip Withnall
80b10aa1bd gtksettings: Add a debug message if there is no default GtkSettings
Make it slightly more obvious when things are about to slide sideways
because a NULL GtkSettings has been returned to a caller. This is a
valid return value, but is rarely handled correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=778382
2017-09-12 16:04:44 +01:00
Philip Withnall
69102ac8df gtknotebook: Simplify some if-conditions
Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://bugzilla.gnome.org/show_bug.cgi?id=787303
2017-09-12 15:22:13 +01:00
Philip Withnall
7069dc0261 gtkmountoperation-x11: Do array length check before dereference
Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://bugzilla.gnome.org/show_bug.cgi?id=787302
2017-09-12 15:21:59 +01:00
Nirbheek Chauhan
aa3e8ee097 build: Add dependency fallbacks for libs with meson ports
With these changes gtk+ builds for me using fallbacks for all libraries
with fallbacks available. Needs the following changes:

https://github.com/ebassi/graphene/pull/109 (graphene)
https://bugzilla.gnome.org/show_bug.cgi?id=787414 (pango)
https://github.com/mesonbuild/meson/pull/2291 (will be in meson 0.42.1)

https://bugzilla.gnome.org/show_bug.cgi?id=787416
2017-09-12 00:24:58 +05:30
Nirbheek Chauhan
1a11d0071b build: Add girs and typelibs as sources to libgtk_dep
This will be needed by any projects that want to use gtk+ as
a subproject.

https://bugzilla.gnome.org/show_bug.cgi?id=787416
2017-09-12 00:24:58 +05:30
Matthias Clasen
ff45a86a1c Fix rendering glyphs from the cache
We were not quite using all the right dimensions.
2017-09-11 14:45:36 -04:00
Matthias Clasen
b0d108291b Some fixes for the glyph cache
Copy the way cogl does its glyph caching some more.
At the minimum, this fixes problems where we were getting
wrong-sized Emoji inserted.
2017-09-11 14:02:44 -04:00
Matthias Clasen
40031930b2 Cosmetic changes
Make sure the cache size does not get out of sync with the
actual surface size.
2017-09-11 11:22:59 -04:00
Matthias Clasen
31ca709e23 Cosmetic changes
Use Pango macros for handling PANGO_SCALE.
2017-09-11 11:22:10 -04:00
Matthias Clasen
86f018c6a7 Fix a corner-case for emoji input
As reported in https://github.com/ibus/ibus/issues/1944,
typing u201e while holding Ctrl+Shift used to give a „
when letting go of Ctrl+Shift. This broke when we introduced
Ctrl+Shift+e to start Emoji sequences. Fix this by only
looking for Ctrl+Shift+e if we are not already in a hex
sequence.
2017-09-11 11:20:07 -04:00
Matthias Clasen
781821bae4 rate-limit the glyph cache dumping
Writing the file out every frame really isn't necessary.
Do it once per second.
2017-09-11 11:15:00 -04:00
Matthias Clasen
47cf17c70c vulkan: Add a primitive glyph cache
This is just a proof of concept - we use a single 1024x1024 surface,
and just give up when we run out of space. The cache is populated
incrementally, and items are never removed.
2017-09-10 21:56:37 -04:00
Matthias Clasen
b0e8d8483d More work on text nodes
This commit takes several steps towards rendering text
like we want to.

The creation of the cairo surface and texture is moved
to the backend (in GskVulkanRenderer). We add a mask
shader that is used in the next text pipeline to use
the texture as a mask, like cairo_mask_surface does.
There is a separate color text pipeline that uses the
already existing blend shaders to use the texture as
a source, like cairo_paint does.

The text node api is simplified to have just a single
offset, which determines the left end of the text baseline,
like all our other text drawing APIs.
2017-09-10 14:36:26 -04:00
Balázs Úr
edc73e78b8 Update Hungarian translation 2017-09-10 18:29:44 +00:00
Ask Hjorth Larsen
15c05deb8f Updated Danish translation 2017-09-10 18:17:44 +02:00
Ask Hjorth Larsen
55e4197319 Updated Danish translation 2017-09-10 18:11:48 +02:00
Daniel Șerbănescu
e0196b6307 Update Romanian translation 2017-09-10 11:27:45 +00:00
Daniel Șerbănescu
67e81f45ba Update Romanian translation 2017-09-10 11:24:32 +00:00
Jordi Mas
b634357985 Fixes to Catalan translation 2017-09-10 08:24:27 +02:00
Inaki Larranaga Murgoitio
0f2924cee2 Update Basque language 2017-09-09 17:53:08 +02:00
Inaki Larranaga Murgoitio
dedc7bc873 Update Basque language 2017-09-09 17:52:17 +02:00
Daniel Boles
09d1d5a0d6 Entry: Fix leak of text in ensure_has_tooltip()
Thanks to Mohammed Sadiq for noticing this. I guess I got
Widget.get_tooltip_text() confused with Label.get_label().

https://bugzilla.gnome.org/show_bug.cgi?id=787410
2017-09-07 14:56:20 +01:00
Javier Jardón
80e3239033 meson.build: enable-tests -> build-tests
This completes b5e00d36f0
2017-09-06 20:45:35 +01:00
Piotr Drąg
4b48ed569a Update Polish translation 2017-09-06 20:17:24 +02:00
Matthias Clasen
dd4361a638 Rename enable-documentation and enable-man-pages options
You can now disable the documentation build with
-Ddocumentation=false and -Dman-pages=false.
2017-09-06 11:10:55 -04:00
Matthias Clasen
15edfbbc88 Rename and document the enable-gir option
You can disable introspection now with -Dintrospection=false.
2017-09-06 09:53:34 -04:00
Matthias Clasen
b5e00d36f0 Allow building without tests and demos
This is meant to cut down build time in flatpak and similar
situations. Since it produces technically incomplete builds,
we list these options in the status output at the end of
the meson run.
2017-09-06 09:53:20 -04:00
Matthias Clasen
af5d3e3299 popover: Fix a warning
We were unintentionally disconnecting an already-disconnected
signal handler in some cases. Don't do that, it causes warnings.
2017-09-06 08:04:33 -04:00
Matthias Clasen
ff0f5f57f1 gtk4-demo: Fix up the event axes demo
Use a drawing area instead of drawing directly on the
window, which doesn't work well with csd.
2017-09-06 07:05:01 -04:00
Matthias Clasen
b3b6c42e18 gtk4-demo: add a few missing window titles 2017-09-06 07:05:01 -04:00
Çağatay Yiğit Şahin
541af54d9d Update Turkish translation 2017-09-06 06:49:29 +00:00
Matthias Clasen
863a9cef98 entry: Set a clip
Now that GtkEntry is using a text node, we were spilling
the contents out to the side when the entry is scrolling.
Avoid that by setting a clip.
2017-09-05 23:29:59 -04:00
Chun-wei Fan
1b7f08171a gskpango.c: Include cairo.h consistently
The other source files use "#include <cairo.h>", so we should do
likewise.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-09-06 10:42:32 +08:00
Daniel Boles
d97db77ad4 ActionBar: Fix links in set_revealed() doc, etc.
mostly: syncing with previous commit, where InfoBar copied this all from

Also, remove my unhelpful “and vice-versa” from InfoBar.
2017-09-05 21:33:00 +01:00
Daniel Boles
14387ed2e7 InfoBar: Fix typos in set_revealed() documentation
Fix a parameter type and a link to the corresponding property.
Tweak the wording and whatnot a little while at it.
2017-09-05 20:20:46 +01:00
Patrick Griffis
a55b57caff build: Improve vulkan resource handling
This fixes the proper dependencies getting set up for generating
the shaders and only the necessary things getting rebuilt on
resources changing in gsk.
2017-09-05 15:18:56 -04:00
Mario Blättermann
f0f394bfdd Update German translation 2017-09-05 17:56:32 +00:00
Mario Blättermann
bb8f2784d7 Update German translation 2017-09-05 17:52:35 +00:00
Balázs Úr
992aeb76ca Update Hungarian translation 2017-09-05 15:16:16 +00:00
Balázs Úr
bf029e2d7a Update Hungarian translation 2017-09-05 15:14:28 +00:00
Marek Cernocky
8b87137d2f Updated Czech translation 2017-09-05 16:38:18 +02:00
Jakub Steiner
90ba317d92 adwaita: use generic sidebar icon style
https://bugzilla.gnome.org/show_bug.cgi?id=786613
2017-09-05 13:53:46 +02:00
Daniel Mustieles
54a03cb3d9 Update Spanish translation 2017-09-05 10:35:00 +00:00
Daniel Mustieles
bb5ef90827 Update Spanish translation 2017-09-05 10:33:59 +00:00
Jean-Baptiste Holcroft
4e7aa84b9b Update French translation 2017-09-05 08:31:53 +00:00
Timm Bäder
2a373b8ac8 build: Depend on wayland-protocols 1.9
Needed for the keyboard shortcuts inhibit protocol
2017-09-05 10:09:24 +02:00
Matthias Clasen
4800a248bd Typo fix 2017-09-04 23:32:31 -04:00
Matthias Clasen
7bb5b8df0b A somewhat working blur shader
This is a very direct implementation of a Gaussian blur,
without any optimizations.
2017-09-04 23:32:31 -04:00
Andika Triwidada
bb2a4a4e9b Update Indonesian translation 2017-09-05 01:12:51 +00:00
Andika Triwidada
a8d2ef28a5 Update Indonesian translation 2017-09-05 01:09:35 +00:00
Daniel Boles
9699a954cd HighContrast: Stop hovered emoji from disappearing
Otherwise emoji are invisible in the normal variant & nearly in Inverse.

https://bugzilla.gnome.org/show_bug.cgi?id=787279
2017-09-05 01:42:56 +01:00
Daniel Boles
edad5e5c09 Adwaita: Fix a selector not regenerated in the CSS 2017-09-05 01:42:13 +01:00
Daniel Boles
23ea09aa48 HighContrast: Kill abominable headerbar vseparator
Commit 8cd37ff0df fixed a syntax error and
unwittingly released this bizarre mutant.
2017-09-05 01:00:53 +01:00
Daniel Boles
b97f1900b7 EmojiChooser: Ensure always have a selected button
We were only selecting a section’s button if the adjustment y coord was
within its heading, so scrolling slightly into it unchecked all buttons.
This also fixes how we could end up with the first 2 selected, somehow.

https://bugzilla.gnome.org/show_bug.cgi?id=787172
2017-09-04 22:58:24 +01:00
Daniel Boles
002a1d9c1c EmojiChooser: Check the 1st button before 1st show
We scroll to the top in show() but only ever selected a button when the
adjustment changed, which doesn’t happen in init(). Check it manually.

https://bugzilla.gnome.org/show_bug.cgi?id=787172
2017-09-04 22:58:24 +01:00
Piotr Drąg
fcae5e942f Update Polish translation 2017-09-04 23:53:19 +02:00
Rafael Fontenelle
40001d27a1 Update Brazilian Portuguese translation 2017-09-04 19:54:43 +00:00
Rafael Fontenelle
adc590721a Update Brazilian Portuguese translation 2017-09-04 19:52:31 +00:00
Matthias Clasen
86c60592fb css: Implement the blur filter
This implementation is somewhat incomplete, since
we don't allow combining blur with the other filters
yet.
2017-09-04 14:28:16 -04:00
Matthias Clasen
5f6fdc4dd8 Render the main overlay child only once
Use a separate snapshot to capture the main child render node
and reuse it multiple times, instead of generating multiple
nodes for the same content.
2017-09-04 14:28:16 -04:00
Matthias Clasen
93c67eaf6d Add a test for overlay blur 2017-09-04 14:28:16 -04:00
Matthias Clasen
31349e71d3 Add a blur child property to GtkOverlay
When set, it blurs the content behind the child.
2017-09-04 14:28:16 -04:00
Matthias Clasen
d6be42203b Add gtk_snapshot_push_blur()
This function is similar to the other push functions.
This one uses the newly created blur node.
2017-09-04 14:28:16 -04:00
Matthias Clasen
e2869853dc gsk: Add a blur node
For now, this has just a fallback implementation using
the typical box filter approximation.
2017-09-04 14:28:16 -04:00
Baurzhan Muftakhidinov
516442a889 Update Kazakh translation 2017-09-04 15:51:35 +00:00
Julius Härtl
a1635b6188 gtkplacessidebar: implement libcloudproviders support
Add integration of the libcloudproviders DBus API to the
GtkPlacesSidebar by showing name and sync status of the cloud providers.
The exported menu is rendered as a GtkPopover.

The sidebar will be updated if the list of cloudproviders changes e.g.
by adding or removing an account. If any cloud provider changes detailed
information like sync status only the individual sidebar row gets
updated.

Co-authored-by: Carlos Soriano <csoriano@gnome.org>
Co-authored-by: Daniel Boles <dboles@src.gnome.org>

https://bugzilla.gnome.org/show_bug.cgi?id=786123
2017-09-04 11:32:03 -04:00
Daniel Boles
9514ef0d03 HighContrast: basic port of emoji CSS from Adwaita
This is better than nothing: without specific CSS, the Chooser was too
large, the emoji were too small, and the buttons were generally ugly.

https://bugzilla.gnome.org/show_bug.cgi?id=786956
2017-09-04 11:03:35 -04:00
Daniel Boles
99b314084b Adwaita: proper colours for inactive emoji buttons
Use opacity to differentiate unselected/hovered/selected buttons. It had
assumed bg < border < fg colours, which may be false, as in Adwaita:dark

This also means we do not need to special-case for the backdrop state.

https://bugzilla.gnome.org/show_bug.cgi?id=786956
2017-09-04 11:03:16 -04:00
Daniel Boles
8a8a643b03 Adwaita: Make use of SASS syntax for emoji stuff
This makes the theme easier to maintain.

https://bugzilla.gnome.org/show_bug.cgi?id=786956
2017-09-04 11:03:02 -04:00
Milo Casagrande
d20998db0b Update Italian translation 2017-09-04 11:44:57 +00:00
Matthias Clasen
86c0c243a0 Add rules to regenerate all shader variants
We were missing rules to build the clip variants of
the shaders.
2017-09-03 19:58:41 -04:00
Matthias Clasen
d281cd7498 Fix a compiler warning 2017-09-03 19:53:29 -04:00
Matthias Clasen
59b1206468 Avoid empty nodes another way
Make gsk_text_node_new return NULL if the extents are empty.
2017-09-03 19:35:02 -04:00
Aurimas Černius
ccc587cca7 Updated Lithuanian translation 2017-09-03 23:36:03 +03:00
Rūdolfs Mazurs
0fbd16bac5 Update Latvian translation 2017-09-03 19:26:58 +03:00
Jordi Mas
d3d10fa917 Update Catalan translation 2017-09-03 18:06:43 +02:00
Matthias Clasen
7bb202e4a2 Add a workaround for vulkan crashes
I see 'out of memory' errors and crashes inside libvulkan when
creating nodes that have empty bounds and end up in the fallback
paths, like a shadow around an empty text node. Prevent this
by not creating text nodes in that case.
2017-09-03 11:57:21 -04:00
Matthias Clasen
2101f26b49 vulkan: Add more debug spew 2017-09-03 11:34:41 -04:00
Matthias Clasen
a05895e029 Record node names for debug output
This is useful for GSK_NOTE output as well.
2017-09-03 11:32:09 -04:00
Matthias Clasen
8db13c3362 gsk: Improve debug output
If we don't have node names, we can still print class names.
2017-09-03 10:32:55 -04:00
Matthias Clasen
eab50246e1 Only record node names when we should
This is the same thing we do for render nodes elsewhere.
2017-09-03 10:30:32 -04:00
Daniel Boles
68631d6dbd Adwaita: Fix ineffective theming of switch slider
in a specific case, which was applying .slider as a class on the parent
switch, instead of correctly selecting on its child node named slider.

This makes the border on the outside of a switch in a selected listbox
row look better in the light variant. Since the code was never removed,
it was clearly meant to work, and making it work is a clear improvement.
2017-09-03 14:02:23 +01:00
Daniel Boles
8cd37ff0df HighContrast: Fix outdated name for headerbar box 2017-09-03 13:36:43 +01:00
Daniel Boles
b5afe75700 docs: css-overview: Don’t recommend broken syntax
Using this produced warnings about the Pango syntax of <Family> <size>
being deprecated, and the size being invalid due to no unit specified.
Also, that multi-word font family presumably wouldn’t work as expected.
2017-09-03 12:26:07 +01:00
Daniel Boles
48055f99e7 Toolbar: Clarify set_show_arrow() a bit more 2017-09-03 11:04:59 +01:00
Daniel Boles
1b38944203 Toolbar: Clarify how the arrow overflow menu works
The fact it affects the preferred size, and only works with ToolItems
that return a menu proxy item, was unclear unless deduced from other
sources, and this led to users thinking it was broken, for example:

https://stackoverflow.com/q/44644642/2757035

https://bugzilla.gnome.org/show_bug.cgi?id=787158
https://bugzilla.gnome.org/show_bug.cgi?id=787195
2017-09-03 10:59:34 +01:00
Daniel Boles
5095ca6ed7 ToolItem: Add see-also from proxy setter to signal 2017-09-03 10:59:34 +01:00
Daniel Boles
7ed0d9344e ToolItem: Annotate menu proxy item as nullable
It can be NULL. ::create-menu-proxy gave an example of when a NULL proxy
menu item could be useful, but the accessors did not annotate it as such.
2017-09-03 10:59:33 +01:00
Timm Bäder
7481affb82 container: Drop priv pointer 2017-09-03 09:17:35 +02:00
Timm Bäder
98281bc60a testcenterbox: Properly quit on window close 2017-09-03 09:17:35 +02:00
Rafael Fontenelle
1346520e4b Update Brazilian Portuguese translation 2017-09-02 22:48:48 +00:00
Daniel Boles
9019b0887f Revert "sk.po: Consistently translate “Insert”"
This reverts commit 98e3018455.

As an English-speaker, I know nothing about complex grammar, and it’s
been brought to my attention that some languages might differ in the
translation of the same command depending on where it appears.

So, I’d better assume everyone else knows better than me. Apologies!
2017-09-02 16:13:30 +01:00
Matthias Clasen
440e534053 gsk: add a has_color boolean to text nodes
Currently, this information is not used since cairo_show_glyphs
deals with color glyphs for us. But when we get to uploading
glyphs to a texture atlas, we will need it to do the right thing.

We don't look at individual glyphs here, but just whether the
font has the has-color flag set. In practice, all glyphs in
such a font will be color glyphs, and we can avoid loading all
the glyphs this way.
2017-09-02 11:09:03 -04:00
Daniel Boles
18adda6eb0 Adwaita: Fix colour mixing of emoji section button
when hovered, by using %, since SASS does not handle decimal mixes.
2017-09-02 16:02:59 +01:00
Daniel Boles
98e3018455 sk.po: Consistently translate “Insert”
The two occurrences disagreed on the translation, and my amateur
investigation indicates this one is correct.
2017-09-02 16:02:52 +01:00
Daniel Boles
26954f9ef6 gl.po: Consistently translate/capitalise “Emoji”
GTK+ 3 and 4 disagreed on capitalisation and the translation of “Emoji”.
Use sentence case as elsewhere & the most common translation: emoticono.
2017-09-02 16:02:22 +01:00
Matthias Clasen
d27c552630 emoji chooser: No emoji in the search entry
Recursion is fun, but better avoided in the ui.

https://bugzilla.gnome.org/show_bug.cgi?id=786960
2017-09-02 08:47:17 -04:00
Matthias Clasen
3694104f67 entry: Consider input hints for Emoji support
Don't show "insert emoji" in the context menu if input
hints indicate that Emoji input is not useful.
2017-09-02 08:47:17 -04:00
Matthias Clasen
774499e10e Add input hints for Emoji input
Allow hinting input methods about whether Emoji support is
useful or not.
2017-09-02 08:47:17 -04:00
Emmanuele Bassi
3a0eab776e build: Add option to enable/disable GIR generation
And drop the unnecessary is_cross_build() check: it's entirely possible
to generate introspection data when cross-compiling.
2017-09-02 12:00:57 +01:00
Fran Dieguez
1e92faff76 Update Galician translation 2017-09-02 10:09:49 +00:00
Dušan Kazik
66714bfc89 Update Slovak translation 2017-09-02 08:00:42 +00:00
Dušan Kazik
969527cdb0 Update Slovak translation 2017-09-02 07:55:10 +00:00
Andika Triwidada
69afc4773b Update Indonesian translation 2017-09-02 00:59:58 +00:00
Matthias Clasen
f414e1b15f emoji chooser: Avoid a crash
The emoji chooser gets disposed already, because it is attached
to the toplevel as a popover. Doing it again when the object data
is cleared is leading to a crash.

https://bugzilla.gnome.org/show_bug.cgi?id=787103
2017-09-01 19:55:21 -04:00
Piotr Drąg
7e1f3344f7 Update Polish translation 2017-09-02 01:53:37 +02:00
Mohammed Sadiq
18adee6e1b emoji-chooser: fix subsequent scroll
Event handlers on scroll window should only be run once the widget
is shown.

https://bugzilla.gnome.org/show_bug.cgi?id=786964
2017-09-01 19:36:59 -04:00
gogo
5fcaec75ea Update Croatian translation 2017-09-01 22:04:54 +00:00
gogo
3469d088d8 Update Croatian translation 2017-09-01 21:52:46 +00:00
Daniel Boles
7a3548e10c Entry: Set tooltip text on icon for emoji chooser
https://bugzilla.gnome.org/show_bug.cgi?id=786885
2017-09-01 17:28:31 -04:00
Matthias Clasen
7da4d8af2f Use gsk for text shadows
We don't need to render these manually using cairo anymore.
2017-09-01 15:34:13 -04:00
Matthias Clasen
6bdebd1570 label: Don't leak clip regions
This was introduced in the conversion to gsk.
2017-09-01 15:34:13 -04:00
Daniel Boles
e6bbc10bd5 ComboBox: Dodge possible surplus disconnects
in case anyone connected any other signal on the model to this ComboBox.
2017-09-01 20:20:17 +01:00
Matthias Clasen
8de8525b44 entry: Convert to gsk
This introduces a new css node for block cursor styling.
2017-09-01 14:42:29 -04:00
Matthias Clasen
1440bb25de Fix text colors
This was lost in some reshuffling of the gskpango branch.
2017-09-01 14:12:20 -04:00
Matthias Clasen
f199f7b87b Fix the build 2017-09-01 13:42:43 -04:00
Matthias Clasen
a367d34949 Use a text render node in GskPangoRenderer
This pushes the rendering closer to the place where we can
insert a texture atlas for glyph caching.
2017-09-01 13:30:03 -04:00
Matthias Clasen
4975aa7920 Add a render node for text
This is just a wrapper around a PangoGlyphString + PangoFont.
Basically, the arguments that are passed to pango_renderer_draw_glyphs.
2017-09-01 13:30:03 -04:00
Matthias Clasen
82538f935b Use GskPangoRenderer to render text
This just replaces the wrapper call.
2017-09-01 13:30:03 -04:00
Matthias Clasen
82e8f3a542 Add a Pango renderer
Copy the PangoCairoRenderer into GTK+, rename it to GskPangoRenderer,
and strip it down far enough to build without private pango apis.
This means we currently don't support hexboxes or shapes.

Currently, this lives in gtk, but it might be nicer to put it
in gsk eventually.
2017-09-01 13:30:03 -04:00
Timm Bäder
3fc1cafec0 centerbox: Unparent widgets in dispose 2017-09-01 19:05:30 +02:00
Timm Bäder
2cd9f43d2f menuitem: Fix small memory leak in get_label
g_object_get returs a newly allocated string so we can't use it here.
2017-09-01 19:05:30 +02:00
Matthias Clasen
745a9426b0 Remove an unused variable 2017-09-01 12:56:22 -04:00
Matthias Clasen
10ddd3112a label: Port active link drawing to gsk
We don't need to fall back to cairo fro this anymore.
2017-09-01 12:29:11 -04:00
Piotr Drąg
80c0bf21ce Update POTFILES.in and POTFILES.skip 2017-09-01 18:22:44 +02:00
Matthias Clasen
75115b122b inspector: Add some tooltips
These buttons are not 100% obvious.
2017-09-01 12:04:40 -04:00
Matthias Clasen
c17f76cd54 inspector: Remove debug nodes setting from visual tab
No need to have the same setting in two places.
2017-09-01 12:04:33 -04:00
Matthias Clasen
04f1e19e00 inspector: Move debug nodes option
Put this option on the recorder page where it makes more sense.
2017-09-01 12:04:27 -04:00
Matthias Clasen
47f717d4ae label: Port selection drawing to gsk
We don't need to fall back to cairo for this anymore.
2017-09-01 12:04:20 -04:00
Daniel Boles
021e0d5e3d ScrolledWindow: Dodge possible surplus disconnects
In case the outgoing Adjustment for whatever reason has other handlers
referring to this SW, be sure to avoid disconnecting any but our own.
2017-09-01 16:28:57 +01:00
Daniel Boles
9a6adcbce4 ComboBox: Remove pointless signal ID member fields
We don’t need to store these for disconnection, as we can just use
g_signal_handlers_disconnect_by_data().
2017-09-01 16:28:56 +01:00
Dušan Kazik
a28bf09145 Update Slovak translation 2017-09-01 14:21:15 +00:00
Daniel Boles
ceb09e4c8d ScrolledWindow: Fix non-disconnection of handlers
• Use disconnect_by_data() to catch both _adjustment_changed() and now
  _adjustment_value_changed(), as the latter had been missed until now.

• Also disconnect from indicator_value_changed(), which was not done in
  destroy() due to indicator_reset() and remove_indicator() disagreeing.

https://bugzilla.gnome.org/show_bug.cgi?id=775074
2017-08-31 23:18:46 +01:00
Daniel Boles
6984d0847b Window: Do not connect to NULL screen in init()
Do not connect to get_settings_for_screen() if we have no screen…

Use g_signal_connect(), not connect_object(), to match how set_screen()
makes this same connection, and how finalize() already disconnects it.

https://bugzilla.gnome.org/show_bug.cgi?id=705640
2017-08-31 20:26:44 +01:00
Daniel Boles
6609173779 FileChooserWidget: Remove an unused #include 2017-08-31 19:59:25 +01:00
Daniel Boles
97b5f3d029 gskenums: Fix typo/grammar in GskRenderNodeType doc 2017-08-31 19:59:25 +01:00
Matthias Clasen
767bf1b3fd Avoid computing the same thing twice
Trivial cleanup.
2017-08-30 23:30:10 -04:00
Daniel Boles
552998868d Entry: Rename int helper to gtk_entry_clear_icon()
It was called gtk_entry_clear(), which was unnecessarily vague.
2017-08-30 21:16:00 +01:00
Gábor Kelemen
7c4a0f5ee3 Update Hungarian translation 2017-08-30 18:18:25 +00:00
Gábor Kelemen
1f3fce4159 Update Hungarian translation 2017-08-30 18:18:10 +00:00
Daniel Boles
6e414d42d7 Entry: Fix Shift-click → extend/truncate selection
Since the move from button-press to gesture events, Shift-clicking did
not work to start a selection (from none) or truncate an existing one.

This was due to the code being copy-pasted around and some logic being
broken in the process. This makes both of those work as they should, by
shuffling it again so the end result is the same as before. Highlights:

(1) ::button-press if extending due to a single press would call
set_positions(tmp_pos, tmp_pos), which is what made the Shift+click to
create a selection work. That was lost. Add it back to make that work.

(2) ::button-press in the “Truncate current selection” branch would not
execute all the stuff around “extend_to_left”, as that was the else
case. So, set extend_selection = FALSE so we skip over that later on.

(3) BUT! This Truncate case never fired because it was in the else
branch of if (in_selection())! Of course, it must be in the true branch.

(4) The IM context was not reset if the Shift-click occurred within an
existing selection, only if it did not. In ::button-press this was the
first thing done if extending a selection, regardless. Make it so again.

https://bugzilla.gnome.org/show_bug.cgi?id=780750
2017-08-30 18:26:04 +01:00
Daniel Boles
d715346d5d gl.po: Remove mnemonic underlines from tooltips
It looks like these were copy-paste errors from the corresponding labels
for buttons, which should have mnemonics. Of course, tooltips cannot.
2017-08-30 14:24:04 +01:00
Matthias Clasen
d2087f1943 Avoid empty space in the emoji chooser
We need to hide the empty flow boxes as well, to avoid
spacing between them.

https://bugzilla.gnome.org/show_bug.cgi?id=786966
2017-08-30 08:36:56 -04:00
Fabio Tomat
48fd9290be Update Friulian translation 2017-08-30 08:31:59 +00:00
Nelson Benítez León
c3c10edd09 textview: fix bug on DnD displaced limits of selection
The fix of commit f2fd655754
should be confined to DnD coords only, because otherwise
it causes the start and end of the selection to be displaced.

https://bugzilla.gnome.org/show_bug.cgi?id=785736
2017-08-29 19:26:07 +01:00
Debarshi Ray
fd9aec27fc GtkBuilder: Prefer "type-func" over "class" when looking for the GType
https://bugzilla.gnome.org/show_bug.cgi?id=786932
2017-08-29 15:41:01 +02:00
Милош Поповић
3fd77d1a70 Update Serbian Latin translation 2017-08-29 11:36:58 +00:00
Марко Костић
5a1a91fbe1 Update Serbian translation 2017-08-29 11:33:09 +00:00
Timm Bäder
c18d2872f2 GskRenderNode: Fix fallback border drawing 2017-08-29 11:48:42 +02:00
Rūdolfs Mazurs
27e1260104 Update Latvian translation 2017-08-29 12:19:09 +03:00
Emin Tufan Çetin
243262a64e Update Turkish translation 2017-08-29 05:39:03 +00:00
Daniel Boles
87c67e6ed3 LevelBar: Really fix underallocation of blocks
Themes should not enforce min sizes on blocks in continuous mode; in
this case, the filled block should be as large as it needs to be to
reflect the current value, and no larger or smaller than that. So, the
fact that the minimal size was selected on just levelbar block is wrong:
we should also require the levelbar.discrete class to apply min sizes.

The widget should enforce whatever correct minimum size results from the
above fix, by reapplying commit 78b4885fe8

Except: we should not allocate/draw the filled block if the value is 0,
as in this case, the LevelBar should be empty, not have a min-size fill.

This partially reverts commit 96062ffeae,
as it makes sense to set min sizes for discrete blocks, so keep that in.

https://bugzilla.gnome.org/show_bug.cgi?id=783649
2017-08-29 00:34:02 +01:00
Javier Jardón
bc3968d2ff gtk/gtkshow: Remove deprected gtk_show_uri() 2017-08-28 23:47:36 +01:00
Javier Jardón
d3954f614c Use gtk_show_uri_on_window() instead gtk_show_uri() 2017-08-28 23:47:36 +01:00
Daniel Boles
896f7c8ac0 Entry: Handle :show-emoji-icon becoming false
Disconnect the now-unwanted signal handler, and hide the icon.

https://bugzilla.gnome.org/show_bug.cgi?id=786940
2017-08-28 20:52:06 +01:00
Daniel Boles
cb219473ee Entry: Drop redundant typecasts
https://bugzilla.gnome.org/show_bug.cgi?id=786940
2017-08-28 20:52:06 +01:00
Daniel Boles
477fc95655 Entry: Only open emoji picker on 2ndary icon click
We hijack the secondary icon for the emoji picker, but the handler for
::icon-press did not check the pressed icon and opened it for either.

https://bugzilla.gnome.org/show_bug.cgi?id=786938
2017-08-28 20:52:01 +01:00
Ask Hjorth Larsen
69e0c7a8c3 Updated Danish translation 2017-08-28 19:27:30 +02:00
Ask Hjorth Larsen
25020018ac Updated Danish translation 2017-08-28 19:25:52 +02:00
Matej Urbančič
380a10eaa3 Updated Slovenian translation 2017-08-28 19:24:58 +02:00
Matej Urbančič
4692bea659 Updated Slovenian translation 2017-08-28 19:19:53 +02:00
Timm Bäder
9a43881a19 gskrendernode: Fix inset shadow drawing 2017-08-28 17:50:34 +02:00
Timm Bäder
4045794801 gskrendernode: Constify some parameters 2017-08-28 17:50:34 +02:00
Timm Bäder
a08f8937c6 Revert "headerbar: Avoid allocating 0 visible children"
This reverts commit 8c0e5adaab.

This is actually needed since GtkHeaderBar will allocate and snapshot
widget that coun_visible_children does not consider.
2017-08-28 17:50:34 +02:00
Fabio Tomat
6589532245 Update Friulian translation 2017-08-28 14:40:24 +00:00
Timm Bäder
ccfc568a03 range: Fix trough state update 2017-08-28 11:17:47 +02:00
Timm Bäder
619ee3797d popover: Initialize some locals
gtk_popover_get_pointing_to does not fill the given rect in every case.
2017-08-28 11:17:47 +02:00
Timm Bäder
8c0e5adaab headerbar: Avoid allocating 0 visible children
Ths avoids doing a bunch of work as well as passing 0 to g_alloca which
is undefined.
2017-08-28 11:17:47 +02:00
Changwoo Ryu
08393a6477 Update Korean translation 2017-08-27 21:47:55 +00:00
Changwoo Ryu
a3ff71d893 Update Korean translation 2017-08-27 21:47:41 +00:00
Çağatay Yiğit Şahin
0860e739ba Update Turkish translation 2017-08-27 20:59:40 +00:00
Matthias Clasen
dec77c3a7a meson: Make sure ENABLE_NLS is actually defined
Despite the comment, we ended up without ENABLE_NLS.
2017-08-27 16:09:05 -04:00
Matthias Clasen
95ae7b7c1e x11: Fix managed dnd
We need to actually trigger the drop from the gdk side.
2017-08-27 08:55:16 -04:00
Matthias Clasen
a683629dc7 Remove an unused field
Drag contexts are objects, so there is no need to carry a
manual refcount around.
2017-08-26 19:54:39 -04:00
Matthias Clasen
5722f25d51 x11: Fix initial drag cursors
Under X, we were not setting the right drag cursor initially,
because at current_action == action == 0, initially. Fix this
by explicitly using the right cursor when grabbing.
2017-08-26 19:54:29 -04:00
Matthias Clasen
41f26ea7a6 wayland: Stop using subsurfaces for popovers
Subsurfaces don't currently work with our new rendering,
and this makes popovers unusable. We can go back to using
subsurfaces for popovers when this is fixed.
2017-08-26 15:34:46 -04:00
Timm Bäder
e26b60d48c container: Remove leftover prototype
Thanks to Murray Cumming.
2017-08-25 14:53:09 +02:00
Fabio Tomat
6bae8aa0cf Update Friulian translation 2017-08-25 11:44:35 +00:00
Jordi Mas
3cc7accc15 Fix Catalan translation 2017-08-25 13:37:17 +02:00
Fabio Tomat
752b42fa47 Update Friulian translation 2017-08-25 03:17:56 +00:00
Daniel Boles
73c689eb5a ComboBox: Clarify documentation of get_active_iter
https://bugzilla.gnome.org/show_bug.cgi?id=618160
2017-08-24 21:32:05 +01:00
Daniel Boles
12693c6fe3 Popover: Include window shadows in overshoot calcs
.update_position() enforces that non-Wayland platforms must position a
Popover within its parent Window. We use the allocation of the Window
to translate the position and check for overshoot on each of its sides.
Calling Widget.get_allocation() of a CSD Window includes its shadows.

But shadows were not excluded from the area in which we can position.
Thus, Popovers could get positioned in the shadow of CSD windows, where,
at least on X11, no input is received. Therefore, positioning a Popover
over a shadow meant its child widgets within that area became unusable.

Fix by calling Window.get_shadow() and including it in the overshoot on
each side. This adjusts for how the allocation includes shadows, making
overshoots with and without shadows the same. Thus, we avoid considering
shadows as viable for positioning, favouring a side where input works.

https://bugzilla.gnome.org/show_bug.cgi?id=786209
2017-08-24 21:32:05 +01:00
Daniel Boles
1e832b2e16 testpopover: Use HeaderBar to get CSD decorations
This helps test whether the Popover positioning gets messed up by the
presence of CSD shadow or other accessories around the content area.

https://bugzilla.gnome.org/show_bug.cgi?id=786209
2017-08-24 21:32:05 +01:00
Cheng-Chia Tseng
2c9144b5fe Update Chinese (Taiwan) translation 2017-08-24 16:40:29 +00:00
Piotr Drąg
1ace6518d0 Update POTFILES.in and POTFILES.skip 2017-08-24 02:45:09 +02:00
Matthias Clasen
17b75f2252 Remove motif dnd leftovers
We don't support Motif DND anymore, so no need to look for
Motif-specific messages.
2017-08-23 19:42:53 -04:00
Daniel Boles
da76699757 SidebarRow: Add Unmount tooltip to eject_button
It was reported that the lack of a tooltip made its purpose unclear.
This can be solved by just copying PlacesViewRow’s eject_button tooltip.

https://bugzilla.gnome.org/show_bug.cgi?id=766909
2017-08-23 21:41:50 +01:00
Carlos Garnacho
5fdcfa4739 fontchooser: Block row deleted signal handler when reloading model
This prevents the load_fonts() function from switching to the "no fonts"
page and back when the model is reloaded. Given
GtkSettings::gtk-fontconfig-timestamp is 0 on Wayland and style changes
happen often, the stack change messes up popovers and pointer focus
on the fonts treeview and test entry.
2017-08-23 20:41:18 +02:00
Tom Schoonjans
84bcf7d4d3 GtkFileChooserNativeQuartz: restore parent focus after closing dialog
Tested for both modal and non-modal dialogs

https://bugzilla.gnome.org/show_bug.cgi?id=785306
2017-08-23 10:45:50 -04:00
Tom Schoonjans
bc2f125f1c GtkFileChooserNativeQuartz: improve support for file filters
Instead of using conditional compilation, use respondsToSelector to
check at runtime for setAccessoryViewDisclosed.

https://bugzilla.gnome.org/show_bug.cgi?id=785306
2017-08-23 10:45:49 -04:00
Tom Schoonjans
798ea02440 GtkFileChooserNativeQuartz: add support for Mountain Lion and Mavericks
https://bugzilla.gnome.org/show_bug.cgi?id=784723 introduced support for
native file chooser dialogs on macOS, but due to the use of generics in
the patch, there will be compilation errors on pre-Xcode 7 platforms,
such as Mountain Lion and Mavericks.

I strongly recommend to revert this patch when the oldest supported
macOS release is bumped to Yosemite (10.10).

https://bugzilla.gnome.org/show_bug.cgi?id=785306
2017-08-23 10:45:49 -04:00
Matthias Clasen
44e1c19b42 Revert "wayland: fix filechooser crash"
This reverts commit bd033165e5.

The function already had an early exit, no need for this check.
2017-08-23 10:40:12 -04:00
Lionel Landwerlin
bd033165e5 wayland: fix filechooser crash
The opaque region of the window can be updated before we're requested
its creation on the compositor.

https://bugzilla.gnome.org/show_bug.cgi?id=786673
2017-08-23 10:36:30 -04:00
Matthias Clasen
4402335333 wayland: fix filechooser crash
The size of the window can be updated before we're requested its
creation on the compositor.

https://bugzilla.gnome.org/show_bug.cgi?id=786673
2017-08-23 10:36:30 -04:00
Timm Bäder
53ad763042 magnifier: Port to snapshot
Instead of gtk_widget_draw'in the inspected widget inside the
magnifier's ::draw handler, just create a new GtkSnapshot and snapshot
in its snapshot handler, similar to what GtkStack is doing.
2017-08-23 16:33:49 +02:00
Fabio Tomat
81f3dc0493 Update Friulian translation 2017-08-23 13:50:20 +00:00
Timm Bäder
a23ea01c8f widget: Fix UPDATES debug rendering
Choose the right widget to add the debug updates to (the one with the
window) and the correct region (the one in that window's coordinates).
2017-08-23 13:58:21 +02:00
Timm Bäder
86c294b952 testgtk: Remove some invalid css 2017-08-23 11:05:37 +02:00
Timm Bäder
8e0ed691e3 widget: Remove unused draw_internal prototype
gtk_widget_draw_internal is now only used inside gtkwidget.c, so remove
the prototype from gtkwidgetprivate.h. And since all incovacations call
it with clip_to_size=TRUE, remove that parameter.
2017-08-23 11:05:36 +02:00
Milo Casagrande
82f20efc2c Update Italian translation 2017-08-23 07:18:25 +00:00
Milo Casagrande
41ac29c4f4 Update Italian translation 2017-08-23 07:14:01 +00:00
Aurimas Černius
800d49f02d Updated Lithuanian translation 2017-08-22 23:06:07 +03:00
Daniel Boles
5f593ff306 getting_started: Sync filenames & section headings
The order of Examples 3 and 4 was swapped, so the headings updated
themselves, but the filenames were left reflecting the old order.

https://bugzilla.gnome.org/show_bug.cgi?id=786553
2017-08-22 14:15:46 +01:00
Matthias Clasen
7937da632a Handle emoji data change in emoji chooser
Update the settings schema to follow the change in Emoji data,
and make the emoji chooser code handle the new format.
2017-08-22 08:13:52 -04:00
Matthias Clasen
ac1b8f66b1 Add shortnames to emoji data
The json file is from

https://github.com/emojione/emojione/tree/master/extras/alpha-codes

It is under the MIT license.
2017-08-22 08:13:45 -04:00
Matthias Clasen
2f909cc474 Don't consume too many key releases
The Emoji input support in GtkIMContextSimple was
unintentionally consuming too many key release
events. Fix this.

https://bugzilla.gnome.org/show_bug.cgi?id=786594
2017-08-22 06:49:35 -04:00
Emmanuele Bassi
e3f99fa2df build: Use the appropriate symbol visibility annotation
We cargo-culted this from Autotools, but GCC on Windows supports the
same __declspec syntax as MSVC. The only difference is the additional
flag needed for GCC-like compilers.
2017-08-22 10:27:14 +01:00
Emmanuele Bassi
7845854ca2 build: Fix macOS linker compatibility flags
The linker on macOS does not support '=' in its command line; there's no
guarantee that we are using the correct compatibility versions compared
to the Autotools build, but for that we'll need to build GTK+ master on
macOS.
2017-08-22 10:24:45 +01:00
Emmanuele Bassi
55c42b9d25 build: Allow using libepoxy as a subproject
Like we do for Graphene, we can build libepoxy as a sub-project of GTK+
in case we do not find the dependency installed on the system.
2017-08-22 10:22:37 +01:00
Daniel Mustieles
3168bbe55b Update Spanish translation 2017-08-21 11:36:06 +00:00
Timm Bäder
f879750759 container: Fix scrolling adjustment coordinates 2017-08-21 12:30:47 +02:00
Timm Bäder
b24535ea75 container: Remove gtk_container_propagate_draw
It's superseded by gtk_widget_snapshot_child now.
2017-08-21 12:30:42 +02:00
Timm Bäder
afa9b5032c textview: Draw children using gtk_widget_snapshot_child 2017-08-21 12:27:10 +02:00
Pawan Chitrakar
8da4842369 Update Nepali translation 2017-08-20 23:49:13 +00:00
Pawan Chitrakar
9425ba8705 Update Nepali translation 2017-08-20 23:42:21 +00:00
Anish Sheela
416facb91f Update Malayalam translation 2017-08-20 21:00:03 +00:00
Mario Blättermann
44acdbc13b Update German translation 2017-08-20 18:03:19 +00:00
Baurzhan Muftakhidinov
50e91478f0 Update Kazakh translation 2017-08-20 16:06:09 +00:00
Alexandre Franke
4ba27a50e5 Update French translation 2017-08-19 14:48:49 +00:00
Alexandre Franke
1bc6ae5c32 Update French translation 2017-08-19 14:46:50 +00:00
Мирослав Николић
a863d18a00 Updated Serbian translation 2017-08-19 15:45:15 +02:00
Mario Blättermann
714eebeb33 Update German translation 2017-08-19 11:50:58 +00:00
Timm Bäder
3613f96f59 widget: Remove outdated comment about widget coordinates
Not so odd anymore.
2017-08-19 11:43:29 +02:00
Timm Bäder
b2c0afce34 Remove gdk_event_get_user_data from public headers
And add it back in gdk-private.h
2017-08-19 08:53:38 +02:00
Lionel Landwerlin
fddfb60c59 gdk: wayland: always set buffer scale on size update
We're only updating this when we have an EGL window. This means we
have the wrong scaling factor when using Vulkan.

https://bugzilla.gnome.org/show_bug.cgi?id=786492
2017-08-18 19:48:52 -04:00
Lionel Landwerlin
48df19287b gsk: vulkan: fix image uploading
The memory alignment requirements are different from the image layout.
We want the rowPitch to know where to upload the lines.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=786485
2017-08-18 19:41:36 -04:00
gogo
652a99ff9f Update Croatian translation 2017-08-18 20:34:30 +00:00
gogo
864f806c10 Update Croatian translation 2017-08-18 20:31:56 +00:00
Rui Matos
e702ee8fa6 gdkwindow: Avoid re-setting the opaque region if it doesn't change
This avoids, at least, needless chatter with the compositor and the X
server in X11's case.

https://bugzilla.gnome.org/show_bug.cgi?id=786469
2017-08-18 19:01:00 +02:00
Dušan Kazik
e35266a6ae Update Slovak translation 2017-08-18 16:09:11 +00:00
Emmanuele Bassi
08526d4da0 build: Print out a configuration summary
Add some easy to check summary of the configuration step, especially for
optional features that can use automatic discovery.
2017-08-18 16:56:09 +01:00
Marek Cernocky
3d8e550085 Updated Czech translation 2017-08-18 10:57:21 +02:00
Carlos Garnacho
c2e08122d8 gdk/x11: Extract GdkDeviceTool tool ID from "Wacom Serial IDs" property
This property contains 5 integers, of which the last 2 respectively
contain the tool serial number and tool ID. We were only extracting the
first so far, but GdkDeviceTool also has API getters for the latter,
which remained 0.

https://bugzilla.gnome.org/show_bug.cgi?id=786400
2017-08-17 16:31:33 +02:00
Rafael Fontenelle
ee1e2c9dac Update Brazilian Portuguese translation 2017-08-17 10:24:10 +00:00
Rafael Fontenelle
00843b0ee6 Update Brazilian Portuguese translation 2017-08-17 10:19:51 +00:00
Fran Dieguez
a2986a898d Update Galician translation 2017-08-16 22:41:41 +00:00
Timm Bäder
5204802f61 widget: Remove some always-true precondition checks 2017-08-15 21:45:03 +02:00
Daniel Boles
d98a23dc80 GdkDisplay: Call the correct push|pop_error_trap()
It is wrong to assume all Displays are of the same class as the default.

https://bugzilla.gnome.org/show_bug.cgi?id=784016
2017-08-15 20:34:11 +01:00
Daniel Boles
ad5c4d09b3 ScrolledWindow: Bin unreachable ternary branches
We already checked that the child is not NULL above.

Coverity CID 1454191
2017-08-15 20:33:49 +01:00
Timm Bäder
d81fc8edce gtkpango: Remove unused functions
Remove _gtk_pango_move_lines and a few function declarations in the
private header file since they are only used inside gtkpango.c
2017-08-15 21:27:52 +02:00
Timm Bäder
c1082ca93e build: Install gtkcenterbox.h 2017-08-15 21:27:52 +02:00
Daniel Boles
915d8197a0 Widget: Fix outdated comments about tooltips
They are not usually yellow anymore, the previous advice about how to
style them was for pre-3.20 versions, and the immediate replacement (CSS
class .tooltip) does not seem ready for primetime.

https://bugzilla.gnome.org/show_bug.cgi?id=784421
2017-08-15 19:17:57 +01:00
Emmanuele Bassi
3cb8a976a6 build: Ensure introspection data points to the right header
We have different header files for different sections of our API,
including introspection.
2017-08-15 17:13:30 +01:00
Emmanuele Bassi
4904491b77 build: Move Vulkan shader handling to its own directory
Spooky action at a distance is not really allowed in Meson, so the rules
to generate the SPV files should go in their own directory.

Tested by: Rico Tzschichholz <ricotz@ubuntu.com>
2017-08-15 17:07:21 +01:00
Chun-wei Fan
0a85a76419 build: Partially revert "Drop old MSC makefiles"
gtk/libgtk4.manifest.in is used to give the themed print dialog on
Windows, which should not be removed, so we ought to get it back.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-08-15 23:37:24 +08:00
Chun-wei Fan
f7409773b3 gtk/gtkemojichooser.c: Don't use g_autoptr()
We can't use g_autoptr() on non-GCC-style compilers.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-08-15 23:36:53 +08:00
Piotr Drąg
0b59f4e62d make-pot: Make it executable
Oops.
2017-08-15 16:30:14 +02:00
Piotr Drąg
d27453cb94 Restore make-pot script
Until #783099 is fixed.
2017-08-15 16:16:32 +02:00
Emmanuele Bassi
9957dd59b0 docs: Update references to Meson CLI utilities
The separate `mesonconf` and `mesontest` binaries have been deprecated,
in favour of `meson` sub-commands.
2017-08-15 14:08:57 +01:00
Emmanuele Bassi
12b155eae7 broadway: Build fixes
The Broadway backend does not build after commit c409fca7 dropped some
occurrences of the root window from GDK.
2017-08-15 13:59:34 +01:00
Timm Bäder
c468cdf8b6 gdk: Remove another gdk_window_new_input reference
The most obvious one.
2017-08-15 15:00:49 +02:00
Timm Bäder
7685d157bc build: Remove more wrong kwargs
declare_dependency does not take a depends: kwarg and meson 0.42.0
started warning about that.
2017-08-15 14:56:13 +02:00
Timm Bäder
4fbe313cbc build: Remove wrong kwargs from a11y test()s
test() does not take install: or install_dir: kwargs.
2017-08-15 14:56:13 +02:00
Matthias Clasen
8c3fc06baf Remove an erroneous unref
This was leftover by accident.
2017-08-15 06:40:05 -04:00
Мирослав Николић
52cc1c3ea1 Updated Serbian translation 2017-08-15 06:26:02 +02:00
Мирослав Николић
d239ef082f Updated Serbian translation 2017-08-15 06:25:13 +02:00
Daniel Boles
fb66f539ae testpopover: Sync initial vals of controls & props
The ComboBoxes were initially empty, rather than reflecting the initial
values of the properties. The CheckButtons were only correct by chance.
Fix this by setting the initial values on the widgets and binding them
to the properties using SYNC_CREATE, so the two are always synced up.

https://bugzilla.gnome.org/show_bug.cgi?id=786209
2017-08-14 23:15:11 +01:00
Emmanuele Bassi
a4d0800673 build: Fix post-install script
Use the appropriate variable when expanding the input method modules
path.
2017-08-14 22:31:13 +01:00
Marc-Antoine Perennou
49d0b4ccb8 meson: install gdkvulkancontext.h
https://bugzilla.gnome.org/show_bug.cgi?id=782981

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-08-14 22:26:59 +01:00
Marc-Antoine Perennou
c9caa6167e meson: install gdkdrawcontext.h
https://bugzilla.gnome.org/show_bug.cgi?id=782981

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-08-14 22:26:59 +01:00
Marc-Antoine Perennou
807c744c8d gdk: fix headers installation path
https://bugzilla.gnome.org/show_bug.cgi?id=782981

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-08-14 22:26:59 +01:00
Emmanuele Bassi
17b7d6b149 Remove MAINTAINER file
The DOAP file is a better description of the maintainership of the
project.
2017-08-14 22:23:09 +01:00
Emmanuele Bassi
3e558b950d Remove obsolete README for Windows
Using Meson we get Windows support, both via Ninja and Visual Studio.
2017-08-14 22:23:09 +01:00
Emmanuele Bassi
d2af823183 Rename 'HACKING' to 'CONTRIBUTING'
And remove redundant and obsolete information.
2017-08-14 22:23:09 +01:00
Emmanuele Bassi
0803ee2df4 docs: Update the 'building gtk' guide
Clean up for Meson.
2017-08-14 22:23:09 +01:00
Emmanuele Bassi
f82f0c7fbc docs: Update the release instructions 2017-08-14 22:23:09 +01:00
Emmanuele Bassi
98ed797731 docs: Update the README
Let's bring it into this century, and drop outdated information.
2017-08-14 22:23:09 +01:00
Emmanuele Bassi
6240082e12 Drop old MSC makefiles 2017-08-14 22:23:09 +01:00
Emmanuele Bassi
391d1a04ec Drop Autotools build
We are officially switching to Meson as the default build system for
GTK+.
2017-08-14 22:23:09 +01:00
Kukuh Syafaat
562e278bf8 Update Indonesian translation 2017-08-14 20:18:42 +00:00
Kukuh Syafaat
ad510927b7 Update Indonesian translation 2017-08-14 20:17:43 +00:00
Matthias Clasen
fdd5e9f61e Redo emoji data slightly
No longer store variation sequences explicitly. Instead, put a 0
in the sequence where the modifiers will be inserted. This is more
compact, and it allows us to put variations directly into the
recent section.

Update the type of the recent-emoji setting to match these changes.
2017-08-14 15:46:02 -04:00
Timm Bäder
0fe396e516 popover: Remove double assignment 2017-08-14 21:29:18 +02:00
Daniel Mustieles
27f14920a3 Update Spanish translation 2017-08-14 16:06:32 +00:00
Timm Bäder
54c362bf48 gtkwindowprivate: Remove _gtk_window_keys_foreach
Unused outside of gtkwindow.c
2017-08-14 14:24:29 +02:00
Timm Bäder
c309def4f0 winodw: Remove _gtk_window_reposition prototype
It's never implemented.
2017-08-14 14:24:10 +02:00
Timm Bäder
2a49e08d6d meson: Don't define G_ENABLE_CONSISTENCY_CHECKS unconditionally
We add it back later depending on the current buildtype.
2017-08-14 13:01:22 +02:00
Timm Bäder
9f3f640c0d widget: Remove gtk_widget_get_border_allocation 2017-08-14 12:22:39 +02:00
Timm Bäder
5f859a1f24 widget: Remove gtk_widget_get_content_allocation
Replace it where we still need something similar, e.g. in
gtk_widget_translate_coordinates
2017-08-14 12:22:39 +02:00
Timm Bäder
9c7e089fc2 widget: Remove gtk_widget_get_margin_allocation
It's not needed anymore with get_outer_allocation (which will be
replaced by something more appropriately named).
2017-08-14 12:22:39 +02:00
Jordi Mas
c3aacbecdf Update Catalan translation 2017-08-14 00:36:36 +02:00
Fran Dieguez
2755717740 Update Galician translation 2017-08-13 22:19:01 +00:00
Daniel Boles
4a6f5136ba convert-emoji: Don’t pointlessly do rest of loop
skip can never become FALSE again, so break as soon as it becomes TRUE.
2017-08-13 17:39:13 +01:00
Muhammet Kara
f998360600 Update Turkish translation
(cherry picked from commit a6de59845a)
2017-08-13 16:35:12 +00:00
Timm Bäder
1ee32d10ce meson: Add emoji data
Otherwise we crash at runtime.
2017-08-13 18:08:41 +02:00
Timm Bäder
2eaf416062 gsk: Add color shader sources to meson build files 2017-08-13 18:01:58 +02:00
Matthias Clasen
82a24e7cf6 Don't update headings in an idle
It is not necessary since flow box invalidation is
all synchronous currently. If that ever changes,
this code will need adjustment.
2017-08-13 09:27:37 -04:00
Matthias Clasen
b52c1cb8dc scrolled window: Don't leak timeout sources
We must only create a new source if there isn't one already,
otherwise we override the ID and leak the previous one.
2017-08-13 09:24:50 -04:00
Matthias Clasen
98089778df Add names to more sources
This makes debugging mainloop-related issues more pleasant.
2017-08-13 09:03:40 -04:00
Matthias Clasen
5b23fd32f1 emoji: Fix a leak
We were leaking the list of recently used Emoji here.
Pointed out by Timm Bädert.
2017-08-13 07:51:33 -04:00
Matthias Clasen
fd4fa7be29 emoji: Start search on the first character
There is no need to wait for a longer prefix here.
We already display all the content anyway, it will
only get less.
2017-08-13 07:51:33 -04:00
Pawan Chitrakar
50453d44bc Update Nepali translation 2017-08-13 08:30:09 +00:00
Pawan Chitrakar
8585b4a9f5 Update Nepali translation 2017-08-13 08:08:44 +00:00
Piotr Drąg
c77a188a02 Update Polish translation 2017-08-13 01:24:38 +02:00
Piotr Drąg
49671e7498 Update POTFILES.skip 2017-08-13 01:18:31 +02:00
Matthias Clasen
aa1fb13451 Fix the meson build 2017-08-12 19:06:00 -04:00
Matthias Clasen
f54aca20ee widget-factory: Add a use of show-emoji-icon
This also serves as a testcase for nested popovers
that was missing in widget-factory so far.
2017-08-12 18:50:50 -04:00
Matthias Clasen
e24ffbbc21 Add a testcase for the new Emoji chooser
For now, add it in testentryicons.
2017-08-12 18:48:14 -04:00
Matthias Clasen
558aebfbc4 entry: Add support for an Emoji chooser
Add an "Insert Emoji" item to the context menu in entries.
We also add a show-emoji-icon property, which when set to
TRUE, will add an icon that can be clicked to bring up
the Emoji chooser.
2017-08-12 18:48:14 -04:00
Matthias Clasen
46f7804f3a Fix a problem with focus handling in modal popovers
When the popover is dismissed, we return the focus to
where it came from. However, by using gtk_widget_grab_focus,
we were messing up the selection if that widget happens to
be an entry. Special-case GtkEntry and use
gtk_entry_grab_focus_without_selecting to avoid this issue.
2017-08-12 18:48:14 -04:00
Matthias Clasen
c6c1619646 Add an Emoji chooser widget
Add a popover that shows color Emoji, with a search entry.
The recently-used Emoji are stored in a GSetting.
2017-08-12 18:48:14 -04:00
Matthias Clasen
44999fa239 Add Emoji data
The json file is imported from the (MIT-licensed) emoji.json[0] node
module, which generates it from the emoji list published by the
Unicode Consortium.

This commit also adds a little tool to convert the data into
a compact GVariant, and the result of that conversion, which is
added to libgtk as a resource. The following commits will make use
of it.

[0] https://github.com/amio/emoji.json
2017-08-12 18:48:14 -04:00
Daniel Boles
a2768144f1 InfoBar: Fix wrong/uninit var use in code example
https://bugzilla.gnome.org/show_bug.cgi?id=786144
2017-08-12 21:08:24 +01:00
Daniel Boles
854bfb916c Adwaita: Sync CSS files with current SASS 2017-08-12 16:02:18 +01:00
Daniel Boles
c8e2ccd7a1 LevelBar: Don’t pointlessly copy an allocation
now featuring the required comma :/
2017-08-12 15:13:36 +01:00
Timm Bäder
07d6c7817d widget: Remove private _gtk_widget_set_has_focus
The css state here is now handled in gtk_widget_set_focus_child
2017-08-12 15:56:53 +02:00
Matthias Clasen
a5ba6dfe97 Revert "LevelBar: Avoid unnecessarily copying allocation"
This reverts commit d5e25be9bc.

It doesn't build.
2017-08-12 09:46:06 -04:00
Matthias Clasen
124b790a77 Fix a bootstrapping problem without root windows
We create various windows during the initial creation of display
objects, which causes some bootstrapping issues when we try to
find the default screen to get its root window. To work around this,
pass the display object into gdk_window_new.

This is not an API change, since gdk_window_new is no longer public API.
2017-08-12 09:42:19 -04:00
Daniel Boles
d5e25be9bc LevelBar: Avoid unnecessarily copying allocation
Just use the original allocation, instead of copying it and passing that
2017-08-12 14:23:55 +01:00
Matthias Clasen
342fdee0a1 Remove an unused field
Nothing uses bubble_window, so it can go.
2017-08-11 19:53:06 -04:00
Matthias Clasen
535e604b91 Drop the shape window example in testgtk
Not sure this can be rescued without root window coordinates.
It is also somewhat inherently X11-specific.
2017-08-11 15:46:00 -04:00
Matthias Clasen
0eaf861420 Remove root window getters from public API
These are now just used internally in GDK.
2017-08-11 15:45:24 -04:00
Matthias Clasen
916702f7a9 Make the xim module build without root getters
This is X specific code anyway, so no need to use
generic GDK api for this.
2017-08-11 15:45:24 -04:00
Matthias Clasen
127922cf44 Stop passing root window to gdk_device_query_state
The backends do the right thing now.
2017-08-11 15:45:24 -04:00
Matthias Clasen
9859f8f69f Allow passing a NULL window to gdk_device_query_state
Interpret NULL as "root window" here - we only have one
screen nowadays, so there is no choice involved, and this
will let us avoid dealing with the root window in the
fontend code.
2017-08-11 15:45:24 -04:00
Matthias Clasen
c409fca703 Drop root windows from some internal apis
_gdk_device_query_state was needlessly shuffling
root windows around.
2017-08-11 15:45:23 -04:00
Matthias Clasen
8d3dd50948 Drop keynav for dnd
This is very much an easter egg, and it is the last place where
we use the root window in libgtk.
2017-08-11 15:45:23 -04:00
Lapo Calamandrei
96062ffeae adwaita: remove min-<lenght> from levelbar blocks
It's not needed and causes issues, see for details:
https://bugzilla.gnome.org/show_bug.cgi?id=783649
2017-08-11 16:25:40 +02:00
Lapo Calamandrei
30a7264865 adwaita: Remove menu margins
menu margins have been added has a hack to mitigate bug:
https://bugzilla.gnome.org/show_bug.cgi?id=591258 with gtk+4 this
doesn't work anymore on gtk+4, the margin should probably be moved
to the parent window node, but it's not selectable, commenting out
for now.
2017-08-11 15:07:13 +02:00
Piotr Drąg
f3200b3336 Update Polish translation 2017-08-11 00:05:26 +02:00
Timm Bäder
a8a755e5cd widget: Remove gtk_widget_set_redraw_on_alloc
Since gtk+ draws more than the widget and allocates more size to it than
it knows about, this flag doesn't work anymore. Removing it (or setting
it to TRUE for widgets that used to set it to FALSE) fixes drawing
invalidation when these widgets get allocated a new size.
2017-08-09 16:26:26 +02:00
Timm Bäder
5874a30c73 GdkWindow: Remove gdk_window_new_input
Not needed anymore.
2017-08-09 15:19:46 +02:00
John Ralls
a2c4c54a2f Duplicate the TIC strings before NULLing the GObject data.
NULLing the data strings in GObject frees and invalidates the pointers
returned by g_object_get_data so we need our own copy of the values.
2017-08-08 23:21:55 +03:00
Daniel Boles
c25f619033 Revert "levelbar: Don't underallocate block widgets"
This reverts commit e25e1c54a4.

That commit causes a block always to be shown at the min side, even when
the value is 0, in which case, no fill should be shown.

https://bugzilla.gnome.org/show_bug.cgi?id=783649
2017-08-08 18:58:13 +01:00
Matthias Clasen
2f02401344 3.91.2 2017-08-07 22:21:22 -04:00
Matthias Clasen
80afb8c90a Fix docs build 2017-08-07 22:21:22 -04:00
Daniel Boles
23b6699ec3 Container: Don’t scroll to unset focus child coord
In gtk_container_real_set_focus_child(), we try to scroll to the
position of the new :focus-child if we have h or v adjustments.

gtk_widget_translate_coordinates() returns FALSE if neither widget is
realized or in other situations that cause output parameters x and y not
to be set. Thus, if the caller did not initialise x/y and uses them even
if the function returned FALSE, they are using uninitialised variables.

In gtk_container_real_set_focus_child(), we did not check the return
value but merrily went ahead and used x and y regardless. This is UB, as
revealed by Valgrind, as well as being pointless.

The trivial fix is to exit early if (!gtk_widget_translate_coordinates).

https://bugzilla.gnome.org/show_bug.cgi?id=776909
2017-08-07 19:21:09 +01:00
Daniel Boles
c4865bed43 Container: Fix scrolled coord in set_focus_child()
Commit 885bcd9fe4 trampled the bit here
that is meant to translate between the nominated focus child and the
actual innermost one that is used for updating the h/v adjustments.

So, we need to save the passed focus child before diving into its
children, then translate and get allocations between them both. This
makes GTK+ 4 behave like GTK+ 3 again: instead of priv->focus_child and
focus_child, we now have focus_child and child, serving the roles of the
nominated focus child and its innermost focus child respectively.

This also ditches the unnecessary call to Widget:get_focus_child(), as
Container::set_focus_child() gets that same new child as an argument.
2017-08-07 18:42:15 +01:00
Daniel Boles
e29f39b66c AccelLabel: set_accel_closure() arg is nullable 2017-08-07 10:32:13 +01:00
Daniel Boles
a42634c3e5 AccelLabel: set_accel_widget() arg is nullable 2017-08-07 10:29:53 +01:00
Matej Urbančič
5ac3ee99a9 Updated Slovenian translation 2017-08-07 10:07:50 +02:00
Matej Urbančič
d8defe7439 Updated Slovenian translation 2017-08-07 09:10:37 +02:00
Fabio Tomat
495e45f090 Update Friulian translation 2017-08-07 06:04:19 +00:00
Carlos Garnacho
4f31afcd9c window: Fix traversal of popovers during picking
These need to be traversed in the opposite direction. Given the order is
opposite to rendering, use a GQueue so it's cheap to traverse/add either
way.
2017-08-06 22:44:40 +02:00
Daniel Boles
be85c8b1fd HeaderBar: Use less clashing appmenu fallback icon
process-stop-symbolic is unintuitive if represented as a stop sign as in
Adwaita, and completely ambiguous if represented as a cross like the
window close button in other icon themes.

Instead, use application-x-executable, which is already used elsewhere
as a fallback if no specific icon can be found for the application.

https://bugzilla.gnome.org/show_bug.cgi?id=784624
2017-08-06 18:03:27 +01:00
Daniel Boles
d6e4ce127a docs: gtk/running: Document the GTK_CSD env var
It was not documented before.

https://bugzilla.gnome.org/show_bug.cgi?id=778791#c1
2017-08-06 17:44:18 +01:00
Daniel Boles
fec4a9f16a AccelLabel: Fix typos of Ctl to Ctrl 2017-08-06 17:35:07 +01:00
Daniel Boles
30eac22974 icon-browser: Add missing document-edit icon
https://bugzilla.gnome.org/show_bug.cgi?id=777515
2017-08-06 03:30:21 +01:00
Daniel Boles
b3ab230aac gdkdisplay: Remove a pointless assignment
https://bugzilla.gnome.org/show_bug.cgi?id=784016
2017-08-06 01:13:51 +01:00
Matthias Clasen
642aee75d5 Enough with the beeping!
Don't beep when modifiers are released in entries.
This was an inadvertent change that snuck in with
the emoji support.

Also, don't beep while entering an emoji name.
There is entirely too much beeping here.
2017-08-05 19:31:52 -04:00
Matthias Clasen
c250dddb00 Use the right gettext domain
Most of our .ui files were still using the gtk30 domain,
despite the library having switched to gtk40. Fix this.
2017-08-05 18:17:29 -04:00
Daniel Boles
e9af8a2a67 AccelLabel: Fix displaying accel unichars >= 0x80
In GTK+ 2, the ch < 0x80 was ORd with klass->latin1_to_char, and that
was unconditionally set to TRUE in the class init function, so
effectively the ch < 0x80 never mattered before or served any purpose.

When klass->latin1_to_char was deleted from the class in commit
f760538f17, this check’s sense changed.

The resuls was that accel keyvals with gunichar value >= 0x80 stopped
being rendered as symbols, instead falling back to their keysym name.
Instead of recognisable symbols for these, we get raw, often obscure,
and untranslatable keysym names. This breaks accessibility as well as
client users who may be parsing such accels and migrating from GTK+ 2.

So, remove the < 0x80 to restore the behaviour from before said commit.

https://bugzilla.gnome.org/show_bug.cgi?id=783906
2017-08-05 20:27:43 +01:00
Daniel Boles
7dd9f212ad CenterBox: minor tweaks to doc blurb 2017-08-05 18:57:08 +01:00
Daniel Boles
cbe53fec07 CenterBox: Add missing nullable annotations
https://bugzilla.gnome.org/show_bug.cgi?id=785280
2017-08-05 18:56:01 +01:00
Daniel Boles
4accb9f167 CenterBox: Guard against directly including header
https://bugzilla.gnome.org/show_bug.cgi?id=785280
2017-08-05 18:44:02 +01:00
Kjell Ahlstedt
8f22078787 centerbox: Add G_BEGIN_DECLS and G_END_DECLS
https://bugzilla.gnome.org/show_bug.cgi?id=785280
2017-08-05 11:26:42 +02:00
Matthias Clasen
72695773c2 Add support for entering emoji by name
This commit adds some basic support for entering emoji by name
to GtkIMContextSimple. To begin an emoji sequence, use Ctrl-Shift-e
instead of Ctrl-Shift-u that is used for hex input. Otherwise, the
behavior is the same: you can can let go of the modifier keys and
end the sequence with space or enter, or hold on to the modifier
keys and end the sequence by releasing them.

Only a limited, fixed set of names is supported at this time, see
the GtkIMContextSimple docs for a full list.
2017-08-04 14:54:26 -04:00
Daniel Boles
0740fb5c64 gskrendernodeimpl: Fix leak of cairo_pattern_t
It was not destroyed after setting it on the cairo_context_t, as it is
in every other case.

https://bugzilla.gnome.org/show_bug.cgi?id=785793
2017-08-04 00:59:33 +01:00
Daniel Boles
01e587da22 Window: Also quote Window address in Popover error
This is symmetrical with how we already do that for the Popover, and it
could be useful for debugging.
2017-08-03 21:10:22 +01:00
Daniel Boles
1f1e156007 widget-factory: Add tooltip to Entry icon
just to show we can.
2017-08-03 20:43:03 +01:00
Daniel Boles
bae6d3d45c Fix some nullable Returns annotations
based on reports and patches by Iñaki García Etxebarria:

https://bugzilla.gnome.org/show_bug.cgi?id=781246
https://bugzilla.gnome.org/show_bug.cgi?id=785423
2017-08-03 20:27:29 +01:00
Timm Bäder
edbe6b3360 inspector: Fix object title label alignment
Re-center it after the center-child removal in GtkBox and the addition
of GtkCenterBox.
2017-08-03 18:25:51 +02:00
Daniel Boles
01fe6b4a83 GtkFixed: Update documentation intro
• Add GtkLayout as a @See_also since it includes fixed-pos functionality
• Drop mention of the long-gone Linux framebuffer port
• Explain how to work around the problems with RTL text
2017-08-03 13:03:05 +01:00
Marek Cernocky
a14b3dd3a9 Updated Czech translation 2017-08-03 11:51:09 +02:00
Daniel Boles
06da814863 Layout: Tweak documentation blurb
Being addable to a ScrolledWindow is not interesting; now that SW
auto-adds a Viewport if needed, so can DrawingArea and any other widget.

Mention GtkFixed in case the reader just wants that bit of functionality
2017-08-03 10:19:13 +01:00
Timm Bäder
5cafa2b1ce entry: get_icon_area returns in entry coordinates
This fixes the popover positions in the gtk4-demo/popovers, and it also
just makes sense. Also document what the returned coordinates are
relatiev to.
2017-08-03 11:14:53 +02:00
Timm Bäder
765aff3f0e popover: Fix arrow position
Remove all the manual css margin handling since that's being done for us
automatically now.
2017-08-03 11:07:59 +02:00
Piotr Drąg
552e883bdf Update POTFILES.in 2017-08-02 18:05:30 +02:00
Benjamin Otte
47fe08528d eventbox: Remove 2017-08-02 16:59:09 +01:00
Benjamin Otte
18c086a46c texthandle: Don't use GtkEventBox 2017-08-02 16:58:47 +01:00
Benjamin Otte
77c9ef1b7b testsuite: Don't use GtkEventBox in gestures test 2017-08-02 16:58:17 +01:00
Benjamin Otte
212c46e20a a11y: Remove check for GtkEventBox 2017-08-02 16:58:05 +01:00
Benjamin Otte
cdba1b8ac8 docs: Don't use GtkEventBox 2017-08-02 16:55:25 +01:00
Benjamin Otte
b6efd89225 testsuite: Remove GtkEventBox from a11y test 2017-08-02 16:47:39 +01:00
Benjamin Otte
b555638600 iconbrowser: Remove GtkEventBox usage 2017-08-02 14:50:19 +01:00
Benjamin Otte
5be94c1fd7 gtk-demo: Get rid of GtkEventBox 2017-08-02 14:05:02 +01:00
Benjamin Otte
711bf38d90 cellaccel: Get rid of GtkEventBox
Can't test the code atm because treeview editing is broken, let's hope
it works once that's fixed.
2017-08-02 14:05:02 +01:00
Benjamin Otte
6b7503b83e placessidebar: Remove EventBox usage 2017-08-02 14:05:02 +01:00
Benjamin Otte
464ffad23e placesview: Remove event box usage 2017-08-02 14:05:02 +01:00
Emmanuele Bassi
b4b2fa4a98 meson: Add missing Wayland protocol
GDK depends on a new Wayland protocol.
2017-08-02 12:31:30 +01:00
Olivier Fourdan
ac61aedae9 wayland: add shortcut inhibitor support
This adds support for the shortcut inhibitor protocol in gdk/wayland
backend.

A shortcut inhibitor request is issued from the gdk wayland backend for
both the older, deprecated API gdk_device_grab() and the new gdk seat
API gdk_seat_grab(), but only if the requested capability is for the
keyboard only.

https://bugzilla.gnome.org/show_bug.cgi?id=783343
2017-08-02 12:37:23 +02:00
Benjamin Otte
9ec22d6652 reftests: Always wait for rendering to settle
We wait for a few 100ms for rendering to settle in various WMs. So far
we only did that for windows that were controlled by the WM (aka
toplevels).

With modern compositing gnome-shell however, this now also applies to
override-redirect windows, so we now wait there, too.

This makes the reftests a lot slower, but they now actually work when
running make check in gnome-shell.
2017-08-02 11:34:57 +01:00
Benjamin Otte
64b7308328 reftests: Remove event box usage 2017-08-02 11:34:57 +01:00
Benjamin Otte
bb238894dc testuite: Remove EventBox from builder test 2017-08-02 11:34:57 +01:00
Matej Urbančič
88cd0886bd Updated Slovenian translation 2017-08-02 10:42:45 +02:00
Timm Bäder
e70a3fab0d widget: Constify state parameter of propagate_state
Makes sense.
2017-08-02 08:58:30 +02:00
Timm Bäder
8c08a33220 widget: Don't try to propagate 0 state flags
This happens quite often and has no effect anyway.
2017-08-02 08:58:30 +02:00
Timm Bäder
9a3049009e widget: Fix size_allocate's out_clip annotation 2017-08-02 08:58:30 +02:00
Benjamin Otte
29b0954c45 testgtk: Actually expand the scrolled window 2017-08-02 00:23:43 +01:00
Benjamin Otte
7297aeb54c testgtk: Get rid of GtkEventBox 2017-08-02 00:23:30 +01:00
Benjamin Otte
69da7836f9 tests: Get rid of GtkEventBox 2017-08-02 00:15:10 +01:00
Daniel Boles
2b7db2376c bindings: Avoid iterating array if it is never set
If query.return_type is not one we want, binding_compose_params() is
not called, and so params remains a NULL pointer. However, the code was
then unconditionally iterating it regardless. Don't if it is still NULL.

CID 1452218 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)
15. var_deref_op: Dereferencing null pointer params.
2017-08-01 20:45:07 +01:00
Daniel Boles
79bbd4aca5 cssselector: Ensure we do not index out of bounds
This would only happen if the last element was deprecated, but it should
be avoided anyway.

CID 1388852 (#1 of 1): Out-of-bounds read (OVERRUN)
12. overrun-local: Overrunning array pseudo_classes of 16 32-byte
elements at element index 16 (byte offset 512) using index i + 1U (which
evaluates to 16).
2017-08-01 20:17:02 +01:00
Daniel Boles
fc619706b7 Notebook: Remove null check after dereference
This function clearly assumes the parameter children cannot be NULL, and
the call sites seem to perform enough checks to confirm this.

CID 1388869 (#1 of 1): Dereference before null check (REVERSE_INULL)
check_after_deref: Null-checking children suggests that it may be null,
but it has already been dereferenced on all paths leading to the check.
2017-08-01 20:15:14 +01:00
Daniel Boles
881d7c6442 Calendar: Add default case to appease Coverity
CID 1432024 (#1 of 1): Uninitialized scalar variable (UNINIT)
2. uninit_use_in_call: Using uninitialized value rect.x when calling
calendar_arrow_rectangle.

Add a default case to the switch which will bail out with
g_assert_not_reached(), which should reassure Coverity that the method
is always called with a valid value that is handled in the switch.
2017-08-01 20:15:14 +01:00
Daniel Boles
eddbfc65a9 cssbordervalue: Fix possible use of uninitialised
If value->values[i] is NULL, then values[i] was left uninitialised.
The code then reads each element of values[].

CID 1432029 (#1 of 1): Uninitialized pointer read (UNINIT)
11. uninit_use: Using uninitialized value values[i].
2017-08-01 20:14:50 +01:00
Daniel Boles
37b23927c4 Stack: Fix copy-paste error
This fixes Coverity CID 1452217.
2017-08-01 19:18:39 +01:00
Daniel Boles
44c4faeed0 Entry: Fix unset icon tooltip hiding Entry tooltip
Our ::query-tooltip handler first checks whether the pointer is over any
of the icons, returning their tooltip if so, and if not chains up to
Widget::query-tooltip in order to show the text for the widget overall.

But ensure_has_tooltip(), which exists to update :has-tooltip based on
whether ::query-tooltip is needed, only set :has-tooltip to TRUE if any
icon had a tooltip, without caring whether the widget as a whole does.

That is asymmetrical and meant that if the Entry had a tooltip, but
subsequently all icons had their tooltips unset, :has-tooltip would be
set to FALSE, and hence the tooltip for the widget would become lost.

The fix is to set :has-tooltip to TRUE if the widget has a tooltip of
its own, and we only need to check the icons if that is not the case.

https://bugzilla.gnome.org/show_bug.cgi?id=785672
2017-08-01 18:13:11 +01:00
Daniel Boles
b3a6067541 Entry: Warn about corner case hiding icon tooltips
https://bugzilla.gnome.org/show_bug.cgi?id=785672#c4
2017-08-01 18:13:11 +01:00
Timm Bäder
f7bb6a7aa8 widget: Unset PRELIGHT and ACTIVE state in _set_sensitive
They both depend on input, which an insensitive widget does not receive.
2017-08-01 18:43:42 +02:00
Timm Bäder
36c4582086 button: Stop fiddling with PRELIGHT state
This is done automatically now and it's wrong here since it gets
executed after gesture release.
2017-08-01 18:16:40 +02:00
Timm Bäder
30d6b08271 scale: Allocate the value next to the slider
... when vertical. Also fixes usage of the uninitialized value_alloc.y.
2017-08-01 11:36:03 +02:00
Chun-wei Fan
ffc15bf922 Visual Studio builds: Adapt to new glib-mkenums
glib-mkenums is now done in Python, but since the Visual Studio build
environment (cmd.exe) does not support shebang lines, we need to call
the interpretor explicitly to run the script.

This means that we need to update on how we generate
gsk/gskenumtypes.[c|h] in our projects, as at this point GTK+-3.91.x
does not require a GLib installation that ships with the Python-fied
glib-mkenums.  As a result, we adapt to this by first using Python
to call glib-mkenums.  If this fails (where the output file becomes 0
in size), then we use PERL to call the glib-mkenums script.  Note that
during the build this will cause a warning message to be displayed,
stating that '&' cannot be found, but due to the way Windows .bat script
are done, we need to live with that until a solution can be found on
this.

This is likely a problem that does not exist in the Meson builds, as
Meson will take care of calling the interpretor for us by looking at
the shebang lines for our case.

Also, clean up the .batin Windows batch script that is used to call
glib-mkenums by using a for loop in there.
2017-08-01 16:26:43 +08:00
Daniel Boles
e74be1728e testentryicons: Set tooltips on all icons
Just to test tooltips in all cases; what was already here
should have been sufficient, but this doesn't hurt.

While here, also add some instructive placeholder text.

https://bugzilla.gnome.org/show_bug.cgi?id=780938
2017-07-31 20:01:30 +01:00
Chun-wei Fan
1eb8d2ad09 MSVC builds: Allow different Python versions per toolset
Use conditionals to select the Python installation, so that we can stick
closer to the default Visual Studio versions used to compile each official
Python releases.

This means by default:
-2013 builds use Python 3.4.x, which is built with 2010
-2015 and 2017 builds use Python 3.6.x, which is built with 2015.

Also rename PythonPath/PythonPathX64 in the property sheets to
PythonDir/PythonDirX64 repsectively, as PythonPath is the envvar name
where additional Python modules is searched for, so we don't want to get
confused with it.

Last but not least, distinguish between the Python interpretors that are
used on x64 and x86/32-bit builds for generating the libgtk4.manifest
file and the gdbus-generated sources, for consistency reasons.
2017-07-31 17:39:56 +08:00
Daniel Boles
0eb7e71a89 entry: Remove unused/duplicate widget in IconInfo 2017-07-30 14:20:59 +01:00
Timm Bäder
2cbcee8549 widget: Don't access highlight_resize in non-debug builds
The GtkWidgetPrivate struct only contains that member if G_ENABLE_DEBUG
is defined.
2017-07-28 21:28:32 +02:00
Timm Bäder
b71f644cf5 eventbox: Remove visible-window property
The GdkWindow that was supposed to back it is gone.
2017-07-27 21:53:42 +02:00
Matej Urbančič
5e7894feb9 Updated Slovenian translation 2017-07-27 15:46:34 +02:00
Matej Urbančič
df55dc0fe3 Updated Slovenian translation 2017-07-27 15:46:22 +02:00
Matej Urbančič
d6dc72ccc9 Updated Slovenian translation 2017-07-27 15:46:07 +02:00
Carlos Garnacho
2d3882c7eb gtklabel: Fix touch link handling under wayland
Refactor the code updating the active link under the current coordinates
into a separate function, and call it on GtkGestureMultiPress::pressed
so the link is updated on GDK_TOUCH_BEGIN. Based on a patch by
Jan-Michael Brummer <jan.brummer@tabos.org>.

https://bugzilla.gnome.org/show_bug.cgi?id=776903
2017-07-26 13:20:56 +02:00
Carlos Garnacho
21062fab02 gtklinkbutton: Set cursor on button's event window
It is not necessary to (re)set the cursor on every crossing
event, and can probably yield the wrong results if there are
multiple master devices involved. Just set it on init(), and
let the inner machinery update the cursor whenever necessary.

This patch is an adaption of commit 0daf79676 in gtk-3-22, the
side effects are not as bad here because the cursor was already
being set on the widget specifically instead of the parent
widget's, but there's still some nonetheless (plus, it's simpler)

https://bugzilla.gnome.org/show_bug.cgi?id=785375
2017-07-26 13:11:43 +02:00
Carlos Garnacho
8f33385d62 wayland: Clear tablet tool cursor on proximity out
This ensures that the tablet tool will get the cursor updated even if it
happens to fall within the same window again on the next proximity in.

https://bugzilla.gnome.org/show_bug.cgi?id=785375
2017-07-26 13:09:04 +02:00
Carlos Garnacho
312773a927 gdkwindow: Update cursor for tablet tools in the window
This check must be done explicitly on Wayland as the master device for
tablet tools differ from the Core Pointer. This ensures that whenever a
tablet tool is inside a window and the cursor is programmatically changed,
it will be visually updated too.

https://bugzilla.gnome.org/show_bug.cgi?id=785375
2017-07-26 13:08:50 +02:00
Carlos Garnacho
5b9adfba46 wayland: Observe GDK_SEAT_CAPABILITY_TABLET_STYLUS on gdk_seat_get_slaves()
This flag wasn't being honored so far...
2017-07-26 13:08:36 +02:00
Daniel Mustieles
8305465440 Updated Spanish translation 2017-07-25 20:16:59 +02:00
gogo
15c70a1fbb Update Croatian translation 2017-07-25 17:43:59 +00:00
Kjell Ahlstedt
e2744aa74f actionbar: Call g_object_class_install_properties()
https://bugzilla.gnome.org/show_bug.cgi?id=785318
2017-07-25 10:35:29 +02:00
Matthias Clasen
ce801641a7 Avoid the use of g_autofree
We can't use this in code that may be built on win32,
so lets just not use it at all.
2017-07-24 13:27:29 -04:00
Timm Bäder
3f9bcf3b31 widget: Stop invalidating recursively 2017-07-24 14:32:06 +02:00
A S Alam
3b8ca60bfc updated Punjabi Translation 2017-07-23 09:59:04 -05:00
Fabio Tomat
b512ff97e6 Update Friulian translation 2017-07-22 21:41:59 +00:00
Timm Bäder
343f2d8c08 notebook: Set tabs child visible before allocating a size
Otherwise we might skip them here, then set child-visible to TRUE and
then later snapshot them even though they have no valid size.
2017-07-22 19:36:05 +02:00
Timm Bäder
3b44a88ddb cssstylechange: Fix change printing
Only print the old value once, above the new one.
2017-07-22 19:36:05 +02:00
Kukuh Syafaat
fe1a953e9d Update Indonesian translation 2017-07-22 05:15:36 +00:00
Timm Bäder
5afbde2632 flowbox: Fix get_child_at_pos 2017-07-22 06:52:46 +02:00
Timm Bäder
b838cc0d65 testflowbox: hexpand the flowbox 2017-07-22 06:52:46 +02:00
Chun-wei Fan
171ff43340 tests: Include system headers appropriately
Don't include unistd.h on Windows, and include the appropriate headers on
Windows as necessary.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-07-21 23:36:03 +08:00
Chun-wei Fan
4d3aa827f6 tests/rendernode-create-tests.c: Don't use VLAs
Replace uses of VLAs (variable-length arrays) using g_newa(), since
Visual Studio builds will unlikely ever support VLAs (which became optional
in C11).

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-07-21 23:35:54 +08:00
Chun-wei Fan
73e81b64b6 gtk/gtkprintoperation-win32.c: Don't call gtk_widget_set_allocation()
This function was removed recently.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-07-21 23:35:38 +08:00
Jason Gerecke
837c2002e9 wayland: Implement support for tablet wheel scrolling
Adds support for creating scroll events from Wayland tablet wheel events.
Even though no Wacom tablet puck has a smooth-scrolling wheel, both event
types need to be generated to make the upper layers happy.

https://bugzilla.gnome.org/show_bug.cgi?id=783716
2017-07-20 14:27:28 +02:00
Carlos Garnacho
3be5aae56a wayland: Make function to create scroll event more generic
Add GdkWaylandPointerData and GdkDevice arguments so it can be
used across master devices.

https://bugzilla.gnome.org/show_bug.cgi?id=783716
2017-07-20 14:27:28 +02:00
Jason Gerecke
8419b51cc3 wayland: Get implicit grab serial information from tablet devices
If a tablet device is used to perform actions like window moving or resizing,
GTK must provide the correct implicit grab serial number over Wayland to Mutter
in order for the action to succeed. This commit adds tablet support to the
implicit serial getters.

https://bugzilla.gnome.org/show_bug.cgi?id=777333
2017-07-20 14:27:28 +02:00
Timm Bäder
500d25e3c8 gdkgears: Add window content spacing back
This was lost when border-width was removed.
2017-07-20 12:41:12 +02:00
Timm Bäder
e92eebb434 overlay: Fix child widget allocation
Just adding the overlay's own position is wrong now.
2017-07-20 12:40:46 +02:00
Timm Bäder
c3176ed302 overlay: Keep the main child at the bottom
Since gtk_bin_add does a gtk_widget_set_parent call, we cannot use it in
a GtkBin implementation that has multiple child widgets and cares about
their order.
2017-07-20 12:33:57 +02:00
Matthias Clasen
953e762843 Move GdkWindowWindowClass to private headers
This enum is no longer used in public api.
2017-07-19 23:11:12 -04:00
Matthias Clasen
394c21da98 Drop an unused typedef
GdkWindowRedirect is not used anywhere anymore.
2017-07-19 23:11:12 -04:00
Jonas Ådahl
f6dd1f6ceb wayland: Throttle system bell requests
If a bad behaving application tries to make the window/display beep too
often, throttle the beep requests so that we don't end up filling the
Wayland socket queue.

The throttle is set to 50 beeps per second, which far more beeps than
will ever make any sense from a user experience point of view, but will
avoid terminating due to an excessive amount of requests.

https://bugzilla.gnome.org/show_bug.cgi?id=778188
2017-07-20 09:58:10 +08:00
Jonas Ådahl
96295ad8c5 wayland: Make beep requests go through the GdkDisplay
This way we can add things like throttling.

https://bugzilla.gnome.org/show_bug.cgi?id=778188
2017-07-20 09:58:10 +08:00
Matthias Clasen
c715683643 Summarize changes so far
This is a high-level view of what was just merged.
2017-07-19 21:52:10 -04:00
Timm Bäder
52875b7639 testgtk: Remove unused local variable 2017-07-19 21:27:16 -04:00
Timm Bäder
f537d36d0a GtkStyleContext: Create path node in _new
So we can avoid creating a GtkCssPathNode in _init and then throwing it
away right after when using the _new_with_node constructor, which is the
one we use for all widgets.
2017-07-19 21:27:16 -04:00
Timm Bäder
fc47be9339 GtkStyleContext: Remove property cache
It was only used for widget style properties which don't exist anymore.
2017-07-19 21:27:16 -04:00
Timm Bäder
4cf39f65b2 widget-factory: fix page 3 widget expand
The treeview/listbox on the left side should not expand.
2017-07-19 21:27:16 -04:00
Timm Bäder
bf22dea2ce GdkWindow: Default to unfocused
Don't set the have_focused field of the window's toplevel to TRUE by
default and don't set the FOCUSED state in gdk_window_map. This a means
toplevel window's state is what the WM expects, and the FOCUSED state
will be set anyway when we map the window and receive a _NET_WM_STATE
message.
2017-07-19 21:27:16 -04:00
Timm Bäder
9bf5def6b7 statusbar: Inherit from GtkWidget 2017-07-19 21:27:16 -04:00
Timm Bäder
4a4c7131fd modelmenuitem: Care about GtkAccelLabel in get_text 2017-07-19 21:27:16 -04:00
Timm Bäder
8a26e8a6ba modelmenuitem: Update indicator visibility when has_indicator changes 2017-07-19 21:27:16 -04:00
Timm Bäder
2f1d962e56 menushell: Hide model submenus by default 2017-07-19 21:27:16 -04:00
Timm Bäder
b1354a184b GtkCheckMenuItem: Remove snapshot-indicator vfunc
Let the widget snapshot all child widgets and control the visibility of
those child widgets instead.
2017-07-19 21:27:16 -04:00
Timm Bäder
ed5192497f label: Remove GtkEventBox mention from docs
Packing the label inside a GtkEventBox is not necessary anymore for it
to receive events.
2017-07-19 21:27:16 -04:00
Timm Bäder
584d613bfd image: Remove irrelevant code sample
Both the description and the sample itself are obsolete or uninteresting
now that all widgets can receive events.
2017-07-19 21:27:16 -04:00
Timm Bäder
d31621256d spinbutton: Fix css node docs 2017-07-19 21:27:16 -04:00
Timm Bäder
2c3ec49535 treeview: Fix row drag icon offsets 2017-07-19 21:27:16 -04:00
Timm Bäder
d836fa5134 treeviewcolumn: Remove input window 2017-07-19 21:27:16 -04:00
Timm Bäder
bd446c48e9 spinbutton: expand the entry
It's supposed to fill the entire spinbutton allocation apart from the
buttons
2017-07-19 21:27:16 -04:00
Timm Bäder
efccff70b7 Adwaita: Set minimum size for modelbutton arrows
Otherwise the minimum size is 1×1.
2017-07-19 21:27:16 -04:00
Timm Bäder
348871d9fc Fix a few testsuite failures
Adjust default property values, skip GtkRange:adjustment.
2017-07-19 21:27:16 -04:00
Timm Bäder
5720f2a845 widget: Make _set_clip private
We don't need this anymore since clips are now reported in
size-allocate.
2017-07-19 21:27:16 -04:00
Timm Bäder
28dae5f1c2 checkmenuitem: Don't always snapshot the indicator
Chaining up will snapshot all child widgets, which doesn't work with
GtkModelMenuItem.
2017-07-19 21:27:16 -04:00
Timm Bäder
8358817ad1 applicationwindow: Remove some useless queue_resize calls
The gtk_widget_{set_parent,unparent} calls before will already cause a
resize when necessary.
2017-07-19 21:27:16 -04:00
Timm Bäder
308f41487d modelmenuitem: Set label on menu items
We have to add a check for GTK_IS_ACCEL_LABEL too now...
2017-07-19 21:27:16 -04:00
Timm Bäder
5116ce19b7 widget: Remove queue_draw_region vfunc
Unused
2017-07-19 21:27:16 -04:00
Timm Bäder
65209da486 widget: Set :focus on focus children 2017-07-19 21:27:16 -04:00
Timm Bäder
d7056f5d22 revealer: Explain CSS oddities 2017-07-19 21:27:16 -04:00
Timm Bäder
36ab70ddf5 widget: Add baseline and out_clip parameters to size-allocate
Since setting a clip is mandatory for almost all widgets, we can as well
change the size-allocate signature to include a out_clip parameter, just
like GtkCssGadget did. And since we now always propagate baselines, we
might as well pass that one on to size-allocate.

This way we can also make sure to transform the clip returned from
size-allocate to parent-coordinates, i.e. the same coordinate space
priv->allocation is in.
2017-07-19 21:27:16 -04:00
Timm Bäder
95bd58ac00 widget: Don't propagate size-allocate if only the position changed
We can do this now so we should
2017-07-19 21:27:15 -04:00
Timm Bäder
2e6b1158ee widget: Fix priv dereference in size_allocate_with_baseline
Accessing ->priv is only safe *after* the GTK_IS_WIDGET precondition, so
use the get_instance_private function instead.
2017-07-19 21:27:15 -04:00
Timm Bäder
6d9a0d432a widget: Fix a widget/container mixup 2017-07-19 21:27:15 -04:00
Timm Bäder
3aeaeef070 window: Fix resizing with solid-csd
We can't use a 20px resize handle in that case so fall back to the
padding area of the window. Still ugly but it works.
2017-07-19 21:27:15 -04:00
Timm Bäder
edf0aeb92e gtkapplication: g_dbus_proxy_new_sync can return NULL
Specifically, in the case where @error is set.
2017-07-19 21:27:15 -04:00
Timm Bäder
5fb27e2bd7 window: Fix annotations in get_size and get_position 2017-07-19 21:27:15 -04:00
Timm Bäder
0ebd8840a8 widget: Remove gtk_cairo_transform_to_window
Useless in a world without windows and cairo.
2017-07-19 21:27:15 -04:00
Timm Bäder
f637006b3e popover: Add a contents node
Remove the special case in gtkwidget.c where we didn't draw any css
background/border for popovers. Instead, rely on themes to not style the
popover node and add a contents gizmo that gets the actual css styling.
We then requeste enough space for the popover to draw both the contents
and the arrow on the side.
2017-07-19 21:27:15 -04:00
Timm Bäder
097ab2baed widget: Draw css box after pushing a opacity node 2017-07-19 21:27:15 -04:00
Timm Bäder
e2e91bf9bc Fix a few documentation issues 2017-07-19 21:27:15 -04:00
Timm Bäder
c26731968b testpopover: Remove expand GtkBox child properties 2017-07-19 21:27:15 -04:00
Timm Bäder
eb34c68ff4 widget: Move get_resize_needed to gtkwidget.c
It's only used in there so we don't need it in the private header.
2017-07-19 21:27:15 -04:00
Timm Bäder
831bcc5e0d notebook: Allocate unmapped tabs 2017-07-19 21:27:15 -04:00
Timm Bäder
c4f6cea111 fix a few documentation problems 2017-07-19 21:27:15 -04:00
Timm Bäder
23f90e3d67 centerbox: Add some missing return value annotations 2017-07-19 21:27:15 -04:00
Timm Bäder
1e4d11b995 box: Ignore baselines when vertical
For now.
2017-07-19 21:27:15 -04:00
Timm Bäder
68c35bbe15 bbox: Don't report a horizontal baseline 2017-07-19 21:27:15 -04:00
Timm Bäder
f0d6cb5f40 widget: Propagate correct baseline 2017-07-19 21:27:15 -04:00
Timm Bäder
e19e3b72a3 widget: Always pass on baselines 2017-07-19 21:27:15 -04:00
Timm Bäder
fb2bb87bb1 widget: Simplify snapshot_child 2017-07-19 21:27:15 -04:00
Timm Bäder
55389cd97c entry: Fix baseline alignment
Since we only look at priv->text_baseline later on, it would be useful
to actually set it to a useful value.
2017-07-19 21:27:15 -04:00
Timm Bäder
0726148ca5 widget: Draw debug nodes for widget margins too 2017-07-19 21:27:15 -04:00
Timm Bäder
fa5203e700 widget: Fix copy&paste error when creating debug nodes 2017-07-19 21:27:15 -04:00
Timm Bäder
6a7d903612 sizerequest: Add more assertions for baselines
min baselines must be <= natural baselines and both must lie inside the
content size of the widget.
2017-07-19 21:27:15 -04:00
Timm Bäder
cef4df1e7e widget: Unset PRELIGHT and ACTIVE state flags in unmap 2017-07-19 21:27:15 -04:00
Timm Bäder
1dd716e66f button: Reset in_button state in unmap
Since at that point the point is clearly not in the button anymore.
2017-07-19 21:27:15 -04:00
Timm Bäder
e276f1e844 label: Fix get_layout_index
Properly translate the given coordinates to layout coordinates. Fixes
clicking links and selecting text.
2017-07-19 21:27:15 -04:00
Timm Bäder
dd9c3fc8ab textview: Invalidate entire widget 2017-07-19 21:27:15 -04:00
Timm Bäder
dc473b4180 textview: Remove size_changed check in size-allocate
It's broken and we only hit size-allocate when the size changes anyway.
2017-07-19 21:27:15 -04:00
Timm Bäder
f7bc5fcae3 linkbutton: Remove useless unrealize implementation 2017-07-19 21:27:15 -04:00
Timm Bäder
c8ca43ad51 stack: Fix under transitions
make sure we initialize both width and height with proper values.
2017-07-19 21:27:15 -04:00
Timm Bäder
2c958df789 eventbox: Remove window 2017-07-19 21:27:15 -04:00
Timm Bäder
82eafb8a2c centerbox: Avoid accessing unset widgets 2017-07-19 21:27:15 -04:00
Timm Bäder
d832001baa textview: Use correct size for cairo node bounds 2017-07-19 21:27:15 -04:00
Timm Bäder
451a991488 window: Move updates debugging to GtkWidget
Which has the necessary information.
2017-07-19 21:27:15 -04:00
Timm Bäder
995903e971 scale: Fix mark positions
Someone else will have to fix the css.
2017-07-19 21:27:15 -04:00
Timm Bäder
4eba9442df range: Fix get_range_rect
get_own_allocation's position is relative to the given widget's origin,
not the parent.
2017-07-19 21:27:15 -04:00
Timm Bäder
468e75e43d range: Fix mark positions
The values returned by gtk_range_compute_slider_position are relative
to the trough_widget (the slider's parent), not the slider widget
itself.
2017-07-19 21:27:15 -04:00
Timm Bäder
ed5b7fedb8 scale: Remove custom indicator drawing
it's a css node so we can simply use the background instead of the
foreground color in the theme.
2017-07-19 21:27:15 -04:00
Timm Bäder
5bb355f06f scale: Fix mark indicator allocations 2017-07-19 21:27:15 -04:00
Timm Bäder
a8561bcc99 headerbar: don't measure own size
This is fallout from an earlier commit, we should be checking the
child's size of course, not repeatedly the headerbar's.
2017-07-19 21:27:15 -04:00
Timm Bäder
e25e1c54a4 levelbar: Don't underallocate block widgets 2017-07-19 21:27:15 -04:00
Timm Bäder
993998085f range: Avoid division by zero 2017-07-19 21:27:15 -04:00
Timm Bäder
a0444b9c42 gtk4-demo: Add widgetbowl demo
Same as fishbowl, but with widgets
2017-07-19 21:27:15 -04:00
Timm Bäder
4b0da8682d popover: set the shape on the correct window
the parent window is now the toplevel's window.
2017-07-19 21:27:15 -04:00
Timm Bäder
d25af7ce10 switch: Put the slider node last
Makes sense since we draw it over both labels. Also make this obvious by
using the default snapshot implementation.
2017-07-19 21:27:15 -04:00
Timm Bäder
4fb2fc7d89 drawingarea: Remove useless line from code example
backgrounds are drawn automatically now.
2017-07-19 21:27:15 -04:00
Timm Bäder
3dc6d240b3 Fix a few allocation coordinates & sizes 2017-07-19 21:27:15 -04:00
Timm Bäder
2c2867d45d entry: Fix undershoot position 2017-07-19 21:27:15 -04:00
Timm Bäder
6f7387cd25 paned: Fix clip node coordinates 2017-07-19 21:27:15 -04:00
Timm Bäder
aa5cb1648c adwaita: Adjust entry progress styling
Now that the entry>progress node is a full GtkProgressBar, we need to
apply the style to its trough>progress node.
2017-07-19 21:27:15 -04:00
Timm Bäder
84c00d18bb entry: Simplify progress size allocation 2017-07-19 21:27:15 -04:00
Timm Bäder
f520700b13 calendar: Remove all input windows
and simultaneously fix input! \o/
2017-07-19 21:27:15 -04:00
Timm Bäder
3fc49ce8a1 entry: Fix text position
We need to adjust the layout coordinates depending on priv->text_x,
sinec that one accounts for the width of the left icon.
2017-07-19 21:27:15 -04:00
Timm Bäder
a0f3497939 treeview: Remove bin_window 2017-07-19 21:27:15 -04:00
Timm Bäder
26e1491c70 label: Use the correct size in snapshot() 2017-07-19 21:27:15 -04:00
Timm Bäder
3252630a4b aboutdialog: Remove unused image 2017-07-19 21:27:15 -04:00
Timm Bäder
d6bb1625e9 testbaseline: Add a horizontal spinbutton 2017-07-19 21:27:14 -04:00
Timm Bäder
42aa7453ab Fix baselines wrt css values
The reported minimum baseline is for the reported min height, but if the
css min-height is greater than that, we need to account for that fact
when saving the baseline.

Since the reported baseline is relative to the widget's origin, we also
need to add the top values for margin, border and padding to the
reported baseline.
2017-07-19 21:27:14 -04:00
Timm Bäder
ea3876d26a widget: black is the new red 2017-07-19 21:27:14 -04:00
Timm Bäder
45c0439dd4 notebook: Fix css node ordering
Aaand all the unit tests pass again.
2017-07-19 21:27:14 -04:00
Timm Bäder
8dc5e13e8c iconview: Remove bin_window 2017-07-19 21:27:14 -04:00
Timm Bäder
fb1d2719d9 entry: Fix node ordering
Fix the icon order
2017-07-19 21:27:14 -04:00
Timm Bäder
271749d4a6 testsuite: Update expected css node output 2017-07-19 21:27:14 -04:00
Timm Bäder
a9f10a2d56 paned: Remove assertion in get_child_property
Passing the third child (the pane separator) is possible and shouldn't
cause the process to abort.
2017-07-19 21:27:14 -04:00
Timm Bäder
51e25aaff4 main: Protect against non-GtkWindow toplevels 2017-07-19 21:27:14 -04:00
Timm Bäder
5fbe26f396 inspector: Use GtkWidget::pick when picking widgets 2017-07-19 21:27:14 -04:00
Timm Bäder
f9f6f3027d container: Remove get_children_clip
Unused.
2017-07-19 21:27:14 -04:00
Timm Bäder
27202ff6cb stack: Compute clip directly 2017-07-19 21:27:14 -04:00
Timm Bäder
c0f6a97eed buttonbox: Compute clip directly 2017-07-19 21:27:14 -04:00
Timm Bäder
7012950f9f modelbutton: Compute clip directly 2017-07-19 21:27:14 -04:00
Timm Bäder
8645dd1030 flowbox: Compute clip directly 2017-07-19 21:27:14 -04:00
Timm Bäder
f1813e8f88 spinbutton: Fix gesture state
We claimed the gesture previously to keep it from propagating to the
underlying entry, but now that the entry is in a box with the two
buttons, we can do this properly and restore the previous long-press
behavior.
2017-07-19 21:27:14 -04:00
Timm Bäder
333b52bc14 checkmenuitem: Fix indicator state
We need to remove the inconsistent and checked state first so we
actually remove it.
2017-07-19 21:27:14 -04:00
Timm Bäder
2d3f57a420 widget-factory: Show the status bar by default
Since the action is also active by default.
2017-07-19 21:27:14 -04:00
Timm Bäder
1bffccd583 testnotebookdnd: quit when the toplevel gets closed 2017-07-19 21:27:14 -04:00
Timm Bäder
bc4c32505a menu: Popup at window coordinates if widget is given
Since widget allocations are now relative to the parent's origin, we
need to pass the window allocation here.
2017-07-19 21:27:14 -04:00
Timm Bäder
8dd29d755c window: Don't use allocated size in snapshot
Those are the wrong values.
2017-07-19 21:27:14 -04:00
Timm Bäder
bda2f4f582 popover: Create subsurface on wayland 2017-07-19 21:27:14 -04:00
Timm Bäder
2cbaa998db widget: Fix drawing invalidation with windowed widgets
E.g. popovers. Find the parent of the given widget with the window and
invalidate the given region in that window.
2017-07-19 21:27:14 -04:00
Timm Bäder
bc807789ba popover: "Fix" child allocation
This is still wrong but will be fixed in the future.
2017-07-19 21:27:14 -04:00
Timm Bäder
79797cd162 window: Stop wrapping popovers in another window
GtkPopover is already a windowed widget.
2017-07-19 21:27:14 -04:00
Timm Bäder
c2abb698be Replace a few get_content_allocation calls with get_content_size
The position of the content allocation is almost never relevant since
it's 0/0 for measure, size_allocate and snapshot.
2017-07-19 21:27:14 -04:00
Timm Bäder
e36ddfec17 Remove all widget style property code 2017-07-19 21:27:14 -04:00
Timm Bäder
cc60046ae9 treeviewaccessible: Don't rely on nonexistent style properties
The expander-size style property has been gone for a long time.
2017-07-19 21:27:14 -04:00
Timm Bäder
7b9b116ad6 adwaita: Remove style properties
They don't exist anymore.
2017-07-19 21:27:14 -04:00
Timm Bäder
07063d82aa notebook: Remove style properties
Hardcode the default values until someone comes up with a proposal for a
better way.
2017-07-19 21:27:14 -04:00
Timm Bäder
61dd8f92b8 calendar: Remove style properties
Hardcode the default values until someone comes and fixes the actual
widget.
2017-07-19 21:27:14 -04:00
Timm Bäder
a826ee37ca widget: Remove _set_simple_clip
Unused.
2017-07-19 21:27:14 -04:00
Timm Bäder
1535cab936 spinner: Use get_content_size 2017-07-19 21:27:14 -04:00
Timm Bäder
6b9d10039d pathbar: Compute widget clip directly
Instead of relying on gtk_widge_set_simple_clip
2017-07-19 21:27:14 -04:00
Timm Bäder
f40c61fb40 toolitem: Remove size_allocate implementation
A GtkToolItem is a GtkBin and that already does exactly what this
implementation did.
2017-07-19 21:27:14 -04:00
Timm Bäder
1bad3e1f28 widget: Transform clips into right coordinate space
The values passed to gtk_widget_set_clip are relative to the widget's
origin, but we need the values to be relative to priv->allocation.
2017-07-19 21:27:14 -04:00
Timm Bäder
e501bc6028 paned: Draw handle separator at the right location 2017-07-19 21:27:14 -04:00
Timm Bäder
5228e018b6 paned: Make sure we set the correct clips
They are still too big, i.e. clipped-off children enlarge the paned's
clip but at least redrawing works and smaller clips are just an
optimization.
2017-07-19 21:27:14 -04:00
Timm Bäder
24abbac114 switch: Remove in_switch flag
It's pretty simple and less code to just check whether the gesture
coords are inside the widget at the one place where we actually used the
flag.
2017-07-19 21:27:14 -04:00
Timm Bäder
63ba8fa355 widget: Consider opacity when drawing toplevels
This used to work in gtk3 and is used e.g. in the inspector when using
wayland.
2017-07-19 21:27:14 -04:00
Timm Bäder
63158fd3ff switch: Fix handle dragging with padding applied
We only move the handle inside the content allocation, so we need to use
the content width when calculating the new handle_pos.
2017-07-19 21:27:14 -04:00
Timm Bäder
a73d3418bc layout: Remove bin_window 2017-07-19 21:27:14 -04:00
Timm Bäder
8123ea8f3f fixed: Remove window 2017-07-19 21:27:14 -04:00
Timm Bäder
a4d2da76b3 button: Fix in_button checks
The gesture coords are relative to the button's origin, so use
gtk_widget_get_own_allocation to check if the coords are inside the
button.
2017-07-19 21:27:14 -04:00
Timm Bäder
12fdb19d63 expander: Fix pressed_in_title check
gesture coords are relative to the expander widget, the title allocation
is relative to the box child.
2017-07-19 21:27:14 -04:00
Timm Bäder
b5aa1982c9 Remove GtkCssGadget 2017-07-19 21:27:14 -04:00
Timm Bäder
7b5c12c7dc iconhelper: Inherit from GObject
Nothing is using any gadget API on iconhelpers anymore.
2017-07-19 21:27:14 -04:00
Timm Bäder
70d90a9923 spinbutton: Remove unused import 2017-07-19 21:27:14 -04:00
Timm Bäder
3077198de0 scrolledwindow: Fix indicator hiding
Only hiding the indicator if the widget is not mapped won't work.
2017-07-19 21:27:14 -04:00
Timm Bäder
ac4660b4c4 checkmenuitem: Fix indicator allocation
base point is the menu item's content allocation now.
2017-07-19 21:27:14 -04:00
Timm Bäder
1c5eec92fe range: Fix slider allocation 2017-07-19 21:27:14 -04:00
Timm Bäder
b17d998eb5 widget: Add new allocation accessors 2017-07-19 21:27:14 -04:00
Timm Bäder
15cacf485a Remove GtkCssCustomGadget
Unused.
2017-07-19 21:27:14 -04:00
Timm Bäder
078e599ac5 entry: Replace progress gadget with a progressbar 2017-07-19 21:27:14 -04:00
Timm Bäder
c56bad4be5 scrollbar: notify when setting the orientation 2017-07-19 21:27:14 -04:00
Timm Bäder
58ed506c59 GtkAccelLabel: Add use-underline property 2017-07-19 21:27:14 -04:00
Timm Bäder
a0ebad70cd spinbutton: Fix property notification 2017-07-19 21:27:14 -04:00
Timm Bäder
b497b066b0 cssprovider test: Remove style property test case
It's getting harder and harder to find a dummy style property to use
here, so remove the test case since style properties should be going
away soon anyway.
2017-07-19 21:27:14 -04:00
Timm Bäder
4d74129c61 entry: Use images for icons 2017-07-19 21:27:14 -04:00
Timm Bäder
00d720d8a4 image: Add private _get_definition 2017-07-19 21:27:14 -04:00
Timm Bäder
25034b6f87 label: Fix layout snapshot coordinates
No need to convert anything to "window coordinates" anymore.
2017-07-19 21:27:14 -04:00
Timm Bäder
9e43d267bd scrolledwindow: Fix scrollbar allocations
Use the content size everywhere. Fixes scrollbar positions with padding
and/or css borders applied to the scrolledwindow.
2017-07-19 21:27:14 -04:00
Timm Bäder
3a20bc5e9a scrolledwindow: Fix on_scrollbar check
The event widget is always the toplevel window, so use the event target
and check the GtkScrollbar ancestor.
2017-07-19 21:27:14 -04:00
Timm Bäder
30f516ff1f range: Use a gizmo as slider
No need for this to be a GtkIcon.
2017-07-19 21:27:14 -04:00
Timm Bäder
3f429eb197 entry: get_layout_location coords are already content relative 2017-07-19 21:27:14 -04:00
Timm Bäder
225306a21e image: Fold gtk_image_reset into only caller 2017-07-19 21:27:14 -04:00
Timm Bäder
360b075164 widget: Avoid some type checks in snapshot_child 2017-07-19 21:27:13 -04:00
Timm Bäder
f50bbb10df menu: Remove bin_window and view_window 2017-07-19 21:27:13 -04:00
Timm Bäder
e2ce407f2c modelmenuitem: Fix type checking assertions
GtkAccelLabel is not a GtkLabel anymore
2017-07-19 21:27:13 -04:00
Timm Bäder
34f6f9bfe6 iconview: Stop drawing a background
GtkWidget is doing that automatically now.
2017-07-19 21:27:13 -04:00
Timm Bäder
99b00b4d9c sizerequest: Assert that min_size >= 0
This should generally be true, so remove the checks from gtkbox.c and
move it into gtksizerequest.c
2017-07-19 21:27:13 -04:00
Timm Bäder
ab1e8502e7 revealer: Fix DOWN and RIGHT transition types
Since we lost the bin_window, we now have to allocate the child widget
at a negative position when using these transition types.
2017-07-19 21:27:13 -04:00
Timm Bäder
ec1984bd93 revealer: Request child size for NONE transition type
Previously, we would request a size of 0×0 when the transition type was
NONE and the child un-revealed, making the revealer in this case a
gtk_widget_set_visible replacement. Instead, to the exact same thing we
do in the CROSSFADE case and request the child size instead. This also
keeps the revealer from under allocating the child when the transition
type is set to NONE.
2017-07-19 21:27:13 -04:00
Timm Bäder
9e50447253 stack: Remove bin_window 2017-07-19 21:27:13 -04:00
Timm Bäder
12d2679aac revealer: Remove bin_window 2017-07-19 21:27:13 -04:00
Timm Bäder
5688b8a663 toolitemgroup: Remove child window 2017-07-19 21:27:13 -04:00
Timm Bäder
9350a0f85b popover: Remove useless if case
rect is not nullable, so stop checking if it is NULL and instead add a
g_return_val_if_fail guard.
2017-07-19 21:27:13 -04:00
Timm Bäder
2b06986c38 widget: "fix" event and invalidation coordinates 2017-07-19 21:27:13 -04:00
Timm Bäder
ee8a8c49e2 testwidgetfocus: Drop SPACING constant in favor for CSS
This makes it easier to test various other properties of widgets.
2017-07-19 21:27:13 -04:00
Timm Bäder
b8cc22a552 window: Remove dead code
This case can never happen since GtkWindow instances never have a
parent.
2017-07-19 21:27:13 -04:00
Timm Bäder
dc93903cd3 image: Fix snapshot position 2017-07-19 21:27:13 -04:00
Timm Bäder
2687a9d132 entry: Fix text position 2017-07-19 21:27:13 -04:00
Timm Bäder
241a009938 widget: Adapt translate_coordinates to coordinate changes 2017-07-19 21:27:13 -04:00
Timm Bäder
e3bd1e10e8 scrolledwindow: fix scrollbar allocation 2017-07-19 21:27:13 -04:00
Timm Bäder
fa97b270f1 paned: Remove useless queue_resize calls
This is done by gtk_widget_unparent nowadays
2017-07-19 21:27:13 -04:00
Timm Bäder
4a4897a9b6 paned: Reimplement handle dragging 2017-07-19 21:27:13 -04:00
Timm Bäder
d3e88ed5a6 icon: Stop offset'ing in snapshot
The snapshot is not offset to the content allocation when ->snapshot is
called.
2017-07-19 21:27:13 -04:00
Timm Bäder
d3beea2c3d frame: Fix child allocation
Don't add the parent's allocation from gtk_widget_get_allocation
2017-07-19 21:27:13 -04:00
Timm Bäder
bccaeb0e2d widget: Make allocations parent-content-allocation relative 2017-07-19 21:27:13 -04:00
Timm Bäder
ec6184c2af widget: Remove queue_draw_child vfunc 2017-07-19 21:27:13 -04:00
Timm Bäder
c462105d78 viewport: Remove bin_window 2017-07-19 21:27:13 -04:00
Timm Bäder
58320c02ea scrolledwindow: Properly remove scrollbars
Instead of keeping an extra ref, then unparent+destroy+unref, don't keep
an extra ref and just unparent the scrollbar when appropriate.
2017-07-19 21:27:13 -04:00
Timm Bäder
357e0db4c9 listbox: Remove manual prelight row management
This works automatically now.
2017-07-19 21:27:13 -04:00
Timm Bäder
5aeb25f460 switch: Remove manual PRELIGHT code
This works automatically now
2017-07-19 21:27:13 -04:00
Timm Bäder
c2717a887d listbox: Remove view_window 2017-07-19 21:27:13 -04:00
Timm Bäder
b9f70b473c scrollbar: Add new API to gtk4-sections.txt
and update the css node docs
2017-07-19 21:27:13 -04:00
Timm Bäder
0a70ec2d36 bin: Drop priv pointer 2017-07-19 21:27:13 -04:00
Timm Bäder
cc7038b740 filechooserwidget: Fix save widgets
Now that GtkFileChooserWidget is not a GtkBox anymore, we can't just
gtk_box_pack_start child widgets to it.
2017-07-19 21:27:13 -04:00
Timm Bäder
24f79bbae4 Remove some unneeded includes 2017-07-19 21:27:13 -04:00
Timm Bäder
cb8031fde3 inspector: Allow picking children of GtkWidget classes 2017-07-19 21:27:13 -04:00
Timm Bäder
34af3d3940 accellabel: Inherit from GtkWidget
Use a box and 2 labels.
2017-07-19 21:27:13 -04:00
Timm Bäder
01cdcec3ea textview: Use ::snapshot 2017-07-19 21:27:13 -04:00
Timm Bäder
35670a1ee6 testtooltips: Add static tooltip
Just a widget class emulating the tooltip look by calling itself
"tooltip" in the css node tree and adding the .background style class.
2017-07-19 21:27:13 -04:00
Timm Bäder
ae5d3a20a8 tooltipwindow: Remove unused define 2017-07-19 21:27:13 -04:00
Timm Bäder
665c9aba31 listbox: Remove rows directly when binding model
Instead of hopping through 7 different functions to do that, just
remove all rows directly. This also mean we'll only remove rows and not
other children that've been added like placeholders.
2017-07-19 21:27:13 -04:00
Timm Bäder
a9f9ef3f53 box: Use widget children list in count_expand_children
It's still less dereferencing than the previous code.
2017-07-19 21:27:13 -04:00
Timm Bäder
3babd184c0 scale: Fix css node ordering and expected results
Add :dir(ltr) where expected, i.e. everywhere we now have a widget but
had a gadget before.
Also, fix the expected output to expect mark subnodes in the order
specified in the GtkScale does, i.e.

├── mark
    ├── [label]
    ╰── indicator

for marks at the top of the scale and

├── mark
    ├── indicator
    ╰── [label]

For marks at the bottom of the scale.
2017-07-19 21:27:13 -04:00
Timm Bäder
121cf9c78c spinbutton: Add docs for new public API 2017-07-19 21:27:13 -04:00
Timm Bäder
73f5f45456 widget: Draw widget clips with GEOMETRY debugging 2017-07-19 21:27:13 -04:00
Timm Bäder
3e555e1646 image: Offset rendering to the content allocation 2017-07-19 21:27:13 -04:00
Timm Bäder
90c8a3f920 widget: Bring back layout debugging 2017-07-19 21:27:13 -04:00
Timm Bäder
ac1d3cb396 paned: Replace handle gadget with widget 2017-07-19 21:27:13 -04:00
Timm Bäder
ec51c63313 widget: Bring resize and baseline debug rendering back 2017-07-19 21:27:13 -04:00
Timm Bäder
790c153b2c range: Fix click detection in slider trace
The x/y/ coordinates are relative to the range allocation, so take that
into account.
2017-07-19 21:27:13 -04:00
Timm Bäder
2ac8ebe9f7 treeview: default to width_changed = TRUE
Checking the given GtkAllocation against the current allocation insize
::size-allocate doesn't really work anymore. They are only different if
the content allocation (the one passed) and the widget allocation (the
current one) are different, so e.g. when the widget has padding >0
applied.
2017-07-19 21:27:13 -04:00
Timm Bäder
70a58fd83a icon: Render at content position
Since we get offset automatically to the widget allocation before
->snapshot is called, we still have to offset the difference to the
position of the content allocation.
2017-07-19 21:27:13 -04:00
Timm Bäder
071c205c92 switch: Use a gizmo as slider
The button was jut a stop-gap solution before GtkGizmo existed.
2017-07-19 21:27:13 -04:00
Timm Bäder
c0a1793d59 testheightforwidth: Remove GtkBox fill/expand usage 2017-07-19 21:27:13 -04:00
Timm Bäder
b344267e6c button: Don't care about sizing if no child is set
We don't need to care in this case since the default values should
always be assumed to be 0, and setting a baseline of 0 is just wrong
when orientation == HORIZONTAL, it should be -1 (or unset).
2017-07-19 21:27:13 -04:00
Timm Bäder
0bab8b8e0e Remove GtkBoxGadget
Now unused
2017-07-19 21:27:13 -04:00
Timm Bäder
4f0140fa6c Remove GtkBuiltinIcon
Now unused.
2017-07-19 21:27:13 -04:00
Timm Bäder
efd7b38abc checkbutton: stop using gadgets 2017-07-19 21:27:13 -04:00
Timm Bäder
495fba41db modelbutton: Use GtkIcon as indicator 2017-07-19 21:27:13 -04:00
Timm Bäder
ed38b1c365 icon: Add _set_css_name back 2017-07-19 21:27:13 -04:00
Timm Bäder
d5167eb61c colorswatch: Replace IconHelper with GtkImage 2017-07-19 21:27:13 -04:00
Timm Bäder
dd713e0ae2 widget: Consider css margins when setting clip
This is optional for positive margins as they just increase the widget
allocation. However, with negative css margins, the allocation is
smaller than the clip.

This fixes scale sliders leaving a small trail behind.
2017-07-19 21:27:13 -04:00
Timm Bäder
a3b9adaa68 adwaita: Fix typo
marks_lenght -> marks_length
2017-07-19 21:27:13 -04:00
Timm Bäder
f1c1e52eea container: GtkActionBar is not a special container anymore 2017-07-19 21:27:13 -04:00
Timm Bäder
2d29183aa8 progressbar: Apply style classes when setting direction
We might have to change .top to .left etc. when changing the direction
of the progressbar.
2017-07-19 21:27:13 -04:00
Timm Bäder
fe9833a2f8 css nodes: Fix expander test case
Vertical box subnode.
2017-07-19 21:27:13 -04:00
Timm Bäder
f4bfb0a07a css nodes: Fix entries test case
Spinbuttons now have a subnode box and the undershoot nodes belong to
the entry node.
2017-07-19 21:27:13 -04:00
Timm Bäder
218e0b9929 spinbutton: Use 0 as default for (max-)width-chars
This mimics the old spinbutton size request better.
2017-07-19 21:27:13 -04:00
Timm Bäder
b3f45cf1fe range: Emit value-changed when setting the adjustment
After all, the value kind of just changed.
2017-07-19 21:27:13 -04:00
Timm Bäder
5204fd5ea1 scale: Replace all gadgets with widgets 2017-07-19 21:27:13 -04:00
Timm Bäder
7448d137f3 scale: Remove draw_value vfunc
Unused.
2017-07-19 21:27:13 -04:00
Timm Bäder
af9d0cdffb range: Return trough allocation from _get_range_rect 2017-07-19 21:27:13 -04:00
Timm Bäder
6f2145be00 notebook: Replace all gadgets with widgets 2017-07-19 21:27:13 -04:00
Timm Bäder
07cbbc6fa9 container: Propagate child properties if parent != container
This can happen when e.g. GtkNotebook adds the child page widgets not
directly inside the notebook, but inside the inner GtkStack.
2017-07-19 21:27:12 -04:00
Timm Bäder
2bf1c09f65 adwaita: Fix notebook theming
the header and the stack nodes are now inside a box node.
2017-07-19 21:27:12 -04:00
Timm Bäder
11207505e3 gizmo: Unparent all child widgets in finalize 2017-07-19 21:27:12 -04:00
Timm Bäder
017dfc132d gizmo: Chain up in snapshot if no snapshot func given
I.e. when gizmo users just want to draw child widgets anyway and don't
do any custom drawing, they can simply pass NULL.
2017-07-19 21:27:12 -04:00
Timm Bäder
0c0a402433 notebook: Replace tab gadget with GtkGizmo 2017-07-19 21:27:12 -04:00
Timm Bäder
8edf10103e notebook: Replace tabs gadget with GtkGizmo 2017-07-19 21:27:12 -04:00
Timm Bäder
195ca06c2c notebook: Replace arrow gadgets with GtkIcons 2017-07-19 21:27:12 -04:00
Timm Bäder
8b1b0f4efd icon: Add _set_image 2017-07-19 21:27:12 -04:00
Timm Bäder
7c77fd9e62 menu: Replace arrow gadgets with GtkIcons 2017-07-19 21:27:12 -04:00
Timm Bäder
fb78c3b7e8 checkmenuitem: Replace indicator gadget with GtkIcon 2017-07-19 21:27:12 -04:00
Timm Bäder
2876790cc3 icon: Only draw in content allocation 2017-07-19 21:27:12 -04:00
Timm Bäder
273aa2be61 menuitem: Replace arrow gadget with GtkIcon 2017-07-19 21:27:12 -04:00
Timm Bäder
753e915f87 scrollbar: Add accessor for wheel delta
Make the one in gtkrange.c static since it was only ever used from
GtkScrolledWindow.
2017-07-19 21:27:12 -04:00
Timm Bäder
706bc08b68 range: Draw the colorscale trough at 0,0 2017-07-19 21:27:12 -04:00
Timm Bäder
2e62072cbc range: Allocate the trough when the adjustment value changes
So it repositions the slider.
2017-07-19 21:27:12 -04:00
Timm Bäder
38ff761313 range: Fix mouse location tracking 2017-07-19 21:27:12 -04:00
Timm Bäder
afddfc2397 range: Snapshot slider in trough's snapshot impl 2017-07-19 21:27:12 -04:00
Timm Bäder
d1be5f2941 spinner: Remove gadget 2017-07-19 21:27:12 -04:00
Timm Bäder
6e74975e41 range: make the slider a gadget 2017-07-19 21:27:12 -04:00
Timm Bäder
c7c08cf9a1 icon: Remove gadget 2017-07-19 21:27:12 -04:00
Timm Bäder
ba6ba94184 range: Use gizmos for highlight and fill gadgets 2017-07-19 21:27:12 -04:00
Timm Bäder
395185896f range: Use a gizmo as trough 2017-07-19 21:27:12 -04:00
Timm Bäder
90cc401f1a range: Remove contents gadget
It's not needed anymore since the range only has one child gadget: the
trough.
2017-07-19 21:27:12 -04:00
Timm Bäder
7e525ca63b range: Remove steppers
Add them back into the new scrollbars later
2017-07-19 21:27:12 -04:00
Timm Bäder
86a2156d17 scrolledwindow: Use scrollbar API on scrollbars 2017-07-19 21:27:12 -04:00
Timm Bäder
5049b35fc6 range: Make GtkRange a regular class 2017-07-19 21:27:12 -04:00
Timm Bäder
4dc5790058 scrollbar: Inherit from GtkWidget 2017-07-19 21:27:12 -04:00
Timm Bäder
55fc120134 calendar: Remove custom css background and border drawing 2017-07-19 21:27:12 -04:00
Timm Bäder
4d4b224a61 eventbox: Remove snapshot implementation 2017-07-19 21:27:12 -04:00
Timm Bäder
70613c9128 toolpalette: Port to snapshot() 2017-07-19 21:27:12 -04:00
Timm Bäder
7ddd497f69 toolitemgroup: Remove custom draw code
GtkWidget does it automatically now
2017-07-19 21:27:12 -04:00
Timm Bäder
a735dd44cb searchbar: Fix property documentation comments
They are properties of GtkSearchBar, not GtkEntry.
2017-07-19 21:27:12 -04:00
Timm Bäder
4823b9f2d7 searchbar: Remove manual snapshot code 2017-07-19 21:27:12 -04:00
Timm Bäder
2e4df25a1d menu: Stop drawing css background and border
GtkWidget does it now
2017-07-19 21:27:12 -04:00
Timm Bäder
1a1f9fd03c menu: Remove unnecessary queue_draw 2017-07-19 21:27:12 -04:00
Timm Bäder
c35a78110c menu: Stop looking at padding and margin manually 2017-07-19 21:27:12 -04:00
Timm Bäder
8d2d2ae07f button: Remove unused flag 2017-07-19 21:27:12 -04:00
Timm Bäder
720bb9eede checkbutton: Don't draw a focus ring
GtkWidget does it for us now.
2017-07-19 21:27:12 -04:00
Timm Bäder
df28f3d771 meson: Remove double gtkcssnode.c entry in source files 2017-07-19 21:27:12 -04:00
Timm Bäder
9ab43dfe9e spinbutton: Add accessors for (max-)width-chars 2017-07-19 21:27:12 -04:00
Timm Bäder
6aa9ca7b55 spinbutton: Fix activation 2017-07-19 21:27:12 -04:00
Timm Bäder
88550b5d55 inspector: Show the GdkWindow before grabbing
Gets rid of a critical when trying to inspect widgets.
2017-07-19 21:27:12 -04:00
Timm Bäder
2651fcbef9 widget: Special-case popover in snapshot
Just like we do it for GtkWindow.
2017-07-19 21:27:12 -04:00
Timm Bäder
1d4d5b2eb9 popover: Stop looking at padidng and border in measure
GtkWidget does it for us now
2017-07-19 21:27:12 -04:00
Timm Bäder
a5b25d452a boxgadget: Remove unused ComputeExpandFunc 2017-07-19 21:27:12 -04:00
Timm Bäder
0845246fb8 menuitem: Remove gadget
Now that GtkCheckMenuItem isn't using it anymore, we also don't need it.
2017-07-19 21:27:12 -04:00
Timm Bäder
022a3d76d9 checkmenuitem: Stop using the parent's gadget 2017-07-19 21:27:12 -04:00
Timm Bäder
2234d100ad expander: Inherit from GtkContainer
This fixes the expansion not working. As a GtkBin, GtkExpander can only
have one child and if that's a GtkBox (and not the one added through
gtk_expander_add), things go wrong.
2017-07-19 21:27:12 -04:00
Timm Bäder
a2f7a076ac inspector: Fix list row alignment in general tab 2017-07-19 21:27:12 -04:00
Timm Bäder
8bf3b2d5e4 scrolledwindow: Remove useless function call
We never use the result.
2017-07-19 21:27:12 -04:00
Timm Bäder
5b51936676 scrolledwindow: Fix child widget positioning
Instead of relying on get_relative_allocation, just use the
scrolledwindow's content allocation we get passed to size-allocate.
2017-07-19 21:27:12 -04:00
Timm Bäder
cfd67eb4ec scrolledwindow: Remove last argument from allocate_child
We never use that when calling gtk_scrolled_window_allocate_child.
2017-07-19 21:27:12 -04:00
Timm Bäder
9e79684762 range: Remove gadget completely 2017-07-19 21:27:12 -04:00
Timm Bäder
2cedf1be9c widget: Remove gtk_widget_set_allocation 2017-07-19 21:27:12 -04:00
Timm Bäder
60e053f52a Remove calls to gtk_widget_set_allocation
gtk_widget_size_allocate_with_baselines does it automatically now.
2017-07-19 21:27:12 -04:00
Timm Bäder
cd6a8bff8f revealer: Stop calculating paddings ourselves
GtkWidget does it not for all widgets.
2017-07-19 21:27:12 -04:00
Timm Bäder
04fcb1f17f revealer: Don't add a clip node for CROSSFADE transitions
We don't need them there as we just change the opacity of the revealer.
2017-07-19 21:27:12 -04:00
Timm Bäder
c76804b1f2 cellview: Remove gadget 2017-07-19 21:27:12 -04:00
Timm Bäder
1d782b8930 scale: Fix value position
by not using the range's gadget which is not allocated to any position
anymore.
2017-07-19 21:27:12 -04:00
Timm Bäder
a71edd2925 widget: Add private get_margin_allocation 2017-07-19 21:27:12 -04:00
Timm Bäder
2ba07901db buttonbox: Remove gadget 2017-07-19 21:27:12 -04:00
Timm Bäder
dc4bdc2021 stack: Remove gadget 2017-07-19 21:27:12 -04:00
Timm Bäder
ede6f2ab59 Slightly rework clip handling
always initialize clips to the (content) allocation, don't walk up the
widget hierarchy in gtk_widget_set_clip, implement
gtk_widget_size_allocate in GtkSeparator. This way we don't end up using
uninitialized clip values.

The entire clip handling is up for major rework since we can't and don't
want to force every single widget to call _set_clip in size-allocate
implementations.
2017-07-19 21:27:12 -04:00
Timm Bäder
28b18129b5 button: Remove gadget 2017-07-19 21:27:12 -04:00
Timm Bäder
c3ffad1fb3 gtkscale: Properly initialize the clip 2017-07-19 21:27:12 -04:00
Timm Bäder
c87be0a27a widget: Don't set the allocation in size-allocate
If widgets chain up in their size-allocate implementation, they pass the
content allocation and not the widget allocation which will cause the
wrong allocation to be set.
2017-07-19 21:27:12 -04:00
Timm Bäder
bf118eca80 label: Don't chain up in size_allocate
It's unnecessary now.
2017-07-19 21:27:12 -04:00
Timm Bäder
671c5ac434 frame: Fix copy&paste bug in shadow-type handling
If the given shadow_type is none NONE, we have to remove the .flat style
class of course, not add it.
2017-07-19 21:27:12 -04:00
Timm Bäder
49476053e3 paned: Remove gadget 2017-07-19 21:27:12 -04:00
Timm Bäder
83b590cd78 combobox: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
ff6db012d9 widget: Add private get_border_allocation 2017-07-19 21:27:11 -04:00
Timm Bäder
5e3b866370 flowbox: Remove gadgets 2017-07-19 21:27:11 -04:00
Timm Bäder
3f5626a3f7 viewport: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
2e3211b0cb scrolledwindow: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
e37457adf9 box: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
5baaa76bac box: Remove gadget accessor 2017-07-19 21:27:11 -04:00
Timm Bäder
23ef6e4a3b actionbar: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
b749de8b8f buttonbox: Don't use the parent gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
bafa55349f separatortoolitem: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
fe6832fcc9 menubar: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
9fedd05051 fontchooserwidgets: Spinbuttons are no entries 2017-07-19 21:27:11 -04:00
Timm Bäder
46007df8a5 spinbutton demo: Spinbuttons are no Entries 2017-07-19 21:27:11 -04:00
Timm Bäder
f736b071b4 spinbutton: Add text property 2017-07-19 21:27:11 -04:00
Timm Bäder
37d6fd1ffa Entry: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
8a7843eaf2 toolbar: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
4c43a4d4c5 cellrendererspin: Include gtkentry.h
The symbols aren't in gtkspinbutton.h anymore.
2017-07-19 21:27:11 -04:00
Timm Bäder
c268ed832d flowbox: Initialize allocation 2017-07-19 21:27:11 -04:00
Timm Bäder
b60686e8f1 spinbuttonaccessible: Inherit from GtkWidgetAccessible 2017-07-19 21:27:11 -04:00
Timm Bäder
3a2ca91eae spinbutton: Remove call to GtkSpinButton API
The condition will never be true since spinbuttons aren't entries
anymore.
2017-07-19 21:27:11 -04:00
Timm Bäder
3c2d2545b2 spinbutton: Inherit from GtkWidget
Use a box, an entry and the current 2 buttons.
Remaining problems: Entry sizing and activation.
2017-07-19 21:27:11 -04:00
Timm Bäder
fc5c2f2030 modelbutton: Remove last gadget usages
And fix the clip calculation
2017-07-19 21:27:11 -04:00
Timm Bäder
5532b9a1b3 label: Fix clipping
We were using an uninitialized value here.
2017-07-19 21:27:11 -04:00
Timm Bäder
af7781ce0f widget-factory: Remove invisible-char usage for spin buttons 2017-07-19 21:27:11 -04:00
Timm Bäder
78b497bd7a frame: Remove empty finalize implementation 2017-07-19 21:27:11 -04:00
Timm Bäder
9c386b7d63 separator: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
aad7e2d509 label: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
82a4bcf824 spinner: Set clip 2017-07-19 21:27:11 -04:00
Timm Bäder
c6cc314905 frame: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
a1b3a26ba4 widget: Add private gtk_widget_get_content_allocation 2017-07-19 21:27:11 -04:00
Timm Bäder
8db3478bf5 stackcombo: Set clip 2017-07-19 21:27:11 -04:00
Timm Bäder
1269585804 modelbutton: Stop using the button's gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
2cd1a984cf set clip of more widgets 2017-07-19 21:27:11 -04:00
Timm Bäder
3094b341ed image: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
7f965a04ea colorswatch: Remove gadget usage 2017-07-19 21:27:11 -04:00
Timm Bäder
2305ba577d icon: Stop calling gtk_widget_set_allocation
The allocation passed to size-allocate is the content allocation so this
call doesn't make sense anymore.
2017-07-19 21:27:11 -04:00
Timm Bäder
6c484ca4f3 button: Remove gadget usage
Can't remove it entirely yet, since GtkCheckButton still uses it
2017-07-19 21:27:11 -04:00
Timm Bäder
aa5f90d9f5 fontbutton: Call the css node "fontbutton"
Otherwise the default looks like a button inside a button.
2017-07-19 21:27:11 -04:00
Timm Bäder
b9fb186f46 menuitem: Stop using gadget
Once again, we can't really delete it yet since other widgets use it...
2017-07-19 21:27:11 -04:00
Timm Bäder
b4e26e686d checkbutton: Don't use parent button's gadget
check buttons showing their indicator still use the internal boxgadget
and have therefore the wrong size, but this gets us closer.
2017-07-19 21:27:11 -04:00
Timm Bäder
b29b807c3c expander: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
d274387e39 gizmo: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
e2fc0ce06b progressbar: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
bb7b1c56ae range: Remove gadget usage 2017-07-19 21:27:11 -04:00
Timm Bäder
e8bedcbff8 grid: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
66b720fbb8 box: Remove gadget usage
Keep the gadget member in the private struct around for now so
GtkButtonBox doesn't break terribly.
2017-07-19 21:27:11 -04:00
Timm Bäder
4e0f569b26 widget: Union clip with allocation and box shadow size 2017-07-19 21:27:11 -04:00
Timm Bäder
a1b2dc6e05 switch: Remove gadget 2017-07-19 21:27:11 -04:00
Timm Bäder
4c6cb2d461 listbox: Remove gadgets 2017-07-19 21:27:11 -04:00
Timm Bäder
bcbcff5db9 widget: Pass content allocation to size-allocate vfunc 2017-07-19 21:27:11 -04:00
Timm Bäder
bced18b3c5 headerbar: Remove gadget
both drawing and sizing are done through GtkWidget now.
2017-07-19 21:27:11 -04:00
Timm Bäder
3a64ef42df sizerequest: Fix min size with widget margins 2017-07-19 21:27:11 -04:00
Timm Bäder
ba58c796b0 sizerequest: Stop checking orientation in query_size_for_orientation
Since we have ->measure now, we can implement this code more elegantly.
2017-07-19 21:27:11 -04:00
Timm Bäder
4d7768d5e8 sizerequest: Remove for_size parameter from push_recursion_check
It's not needed anymore after also fixing the warning message to not
mention the old get_preferred* functions.
2017-07-19 21:27:11 -04:00
Timm Bäder
b0c7a876a9 sizerequest: Make sure widget sizes stay positive
They can otherwise become negative, e.g. when large negative css
margins are applied.
2017-07-19 21:27:11 -04:00
Timm Bäder
6d34a19cdd sizerequest: Make size groups "work"
We have to query the css margin/border/padding values for all widgets
in the size group.
2017-07-19 21:27:11 -04:00
Timm Bäder
78bb0ed2cb sizerequest: Move css handling to gtk_widget_measure
We need to adjust the passed for_size to fit into the content allocation
of the widget.
That also means that we can't call gtk_widget_measure(widget) inside
gtk_widget_measure(widget) since now the for_size will be adjusted
twice.
2017-07-19 21:27:11 -04:00
Timm Bäder
5066308e86 sizerequest: Honor css min size 2017-07-19 21:27:11 -04:00
Timm Bäder
05a83b74b0 sizerequest: Fix indentation 2017-07-19 21:27:11 -04:00
Timm Bäder
52f8fd8242 scrolledwindow: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
dc9ac96b39 paned: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
25198eb00a separator: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
5504dc6684 stack: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
c804e8a4c5 combobox: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
8aefa09765 notebook: Fix crash when dragging a tab
gtk_gesture_get_last_event can return NULL, so guard against that.
2017-07-19 21:27:11 -04:00
Timm Bäder
c9d421eff3 toolbar: Remove css box rendering 2017-07-19 21:27:11 -04:00
Timm Bäder
2b0bfa5909 actionbar: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
74a51cb5b1 Remove now useless snapshot implementations 2017-07-19 21:27:11 -04:00
Timm Bäder
8761d4d609 widget: Add default snapshot implementation
gtk_widget_snapshot will snapshot the css box, the default snapshot
vfunc now gtk_widget_snapshot_child's all child widgets.
2017-07-19 21:27:11 -04:00
Timm Bäder
ef0ab1fb00 container: Remove snapshot and draw implementations 2017-07-19 21:27:11 -04:00
Timm Bäder
1425bfa95d bbox: Remove css box drawing
Whether we are in expand mode or not shouldn't really make a difference
for rendering anyway.
2017-07-19 21:27:11 -04:00
Timm Bäder
6e7f135f62 image: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
90537a5e04 frame: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
706b0722d4 switch: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
72c611f7b1 flowbox: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
d21e931b64 listbox: Remove css box drawing 2017-07-19 21:27:11 -04:00
Timm Bäder
a9b1c04c3f headerbar: Remove css box drawing 2017-07-19 21:27:10 -04:00
Timm Bäder
442d084a2a widget: Draw focus outline 2017-07-19 21:27:10 -04:00
Timm Bäder
2b5458ccfa progressbar: Remove css box drawing 2017-07-19 21:27:10 -04:00
Timm Bäder
06950bcf8a label: Remove css box drawing 2017-07-19 21:27:10 -04:00
Timm Bäder
5a575c3594 gtkgrid: Remove css box drawing 2017-07-19 21:27:10 -04:00
Timm Bäder
f73616ba47 gizmo: Remove css box drawing 2017-07-19 21:27:10 -04:00
Timm Bäder
7b7e85d618 box: Remove css box drawing 2017-07-19 21:27:10 -04:00
Timm Bäder
4b75b20c34 Widget: Disable css box drawing for GtkWindow
Until we know how we solve that.
2017-07-19 21:27:10 -04:00
Timm Bäder
ca94c680cc button: Remove css box drawing 2017-07-19 21:27:10 -04:00
Timm Bäder
7656bd9bc3 widget: Draw background and border for every widget 2017-07-19 21:27:10 -04:00
Matthias Clasen
6c7e8ecb1f Bump version 2017-07-19 21:18:57 -04:00
Matthias Clasen
29e8a07ddd Avoid compiler warnings
Initialize these variables, so gcc doesn't complain.
2017-07-19 20:45:52 -04:00
Matthias Clasen
de3b244fa1 3.91.1 2017-07-19 15:46:32 -04:00
Matthias Clasen
f0f5c67c9d a11y tests: Update expected results
The license urls in the about dialog changed.
2017-07-19 15:46:32 -04:00
Carlos Garnacho
b151b1ba9e testsuite: Adjust gestures tests to gtk4 event delivery
Events that get to gtk_main_do_event() have the toplevel GdkWindow
as event->any.window. Also, ensure that coordinates fall within
sensible places of the windows, since those might have shadows,
headerbars and whatnot on wayland.
2017-07-19 21:05:19 +02:00
Carlos Garnacho
9de7c9f595 gtkwindow: Free pointer foci on dispose
That means the whole hierarchy is getting destroyed, leaving those
behind incurs not only in a leak, but also on weak refs (and unintended
repick) to happen in the wrong moment.
2017-07-19 18:16:18 +02:00
Carlos Garnacho
4772fc2d42 gtkwindow: Do not leak GtkPointerFocus
gtk_window_add_pointer_focus() increments the refcount, which means
the caller should be dropping its own.
2017-07-19 18:16:18 +02:00
John Ralls
a72c735b74 Fix compile error in imquartz.c due to API change in GtkIMContext. 2017-07-18 18:44:21 -07:00
John Ralls
fb70bfb69b Fix MacOS compiler warnings. 2017-07-18 18:44:21 -07:00
John Ralls
ead480bc39 Copy gtk_clipboard_get_default implementation to gtkclipboard-quartz.c
Fixes bug 784323.
2017-07-18 18:44:21 -07:00
Philip Chimento
187e652adb quartz: Implement gtk_clipboard_get_selection
This function is trivial and can be copied from the X11 implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=772281
2017-07-18 18:44:21 -07:00
Emmanuele Bassi
1b60361b4a meson: Add missing source file
The newly added gtkfilechoosererrorstack.c source needs to be included
in the Meson build as well as the Autotools one.
2017-07-18 22:50:57 +01:00
Piotr Drąg
f28c418ad5 Update POTFILES.in 2017-07-18 22:03:29 +02:00
Timm Bäder
3505e0d6e7 filechooserwidget: Add GtkFileChooserErrorStack
Showing all the different errors and warnings when renaming and creating
files/folders without potentially resizing popovers on every keystroke
requires us to know the size of the error messages beforehand, so pack
all of the possible error messages and warnings in labels and those into
a stack. This way we can also neatly crossfade transition between them.

https://bugzilla.gnome.org/show_bug.cgi?id=775636
2017-07-18 15:11:26 -04:00
Timm Bäder
20d47e2a6c filechooserwidget: Let the rename entry hexpand
This makes a difference with other locals where error messages are
longer than the standard width of entry+spacing+button.

https://bugzilla.gnome.org/show_bug.cgi?id=775636
2017-07-18 15:11:26 -04:00
Iñaki García Etxebarria
3830083213 Add nullable return annotation to gtk_text_mark_get_name
https://bugzilla.gnome.org/show_bug.cgi?id=781936
2017-07-18 15:10:31 -04:00
Iñaki García Etxebarria
59a22b3d7e Add nullable return annotation to gtk_notebook_get_tab_label
https://bugzilla.gnome.org/show_bug.cgi?id=781935
2017-07-18 15:07:49 -04:00
Daniel Aleksandersen
eb3bc251d5 Update the URLs of known licenses to HTTPS
Use HTTPS by default for security/privacy. Avoids slow redirects.

https://bugzilla.gnome.org/show_bug.cgi?id=766517
2017-07-18 14:35:22 -04:00
Arun Raghavan
4b1853b32f gtkapplication: Mark gtk_application_get_active_window() as nullable
https://bugzilla.gnome.org/show_bug.cgi?id=784888
2017-07-18 14:03:59 -04:00
Piotr Drąg
cddce5a023 Update POTFILES.in 2017-07-18 19:43:09 +02:00
Matthias Clasen
d4b1cc3f56 Add gtkfilechoosernativequart.c to meson build
We have two build systems now, for good measure.
2017-07-18 13:35:21 -04:00
Tom Schoonjans
0e7d6bb71e GtkFileChooserNativeWin32: add support for get_filter and set_filter
https://bugzilla.gnome.org/show_bug.cgi?id=784723
2017-07-18 13:30:45 -04:00
Tom Schoonjans
2139b7642b testgtk.c: native file chooser filter changes
Set the filter before showing the dialog
Afterwards, fetch the last active filter and display its name.

https://bugzilla.gnome.org/show_bug.cgi?id=784723
2017-07-18 13:30:44 -04:00
Tom Schoonjans
f10bfcc638 GtkFileChooserNativeQuartz: add support for get_filter and set_filter
https://bugzilla.gnome.org/show_bug.cgi?id=784723
2017-07-18 13:30:44 -04:00
Tom Schoonjans
946166e080 GtkFileChooserNative: documentation updated
https://bugzilla.gnome.org/show_bug.cgi?id=784723
2017-07-18 13:30:44 -04:00
Tom Schoonjans
a4775f8e92 GtkFileChooserNativeQuartz: add support for filters
Includes:
* Simple glob patterns (*.ext, *.*,...)
* MIME types
* pixbuf formats

https://bugzilla.gnome.org/show_bug.cgi?id=784723
2017-07-18 13:30:44 -04:00
Tom Schoonjans
55d139bc46 GtkFileChooserNativeQuartz: add partial support for extra widget
When the extra widget is a GtkLabel, then its text will be displayed as
a message in the NSSavePanel or NSOpenPanel

https://bugzilla.gnome.org/show_bug.cgi?id=784723
2017-07-18 13:30:44 -04:00
Tom Schoonjans
44e90c4dd3 GtkFileChooserNativeQuartz: add support for GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
Which is via NSOpenPanel, not NSSavePanel...

https://bugzilla.gnome.org/show_bug.cgi?id=784723
2017-07-18 13:30:44 -04:00
Tom Schoonjans
ff2c5e3820 GtkFilechooserNative: add macOS support
Based on the Win32 implementation, as well as the macOS file chooser
from
https://github.com/GNOME/gedit/blob/master/gedit/gedit-file-chooser-dialog-osx.[ch]
Not fully tested yet, but working properly so far.
TODO: filter support, extra widget (label), documentation...

https://bugzilla.gnome.org/show_bug.cgi?id=784723
2017-07-18 13:30:44 -04:00
Emmanuele Bassi
a9a25e2e84 Drop gtk-doc trigraphs on GtkTextView enumeration
The glib-mkenums tool does not recognise these gtk-doc annotations.
2017-07-16 12:33:24 +01:00
Jordi Mas
34de998c38 Fixes to Catalan translation 2017-07-15 09:37:29 +02:00
Bastien Nocera
eb338feff9 image: Warn when attempting to load pixdata GResources
GdkPixdata is deprecated. Warn when the application tries to load
pixdata embedded resources. The application developer will have to
remove the "to-pixdata" keyword from the GResource definition file.

https://bugzilla.gnome.org/show_bug.cgi?id=781583
2017-07-12 14:54:02 +02:00
Emmanuele Bassi
ce861bc430 Use newer glib-genmarshal to simplify build rules
The glib-genmarshal tool from GLib 2.54 added various command line
arguments that allow us to remove a bunch of as hoc manipulations of
the generated marshaller source files. The marshal generator tool can
now include an header in the source, and undef the G_ENABLE_DEBUG
pre-processor symbol for us. It can also generate the prototypes of the
marshallers in the C source, and avoid a 'missing-prototypes' compiler
warning.
2017-07-11 11:47:38 +01:00
Yosef Or Boczko
013392b530 Updated Hebrew translation 2017-07-10 12:52:20 +03:00
Yosef Or Boczko
676a0123f6 Updated Hebrew translation 2017-07-10 12:50:11 +03:00
Matthias Clasen
d9e38198c7 Avoid a race in the print portal
Same as the previous commit; use the new predictable request
object path to connect to the Response signal early.
2017-07-07 12:03:55 -04:00
Matthias Clasen
388078ba88 Avoid a race in the file chooser portal
Use the new predictable request object path and connect
to the Response signal before issuing the portal call.
This avoids a race that is pretty unlikely to hit in
the filechooser case.
2017-07-07 12:03:55 -04:00
Daniel Boles
29ff3c072c label: Remove extra quote in code example 2017-07-07 08:15:05 +01:00
Daniel Boles
d04baeba37 GdkRGBA: Fix misspelt parameter names in docs 2017-07-06 14:03:08 +01:00
Daniel Boles
ede0f25d3b GdkRGBA: Fix typo precentage => percentage 2017-07-06 14:00:35 +01:00
Jason Gerecke
07f4139004 x11: Assign GDK_SOURCE_TABLET_PAD when necessary
Wacom tablets often have a "pad" device which houses multiple buttons. At
present, these devices are incorrectly marked as GDK_SOURCE_PEN which can
cause problems for some software.

https://bugzilla.gnome.org/show_bug.cgi?id=782040
2017-06-30 20:46:01 +02:00
Daniel Boles
d7b175a3fb css-overview: Don’t document deleted pseudoclasses
Commit b52966a318 stopped the parser from
handling various deprecated pseudoclasses, which were aliases of others,
but it did not update the documentation to reflect that they were gone.
2017-06-22 23:56:44 +01:00
Daniel Boles
6eb58fa67b css-overview: Fix typo “{with=>which} is disabled” 2017-06-22 20:40:06 +01:00
Baurzhan Muftakhidinov
303960eec6 Update Kazakh translation 2017-06-22 14:32:27 +00:00
Marek Cernocky
5da227664f Updated Czech translation 2017-06-20 14:33:39 +02:00
Daniel Mustieles
fd9beb2292 Updated Spanish translation 2017-06-19 17:36:06 +02:00
Carlos Garnacho
6781d2109d gdk: Set vid/pid on wayland tablets
This was missed so far... Use %.4x format, in order to behave just
the same than X11.
2017-06-16 19:38:04 +02:00
Will Thompson
176bc32950 headerbar: fix "widow" typo in docs 2017-06-15 15:53:18 +01:00
Kjartan Maraas
2e79d88377 Updated Norwegian bokmål translation 2017-06-14 07:48:33 +02:00
Debarshi Ray
2b48acbdf8 GtkActionHelper: Remove unnecessary NULL check
This NULL check has existed since commit 652f16dd98, when
GtkActionHelper was first introduced, but so has the assertion at the
top to ensure the validity of 'widget'.

https://bugzilla.gnome.org/show_bug.cgi?id=783587
2017-06-13 21:59:36 +02:00
Debarshi Ray
33b3985440 GtkActionHelper: Allow a NULL action-name to unset the previous GAction
https://bugzilla.gnome.org/show_bug.cgi?id=783587
2017-06-13 21:59:36 +02:00
Matthias Clasen
1e47b9ea67 file chooser: Don't pass NULL as title to the portal
This causes critical warnings.
2017-06-13 13:11:59 -04:00
Chun-wei Fan
d15712fc9b gtk/Makefile.am: Fix 'make dist'
We don't have gtkcenterboxprivate.h anymore, as it became a public
header...
2017-06-12 18:14:57 +08:00
Piotr Drąg
3f39dc20ae Update POTFILES.in 2017-06-11 16:57:47 +02:00
Matthias Clasen
77f34d01ad label: Provide a baseline in all cases
The label measuring code was only determining baselines
when the label was set to wrap, which does not seem right.
Non-wrapping labels have a meaningful baseline as well,
report it back.
2017-06-11 10:35:06 -04:00
Matthias Clasen
114f23cec7 center box: Take baseline-position fully into account
We need to take baseline-position into account during measure
as well.
2017-06-10 14:45:10 -04:00
Fabio Tomat
67bdaf8007 Update Friulian translation 2017-06-10 16:07:52 +00:00
Fabio Tomat
0e6735b83b Update Friulian translation 2017-06-10 13:23:50 +00:00
Matthias Clasen
f135b2527f center box: complete the baseline support
When there is no externally allocated baseline, we should
do the same thing that GtkBox does, and determine one from
the children that want baseline alignment.

This commit adds a GtkCenterBox::baseline-position property
with setters and getters.
2017-06-10 09:14:16 -04:00
Matthias Clasen
8316ec85f5 center box: Fix size allocation
This missing pair of parens was causing expanding children
to overlap.
2017-06-10 07:53:06 -04:00
Matthias Clasen
389535c572 center box: Drop a useless line
This is just a leftover that has no effect whatsoever.
2017-06-10 07:53:06 -04:00
Fabio Tomat
d890b93d2c Update Friulian translation 2017-06-10 09:58:18 +00:00
Fabio Tomat
572b90cbdd Update Friulian translation 2017-06-10 09:43:40 +00:00
Fabio Tomat
5f4c3077f0 Update Friulian translation 2017-06-09 07:51:06 +00:00
Fabio Tomat
d08781e205 Update Friulian translation 2017-06-08 22:39:28 +00:00
Robert Ancell
7b8ea9af55 icon-theme: Show filename attempted when icon fails to load 2017-06-09 09:24:02 +12:00
Robert Ancell
82a4e830a3 iconhelper: Show error if fail to load placeholder icon 2017-06-09 09:24:02 +12:00
Matthias Clasen
86ac88e0be Add some translator comments
These were requested in
https://bugzilla.gnome.org/show_bug.cgi?id=783552
2017-06-08 15:10:32 -04:00
Fabio Tomat
6decd3bcfa Update Friulian translation 2017-06-08 14:48:47 +00:00
Fabio Tomat
d901787577 Update Friulian translation 2017-06-08 11:44:09 +00:00
Felipe Borges
322ba75e45 printunixdialog: Update collate icon as entry changes
By relying on GtkSpinButton default activation behavior, the
collate icon doesn't get updated when a new number is typed
in the copies spin button.

https://bugzilla.gnome.org/show_bug.cgi?id=759308
2017-06-07 14:28:26 +02:00
Fabio Tomat
d84b63df02 Update Friulian translation 2017-06-07 10:35:28 +00:00
Fabio Tomat
62bfe20928 Update Friulian translation 2017-06-06 22:42:06 +00:00
Kjell Ahlstedt
1b697fd7c2 widget: Fix gtk_widget_insert_after/before() docs
Add beginning double asterisks and function names. Correct the parameter
names (next/previous_child -> next/previous_sibling). Make the documentation
of the two functions more similar.

https://bugzilla.gnome.org/show_bug.cgi?id=783445
2017-06-06 14:57:52 +02:00
Matthias Clasen
bffbfde10a Install gtkcenterbox.h 2017-06-05 21:09:30 -04:00
Chun-wei Fan
ac5f7d028f modules/input/gtkimcontextime.c: Move to set_client_widget
The imcontext internals have been changed to use set_client_widget
instead of set_client_window in order to remove API dependency on
GdkWindow.  Update the Windows IME support so that the code will
continue to build and work.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-06-06 00:17:40 +08:00
Chun-wei Fan
77e1d0c0c9 gdk/gdkvulkancontext.c: Fix 32-bit Windows builds
The callback function that is used by VkDebugReportCallbackCreateInfoEXT
is decorated with VKAPI_CALL (which is __stdcall on Windows).  This is
not detected on x64 Windows as __stdcall is not really meaningful on x64
Windows, and VKAPI_CALL expands to nothing on non-Windows.

As __stdcall functions are treated differently on 32-bit Windows, the
32-bit compiler does require that the function be declared as __stdcall
so that things will compile, link and run properly.

https://bugzilla.gnome.org/show_bug.cgi?id-773299
2017-06-06 00:06:35 +08:00
Fabio Tomat
85bba774ea Update Friulian translation 2017-06-05 13:04:26 +00:00
Nelson Benítez León
0973ac416a gtktextdisplay: remove unused code
In render_para() function, which is called for every text line that
needs to be drawn.

https://bugzilla.gnome.org/show_bug.cgi?id=783397
2017-06-05 17:47:55 +05:00
Matthias Clasen
5e69fe17ae center box: Add more documentation 2017-06-04 21:48:41 -04:00
Matthias Clasen
23f870d0cd Add a simple center box test
Just a simple use of this widget.
2017-06-04 21:40:20 -04:00
Matthias Clasen
c35604cfcb center box: add baseline support
This is copied more or less directly from GtkBoxGadget.
2017-06-04 21:40:20 -04:00
Matthias Clasen
f8737a6d8a center box : implement GtkOrientable
This is generally expected of containers where it makes sense.
2017-06-04 21:40:20 -04:00
Matthias Clasen
141e053e87 center box: support height-for-width
Implement request modes fully.
2017-06-04 21:21:00 -04:00
Matthias Clasen
42921750ff center box: Support expand property
We expand the center child first, but only as far
as we can keep it centered.
2017-06-04 21:21:00 -04:00
Matthias Clasen
60cd5b9b4c center box: implement GtkBuildable
Make it possible to fill the slots by using the
type attribute on child nodes. This is necessary
since GtkCenterBox does not derive from GtkContainer.
2017-06-04 21:21:00 -04:00
Matthias Clasen
b4cb05ace9 center box: implement natural size and rtl flipping
We prefer to give the center widget its natural size,
and we center it as long as possible.
2017-06-04 21:20:57 -04:00
Matthias Clasen
f8059f3040 center box: handle missing start or end widgets
Any slot may be unfilled, not just the center one.
2017-06-04 21:20:33 -04:00
Matthias Clasen
e936a35d66 Make GtkCenterBox public
It provides functionality that GtkBox used to have,
and is generally useful.
2017-06-04 21:20:27 -04:00
Fabio Tomat
e32f15be4f Update Friulian translation 2017-06-04 12:10:53 +00:00
Matthias Clasen
3aef221cc3 dist icon.list
Otherwise things will not work in a release tarball.
2017-06-02 22:30:45 -04:00
Matthias Clasen
ca95adbb4c icon-browser: Add a few icons
These have appeared recently.
2017-06-02 22:30:36 -04:00
Matthias Clasen
cc9feb5a07 icon browser: Make icons a bit larger
Use 48x48 in the list, instead of 32x32. We have the space.
2017-06-02 22:30:05 -04:00
Matthias Clasen
04fbef7f1e icon browser: Add a 'copy to clipboard' button
This makes it more obvious how to use the icon.
2017-06-02 22:29:21 -04:00
Matthias Clasen
7a3984ee62 icon browser: put icons as data
Instead of hardcoding all the add_icon calls,
read the icon list from a keyfile, for easier
extensibility.
2017-06-02 22:29:14 -04:00
Dan Torop
a23ad61a25 wayland: selectively cancel key repeat on key release
Under Wayland, when multiple keys are pressed and the user releases a
key, key repeat should continue unless the key released is the one
currently repeating.

In the case of:

- key1 press
- key1 repeat
- key2 press -> key1 repeat stopped
- key2 repeat
- key2 release

The behavior should be to cancel keyboard repeat, though key1 is still
held down. This is consistent with prior X11/XWayland behavior.

The following also must work:

- key1 press
- key2 press
- key2 release
- key2 press
- key1 release
- key2 should continue to repeat

The fix for bug #778019 should continue to work:

- key1 press
- key1 repeat
- key2 press -> key1 repeat stopped
- key1 release
- key2 should repeat

The choice to change the counter nkeys to the flag repeat_active
helps to solve the second test case.

https://bugzilla.gnome.org/show_bug.cgi?id=781285
2017-06-02 19:13:03 +02:00
Olivier Fourdan
24f9d29093 wayland: fix xdg_surface test in move/resize drag
begin_resize_drag() and begin_move_drag() check for xdg_surface being
not null, but those apply on xdg_toplevel so they should check for
xdg_toplevel being non-null instead.

https://bugzilla.gnome.org/show_bug.cgi?id=781945
2017-06-02 16:19:00 +02:00
Olivier Fourdan
08aade4b7c wayland: check parent surface for subsurface
When an event is received while a tooltip is showing, the GtkTooltip's
event handling code can end up calling gdk_window_set_transient_for()
from gtk_tooltip_set_last_window().

The Wayland GDK backend will try to automatically create a subsurface
in gdk_wayland_window_set_transient_for() but if the parent surface is
gone meanwhile, this will will cause a crash when trying to create a
subsurface from a parent with a null surface.

Checking for the parent is not sufficient, we ought to check for the
parent surface as well to avoid the crash.

https://bugzilla.gnome.org/show_bug.cgi?id=782283
2017-06-02 15:43:06 +02:00
Olivier Fourdan
a84fc38784 wayland: Do not map toplevel utility as popup
Applications can specify the type hint as utility even on toplevel
windows.

When that toplevel is also marked as a transient for another window,
GDK Wayland backend would translate that as an xdg_popup which is not
appropriate.

While utility temp windows should remain mapped as subsurfaces (such as
the ones used by treeviews), regular windows should not translate as
neither a subsurface nor an xdg_popup.

https://bugzilla.gnome.org/show_bug.cgi?id=781945
2017-06-02 15:15:45 +02:00
Christoph Reiter
a1dc9e4660 gtkfilechoosernativewin32: Fix support for non-ASCII paths
The code used SIGDN_URL to get an URL for the selected item, but Windows URLs
are a mix of unicode and percent encoded characters in the locale encoding
and not something GFile can understand. The result is a garbage file
path.

Instead use SIGDN_FILESYSPATH to get a real file path if available.

Also checks the return value of g_utf16_to_utf8 because file paths on
Windows can contain lone surrogates which would make the conversion fail.

https://bugzilla.gnome.org/show_bug.cgi?id=783347
2017-06-02 13:22:36 +02:00
Emmanuele Bassi
ee408d5f75 meson: Rebuild the SCSS-based themes if sassc is available
If we have sassc installed then we want to rebuild the themes that use
SCSS whenever one of their dependencies change.
2017-06-01 14:56:32 +01:00
Daniel Boles
6f71c543e8 Adwaita: Add missing rule for fullscreen headerbar
Another selector forces round corners for headerbars in a stack, and it
has higher priority than the selector covering the non-stack case from
commit 796f9b5bfb. Totem’s MainToolbar
happens to be in a stack, and we should maintain symmetry here anyway.

So, as window classes .maximized and .tiled are excluded from this other
selector, the newly handled .fullscreen case must be excluded here also.

https://bugzilla.gnome.org/show_bug.cgi?id=770513
2017-05-31 19:02:58 +01:00
Daniel Boles
513b56ce0f HighContrast: Regenerate CSS files with sassc 2017-05-31 18:47:57 +01:00
Daniel Boles
dcdd31e6f3 HighContrast: Update parse-sass.sh; remove Gemfile
Make parse-sass.sh use sassc instead of the old Ruby method.
2017-05-31 18:46:57 +01:00
Daniel Boles
796f9b5bfb themes: Square corners on fullscreen win headerbar
Totem uses a fullscreen window with a headerbar at the top, and without
this change, that headerbar has rounded corners, which look different
from a maximised window and let video content show through beneath.

https://bugzilla.gnome.org/show_bug.cgi?id=770513
2017-05-31 08:16:51 +01:00
Daniel Boles
fc96fce462 HighContrast: Restore files to regenerate CSS
I think parse-sass.sh needs updated to match what Adwaita does now, but
for now, this is sufficient to let us regenerate HighContrast again.
2017-05-31 08:16:35 +01:00
Rico Tzschichholz
a4e80efee7 gdk/gtk: Fix Since tags for 3.92 symbols
In addition to 406db15066
2017-05-30 15:10:25 +02:00
Debarshi Ray
385a46b5c0 wayland: Don't warn if the display is lost, skip exit handlers
There is no need to have every application log a warning when the
Wayland display server goes away, and we are using _exit instead of
exit elsewhere.

This is also what the X11 backend does (see gdk_x_io_error).

https://bugzilla.gnome.org/show_bug.cgi?id=745289
2017-05-30 09:15:57 +02:00
Daniel Boles
406db15066 gdk/gtk: Fix more AVAILABLE_IN annotations to 3_92 2017-05-28 14:20:19 +01:00
Daniel Boles
b6e13847d5 gdkevents.h: Fix version annotations on new funcs 2017-05-27 15:25:35 +01:00
Carlos Garnacho
b894c35008 gtk: Make GtkPointerFocus refcounted
In order to make it really sure the GtkPointerFocus is valid while being
removed from a GtkWindow.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
690eb8ede6 gtkwidget: Lookup the event target when cancelling GdkEventSequences
We were getting the toplevel most often here, so the gestures weren't
properly cleaned up.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
0d7fe2ec09 gtk: Check implicit grab status before sending crossing events
As we now refrain from sending the crossing events if there's an
implicit grab, those events must be sent on button release when
the implicit grab is broken.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
f5fde52d61 gtk: Refactor crossing event synthesization into a separate function
This is now called outside update_pointer_focus_state() with the events
that actually matter (i.e. pointer ones, so no sequence == NULL checks)
2017-05-25 16:25:59 +02:00
Carlos Garnacho
e892e20841 gtk: Rework pointer cursor selection
Check the grab widget (both explicit and implicit) and check for a cursor
from the target widget up to this grab widget. If the target widget is
outside the grab widget, only the grab wigdet's cursor will be checked.

This also means that we have to ensure the cursor is updated on button
releases, as an implicit grab being deactivated must trigger a cursor
lookup from the target widget.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
ace686dba9 gtktreeview: Fix invalidation coordinates
We must account for the widget allocation now that there is no view_window.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
9f2e7edc3b gtkiconview: Fix invalidation coordinates
We must account for the widget allocation now that there is no view_window.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
f8bc56dd55 gtkgesture: Consume button release/touch end events if gesture was claimed
In these situations we must perform the "is it claimed" check before removing
the (touch)point, as doing so when the gesture is empty will be too late if
the gesture actually claimed input.
2017-05-25 16:25:59 +02:00
Timm Bäder
8371b6b857 main: Automatically (un)set PRELIGHT state on widgets 2017-05-25 16:25:59 +02:00
Timm Bäder
f6e0850ff7 Gesture: Remove window property completely
These are just leftovers, it's already gone from public API and the
_{set,get}_property implementations.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
b62b33c1d9 gtk: Fix event delivery on GTK_PHASE_TARGET controllers
Look up the event target, not the "event widget" which is based on the
event window, and thus points to the toplevel.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
3a15c8241e gdk: Remove synthetic crossing event emission due to geometry changes
This just applied to child windows, but now GDK should just take care of
toplevels, which shall get crossing events from the windowing when the right
conditions apply.

Removing this code fixes confused crossing state in widgets and messed up
window_under_pointer tracking (Which now is meant to be toplevels) when any
of the remaining child GdkWindows trigger these crossing events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
61dd925b32 gdk: Ensure to implicitly deactivate grabs when an impl window is hidden
For some reason this wasn't done on windows with an impl, but it totally should.
Probably hidden by grabs in menus and somesuch being done on a child window.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
ee894903c7 gtkpopover: Use event coordinates right away to detect clicks outside.
There's no need anymore to translate coordinates, the event already contains
popover-relative ones.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
47e505781e gtkwindow: Implement ::pick to extend picking to popovers.
This makes interaction possible with popovers again.
2017-05-25 16:25:59 +02:00
Timm Bäder
eef33d34d4 widget: Make sure we're not calling _get_parent on NULL
We already issue the first _get_parent call before even entering that
loop, so make sure `parent` is not NULL. This happens when event_widget
is already a toplevel, and this change fixes row-dragging in treeviews.
2017-05-25 16:25:59 +02:00
Timm Bäder
34fdc51392 Constify GdkEvent parameters in gtk_get_event_widget and _event_target 2017-05-25 16:25:59 +02:00
Timm Bäder
19174d8d94 flowbox: Fix motion notify handler
Same story as in GtkListBox.
2017-05-25 16:25:59 +02:00
Timm Bäder
2ad2ecad44 flowbox: Fix child item selection 2017-05-25 16:25:59 +02:00
Timm Bäder
dd836fff35 flowbox: Fix child item allocation 2017-05-25 16:25:59 +02:00
Timm Bäder
030b96cb49 scrolledwindow: Avoid critical when removing source
Make sure indicator->conceil_timer is actually set before trying to
remove it.
2017-05-25 16:25:59 +02:00
Timm Bäder
084b356d1e testlist: Fix custom css 2017-05-25 16:25:59 +02:00
Timm Bäder
e54d8a6114 scrolledwindow: Calculate indicator coords relative to scrolledwindow
The event coordinates we get are relative to the scrolledwindow
coordinates.
2017-05-25 16:25:59 +02:00
Timm Bäder
782477188a scrolledwindow: Stop checking event->detail in leave-notify
This is obsolete and resulted in sometimes stuck .hovering style classes
on scrollbars.
2017-05-25 16:25:59 +02:00
Timm Bäder
5ae9ca79e4 linkbutton: Fix hand cursor when hovering
Use the new gtk_widget_set_cursor instead of setting it on the
GdkWindow.
2017-05-25 16:25:59 +02:00
Timm Bäder
3e44a3920a listbox: Fix row hovering
Drop the in_widget flag since motion events the listbox receives are
always inside the listbox. Also drop the manual coordinate translation
code using GdkWindows.
2017-05-25 16:25:59 +02:00
Timm Bäder
a0016758a8 widget: Copy event in gtk_widget_event and _captured_event
To ensure that we never translate the coordinates to widget coordinates
twice.
2017-05-25 16:25:59 +02:00
Timm Bäder
c83b8d17ff meson: Add gtkpointerfocus.c to sources 2017-05-25 16:25:59 +02:00
Timm Bäder
f5e8d7a4e2 window: Hide titlebox when undecorated
We don't draw or size-allocate the titlebar when the window is
fullscreen or undecorated, so reflect this by setting it to
!child_visible. This can happen when changing the value of the decorated
property while the window is shown.
2017-05-25 16:25:59 +02:00
Timm Bäder
81cdc8713c combobox: Only react to UP/DOWN scroll events
The old else block scrolled down for everything except GDK_SCROLL_UP
scroll events, e.g. for smooth scroll events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
40ab7e1c95 gtkmenu*: Simplify event handling
Instead of delegating on the parent shell of a menu item/shell on a variety
of situations, Simplify event handling so:
1) Menu item selection is handled entirely on GtkMenuItem through crossing
   events.
2) The deepmost menu shell handles clicks inside and outside of it.

This avoids the rather hard to follow gtk_widget_event() calls going on all
throughout the handling of crossing and button events, and makes menus work
again.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
33c5f3c193 gtkmain: Add API to get the target of a GdkEvent
This can be used on grabbing situations to determine the target of
the event. This mainly matters for GtkMenu.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
da56fae5df gtkmain: Ensure there is a current event handling crossing events
The "current event" will be the real one that is triggering the crossing
notifications, not the synthesized events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
03a63204c1 gtkmain: Ignore GDK_CROSSING_GRAB/UNGRAB crossing events for picking purposes
Especially with owner_events=TRUE, this doesn't mean anything for picking, as
events will be reported as usual inside the application.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
65de0ebea3 gdk: Make it possible to attach user data to GdkEvents
As event->any.window is the toplevel, this is not useful anymore to
determine the window/widget that is the target for this event. Add
helper functions to attach user data to GdkEvents so the target
widget can be stored on the gtk/ side.

These calls should be made private with the rest of GdkEvent related
API.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
5483b9db2d gtkmain: Avoid doubly propagation of enter/leave events from windowing
Crossing events are already generated when picking the new pointer position,
so we don't have to propagate the windowing crossing event as-is.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
f9924b7e3e gtknotebook: Drop drag_window
It is not necessary anymore to implement tab DnD, since we just render
it on top.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
2c7102b557 gtkiconview: Remove view GdkWindow
It's not necessary anymore for clipping nor receiving events. So just
remove it. The event handling code was expecting events in bin_window
coordinates, and have been updated to relying on widget-relative coords.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
2f6c4ef68d gtkviewport: Remove view window
It is not really necessary for clipping nor receiving events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
547370651b gtkrevealer: Remove view window
It's not necessary anymore for either clipping or event delivery
2017-05-25 16:25:59 +02:00
Carlos Garnacho
94094611bc gtkpaned: Remove per-child windows
Those are no longer necessary for clipping nor receiving events, so just
remove them.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
ae43ca7e49 gtklayout: Remove widget window
It can be entirely replaced by a clip allocation on the widget.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
fe40abc636 gtkoverlay: Remove per-child windows
They are no longer necessary to do child positioning nor input
handling.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
e2c38ddc22 gtkwidget: Add private set_pass_through() call
We could eventually support pointer-event in CSS here, in the mean
time add this call to replace the GdkWindow API.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
6c47938b00 gtktreeview: Remove header window
It is no longer necessary to overlay the column headers above the
treeview.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
cfd5a76ece gtktreeview: Remove widget window
It can be entirely replaced by setting a proper clip rectangle.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
ea4ee876ec gtkstack: Remove view window
This widget already sets a clip area, so the view window can be safely
removed.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
e342f90a99 gtktoolpalette: Remove child window
This is not necessary for rendering anymore, as the clip is set by the
parent scrolledwindow. It's not necessary either for receiving input
events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
57d7c34d03 gtkflowbox: Remove child window
This widget correctly sets up a clip, so it is not necessary neither
for rendering nor for receiving input events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
a595f92b7b gtkwidget: Visually update cursors inside widget when changing cursor 2017-05-25 16:25:59 +02:00
Carlos Garnacho
fa04bf6238 gtkmain: Use window-internal API to update pointer cursors 2017-05-25 16:25:59 +02:00
Carlos Garnacho
599344d428 gtkwindow: Add private API to update pointer cursors 2017-05-25 16:25:59 +02:00
Carlos Garnacho
87c7ca910c gtkscrolledwindows: Remove child windows
Both for the view (compensated by widget clip) and the scrollbar
indicators (just not needed anymore).
2017-05-25 16:25:59 +02:00
Carlos Garnacho
8731ca6ca5 gtkexpander: Remove event window
Detect presses/releases inside the label area instead.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
1858f310aa gtkwindow: Implement window resizing sans-GdkWindow
We can just replace window comparisons with coordinate matching, the
cursor corresponding to edges is now set in a capture-phase motion
handler, as cursors aren't set on GdkWindows anymore.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
d9d0c56eb7 gtktoolitem: Remove gtk_tool_item_set_use_drag_window()
This API call is not necessary anymore, since it's no longer necessary
to receive events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
072a13d0b7 gtkswitch: Remove event window
It's not necessary anymore to receive input events. The pan gesture has
been set on the capture phase as the child widgets may capture during
bubbling.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
ef1e900a53 gtkmenuitem: Remove input window
It's not necessary anymore to receive events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
ee13d44622 gtkglarea: Remove input window
It's not necessary to receive events anymore.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
bee6148399 gtkseparatortoolitem: Remove event window
It's not necessary. It wasn't either before, as this widget handles no
events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
de3e20107a gtkcolorswatch: Remove input window
It's not necessary to receive events anymore.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
8402174d6b gtkcolorplane: Remove event window
It is not necessary anymore to receive events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
c14e6a5119 gtkrange: Remove event window
This is not necessary anymore to receive input events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
28b1c9cc3d gtkpathbar: Remove event window
This is not necessary anymore to receive scroll events.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
b7e6bb2241 gtktoolbar: Remove input window
This is not necessary to receive events anymore.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
d6023e9d45 label: Remove selection window
It's no longer needed to receive events while the label is selectable.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
3dd8a4191a gtknotebook: Remove event window on top of tabs
No longer needed.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
95bf1379c0 gtkwindow: Ignore implicit grabs going away if there is no focus
There should be no circumstances where an implicit grab is requested but
no focus exists, there's however circumstances (like windowing grabs taking
input to a different window) where we might get implicit grabs being undone
when then new window didn't create a focus for the pointer itself.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
b7fee9f9d2 gtkwindow: Revoke implicit grabs when activating an explicit one
Only if they fall outside the grab widget, in that case the widget holding
the implicit grab won't be receiving events anymore, so we can just undo
it.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
eaa17b2548 gtkbutton: Make windowless
It is no longer necessary to receive events, so it's relatively straightforward
now to drop.
2017-05-25 16:25:59 +02:00
Carlos Garnacho
a72404dd5a gtk: Mass delete all GtkWidget event mask API
We now rely on toplevels receiving and forwarding all the events
the windowing should be able to handle. Event masks are no longer a
way to determine whether an event is deliverable ot a widget.

Events will always be delivered in the three captured/target/bubbled
phases, widgets can now just attach GtkEventControllers and let those
handle the events.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
ef4f0e5336 gtkwidget: Make gtk_widget_event() Accept pointing events in root coordinates
This function will, at the last minute, ensure the event contains the right
widget-relative coordinates for the widget the event is being emitted to.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
02932bc406 gtkgesture: Drop GdkWindow checks
Those are now needless and wrong, as we get guarantees that handled
events will contain widget-relative coordinates. A side effect is
that these events are very possibly not explicitly sent to the
GdkWindow that implementations expect, any extra checks performed
through gtk_gesture_set_window() will be wrong, so the function has
been dropped entirely.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
2c9678c38f gtkexpander: Drop usage of gtk_gesture_set_window()
It's now meaningless since the gesture will receive the event despite
the input only window.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
f5e02f3a2a gtkcolorplane: Drop usage of gtk_gesture_set_window()
It's now meaningless since the widget will receive the event despite
the input window.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
99e200aa98 gtknotebook: Fix coordinate translation to happen on widget-relative coordinates
This makes notebooks happy again after changing event coordinates to always come in
the widget coordinate system.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
b01a9a6440 gtktextview: Drop GdkWindow checks on events
These are now wrong and prevent the code from running correctly.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
b20f04d18d gtktreeview: Drop gtk_gesture_set_window() API
It is now meaningless and wrong, since GdkWindows aren't used anymore
to determine the event target.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
ca07c11172 gtktextview: Set "text" pointer cursor
This is no longer set through the Gdkwindow, so use private GtkWidget
API.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
322ee63e0c gtkentry: Remove text_area window
And refurbish cursor management to be set on the GtkWidget. The
input window is not needed anymore to receive events either.

This is no longer set through the GdkWindow, so use the private
GtkWidget API.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
7c16bb93b5 gtkwidget: Add private cursor setter/getter
This should be eventually replaced by CSS cursors, but at the moment
it must be handled on the gtk/ side.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
d39afa6011 imcontext: Remove API dependency on GdkWindow
There is now a set_client_widget() to hint the IM about positioning
and whatnot.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
5836beee78 gtkbutton: Handle crossing events without the event window
The event shall no longer be "directed" to the event window, but the
widget. Getting a enter/leave event is enough now to know whether the
pointer is inside or outside the widget.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
23d2126729 gtkpointerfocus: Add methods to handle implicit grabs on widgets
Just a basic setter/getter, plus a method to obtain the right logical target
in the presence or absence of these.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
3dfab962fa gtk: Implement per-focus implicit grabs
Unlike GTK+ grabs which are global to all/one device, the implicit grab
is per focus, which means each may have implicit grabs on different or
the same widget.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
79e267a330 gtk: Implement cursor updates
As we don't obey GdkWindow cursors anymore, someone must set those.
Use the private Gtkwidget API at the moment.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
8f24df1c19 gtk: Update GtkPointerFocus targets on mapping/sensitivity changes
Those are situations that must cause foci on these widgets to repick
themselves.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
f57f48d61f gdkwindow: Drop csw-side event translation
Now that gtk_main_do_event() is able to handle pointing events in toplevel
coordinates, forward all of these as is. Just minimal handling is still done
on the gdk side for GDK grab accounting, and toplevel tracking for each
pointer.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
e25fcf983a gtk: Handle events with coordinates in toplevel-relative ones
Implement target finding per-pointer/touchpoint through GtkPointerFocus and
_gtk_toplevel_pick(). Focus changes are handled through the emission of
crossing events between the old target and the new one.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
17aa0ca76e gtkwindow: Add management functions for GtkPointerFocus instances
Each toplevel will keep its own tracking of the current ongoing foci,
add the plumbing that will allow to create/update/remove those as they
come and go.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
ba92dceab2 gtk: Introduce GtkPointerFocus
These objects (tied to a toplevel) track the focus of a pointer/touchpoint.
The info in these basically consists of current toplevel coordinates and the
current target widget.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
f50875f8d0 gtkwidget: Expose gtk_widget_common_ancestor()
This function will be useful in other places, such as determining the
widgets that must receive crossing events after pointer picking points
to another widget.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
799428aaea gdk: Add gdk_event_set_coords() method
A helper function basically for gtk+, so coordinates can be translated
in place depending on the widget it's being delivered to.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
53c297436d gtk: Add private _gtk_toplevel_pick() method
This function returns both the widget at the given toplevel coordinates,
and the translated x/y in widget relative coordinates.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
9c97bf0c02 GtkWidget: Add ::pick vmethod
The default implementation iterates through all children, so should suffice
for most widgets.
2017-05-25 16:25:58 +02:00
Carlos Garnacho
fee289cd06 gdk: Add gdk_rectangle_contains_point() call
A little helper function for a somewhat common operation.
2017-05-25 16:25:58 +02:00
Debarshi Ray
28f8a27d65 wayland: Don't abort when preparing the source if connection is lost
Aborting the application makes it look like an application bug, when
it is the expected thing to do when the Wayland display server goes
way. eg., when the user logs out. The log level is also demoted to
avoid a storm of warnings in the log from all applications whenever
this happens.

This is also what the X11 backend does (see gdk_x_io_error).

https://bugzilla.gnome.org/show_bug.cgi?id=783047
2017-05-25 11:49:37 +02:00
Matthias Clasen
853cba6b1a 3.91.0 2017-05-22 21:42:18 -04:00
Matthias Clasen
ca098bb42a Update a11y test output 2017-05-22 21:42:18 -04:00
Matthias Clasen
c05b317b1e Fix the docs build
gtk-doc behavior changed, it seems, and these options now
cause the build to break.
2017-05-22 17:35:58 -04:00
Robert Ancell
4047a2f53e docs: Fix copy-paste error in gtk_file_chooser_get_extra_widget() doc comment 2017-05-20 13:07:05 +12:00
Lapo Calamandrei
251fe5e664 Adwaita: Avoid accindental border on last treeview header
The :last-child selector supposed to reset the border was
overridden by the :hover selector. This is fixed by moving the
:last-child selector after the overriding one.
Thanks to Sebastian Keller for spotting.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=779078.
2017-05-17 18:14:21 +02:00
Robert Ancell
9981f46e0b EntryBuffer: Don't generate changed events when input is truncated 2017-05-17 09:04:21 +12:00
Ignacio Casal Quinteiro
ed6aa0e6e0 meson: remove duplicated G_ENABLE_DEBUG 2017-05-16 22:50:00 +02:00
Daniel Boles
ce1098598d Frame: Don’t advise adding .flat class in code
https://bugzilla.gnome.org/show_bug.cgi?id=779653#c33
and this is closer to what gtk-3-22 says anyway.
2017-05-14 11:53:25 +01:00
Daniel Boles
322d9ca550 widget-factory: Use :relief=none, not class .flat
The rest of the ui file follows that convention.
2017-05-13 21:50:22 +01:00
Daniel Boles
8ddadecb57 gtk-demo: ui: Replace leftover uses of Box:expand
commit 5729ea7744 skipped these
2017-05-13 18:39:28 +01:00
Daniel Boles
9e6b59c5f4 demo/toolpalette: Restore ToolItemGroup child prop
…erties clobbered by commit c92b7d4224.
That and its counterpart were for removing :expand and :fill child props
from GtkBox, but they ended up catching these for GtkToolItemGroup too.

While GtkToolItemGroup still has these, we may as well keep demoing them
2017-05-13 18:39:13 +01:00
Lapo Calamandrei
5e8463842a Adwaita: regenerate the css 2017-05-11 15:26:48 +02:00
Lapo Calamandrei
3a1946b076 Adwaita: restyle entry-tag
Fix the sizing and spacing, blue tags for the bright variant,
similar to what gnome-documents was shipping, and inverted gray
tags for the dark variant, not vanishing on hover.
2017-05-11 15:26:20 +02:00
Daniel Boles
9546673d33 testsuite/scrolledwindow: Try non-overlay/non-auto
It was only testing the default configuration, where overlay scrolling
is on and both scrollbars use POLICY_AUTOMATIC. We should also test the
other 3 configurations that are available by including non-overlay
scrollbars and/or those that use POLICY_ALWAYS.

https://bugzilla.gnome.org/show_bug.cgi?id=778853
2017-05-10 22:29:01 +01:00
Daniel Boles
a96c586450 ScrolledWindow: Don’t req size for autohidden bars
POLICY_AUTOMATIC means scrollbars are only shown when needed, i.e. when
the size of the window is not large enough to show the entire child. So
when measuring the preferred size, such scrollbars should be ignored.

But measure() added size for *any* non-overlay scrollbar of the opposite
orientation, e.g. for horizontal size, it added the width of vscrollbar.
So we requested for child + bar, & having enough for child meant that the
policy hid the bar, leaving extra space empty below/right of the child.

Fix this by only adding size for such bars if they use POLICY_ALWAYS.

https://bugzilla.gnome.org/show_bug.cgi?id=778853
2017-05-10 22:29:01 +01:00
Daniel Boles
1a95c259d7 ScrolledWindow: Optimise and clean up measure()
• Only calculate the specified dimension – rather than measuring both &
   discarding the other (which will often be recalculated right after)
 • Only measure a given child scrollbar if it may be visible, not always
 • Move variables into narrowest scopes & otherwise improve readability

https://bugzilla.gnome.org/show_bug.cgi?id=778853
2017-05-10 22:29:01 +01:00
Carlos Garnacho
546433a4b7 gtkclipboard: Fix typo
The standard atom is UTF8_STRING.
2017-05-10 20:36:34 +02:00
Daniel Boles
91f2a310ab testsuite/gtk/scrolledwindow: Fix a copy-paste-o
It measured horizontal size when it needs height, making the test fail.
2017-05-10 19:12:16 +01:00
Emmanuele Bassi
daccf61dcf meson: Use buildtype to determine the debugging flags
Meson has a `--buildtype` option which allows us to avoid defining an ad
hoc `--enable-debug=yes|no|minimum` option ourselves.
2017-05-10 12:03:01 +01:00
Emmanuele Bassi
7ec9c36891 meson: Drop unnecessary link_with
The `declare_dependency()` for GIR does not need a `link_with` argument.
2017-05-10 11:37:40 +01:00
Emmanuele Bassi
0226163269 meson: Build the reftests suite
It does not pass, but at least we can check it.
2017-05-10 11:37:40 +01:00
Emmanuele Bassi
29bc0b1911 meson: Use libexecdir option 2017-05-10 11:37:40 +01:00
Chun-wei Fan
9f763cc34b win32/replace.py: Fix replacing items in files with UTF-8 content
Some files that this script will process might have UTF-8 items in
there, which can cause problems on Python 3.x as it is more strict and
careful on unicode issues.  Fix this by:

-Doing what we did before on Python 2.x
-Opening the file with encoding='utf-8' on Python 3.x
2017-05-09 18:35:31 -07:00
Jonas Ådahl
477556aac2 GtkWindow: Don't double free export user data
The user data passed when exporting a Wayland window was supposed to be
freed using the destroy_func, as is commonly done. This was previously
broken, as the user data was just NULL:ed when exported, and only
actually destroyed when unexporting before having exported.

While e016d9a5db fixed this, it introduced
a regression, as GtkWindow was nice enough to free the memory anyway
after having received the exported handle, causing it now to double
free.

https://bugzilla.gnome.org/show_bug.cgi?id=782109
2017-05-09 23:23:11 +08:00
Lapo Calamandrei
28d8fdca02 Adwaita: regenerate the css 2017-05-09 13:39:05 +02:00
Lapo Calamandrei
ebcf17debd Adwaita: add a comment
Add a comment pointing to the related bug for dropdown menu
margin.
2017-05-09 13:38:03 +02:00
Lapo Calamandrei
e9ee313be2 Revert "Adwaita: remove unneeded margin on dropdown menu"
This reverts commit af76e138f9.
The margin was actually related to:
https://bugzilla.gnome.org/show_bug.cgi?id=591258
2017-05-09 13:34:49 +02:00
Lapo Calamandrei
78d4854d10 Adwaita: regenerate css 2017-05-09 12:48:12 +02:00
Lapo Calamandrei
af76e138f9 Adwaita: remove unneeded margin on dropdown menu
That margin was probably a left over to workaround some placement
issue on dropdowns which doesn't exist anymore.
2017-05-09 12:48:12 +02:00
Jonas Ådahl
71adc74f27 GdkWaylandWindow: Unexport when finalizing
The application might not have exported, and it'll be too late for it
at this point anyway, so lets be helpful and not leak it.

https://bugzilla.gnome.org/show_bug.cgi?id=782109
2017-05-09 11:59:06 +08:00
Olof-Joachim Frahm
621d1bb4ec Make sure to remove tooltip timeout.
Otherwise in GC-ed environments the `g_source_remove` call during
disposal might be called on an already removed source, which results in
unnecessary console output.

https://bugzilla.gnome.org/show_bug.cgi?id=778301
2017-05-08 18:05:21 -04:00
Jakub Steiner
dee666f515 style entry-tags
https://bugzilla.gnome.org/show_bug.cgi?id=781214
2017-05-08 17:55:03 -04:00
Jonas Ådahl
5c74afb2f1 wayland: Remove self assignment
Don't assign the value of a variable to itself. It was added just for
clarity, but it makes coverity complain, so remove it.

https://bugzilla.gnome.org/show_bug.cgi?id=780301
2017-05-08 17:42:31 -04:00
Jonas Ådahl
9f9aaea319 wayland: Use correct enum type and values
Use the gravity enum values when converting to gravity. It doesn't fix
anything, since the enum values were identical, but it makes a coverity
warning go away.

https://bugzilla.gnome.org/show_bug.cgi?id=780301
2017-05-08 17:42:31 -04:00
Matthias Clasen
95e313a283 file filter: Be save against NULL
g_content_type_from_mime_type may return NULL, deal with that.

https://bugzilla.gnome.org/show_bug.cgi?id=782180
2017-05-08 16:35:53 -04:00
Matthias Clasen
c4a5f6a601 Revert "GdkWaylandWindow: Unexport when finalizing"
This reverts commit 251e216052.
2017-05-08 15:59:23 -04:00
Jonas Ådahl
251e216052 GdkWaylandWindow: Unexport when finalizing
The application might not have exported, and it'll be too late for it
at this point anyway, so lets be helpful and not leak it.

https://bugzilla.gnome.org/show_bug.cgi?id=782109
2017-05-08 15:41:11 -04:00
Jonas Ådahl
6d7749898d GdkWaylandWindow: Clear export user data when used
It was only cleared when unexported, but we could just as well clear it
when its used too.

https://bugzilla.gnome.org/show_bug.cgi?id=782109
2017-05-08 15:41:11 -04:00
Michael Catanzaro
cfd15c95b0 menubutton: Remove prelight state when button is deactivated
If the button is deactivated, it should not appear to be hovered
anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=781992
2017-05-08 16:03:33 +02:00
Balázs Úr
00387c24ca Update Hungarian translation 2017-05-05 18:56:59 +00:00
Christoph Reiter
004aba44df gtkdnd: restore drag window movement for the unmanaged case
5bb12474d9 removed the dnd window movement code to let
the gdk backends handle the window movement instead. While this
works for X11/wayland the win32 backend still uses the unmanaged
interface and expects the window movement to be handled on the gtk
side. This restores the functionality in case the dnd is unmanaged.

This fixes the drag window on Windows being stuck in the top left
corner instead of following the drag position.

https://bugzilla.gnome.org/show_bug.cgi?id=781737
2017-05-05 17:42:39 +02:00
Matej Urbančič
c0efc9ede9 Updated Slovenian translation 2017-05-05 13:25:51 +02:00
Emmanuele Bassi
db2c80d9db meson: Generate man pages for the installed tools 2017-05-05 11:35:31 +01:00
Emmanuele Bassi
777906e26c meson: Silence the introspection scanner
We want the warnings, but not every single message.
2017-05-05 11:17:02 +01:00
Olof-Joachim Frahm
1681d4ad77 Move style change for popover creation.
Creating with `gtk_popover_new_from_model` should be exactly the same as
if via `gtk_popover_new` plus `gtk_popover_bind_model`.

Also remove the style if the model is unbound at any point.
2017-05-05 11:37:20 +02:00
Mohammed Sadiq
00cd92ea71 linkbutton: Fix memory leak
strings returned by gtk_widget_get_tooltip_text() and
gtk_widget_get_tooltip_markup() has to be freed when no longer
required.

https://bugzilla.gnome.org/show_bug.cgi?id=782202
2017-05-05 11:18:25 +02:00
Timm Bäder
3d21128dbb Remove gtk_widget_get_preferred_*
They are unnecessary now that we have gtk_widget_measure.
2017-05-05 11:18:25 +02:00
Timm Bäder
1a7a089e2c window: Stop using gtk_widget_get_preferred* 2017-05-05 11:18:24 +02:00
Timm Bäder
8b2c71703e widget: Remove useless assignment
We don't use adjusted_allocation after this line.
2017-05-05 11:18:05 +02:00
Timm Bäder
91932ffbc7 button: Remove baseline_align value
It's unused.
2017-05-05 11:18:05 +02:00
Matthias Clasen
7625e40e82 clipboard: Try the mimetype first
Try text/plain;charset=utf-8 first, before falling back to
X11-isms like UTF8_TEXT. This makes things work on Wayland
compositors that don't carry a heavy X11 legacy around.

https://bugzilla.gnome.org/show_bug.cgi?id=781814
2017-05-03 18:50:21 -04:00
Tim-Philipp Müller
88900814cd meson: simplify cups version check in printbackends
Using cc.compute_int() instead of cc.get_define() for now
as there seems to be some issue with get_define() (#1726).
2017-05-03 18:40:56 +01:00
Lapo Calamandrei
77a0fc92c8 Adwaita: regenerate css using sassc 2017-05-03 17:43:45 +02:00
Lapo Calamandrei
9be18363e7 Adwaita: add more space between check/radio and label in popovers
See https://bugzilla.gnome.org/show_bug.cgi?id=779570 for details.
2017-05-03 17:39:21 +02:00
Lapo Calamandrei
96fc66d327 Adwaita: add a sassc based parse-sass.sh script 2017-05-03 17:31:50 +02:00
Emmanuele Bassi
0dad501d16 meson: Remove G_LOG_USE_STRUCTURED from target C flags
The G_LOG_USE_STRUCTURED symbol is defined in the project flags, so we
don't need to add it again in the per-target flags.
2017-05-03 16:22:52 +01:00
Ernestas Kulik
fee3f9afa1 meson: depend on glib >= 2.53.1
The code uses g_object_new_with_properties(), which is only available in
versions 2.53.1 and up.

https://bugzilla.gnome.org/show_bug.cgi?id=782123
2017-05-03 16:14:58 +01:00
Emmanuele Bassi
fb6f9e10da build: Use appropriate linker flag for the builder test
The `-export-dynamic` flag is a libtool-specific flag; since we're not
using libtool with Meson, we should instruct the C compiler to use the
appropriate linker flag instead.
2017-05-03 16:11:17 +01:00
Emmanuele Bassi
c05fcdbba0 window: Remove property definition
Commit 92b0d2e8ea removed the
hide-titlebar-when-maximized property handlers, but it still installed
the GParamSpec into the GtkWindow class.
2017-05-03 15:58:49 +01:00
Emmanuele Bassi
69ec6234a4 Specify more options to sassc
We should use the compact style, to minimize the whitespace; and we
should omit the source map URL comment as well.
2017-05-03 15:47:45 +01:00
Emmanuele Bassi
3b9233910f build: De-duplicate options to sassc
If we want to change the list of options we use with sassc, not having
to copy-paste them in multiple rules would be a good start.
2017-05-03 15:47:45 +01:00
Emmanuele Bassi
bc0a08eced testsuite: Remove unused function
Silence a compiler warning.
2017-05-03 15:21:20 +01:00
Emmanuele Bassi
3ba514d31f build: Port the a11y test suite to Meson
Copy the location of the test data and binaries from the autotools
build, even though it's not really correct; currently we install the
test data under libexecdir, but it should live under datadir, and we
should use `G_TEST_DIST` to figure it out.

The `state` subdirectory is missing.
2017-05-03 15:15:17 +01:00
Emmanuele Bassi
a54b6be606 build: Add common settings for tests
We are going to reuse them in the various parts of the test suite.
2017-05-03 15:10:58 +01:00
Emmanuele Bassi
8acf5a8174 build: Update autotools for API reference changes 2017-05-03 15:10:58 +01:00
Emmanuele Bassi
15c4d7121c build: Add Meson-related files to the autotools dist
This way, a tarball generated via autotools will also allow building
GTK+ via Meson.
2017-05-03 15:10:58 +01:00
Emmanuele Bassi
9b7148cdbd build: Use link_whole for GDK backends
When linking libgdk4 to each backend's static library, we want to use
the whole-archive support.
2017-05-03 15:10:58 +01:00
Emmanuele Bassi
d09ccaaf35 build: Define G_LOG_USE_STRUCTURED in GDK
We want to use the new structured logging support in GLib.
2017-05-03 15:10:58 +01:00
Emmanuele Bassi
9e8ba70d69 build: Add common flags to GDK backends
The common compiler and linker flags control, among other things, the
default visibility of symbols; without them, we leak symbols that ought
to be private.
2017-05-03 15:10:58 +01:00
Emmanuele Bassi
efd2ce2be5 build: Fix the introspection build
GSK has various enumeration types that are currently not used; while
they may go away, currently they are built and introspected. If we want
the introspection machinery to work, and still use static libraries to
build GDK and GSK into the GTK shared library, then we need to reference
the get_type() function of these enumeration types somewhere, to avoid
the linker discarding it, and thus breaking the build.

As luck would have it, we have an autogenerated bit of C that refers to
all the get_type() functions in the library; if we add the GSK types to
it, then we get the reference we're looking for, and the build succeeds.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
ea32f4c020 build: Depend on Meson 0.40 at least 2017-05-03 15:10:57 +01:00
Emmanuele Bassi
c984c3b55e build: Initial attempt at fixing the docs build
We need to reference the types file directly, because it won't be copied
into the builddir by Meson — except for GTK, which needs to generate its
own types file using configure_file().
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
91dee46497 build: Use get_pkgconfig_variable()
There's no need to run pkg-config ourselves.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
17518ef89b build: Improve consistency of the "coding" style
We're mixing a lot of styles in the Meson build files. This is an
attempt at making everything slightly more consistent in terms of
whitespace and indentation.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
1afd415583 build: Clean up print backends Meson rules 2017-05-03 15:10:57 +01:00
Emmanuele Bassi
6dd35248d5 build: Put the xkbcommon required version into a variable
We use it in two places.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
6728f45aa0 build: Ensure that Vulkan shaders are rebuilt if glslc is found
If glslc is found, rebuild the shaders from GLSL to SPIR-V; otherwise,
we're just going to use the built files we have committed in the source
repository.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
c1965150c7 build: Add post-install script
When building GTK+ straight from the repository without any assistance
from packaging tools, we need to trigger system-wide updates, like the
icon theme cache update, or the schema compilation.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
561f41d112 build: Clean up Wayland protocol code generation
We can build the name of the input and output files for the Wayland
protocols we use from the protocol name, stability, and version. This is
similar to how the autotools build does it, except much more clear and
without shelling out twice to sed just to resolve the Makefile rule.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
6b4b3f2f6c build: Add Meson options for quartz/win32 backends 2017-05-03 15:10:57 +01:00
Emmanuele Bassi
99d353003e build: Disable introspection generation
Currently gobject-introspection is badly borked with Meson.

This will need to be reverted.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
d35d82fb35 build: Rename GSK resource generator script
Maintain the naming convention, since we have similar scripts for GDK
and GTK already.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
ba87e857e2 build: Generate the API references (WIP)
Still a work in progress.
2017-05-03 15:10:57 +01:00
Emmanuele Bassi
28dcb50231 build: Add the appropriate inclusion paths for libgtk 2017-05-03 15:10:57 +01:00
Emmanuele Bassi
81341c042b build: Disable deprecation warnings for input methods 2017-05-03 15:10:57 +01:00
Emmanuele Bassi
f942aa53e2 docs: Rename files to match type and version
The main GDK API reference index is XML, not SGML.

The overrides file is for GDK 4.x, not 3.x.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
5e2eaa5dbc build: Add introspection generation
Currently, no platform-specific introspection is generated; there will
be a follow-up commit.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
e18d9a85ca build: Use the common linker flags in GDK and GSK
Instead of hard-coding `-Bsymbolic`.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
482f34006e build: Use the appropriate linker flags
We need to check if the linker flags we use are available, depending on
the platform, and we need to ensure that the shared library is
versioned appropriately.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
47bcf66af8 build: Bump version and C standard
GTK+ 4.0 uses C99.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
c97ef81a10 build: Add missing symbol visibility flags
GTK symbols are not visible by default, and only the ones annotated with
_GDK_EXTERN (and wrapper macros) are exported. We need to define
_GDK_EXTERN during the configuration, depending on the platform and
compiler we use.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
68039b610b build: Add compiler warnings and errors
We don't want to build buggy code.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
ede1f7002f build: Depend on graphene-gobject-1.0
We use the GObject types with Graphene, so we need to check that the
library has been built with them.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
3f4cc06ee3 build: Some whitespace cleanups 2017-05-03 15:10:56 +01:00
Emmanuele Bassi
007d9a5e19 build: Generate the appropriate GLib versioning checks
The autotools build checks the version of GLib we are depending on in
order to generate the appropriate GLIB_VERSION values for the
min-required/max-allowed defines.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
8582f80391 build: Add the appropriate paths in the configuration header
Instead of injecting them into the C compiler arguments.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
898bbb4626 build: Use the appropriate quoting
There's no need for string concatenation.
2017-05-03 15:10:56 +01:00
Emmanuele Bassi
9105227b56 build: Do not mix private and public GDK headers
The type generation script inside gtk/ will use the `gdk_headers`
variable, and that must not contain private headers.
2017-05-03 15:10:56 +01:00
Tim-Philipp Müller
e1dc4f7ae1 meson: gdk: fix static library names
Fix double lib prefix in filenames (liblibgdk-xyz.a)
2017-05-03 15:10:56 +01:00
Tim-Philipp Müller
e850973956 meson: build input modules
We have to work around some ordering problems here. We still
manage to keep most of the guts in modules/input/meson.build,
so it's not too ugly overall.

(The autotools build solves this with a 'make -C ../../input/modules'
inside gtk/Makefile, but that's not something we can or want to do.)
2017-05-03 15:10:56 +01:00
Tim-Philipp Müller
1c14e93e69 meson: check for xinerama 2017-05-03 15:10:56 +01:00
Tim-Philipp Müller
25cdd19bb0 meson: fix XIAllowTouchEvents check
Need to link against dep/lib to check for function in it. Also
misc fixes to surrounding xi-related checks.
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
2f3c975058 meson: remove duplicate libm variable
Only need one of libm and mlib
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
5d71390a75 meson: check for more missing config.h defines
Lots of them are unused and can be removed. For others we
add a check.
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
361e5d0b74 meson: simplify function checks
Because we can. We don't need to specify the right header anymore
to check for functions.
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
4e9403df7f meson: simplify header checks
Remove workaround for gcc bug (Meson does that now), and
construct the right config.h defines for the headers on
the fly instead of listing them in the build file, which
is more error prone.
2017-05-03 15:10:55 +01:00
Matthias Clasen
f12c011e43 Set glib min/max versions 2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
69f075202d meson: fix GETTEXT_PACKAGE 2017-05-03 15:10:55 +01:00
Matthias Clasen
fc11fb7fda Don't require glslc for vulkan
The compiled shaders are checked into git.
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
412c2225b1 meson: move colord checks into cups printbackend
Which is the only user of it. Also add option to enable/disable.
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
d38db4dcdd meson: gtk: set GTK_PRINT_BACKENDS define properly 2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
a35e5f3135 meson: modules: add printbackends
The cups checks might not work properly everywhere yet,
since they don't use cups-config and parse the output yet.
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
3a496afa0b meson: gtk: don't overwrite top-level cdata variable with local stuff
We need to set the global configuration data written into
config.h from the modules/printbackends meson file.
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
cbfaebfa83 meson: add po and po-properties 2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
7cbf92505c meson: testsuites: tools: add meson build 2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
b95a5678f4 meson: testsuite: reftests: add build defs, but needs more work
Not sure how these are supposed to work yet, we can specify
arguments for running the tests uninstalled as well with test(),
if that helps in any way.
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
bffbc6e1b9 meson: testsuite: gdk: use array for test definitions 2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
9bc24bf4d9 meson: testsuite: gtk: sync with Makefile and add some missing bits
Also use an array. A few tests fail, needs investigation.
2017-05-03 15:10:55 +01:00
Tim-Philipp Müller
f67a9d58db meson: make sure gsk/gdk generated headers exist for libgtk_dep users
Add back dependencies on libgdk_dep and libsk_dep which are declared
dependencies. We removed this before because these declarations had
link_with: lines that dragged in the static libgdk.a and libgsk.a libs
which are linked into libgtk-4.so anyway and thus shouldn't be used
when linking internal exes/tools against libgtk-4. Remove the static
libs from the declared dependencies and have libgtk link those in
explicitly, so that the declared deps now just provide all the built
dependencies and include dirs and such for declared libgtk_dep users
such as the internal exes/tools, which want all the generated gsk/gdk/gtk
headers to exist before attempting to compile anything against the
gtk+ headers.
2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
48e2b77369 meson: generate .pc files 2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
3ca1418178 meson: gtk: update build file and sync to Makefile 2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
98e633f658 meson: gtk: use gnome.mkenums() and gnome.genmarshal() 2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
07ffb19c42 meson: gdk, gsk: fix install path of generated files 2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
d12ab27c8e meson: gtk: remove internal static libs from declared gtk dependency
gdk and gsk are no longer separate libs but part of gtk now, so any
Gtk+ user should just link to gtk, there's no need to additionally
link against all those static helper libs that go into the gtk lib.

This means we need to specifically add confinc to include_directories
in more places to make sure the right config.h (i.e. ours) gets
included and not a subproject's like graphene's config.h.

Not dragging in static libs also fixes the issue of all executables
having to be relinked for any and all changes. With this change
it's super-fast now and can be skipped for most changes that don't
touch the external ABI.
2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
7738688c00 meson: gtk: use array for installed tools definition 2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
bdfcfdec57 meson: gtk: install headers 2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
c7d3fe5e26 meson: gdk: add quartz backend skeleton
Won't even build yet, just put basic bits in place.
2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
442185388b meson: gdk: win32: add skeleton bits for win32 backend
Won't even build, configure bits still missing.
2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
cbb6a62496 meson: gdk: wayland: generate private wayland headers first
gdkprivate-wayland.h includes generated wayland client protocol
headers and is included from gdkdisplaymanager.c, so we need to
generate those client protocol headers first also when building
main gdk itself.
2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
152a25d099 meson: gdk: add Mir backend bits
Completely untested, might not even build.
2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
e001d95538 meson: gdk: build individual backends as static libs
This is how it's done in the autotools build. Also avoids problems
with multiple source files having the same name (gdkeventsource.c).

Also move broadway backend code into broadway subdir.
2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
d4881df0d8 meson: gdk: wayland: move wayland bits into wayland subdir 2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
4b969b1b40 meson: gdk: wayland: use array for protocol file generation 2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
22d7b825fb meson: gdk: move x11 bits into x11 subdirectory
Also install headers.
2017-05-03 15:10:54 +01:00
Tim-Philipp Müller
b947e88fbf meson: gdk: update and sync with Makefiles
Also create gdk.gresource.xml at build-time.
2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
7966ab6001 meson: demos: disable add_install_script() calls that don't work right yet
Errors out. Might really wants a script and not a binary.
2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
a0c207614a meson: gsk: install public headers 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
7b6b3c7786 meson: gsk: use gnome.mkenums() to generate enum types 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
fed7d22df7 meson: gsk: generate gsk.resources.xml 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
95979f4d2f meson: add vulkan bits 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
3ac88fa6b6 meson: examples: update
Mostly style changes. Don't create resource source files
with spaces in them, that's tempting our luck.
2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
d276cd47a5 meson: tests: make tests find resources from the source dir
Should probably also do this in the autotools build, since
the same problem exists there as well if we use srcdir != builddir.
2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
08153c3854 meson: tests: update and sync with Makefiles 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
b6722b0a36 meson: demos: update and sync up with Makefiles 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
b8a017b081 meson: use add_project_arguments() instead of add_global_arguments()
So Gtk+ can be used as a subproject.
2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
d6a824476d meson: gtk-demo: update and sync up with Makefile.am 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
37d5938561 meson: update list of sources for changes in git master 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
a23ce5c11c meson: fix checks for maths and X11 funcs that need the right deps 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
917a6b0912 meson: work around meson/gcc bug detecting linux/* headers 2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
a223294605 meson: set _GNU_SOURCE project wide
Easier, also means we don't have to define it for
checks. that will only succeed with it defind.
2017-05-03 15:10:53 +01:00
Tim-Philipp Müller
e675675b78 meson: testsuite: gdk: need to dep on gtk
Almost all of these tests include gtk/gtk.h so we need
to dep on libgtk not just libgdk. Otherwise compilation
fails because graphene.h include can't be found.
2017-05-03 15:10:52 +01:00
Tim-Philipp Müller
75fd87ce61 meson: gtk: generate gtk.gresource.xml 2017-05-03 15:10:52 +01:00
Tim-Philipp Müller
aa52cbeb11 meson: gtk: add missing source file 2017-05-03 15:10:52 +01:00
Tim-Philipp Müller
154ca1d1e4 meson: make sure gdk/gdkenumtypes.h is generated for users of libgtk_dep
Add libgdk_dep as dependency to the libgtk_dep declare_dependency(), so
that the generated gdk includes are generated before anything is built
that tries to include gtk headers (such as various tests that don't depend
on gdk directly).
2017-05-03 15:10:52 +01:00
Tim-Philipp Müller
55bbe0612e Rename generated gtktypefuncs.c to gtktypefuncs.inc
This is needed for the Meson port, a file name .c that's included
and shouldn't be compiled into an object is difficult to manage
otherwise. And it's not actually a valid .c file anyway.
2017-05-03 15:10:52 +01:00
Tim-Philipp Müller
b08a9bac6f meson: add graphene subproject that can be used as fallback 2017-05-03 15:10:52 +01:00
Timm Bäder
4fcca9945f meson: update build files 2017-05-03 15:10:52 +01:00
Timm Bäder
409ed21594 meson: Sort input files by name 2017-05-03 15:10:52 +01:00
Timm Bäder
6dd6660c68 meson: Conditionally check for dependencies 2017-05-03 15:10:52 +01:00
Timm Bäder
02a250147f meson: Check for more libraries 2017-05-03 15:10:52 +01:00
Timm Bäder
bfabaa0bd6 meson: build some more tests 2017-05-03 15:10:52 +01:00
Timm Bäder
09ad2f9d31 meson: build tests/visuals 2017-05-03 15:10:52 +01:00
Timm Bäder
0748c415da meson: Build gtk utils 2017-05-03 15:10:52 +01:00
Timm Bäder
092f6d5c43 meson: Install libgtk and libgdk 2017-05-03 15:10:52 +01:00
Timm Bäder
d353924c3d gtk/meson: Read dirs from options 2017-05-03 15:10:52 +01:00
Timm Bäder
8ae847e4fc Build examples 2017-05-03 15:10:52 +01:00
Timm Bäder
8bf141b364 meson: Build all tests in tests/ 2017-05-03 15:10:52 +01:00
Timm Bäder
d2ecd6e3c6 meson: Also check for sincos 2017-05-03 15:10:51 +01:00
Timm Bäder
fe29dbd9cc meson.build: Add more required versions
...build tests/ and testsuite/, properly define gtk_version, etc.
2017-05-03 15:10:51 +01:00
Tim-Philipp Müller
1125e4d77c meson: figure out wayland-protocols pkgdatadir via pkg-config
Instead of hardcoding the location.
2017-05-03 15:10:51 +01:00
Timm Bäder
abe80bb7c4 meson: Use -Bsymbolic 2017-05-03 15:10:51 +01:00
Timm Bäder
5116b2b612 meson: Require gtkmarshal_h before we build gtk 2017-05-03 15:10:51 +01:00
Timm Bäder
9e0c74b513 meson: Disable broadway build 2017-05-03 15:10:51 +01:00
Timm Bäder
2144b776b2 meson: Generate demos.h for gtk3-demo 2017-05-03 15:10:51 +01:00
Timm Bäder
fe42d645ad meson: Build gtk3-demo 2017-05-03 15:10:51 +01:00
Timm Bäder
81ffccf79f meson: build gtk/ again 2017-05-03 15:10:51 +01:00
Timm Bäder
294ebd70b3 build: Generate wayland protocol files 2017-05-03 15:10:51 +01:00
Timm Bäder
41d019851c wayland: Include generated sources from builddir, not srcdir 2017-05-03 15:10:51 +01:00
Timm Bäder
c9016fb8a3 gentypefuncs.py: Use python3 2017-05-03 15:10:51 +01:00
Tim-Philipp Müller
0f7f4225de meson: replace gentypefuncs.d with python script 2017-05-03 15:10:51 +01:00
Timm Bäder
88a2a571d5 gtk major version 2017-05-03 15:10:51 +01:00
Timm Bäder
3f62b935e5 meson: Use xrandr 2017-05-03 15:10:51 +01:00
Timm Bäder
df965304d4 meson: make gtk buildable
x11 only
2017-05-03 15:10:51 +01:00
Timm Bäder
082cf3553d meson: Build gtk marshallers
And fix libgtk_dep/libgdk_dep to link_with the shared lib
2017-05-03 15:10:50 +01:00
Timm Bäder
1e8a606403 meson: Add unit test files 2017-05-03 15:10:50 +01:00
Timm Bäder
3b0709b6e5 gtk: Generate gresources file 2017-05-03 15:10:50 +01:00
Timm Bäder
7fff2901aa meson: Add options for x/wayland/broadway backends 2017-05-03 15:10:50 +01:00
Timm Bäder
5475768d32 Meson build v2 2017-05-03 15:10:50 +01:00
Emmanuele Bassi
7a90e06a3c Add Meson build files
Original work by: Jussi Pakkanen <jpakkane@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=769881
2017-05-03 15:10:50 +01:00
Emmanuele Bassi
35c26d00d7 gsk: Include the private header
Both gskprivate.c and gskvulkanrenderer.c call `gsk_ensure_resources`
but fail in clude `gskprivate.h`, where the function is declared.
2017-05-03 15:00:12 +01:00
Emmanuele Bassi
71ad17cae1 Remove gdkkeysyms-compat.h
The compatibility header was needed after GTK+ 3.0 renamed the key
symbols from `GDK_*` to `GDK_KEY_*` to avoid collisions.
2017-05-03 14:54:37 +01:00
Timm Bäder
a9fdf49ed4 examples/drawing: Don't call gtk_main_quit
This is a GtkApplication so it will do the right thing when closing the
window.
2017-05-03 14:53:34 +01:00
Timm Bäder
5c79d65717 fallback-c89: Include config.h
It holds all the HAVE_<func> definitions.
2017-05-03 14:47:14 +01:00
Emmanuele Bassi
98b1075764 gdk: Remove GdkX11DisplayManager from the build
We don't instantiate it, and we don't use it any more.
2017-05-03 14:15:57 +01:00
Matthias Clasen
caacab13e9 Remove the gdk backend API too
The GTK+ level API for this is already gone.
2017-05-02 16:17:33 -04:00
Daniel Boles
e0a741c8ee Scale: Improve documentation of set_has_origin()
Properly format the property name, and avoid saying scale so many times.
2017-05-02 12:39:04 +01:00
Daniel Boles
4d88dc44b6 Scale: Explain how to round value when !draw-value
Scale:digits is (now, again) ineffective if Scale:draw-value is FALSE.
To get rounding in that case, the base Range:round-digits must be used.
2017-05-02 12:39:04 +01:00
Emmanuele Bassi
73878e29fd Recover assets rendering script
It was unintentionally removed by commit f6cbd076.
2017-05-02 12:37:36 +01:00
Timm Bäder
2c174319ea widget-factory: Fix listbox row alignment 2017-05-01 21:21:40 +02:00
Timm Bäder
5c4934cfc0 Chain up in size-allocate implementations
Otherwise we're not setting an allocation at all.
2017-05-01 21:21:40 +02:00
Matthias Clasen
92b0d2e8ea Remove GtkWindow::hide-titlebar-when-maximized
This was only every implemented under X11, and with CSD,
this is clearly in the application realm. We should not
pretend that we can support it on the toolkit level.

https://bugzilla.gnome.org/show_bug.cgi?id=775061
2017-05-01 13:26:46 -04:00
Timm Bäder
c405fe23bf widget: remove double assignment
We never read the value we assign here.
2017-04-30 20:22:42 +02:00
Timm Bäder
9c347c3012 placesview: Remove duplicate GtkMountOperation assignment
we assign a new mount operation a few lines later again.
2017-04-30 20:22:34 +02:00
Timm Bäder
6ae0aef840 levelbar: Don't allocate 0 blocks
Could result in a division by zero later on and doesn't make a lot of
sense anyway.
2017-04-30 20:22:25 +02:00
Timm Bäder
b950b775fa gtksettings: Remove unnecessary deprecation guards
Nothing between them is deprecated.
2017-04-30 19:48:39 +02:00
Timm Bäder
1b36c325eb widget: Fold queue_resize_on_widget into its only caller 2017-04-30 18:38:10 +02:00
Kukuh Syafaat
596317c25b Update Indonesian translation 2017-04-29 02:08:22 +00:00
Emmanuele Bassi
2a4f07ed9f wayland: Annotate the log_handler function
The log_handler() internal function is a candidate for the GCC format
attribute for printf-like functions.
2017-04-28 23:12:26 +01:00
Emmanuele Bassi
739588cc3c wayland: Add declaration of private get_type() function 2017-04-28 23:03:14 +01:00
Emmanuele Bassi
278e54b88d gdk: Make more private functions static
These symbols are not exported and are local to their compilation unit.
2017-04-28 23:03:10 +01:00
Emmanuele Bassi
7619c9c739 wayland: Mark private function as static 2017-04-28 22:47:29 +01:00
Emmanuele Bassi
82800fae52 wayland: Mark private function as static
The selection_lookup_offer_by_atom() function is private to the file and
not used elsewhere.
2017-04-28 22:21:19 +01:00
Emmanuele Bassi
4724a89022 build: Don't include the marshallers header file
We used to inject the inclusion of the generated header file into the
generated body of the marshallers source code in order to avoid compiler
warnings about missing prototypes. The glib-genmarshal utility has been
fixed in GLib to include the prototype in the generated source, so now
we're going to trip -Werror=redundant-decls.
2017-04-28 21:50:41 +01:00
Timm Bäder
bb1deaafa4 migration guide: Extend GtkBox child property section
Mention the removed expand and fill child properties as well.
2017-04-28 17:14:10 +02:00
Olivier Fourdan
502e0a3a9e wayland: make key event log more explicit
With Wayland, GDK_DEBUG=events would log key events but not explicitly
state whether the event is a key press or release, or if it's
originating from a key repeat.

Add some more verbosity to make sure these informations are logged on
key delivery when GDK_DEBUG is set.

https://bugzilla.gnome.org/show_bug.cgi?id=781767
2017-04-28 13:09:39 +02:00
Timm Bäder
bbe5385541 frame: Properly initialize clip
GtkCssGadget initializes the content clip to {0, 0, 0, 0}, so we can't
just union the child clip with it.
2017-04-28 11:27:09 +02:00
Timm Bäder
70aeeab355 grid: Remove unnecessary NULL checks
The minimum and natural pointers passed to measure are never NULL and
that's the only place where we call gtk_grid_get_size_for_size.
2017-04-28 11:27:09 +02:00
Timm Bäder
79de641e9b GtkGestureMultiPress: Remove superfluous NULL check
The rect parameter in gtk_gesture_multi_press_set_area is annotated as
nullable and the code handles the rect==NULL case, but the
g_return_if_fail kept that case from ever happening.
2017-04-28 11:27:09 +02:00
Timm Bäder
80fe1dfe02 label: Remove dead ternary operator 2017-04-28 11:27:09 +02:00
Timm Bäder
2a0a87049e headerbar: Compute clip directly 2017-04-28 11:27:09 +02:00
Timm Bäder
179b8b0cbc Fix gdk_rectangle_union calls
Turns out that the destination is the last parameter, not the first one.
This fixes the flickering in the first page of the widget-factory when
using the expander on page 2.
2017-04-28 11:27:09 +02:00
Timm Bäder
b97b8b6ec1 button: Compute clip directly 2017-04-28 11:27:08 +02:00
Timm Bäder
a50dc94381 filechooserwidget: Remove always-false error case
_gtk_search_engine_new never returns NULL, it always returns a valid
GObject with at least the simple search engine initialized.
2017-04-28 11:27:08 +02:00
Timm Bäder
03bfdce406 sidebarrow: Remove useless size group
Nice try, but size groups don't work with invisible widgets anyway.
Invisible widgets request 0×0.
2017-04-28 11:27:08 +02:00
Florian Müllner
5527732763 gdk: Relicense translate_wm_button_layout_to_gtk()
It is generally a good idea to license individual files under the
same terms as the project license (in particular when the mismatch
boils down to having copied the wrong license header), so relicense
the code under the LGPL.

https://bugzilla.gnome.org/show_bug.cgi?id=781422
2017-04-27 21:05:12 +02:00
Piotr Drąg
69fe6207ff Update Polish translation 2017-04-26 19:44:06 +02:00
Emmanuele Bassi
fca3f93114 gsk: Mark finalize() implementation as static 2017-04-26 17:28:14 +01:00
Emmanuele Bassi
9442ef055d gsk: Mark internal symbol as static
Nothing uses this function outside of GskVulkaneRenderPass.
2017-04-26 17:27:24 +01:00
Emmanuele Bassi
c71aeff9b2 gsk: Mark internal symbols as static
These symbols are not used anywhere outside of GskVulkanImage.
2017-04-26 17:25:24 +01:00
Emmanuele Bassi
7ae5b516ac gsk: Mark private symbol as static
The ellipsis_contains_point() function is not used anywhere else.
2017-04-26 17:25:24 +01:00
Stas Solovey
ed2aaafa2c Update Russian translation
(cherry picked from commit edf00914e5)
2017-04-26 14:44:56 +00:00
Daniel Boles
8308ce1e61 Scale: Fix documentation of digits per last revert
Revert doc changes that were for the behavioural change just reverted.

Add a clarifying note that, under the original behaviour, :digits only
rounds the Adjustment if :draw-value is TRUE at the time of the change.

https://bugzilla.gnome.org/show_bug.cgi?id=781605
https://bugzilla.gnome.org/show_bug.cgi?id=358970
2017-04-26 12:32:07 +01:00
Matthias Clasen
197355e15a Revert "Scale: Always sync ::digits to Range::round-digits"
This reverts commit 4a6bd134bd.

This change in behavior broke various things.

https://bugzilla.gnome.org/show_bug.cgi?id=781605
2017-04-26 07:30:19 -04:00
Timm Bäder
dfcde113e8 GskRoundedRect: Include private header file
So we don't have implementations without previous prototypes.
2017-04-26 11:07:40 +02:00
Timm Bäder
0105bf82c0 GskRenderNode: Fix set_scaling_filters function name
The implementation sed _filters while the prototype used _filter.
2017-04-26 11:06:55 +02:00
Timm Bäder
6c7f1d8885 GskRenderNode: add missing prototype 2017-04-26 11:06:32 +02:00
Timm Bäder
57b8a136bf reftests: Remove reference to deleted files 2017-04-25 20:55:56 +02:00
Timm Bäder
6364231571 testdnd2: Don't pass a toplevel to gtk_drag_set_icon_widget 2017-04-25 20:30:37 +02:00
Timm Bäder
db4b1d28f5 label: Remove angle property 2017-04-25 20:30:37 +02:00
Timm Bäder
cb80b32ee8 label: Move if statement where it makes sense
In the else branch of the if statement before this one, we're assigning
*smallest = *widest anyway, so this if statement is never true. Move it
to the if block before instead, where it can apply.
2017-04-25 20:30:37 +02:00
Timm Bäder
4e0f10955a label: Remove useless if statements
We never pass nullable pointers into get_size_for_allocation.
2017-04-25 20:30:37 +02:00
Timm Bäder
2fc92db25c label: Remove useless if statement
The if before this one already makes sure priv->wrap is TRUE.
2017-04-25 20:30:37 +02:00
Timm Bäder
6b12e3948e gtkmain: Fix code example
gtk_init doesn't take parameters anymore
2017-04-25 20:30:37 +02:00
Timm Bäder
29f7bde023 label: Don't use gtk_widget_set_simple_clip
The clip returned by gtk_css_gadget_allocate already includes the
box-shadow size and we manually care about the text-shadow size.
2017-04-25 20:30:37 +02:00
Timm Bäder
b01b5267bb frame: Compute clip directly 2017-04-25 20:30:37 +02:00
Timm Bäder
167fc2b659 listbox: Compute clips directly 2017-04-25 20:30:37 +02:00
Timm Bäder
fe429f8806 gtkwidget: Queue a resize on the parent when unparenting
gtk_widget_set_parent (via gtk_widget_reposition_after) will queue a
resize on the parent widget automatically when adding a child widget, so
unparent should do the same
2017-04-25 20:30:37 +02:00
Timm Bäder
7e1373a08c widget: Fix set_parent/unparent docs to not mention GtkContainer
They can both be used by non-container widgets these days.
2017-04-25 20:30:37 +02:00
Timm Bäder
74ef45bfbf grid: Compute clip directly
Instead of iterating over the children again in
gtk_container_get_children_clip
2017-04-25 20:30:37 +02:00
Timm Bäder
0938183ae6 container: Use gtk_container_forall less
Just iterate over the child widgets directly and produce a much nicer
stack trace when debugging.
2017-04-25 20:30:37 +02:00
Timm Bäder
927f2f5c06 box: Compute clips directly
Instead of using _gtk_widget_set_simple_clip *and*
gtk_container_get_children_clip
2017-04-25 20:30:37 +02:00
Timm Bäder
ec1e063cb2 testsuite: Add widget ordering test case 2017-04-25 20:30:37 +02:00
Timm Bäder
fb927d1993 box: Remove center child 2017-04-25 20:30:37 +02:00
Timm Bäder
f053a63d74 container: Remove include_internals parameter from forall
with include_internals=TRUE, this is the same as the (still private)
gtk_widget_forall, or just using the children/sibling accessors in a
loop.
2017-04-25 20:30:37 +02:00
Timm Bäder
066c1983ba actionbar: Add explicit center widget
The center widget in GtkBox was only introduced to use it in
GtkActionBar. However, the implementation there is much more complex
than it needs to be, so move the center widget into GtkActionBar instead
and later remove it from GtkBox.
2017-04-25 20:30:37 +02:00
Timm Bäder
c92b7d4224 box: Remove fill child property
GtkWidget:halign and GtkWidget:valign are sufficient
2017-04-25 20:30:37 +02:00
Timm Bäder
5729ea7744 box: Remove expand child property
GtkWidget already has hexpand/vexpand properties.
2017-04-25 20:30:37 +02:00
Timm Bäder
8f4c0bea65 expander: Use widgets for title box and arrow 2017-04-25 20:30:36 +02:00
Timm Bäder
efa9601a10 window: Make sure the decoration node stays at the beginning
Otherwise, the gtk_widget_set_parent call might add the widget node of
the child before the decoration node.
2017-04-25 20:30:36 +02:00
Timm Bäder
73c3579e78 levelbar: Use widgets for all blocks
This replaces all internal gadgets with widgets.

Remaining problem: "block" nodes have a min-width of 32px in Adwaita,
but when allocated in continuous mode, the levelbar doesn't care and
underallocates them.
2017-04-25 20:30:36 +02:00
Timm Bäder
68a5f6519c progressbar: Use widgets for all subgadgets
A GtkLabel for the possible text node and two GtkGizmos for the
trough/progress gadgets.
2017-04-25 20:30:36 +02:00
Timm Bäder
2be675b538 Add GtkGizmo
GtkGizmo is the easiest possible widget to implement. It does nothing
except give its creator a way to control measure/size-allocate/snapshot,
so it can be used in a variety of use cases.
2017-04-25 20:29:02 +02:00
Timm Bäder
ae1a606c8b overlay: Ensure proper child widget order
Make sure the main widget stays below all the overlay children.
2017-04-25 20:29:02 +02:00
Timm Bäder
9644bea2a5 treeview: insert the column button css node in the right place
Insert the css node before setting a parent widget on the column button,
so the gtk_widget_set_parent won't attempt to add the css node as child
of the parent widget css node.
2017-04-25 20:29:02 +02:00
Timm Bäder
ba363fbb71 widget: Add gtk_widget_insert_before/after
To insert a widget into the widget tree before or after a child widget
of the soon-to-be parent.
2017-04-25 20:29:02 +02:00
Timm Bäder
5852da22bf gdk: Add 3.92 version macros 2017-04-25 20:29:02 +02:00
Timm Bäder
2ab3da6741 Bump version to 3.91.0
So we can use GDK_AVAILABLE_IN_3_92 without getting warnings
2017-04-25 20:29:02 +02:00
Timm Bäder
5d94ee8584 listbox: Properly remove placeholders 2017-04-25 20:29:02 +02:00
Timm Bäder
4945e28f08 widget-factory: Add dummy listbox placeholder
It doesn't do anything and isn't visible anyway, but it tests that
adding and removing placeholders works
2017-04-25 20:29:02 +02:00
Daniel Boles
843cd7f22e ProgressBar: Update node summary per last commit
The node named "progress" is a child of the node named "trough".
2017-04-25 11:14:28 +01:00
Timm Bäder
d703cc882d progressbar: Fix position of text node in CSS docs
The text node has always been a child node of the progressbar node, not
the trough node, but the docs claimed otherwise.
2017-04-25 10:56:08 +01:00
Timm Bäder
a919f0c7f3 spinbutton: Add undershoot nodes to CSS docs 2017-04-24 16:24:32 +02:00
Timm Bäder
0acb404166 spinbutton: Remove an unused define 2017-04-24 16:24:20 +02:00
Timm Bäder
68383cfcd3 window: Expand CSS node docs 2017-04-24 16:24:12 +02:00
Timm Bäder
bd55396d39 filechooserbutton: Show/hide appropriate child 2017-04-24 15:58:01 +02:00
Timm Bäder
ccdc50e540 paned: Fix typo 2017-04-24 15:16:15 +02:00
Timm Bäder
cc00fee386 testboxcss: Fix custom CSS
remove engine: parameter and add units to values
2017-04-24 15:16:08 +02:00
Timm Bäder
d5c6692104 gtk4-sections: Add missing GtkWidget child/sibling accessors 2017-04-24 14:15:57 +02:00
Timm Bäder
911d71ae7a levelbar: Remove unused define 2017-04-24 14:15:28 +02:00
Matthias Clasen
d0f36a1793 testlist3: Handle dropping a row onto itself
Instead of spewing criticals, we should handle this
gracefully by doing nothing.
2017-04-22 21:39:48 -04:00
Carlos Soriano
72d13535b7 gtkplacesview.ui: Remove translatable from server label helper
Translating it seems pointless if we can use a non-translatable example
such as gnome.org instead of foo.example.com.

This will help to make changes in here without breaking string freeze.

https://bugzilla.gnome.org/show_bug.cgi?id=781622
2017-04-22 21:53:45 +02:00
Matthias Clasen
2fed741b40 Fix the build 2017-04-22 11:30:33 -04:00
Matthias Clasen
8644e5f34d Refine the listbox dnd example
Add a drag handle, and demonstrate broken offsets.
2017-04-22 08:08:43 -04:00
Carlos Soriano
73d13fbdac gtkplacesview: Fix unmounted open in tab/window
We were send the "open-location" signal without mounting first the
location if necessary, making the open in tab/window context menu not
work for those.

This patch makes sure we mount the location before emitting the signal.

https://bugzilla.gnome.org/show_bug.cgi?id=771269
2017-04-22 11:54:23 +02:00
Matthias Clasen
2e7db0d662 Fix a typo 2017-04-21 18:28:56 -04:00
Matthias Clasen
ff8cca77a2 Implement dnd for list box rows in an example
This shows very basic DND of list box rows.
2017-04-21 18:28:47 -04:00
John Ralls
139b669196 Replace NSScreen:userSpaceScaleFactor, deprecated since MacOS X 10.7.
userSpaceScaleFactor is not compatible with high-resolution (aka HiDPI)
displays.
2017-04-11 16:10:51 -07:00
Georges Basile Stavracas Neto
400db31ad3 placesview: fix testsuite
Because the network monitor can perfectly be NULL,
the tests were failing on that for GtkPlacesView
always tries to disconnect this handler.

Fix that by only disconnecting the handler when
the network monitor exists.

https://bugzilla.gnome.org/show_bug.cgi?id=781195
2017-04-11 16:50:33 -03:00
Georges Basile Stavracas Neto
767927aef3 places-view: monitor network
GtkPlacesView exposes local access points and network
shares transparently by using the 'network:///' URI,
which is handled by GIO.

Currently, however, it doesn't monitor the network
for new available points, such as computers that just
join the network. It may happen too that the backend
won't find all the networks before the network enumeration
finishes.

Fix that by keeping a file monitor inspecting the network
uri, and update the places list when that happens.

https://bugzilla.gnome.org/show_bug.cgi?id=781162
2017-04-10 19:36:02 -03:00
gogo
529b8f8197 Update Croatian translation 2017-04-10 21:29:53 +00:00
gogo
7176ab1e86 Update Croatian translation 2017-04-10 21:01:06 +00:00
gogo
313bb76558 Update Croatian translation
(cherry picked from commit 6e87915b05)
2017-04-10 20:43:23 +00:00
gogo
95d21ffc83 Update Croatian translation
(cherry picked from commit 4f3ff05943)
2017-04-10 20:39:28 +00:00
Tom Tryfonidis
79f817286e Update Greek translation 2017-04-08 16:36:31 +00:00
Alberts Muktupāvels
acf50005ab gtkheaderbar: add style classes to all title buttons
Commit b187773053 added CSS style
classes for minimize, maximize and close buttons. Add similar classes
also to icon and menu buttons.

https://bugzilla.gnome.org/show_bug.cgi?id=780944
2017-04-06 15:34:49 +03:00
Matthias Clasen
7860e2d5cd flowbox: don’t try to focus or draw NULL widgets
Rubberbanding over an empty area results in warnings, due to the code
trying to focus and queue a null pointer for drawing.

https://bugzilla.gnome.org/show_bug.cgi?id=780734
2017-04-05 20:15:32 -04:00
Jeremy Bicha
fc70267158 docs: Use https for more links
https://bugzilla.gnome.org/show_bug.cgi?id=780878
2017-04-03 16:02:22 -04:00
Jeremy Bicha
183e5bb8a4 docs: Point links to correct versions
https://bugzilla.gnome.org/show_bug.cgi?id=780878
2017-04-03 16:02:22 -04:00
William Hua
8b271e7b8c mir: clean up an ugly function 2017-04-03 13:29:06 -04:00
Emmanuele Bassi
c9a5d51539 Use the newly added g_object_new_with_properties()
Instead of the deprecated g_object_newv().

This requires some internal surgery to create our own vector of names
and values, but it does not functionally change anything.
2017-04-02 17:29:38 +01:00
Emmanuele Bassi
5e9f77670b Bump up the required version of GLib
GLib 2.53 deprecated g_object_newv() and GParameter. If we want to stop
using those types without resorting to pretty convoluted pre-processor
dancing, we will need to bump up the dependency inside GTK+.
2017-04-02 17:29:38 +01:00
Emmanuele Bassi
4471f274b9 Ignore deprecation warnings for g_object_newv()
GLib has deprecated GParameter and g_object_newv(); until we switch to
the new g_object_new_with_properties() API, and bump GLib required
version, we should simply ignore the compiler warnings.
2017-04-02 17:29:38 +01:00
Timm Bäder
3d2c81c8f1 filechooserwidget: Remove useless gtk_widget_show call 2017-04-02 18:24:17 +02:00
Timm Bäder
7dc8489c8c stack combo: Inherit from GtkWidget 2017-04-02 08:16:54 +02:00
Tom Schoonjans
98d9a05a0c quartz: code cleanup
removed unused static functions, unused class variables and a large
comment section that was copied over from gdkdisplay-x11.h

https://bugzilla.gnome.org/show_bug.cgi?id=779184
2017-04-01 16:45:37 -04:00
Tom Schoonjans
758d26738a quartz: add support for Gtk+4
The addition of GdkMonitor broke the quartz backend. This patch restores
that support by adding a new class GdkQuartzMonitor, and by modifying
the existing classes GdkQuartzDisplay and GdkQuartzScreen where
necessary.

It should be noted that this patch is essentially a refactor as no new
functionality that will impact the user has been added or removed.

https://bugzilla.gnome.org/show_bug.cgi?id=779184
2017-04-01 16:45:37 -04:00
Matthias Clasen
d779d0cb32 Avoid a compiler warning 2017-04-01 12:19:23 -04:00
Emmanuele Bassi
bee29ea6c8 build: Fix sassc detection 2017-04-01 16:39:21 +01:00
Emmanuele Bassi
f6cbd076dd Rebuild CSS on all SCSS file changes
Adwaita and HighContrast CSS should be rebuild every time one of their
dependent files change, not just the main entry point.

https://bugzilla.gnome.org/show_bug.cgi?id=780041
2017-04-01 16:19:54 +01:00
William Hua
94db94a78b mir: set application name when creating connection 2017-04-01 11:05:27 -04:00
Emmanuele Bassi
99c79d6769 Optionally depend on sassc to generate the theme CSS
Instead of using Ruby/Sass to generate the CSS from SCSS files, we can
use the faster and more lightweight libsass/sassc binary.

We can keep the CSS files in Git to make it easier to dist GTK+, but we
can add rules to ensure they get rebuilt if the source SCSS changes.

https://bugzilla.gnome.org/show_bug.cgi?id=780041
2017-04-01 15:36:27 +01:00
Timm Bäder
d55249c6f1 gsk: Add color shaders to resources 2017-04-01 16:16:03 +02:00
Timm Bäder
98a78b0d61 dnd: Remove unnecessary non-toplevel GtkWindow in set_icon_surface
Instead of creating a GtkWindow, connecting to ::draw and drawing the
surface in there, then adding that window to another GtkWindow... just
use a GtkImage. This also gets rid of a bunch of utility functions used
only in gtk_drag_set_icon_surface.
2017-04-01 08:40:34 +02:00
William Hua
8985643966 mir: remove keymap and input device state warnings 2017-03-31 17:36:47 -04:00
William Hua
c638fb952c mir: re-write settings implementation 2017-03-31 15:27:53 -04:00
Matthias Clasen
0fa7ce30dc 3.90.0 2017-03-31 14:05:31 -04:00
Matthias Clasen
99ae996a71 reftests: Remove a test using -gtk-gradient
No longer available.
2017-03-31 14:04:59 -04:00
Matthias Clasen
8ced9f8fd6 a11y tests: Update test results
Most of the changes here are due to visibility.
2017-03-31 14:04:59 -04:00
Matthias Clasen
0f4a31edae css style tests: Update expected results for gradient tests
This is the same as the previous commit.
2017-03-31 14:04:58 -04:00
Matthias Clasen
52b7a96bec css parser tests: Fix radial gradient test results
This changed in commit 2a5a94b260.
2017-03-31 12:50:14 -04:00
Matthias Clasen
19f6df0c5e css parser tests: Fix up the pseudo class test
We don't recognize non-standard names anymore.
2017-03-31 12:48:06 -04:00
Matthias Clasen
55a1587f55 css parser tests: Update border image test results
We lost the ability to dump some images.
2017-03-31 12:48:05 -04:00
Matthias Clasen
7d7b45cac0 css parser tests: Drop tests for -gtk-gradient
No longer needed.
2017-03-31 12:48:05 -04:00
Matthias Clasen
7f08336108 css parser tests: Update background-image test results
We lost the ability to dump some kinds of images.
2017-03-31 12:48:05 -04:00
Matthias Clasen
215f1b9e96 css parser tests: Fix integer test results
Many of the deprecation have been removed here.
2017-03-31 12:48:05 -04:00
Matthias Clasen
b2f90e0e3b css parser tests: Fix background-blend-mode test
The css spec calls it 'saturation', not 'saturate'.
2017-03-31 12:48:05 -04:00
Matthias Clasen
60982265fa css parser: Fix names for blend modes
When the blend modes were ported to use gsk defines, some
dashes were accidentally turned into underscores. It also
turns out that we were expecting 'saturate' instead of
'saturation' as per the css spec. Fix that as well.
2017-03-31 12:48:05 -04:00
Matthias Clasen
ef0956f810 css tests: Update progressbar test results
This was a documented change that has not been reflected
in the tests yet.
2017-03-31 12:48:05 -04:00
Matthias Clasen
bdc607bbd9 css tests: Update entry test results
Just visibility changes here.
2017-03-31 12:48:05 -04:00
Matthias Clasen
ca0a291e5f css nodes: Update the combobox test results
Some changes in the details here; we removed an old widget name.
2017-03-31 12:48:05 -04:00
Matthias Clasen
0934052618 css tests: Update the GtkSwitch node tests
The node hierarchy for GtkSwitch has changed.
2017-03-31 12:48:05 -04:00
Matthias Clasen
95d2895a05 switch: Update css docs to reflect current reality
This should have been done when the hierarchy was changed.
2017-03-31 12:48:05 -04:00
Timm Bäder
9bf6107722 infobar: Remove unused defines 2017-03-31 09:54:43 +02:00
Timm Bäder
4dd8d37191 widgetfocus: Use the same function to compare widgets
... in horizontal/vertical direction.
2017-03-31 09:50:40 +02:00
Timm Bäder
c9fc201f77 Implement tab/up-down/left-right focus sorting for widgets
basically do what GtkContainer already did.
2017-03-31 09:50:40 +02:00
Timm Bäder
6e9d857714 Widget: Shuffle focus code around 2017-03-31 09:50:40 +02:00
Timm Bäder
9b70d9897d tests: Add widget focus test case
Shows an example of a widget that directly inherits from GtkWidget and
has multiple focusable children.
2017-03-31 09:50:40 +02:00
Timm Bäder
1a7cbddbd4 statusbar: Remove margins in ui file
Widgets themselves shouldn't have margins assigned.
2017-03-31 09:50:40 +02:00
Timm Bäder
0153147ca2 widget: Allow focusing widgets with non-container parent
Especially if said parent also has can-focus set to FALSE, which is a
special-case we had before for GtkContainer instances.
2017-03-31 09:50:40 +02:00
Timm Bäder
0b48bb23b2 label: Fix focus implementation
Don't return TRUE if we didn't actually focus anything.
2017-03-31 09:50:39 +02:00
Timm Bäder
1affd425a1 window: Simplify _set_focus 2017-03-31 09:50:39 +02:00
Timm Bäder
cc05fc574c window: Remove _gtk_window_set_is_toplevel
All GtkWindow instances are toplevels.
2017-03-31 09:50:39 +02:00
Timm Bäder
270d957380 window: Fold update_has_focus in to set_is_active
We're now only ever setting has_focus to the same value we set is_active
to, so also remove that field from the private struct.
2017-03-31 09:50:39 +02:00
Timm Bäder
0ce9f26dc5 window: Remove has-toplevel-focus property
Since embedded toplevels don't exist anymore, :has-toplevel-focus is
equivalent to :active.
2017-03-31 09:50:39 +02:00
Timm Bäder
ebdbb6873a window: Remove check_resize special case for embedded toplevels
Those don't exist anymore.
2017-03-31 09:50:39 +02:00
Timm Bäder
49bbf67195 window: Remove gtk_quark_embedded
Unused.
2017-03-31 09:50:39 +02:00
Timm Bäder
0d0cb6e192 widget: Emit ::focus regardless of container-ness and can-focus 2017-03-31 09:50:39 +02:00
Timm Bäder
885bcd9fe4 container: Remove focus_child pointer
Use GtkWidget's instead.
2017-03-31 09:50:39 +02:00
Timm Bäder
64544968e9 widget: Also reset focus on non-container widgets 2017-03-31 09:50:39 +02:00
Timm Bäder
6353433f0e Make gtk_container_set_focus_child private 2017-03-31 09:50:39 +02:00
Timm Bäder
0d480a3eb0 Remove gtk_container_get_focus_child 2017-03-31 09:50:39 +02:00
Timm Bäder
43cdeee3c4 widget: Save pointer to focus child
Do the same thing GtkContainer does.
2017-03-31 09:50:39 +02:00
Timm Bäder
2bab2048f9 cssimageicontheme: Cache size + texture 2017-03-31 09:50:39 +02:00
Timm Bäder
d8f78d3a32 glrenderer: Reuse the GArray for render items 2017-03-31 09:50:39 +02:00
Timm Bäder
67e7f44654 glrenderer: Add render items for child nodes 2017-03-31 09:50:39 +02:00
Timm Bäder
fbada8e758 glrenderer: Handle color nodes 2017-03-31 09:50:39 +02:00
Timm Bäder
a33e90a029 glrenderer: Store uniform locations per program 2017-03-31 09:50:39 +02:00
Timm Bäder
8f2d0bc5a3 widget: Fix checks in gtk_widget_snapshot()
If the widget isn't drawable anyway, just return;

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

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

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

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

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

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

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

Adapted from a patch by Mehdi Sadeghi for GtkSourceView:

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

https://bugzilla.gnome.org/show_bug.cgi?id=780234
2017-03-24 16:41:47 +01:00
Matthias Clasen
147e0512c5 Avoid more compiler warnings 2017-03-23 16:15:26 +00:00
Matthias Clasen
6963d9e2ee Avoid unused variable warnings 2017-03-23 16:15:00 +00:00
Matthias Clasen
e171f4930b Avoid redefining GNU_SOURCE
Gives a compiler warning with the wrong flags.
2017-03-23 15:15:12 +00:00
Matthias Clasen
41389ca98c Avoid some compiler warnings 2017-03-23 15:15:12 +00:00
Marek Kasik
04c6811c3d printing: Don't hang in gtk_enumerate_printers()
Stop enumerating printers when all backends were removed.

https://bugzilla.gnome.org/show_bug.cgi?id=686838
2017-03-23 13:19:13 +01:00
Stas Solovey
26262505f2 Update Russian translation
(cherry picked from commit a7f3fd12d5)
2017-03-22 21:46:49 +00:00
William Hua
e69b4dc3da mir: always emit a resize when creating windows 2017-03-22 02:21:43 -04:00
Flo H
87689b12fc Update German translation 2017-03-21 18:38:39 +00:00
Timm Bäder
ec2062498f glcontext: Fix buffer age comparison
The old code had a dead >=3 branch, causing flickering.
2017-03-21 19:04:58 +01:00
Timm Bäder
f4a24babd4 gdkdragsource: Ensure button >= 1
So the left shift later doesn't overflow.
2017-03-21 19:04:58 +01:00
Timm Bäder
1aa37687be widget: Prepend style classes to list when parsing
Since the later gtk_style_context_add_class doesn't care about the order
of the style classes, we can as well just prepend style classes to the
list and avoid the squared behavior when appending to a linked list.
2017-03-21 19:04:58 +01:00
Timm Bäder
0333602809 builderparser: Remove pointless TagType struct 2017-03-21 19:04:58 +01:00
Andika Triwidada
13cf6a738f Update Indonesian translation 2017-03-21 12:50:54 +00:00
Daniel Boles
bb4aaa8bbf Scrollbar: grammar fix for previous commit 2017-03-21 00:06:50 +00:00
Daniel Boles
874b03e4fe Scrollbar: Tweak intro docs a bit
Explain where the adjustment comes from, clarify some of the wording
about how its fields influence the scrollbar, and also note that the
steppers may not be present, since they aren’t in our default themes.
2017-03-21 00:00:45 +00:00
Daniel Boles
5c2f642ddd ScrolledWindow: Don’t check if child is Scrollable
If the child added is not a Scrollable, it gets wrapped in a ViewPort –
which is. So it is impossible to end up with a non-Scrollable child.

Just check we have /any/ child where needed, which is semantically nicer

https://bugzilla.gnome.org/show_bug.cgi?id=778853
2017-03-20 23:25:23 +00:00
Daniel Boles
52547054a5 ScrolledWindow: Streamline/clarify the intro docs
• intro: Clarify that external policy and/or adjustments can be used.
 • add(): Don’t waffle on about having to add a ViewPort since we handle
          that transparently for the user, so they can add() any widget.
 • Adjustment stuff: most of this was repeating the docs for Scrollbar,
                     so just refer the user to that. Also, mention how
                     policies NEVER and EXTERNAL interact with all this.

https://bugzilla.gnome.org/show_bug.cgi?id=778853
2017-03-20 23:25:23 +00:00
Daniel Boles
7e38e3075e Tooltip: Avoid redundant variable initialisations
has_tooltip_widget was assigned twice in immediate succession.

return_value is not used anywhere else in this function since commit
14a864c8b5 and does not need a default
value anymore, so move it to the inner scope and don't init to NULL.
2017-03-20 21:13:50 +00:00
Timm Bäder
12b7d30a2d GdkWaylandWindow: Force window titles to valid utf8
Use the new g_utf8_make_valid in case the given title is not valid utf8.
Also bump the glib requirement to 2.51.5.
2017-03-20 20:04:26 +01:00
Timm Bäder
c371a86f54 label: Properly calculate half the height
Since we compare it to a double anyway, might as well divide by 2.0.
2017-03-20 17:20:12 +01:00
Timm Bäder
14a864c8b5 tooltip: Remove unused assignment
hide_tooltip  gets overriden in any case 2 lines down, and return_value
isn't used later in that function. The second assignment was introduced
in ef1da5f6c2, directly below the first
assignment.
2017-03-20 15:36:05 +01:00
Timm Bäder
a3bada37fb css-editor: Remove unused if statement
The static local is set to NULL and never set to anything else, so we
never use it anyway.
2017-03-20 15:01:28 +01:00
Timm Bäder
69ca360b59 window: Remove pointless ternary operator
we're already checking for orientation == GTK_ORIENTATION_HORIZONTAL
right before this line, so just pass GTK_ORIENTATION_VERTICAL.
2017-03-20 14:59:14 +01:00
Timm Bäder
22b493a6ac box: Make sure center_req is initialized
In case we have an invisible center widget, we never initialize it, but
later still use it.
2017-03-20 14:16:56 +01:00
Timm Bäder
ae0dadf28a progressbar: Remove useless if statement
Both the if and the else block contained exactly the same code.
2017-03-20 12:47:42 +01:00
Alexander Larsson
e307a35c33 gsk: Take scale factor into account when setting up the gl scissor 2017-03-20 10:53:58 +01:00
Alexander Larsson
9e12fc7853 gl renderer: Fix hidpi fallback rendering
When allocating the surface, take scale into consideration.
2017-03-20 10:53:58 +01:00
Fabio Tomat
a68685bb16 Update Friulian translation 2017-03-19 21:24:45 +00:00
Timm Bäder
58f3202e4f notebook: Remove dead assignment 2017-03-19 17:05:34 +01:00
Timm Bäder
6bbb9a1173 GtkRecentManager: Remove superfluous local variable 2017-03-19 15:44:15 +01:00
Timm Bäder
6637b20b4c GdkRenderer: Fix a compiler warning 2017-03-19 15:44:15 +01:00
Timm Bäder
60ed515be9 GdkX11DeviceManager: Fix debugging output
The 2 values added in 3.22 were missing from the source_names array.
2017-03-19 15:44:15 +01:00
Timm Bäder
c78451e140 GdkMonitor: Use 1 as scale fallback value
The same value we use in gtk_widget_get_scale_factor.
2017-03-19 15:44:15 +01:00
Daniel Boles
a2b72f89e2 css-overview: Fix inconsistent British English use 2017-03-18 12:31:29 +00:00
Tim-Philipp Müller
37b99ed671 vulkan: fix compilation 2017-03-18 12:23:39 +00:00
Timm Bäder
c7c9a0ee51 entrycompletion: Remove unnecessary NULL check
completion really shouldn't be NULL at this point, especially since it
gets dereferenced higher up in the function.
2017-03-18 07:13:13 +01:00
Timm Bäder
53f0c2626e calendar: Fix else branch indentations 2017-03-18 07:07:06 +01:00
Timm Bäder
56e809be9c GdkDrawingContext: Add missing break in switch statement 2017-03-18 07:07:06 +01:00
Daniel Boles
c3892874cb css-overview: Fix+Explain color expr number ranges
Last try, promise. They don’t all use 0 to 1. We should probably explain
the effects too. Hopefully this manages that while not being too verbose
2017-03-18 01:17:14 +00:00
Matthias Clasen
3ec954a54a Avoid a critical warning in the filechooser portal
This was showing up when cancelling a portal file chooser
in recipes.
2017-03-17 19:59:55 -04:00
Daniel Boles
e5ae946be3 css-overview: Elaborate how color expressions work 2017-03-17 23:56:25 +00:00
Daniel Boles
a69083c95e docs/css-overview: Fix color functions’ arg orders
shade/alpha/mix() take colour(s) and a number that is the ratio by which
to transform them. It was written here that these shall be passed in the
order (number, colour). That was wrong: they must be passed in the order
(colour[s], number) to work, and for the Inspector not to flag an error.
2017-03-17 23:31:41 +00:00
Rūdolfs Mazurs
5c948710a5 Update Latvian translation 2017-03-17 23:03:38 +02:00
Murray Cumming
158015be6c docs: Remove mentions of gtk_init_with_args().
Because it has been removed: See commit 7e8eb3ddcd
2017-03-17 21:12:12 +01:00
Timm Bäder
c71c3954f4 headerbar: Fix size requisition variable mixup
Happened when porting to gtk_widget_measure.
2017-03-17 18:49:52 +01:00
Timm Bäder
242368bdf6 GtkShaderBuilder Fix copy/paste error in precondition
gtk_shader_builder_add_define should check both define_name and
define_value for not-NULL and not-empty, but the second precondition
check checks define_name again for not-empty-ness.
2017-03-17 18:35:43 +01:00
Alexander Larsson
1fe4b13871 Allow custom renderer for the inspector
If you set GTK_INSPECTOR_RENDERER to the same type of
values that GSK_RENDERER takes this can change the renderer
used for the inspector. This is useful if you're debugging
one renderer and don't want to affect the inspector.
2017-03-17 16:12:45 +01:00
Christoph Reiter
b843efcb79 quartz: fix build for <10.12
The style mask type was changed from NSUInteger to NSWindowStyleMask.
Use NSUInteger so it also works on older macOS.

https://bugzilla.gnome.org/show_bug.cgi?id=780019
2017-03-15 07:18:48 -04:00
Stas Solovey
43a6180e0b Update Russian translation 2017-03-14 19:11:47 +00:00
Matthias Clasen
7cb2c560ae 3.89.5 2017-03-13 20:20:09 -04:00
Fabio Tomat
94c4f01f39 Add Friulian translation 2017-03-13 21:47:38 +00:00
William Hua
05ca583515 mir: start handling resize events again 2017-03-13 10:52:42 -04:00
Timm Bäder
a65fbf2d49 filechooserwidget: Remvoe useless gtk_widget_show call
And a comment above. Even if it is not correct, it doesn't matter since
we call gtk_widget_show on it again later in that function.
2017-03-13 12:45:38 +01:00
Timm Bäder
6607ef4ae2 modelmenuitem: Remove unnecessary gtk_widget_show calls 2017-03-13 12:14:38 +01:00
Timm Bäder
373d261d15 listbox: Avoid a gtk_widget_destroy call 2017-03-13 12:08:58 +01:00
Timm Bäder
4d3b15e37c filechooserwidget: Avoid a gtk_widget_destroy 2017-03-13 12:08:58 +01:00
Timm Bäder
fa5c39942c filechooserwidget: Remove unnecessary gtk_widget_show calls 2017-03-13 12:08:58 +01:00
Timm Bäder
9047a5dc52 entry: make sure priv->current_pos is valid
We can e.g. get the entry dispose()d and a focus_out event after that
(because the toplevel unsets the focus which previously was the entry).
We then later use priv->current_pos in a call to pango API which makes
sure the given index is valid for the given layout. Since we lazily
create a GtkEntryBuffer in get_buffer() and a PangoLayout lazily in
gtk_entry_create_layout, these 2 are always valid but don't match
priv->current_pos in this situation.

Fix this by resetting priv->current-pos in dispose().
2017-03-13 12:08:58 +01:00
Timm Bäder
fca6bef697 entry: Remove cursor type parameter from get_cursor_locations
We are only ever passing CURSOR_STANDARD anyway.
2017-03-13 12:08:58 +01:00
William Hua
3eb8694cbd mir: remove unused generate_configure_event () 2017-03-13 04:07:54 -04:00
William Hua
64753532ba mir: set placement for menu-type windows 2017-03-13 03:36:30 -04:00
William Hua
3914bcd678 mir: synthesize resize events 2017-03-13 02:52:15 -04:00
William Hua
24dc2d8986 mir: ignore resize events 2017-03-13 00:06:30 -04:00
William Hua
0c1cbcfe60 mir: try mir before x11 2017-03-12 22:40:04 -04:00
Dušan Kazik
a1eb3cb2e9 Update Slovak translation 2017-03-12 10:06:03 +00:00
Dušan Kazik
ceba8b78f0 Update Slovak translation 2017-03-12 09:44:53 +00:00
Мирослав Николић
157781a728 Updated Serbian translation 2017-03-12 07:49:38 +01:00
Марко М. Костић
c9ff99a91e Updated Serbian translation 2017-03-12 07:47:02 +01:00
Andika Triwidada
453fd816be Update Indonesian translation 2017-03-11 08:56:28 +00:00
Andika Triwidada
a3b15d170c Update Indonesian translation 2017-03-11 07:40:11 +00:00
Marek Černocký
240e6a85d2 Updated Czech translation 2017-03-11 02:13:11 +01:00
Fabio Tomat
7b7fb0ac8e Update Friulian translation 2017-03-10 16:55:09 +00:00
Matthias Clasen
e02924a77d quartz: Fix another typo 2017-03-10 07:26:05 -05:00
Matthias Clasen
0cb0542673 quartz: Fix the build
A ; was left out inadvertently.
2017-03-10 07:12:12 -05:00
Fabio Tomat
6f269f7ce1 Add Friulian translation 2017-03-10 09:11:26 +00:00
William Hua
0b72eee311 mir: log additional event types 2017-03-09 23:42:41 -05:00
Mario Blättermann
ea1cb74004 Update German translation 2017-03-09 19:48:53 +00:00
TingPing
47f4e44aec Improve GContentType usage
Convert to content type where needed.
Should fix various issues on Windows and OS X.

https://bugzilla.gnome.org/show_bug.cgi?id=734946
2017-03-08 23:10:49 -05:00
Josef Andersson
60ab85c7bc Update Swedish translation 2017-03-07 20:25:06 +00:00
GNOME Translation Robot
db2129ba5e Update Scottish Gaelic translation
(cherry picked from commit 112437f5ad)
2017-03-07 12:17:51 +00:00
GNOME Translation Robot
96509bd544 Update Scottish Gaelic translation
(cherry picked from commit 2fdcdfa403)
2017-03-07 12:12:07 +00:00
Philip Withnall
ed92c4bcc4 tests: Fix use of C99 inline declaration
We don’t claim to use them yet, even if we perhaps should.
2017-03-07 09:47:30 +00:00
Daniel Boles
f640749853 testheightforwidth: cleanups 2017-03-07 09:28:37 +00:00
Daniel Boles
bd89f79b8a testframe: label-yalign does nothing so don’t test
Since the border node was removed, this property has no effect.

https://bugzilla.gnome.org/show_bug.cgi?id=778886
2017-03-07 01:07:48 +00:00
Daniel Boles
aaa9ea6e3f testframe: Simplify initial setting of padding
Just start with both dimensions’ paddings at 0.
2017-03-07 00:30:24 +00:00
Daniel Boles
2eee3ef79c testframe: Add CheckButton to toggle border off/on
We should test this.
2017-03-07 00:30:23 +00:00
Daniel Boles
5470c263d1 testframe: Order controls better & improve labels
The :label-widget is drawn before the child, so put the controls that
set the alignment of the :label-widget before those that pad the child.

We set (horizontal|vertical) padding, not "[xy]thickness". Also change
to "label [xy]align" & use grid spacing, not spaces at end of Labels.
2017-03-07 00:17:28 +00:00
Daniel Boles
e44b551671 testframe: Minimise typecasts 2017-03-07 00:17:05 +00:00
Daniel Boles
9e5cac07b8 testframe: Set value before connecting callbacks
The value comes from the widget, and we were setting this after
connecting the callback, which applies the value to the widget…
2017-03-07 00:16:37 +00:00
Daniel Boles
ec5ebf82b6 testframe: Use a generic widget pointer 2017-03-07 00:16:37 +00:00
Daniel Boles
3290065079 testheightforwidth: Add missing unref 2017-03-06 20:58:13 +00:00
Daniel Boles
bf0ea7b7bc Fix the completely broken tests/testheightforwidth
This was ruined, with only 1 of the 8 subwindows rendering any content.

This commit fixes the responsible errors in the embedded GtkBuilder UIs:
 • Fix broken replace by commit fb3d9022ad
   of HBox with a Box having a broken orientation <property>
 • Replace VBox and [HV]Paned with GtkOrientable successors (properly!)
 • Remove use of Button:use_action_appearance, as this no longer exists

This commit also adds error reporting, in case other errors creep into
the GtkBuilder UI definitions, plus cleanup for the Builders and Windows
2017-03-06 20:37:38 +00:00
Jakub Steiner
ee3994f715 Adwaita: border for selmode checkboxes
- there was an extra border for selection mode
2017-03-06 17:02:01 +00:00
William Hua
dbb3f84796 mir: don't create GDK_INPUT_ONLY windows 2017-03-06 10:36:45 -05:00
Daniel Boles
24b966f6e7 Frame: minor update to intro docs
This incorporates a couple of recent tweaks from gtk-3-22.
2017-03-06 07:25:08 +00:00
Matthias Clasen
8531ee4c88 Quartz: Implement gdk_window_set_functions
This is useful, and easy to implement.
2017-03-05 22:52:03 -05:00
Anders Jonsson
482d0def4e Update Swedish translation 2017-03-05 21:21:56 +00:00
Timm Bäder
73f8636687 widget: Remove direction-dependent margin code
Since margin-left and margin-right are gone, we don't have to care
about the difference between them and start/end anymore and we can just
save start as left and end as right.
2017-03-05 16:24:20 +01:00
Timm Bäder
f860ff8647 widget: Remove get_valign_with_baseline
This only existed for backwards compat reasons which aren't interesting
for gtk4.
2017-03-05 15:18:32 +01:00
Timm Bäder
f1f39e8924 sizerequest: Fix min_size > nat_size error message
Instead of mentioning the old _get_preferred_xxx functions, mention
measure() and print the for_size value as well. The orientation is given
by printing either "width" for GTK_ORIENTATION_HORIZONTAL or "height"
for GTK_ORIENTATION_VERTICAL.
2017-03-05 15:01:57 +01:00
Timm Bäder
b6790b112f tests/revealer-size: Use gtk_widget_measure 2017-03-05 09:24:41 +01:00
Timm Bäder
7f79c36cb7 testsuite: Remove :sorted usage
Not valid CSS anymore.
2017-03-05 09:24:41 +01:00
Timm Bäder
bd86af4e15 treeviewcolumn: Use gtk_widget_measure to measure widget sizes 2017-03-05 09:24:41 +01:00
Timm Bäder
a8ac6fe8de pathbar: Use gtk_widget_measure to measure widget sizes 2017-03-05 09:24:41 +01:00
Inaki Larranaga Murgoitio
02fbf764ea Update Basque language 2017-03-04 17:44:35 +01:00
Aurimas Černius
5795d5fb36 Updated Lithuanian translation 2017-03-04 17:42:55 +02:00
Timm Bäder
a29343d4cf widget: Reword size request documentation 2017-03-04 08:57:50 +01:00
Timm Bäder
75a3d0fab6 treeview: Use gtk_widget_measure to measure widget sizes 2017-03-04 08:44:49 +01:00
Timm Bäder
846e6dc0b1 menus: Use gtk_widget_measure to measure widget sizes 2017-03-04 08:44:49 +01:00
Timm Bäder
b16a322c4c applicationwindow: Use gtk_widget_measure to measure widget sizes 2017-03-04 08:44:49 +01:00
Jordi Mas
2df8a5c7f4 Update Catalan translation 2017-03-04 08:41:08 +01:00
Changwoo Ryu
9b8461a028 Update Korean translation 2017-03-03 15:40:34 +00:00
Changwoo Ryu
1a83a6588a Update Korean translation 2017-03-03 15:39:56 +00:00
Inaki Larranaga Murgoitio
783790b4ea Update Basque language 2017-03-03 12:53:51 +01:00
Inaki Larranaga Murgoitio
faf0992ca0 Update Basque language 2017-03-03 12:52:13 +01:00
Daniel Boles
0a0f9718ef HighContrast/parse-sass.sh: Use a reliable shebang
/usr/bin/sh does not exist on e.g. Debian sid.
Use the same shebang as Adwaita/parse-sass.sh
2017-03-03 08:46:32 +00:00
Jakub Steiner
870447446d Adwaita: style selectionmode checks for flowbox tiles
- continue being asset based rather than drawn by CSS
- using node 'check' rather than style '.check'

https://bugzilla.gnome.org/show_bug.cgi?id=779074
2017-03-02 19:42:50 +00:00
Jakub Steiner
6fe1d30e62 Adwaita: style flowbox tiles
+ fixups by Daniel Boles from gtk-3-22

https://bugzilla.gnome.org/show_bug.cgi?id=779073
2017-03-02 19:42:47 +00:00
Carlos Garnacho
8c707e29ff gtk-demo: Add 3fg touchpad swipe handling to gestures demo
We can handle those on wayland, so we should show it's possible.
2017-03-02 18:25:04 +01:00
Carlos Garnacho
ed34be8bb3 gtkgesturesingle: Fallback to GtkGesture handling on GDK_TOUCHPAD_SWIPE
There are GtkGestureSingle subclasses that can be made to handle multiple
fingers (GtkGestureSingle is a subclass of GtkGesture, and not the
opposite, after all). And GtkGestureSwipe already tries to handle
GDK_TOUCHPAD_SWIPE events, except this event handler silently ignores
those.

Falling back to the GtkGesture generic handler which already
handles touchpad gesture events fixes this.
2017-03-02 18:25:04 +01:00
Timm Bäder
dc511a38d0 placesview: Simplify button construction 2017-03-02 15:16:08 +01:00
Timm Bäder
0d2debad48 placessidebar: Fix css node name typo 2017-03-02 15:16:08 +01:00
Timm Bäder
dc8904d9c7 widgetnode: Remove unused define 2017-03-02 15:16:08 +01:00
Timm Bäder
4c39204ddd cssnodestylecache: Use const pointer in lookup 2017-03-02 15:16:08 +01:00
Timm Bäder
e1592c599e gdkwindow: Plug memory leak
gdk_drawing_context_get_clip returns a newly allocated cairo_region_t,
so we have to destroy it.
2017-03-02 15:16:08 +01:00
Timm Bäder
7d85ffce33 switch: remove unnecessary gtk_widget_show calls 2017-03-02 15:16:08 +01:00
Timm Bäder
b52966a318 cssselector: Stop parsing deprecated selectors 2017-03-02 15:16:08 +01:00
Timm Bäder
8eb7575c7f csswidgetnode: Remove unused include 2017-03-02 15:16:08 +01:00
Matthias Clasen
015ff46633 Convince OS X to fully fullscreen windows
We typically want to have the full screen given to
the content, not the aspect-ratio preserving behavior
that newer OS X has.

https://bugzilla.gnome.org/show_bug.cgi?id=779383
2017-03-02 08:10:39 -05:00
Sveinn í Felli
35830fd88d Update Icelandic translation
(cherry picked from commit 36e1761c84)
2017-03-02 13:02:33 +00:00
Ask Hjorth Larsen
4508e2fc3e Updated Danish translation 2017-03-02 13:24:10 +01:00
Ask Hjorth Larsen
d639e0696d Updated Danish translation 2017-03-02 13:15:47 +01:00
Sveinn í Felli
5ff1b4662c Update Icelandic translation
(cherry picked from commit fb53855fc8)
2017-03-02 11:55:20 +00:00
Matthias Clasen
6278d003b4 Implement backdrop for Quartz
We need to send window state change events to make GTK+
pick up on focus changed for backdrop.

https://bugzilla.gnome.org/show_bug.cgi?id=779392
2017-03-01 11:47:18 -05:00
Matthias Clasen
169e2d8d92 quartz: Let CSD windows be fullscreen
I've found that I need this patch to make it possible for
windows with headerbar to be made fullscreen on OS X.

https://bugzilla.gnome.org/show_bug.cgi?id=779383
2017-03-01 11:46:31 -05:00
Olivier Fourdan
bbf7c6a715 wayland: make sure to clear up the number of keys
Make sure to clear up the number of keys being pressed on enter/leave so
that we don't end up with leftovers if a new window is mapped by a
keyboard shortcut.

https://bugzilla.gnome.org/show_bug.cgi?id=779374
2017-03-01 16:10:44 +01:00
cedlemo
4bef292253 Fix bad check of GtkActionPadType in gtk_pad_controller_set_action
https://bugzilla.gnome.org/show_bug.cgi?id=779317
2017-03-01 12:55:29 +01:00
William Hua
54791b65bd mir: deprecate gdk_mir_window_get_mir_surface () 2017-03-01 02:15:56 -05:00
William Hua
f98e3dd09a mir: delete commented debug output 2017-03-01 02:15:56 -05:00
William Hua
bdf559c623 mir: migrate away from deprecated mir api 2017-03-01 02:15:56 -05:00
William Hua
e07dea5d97 mir: move #include to correct file 2017-03-01 02:15:56 -05:00
Charles Monzat
06f37f19e7 Update French translation 2017-02-28 22:53:56 +00:00
Mario Blättermann
a17559c5c4 Update German translation 2017-02-28 17:59:02 +00:00
Sveinn í Felli
d4cb078749 Update Icelandic translation 2017-02-28 14:27:54 +00:00
Daniel Boles
db7ff6d88a Range: Remove leftover comment about update policy
Update policies were removed way back in 2011… in
commit c43a31ea33
2017-02-27 20:05:37 +00:00
Daniel Mustieles
db958ed028 Updated Spanish translation 2017-02-27 18:51:37 +01:00
Balázs Meskó
f733d46f27 Update Hungarian translation 2017-02-27 14:24:19 +00:00
Olivier Fourdan
4c533e17f5 wayland: do not cancel key repeat on key press
The key repeat is stopped as soon as a key is pressed, so if the user
quickly presses a key while another is already pressed and being
repeated, key repeat gets cancelled:

 - key1 press
 - key1 repeat
 - key2 press -> key1 repeat stopped
 - key1 release
 - key 2 is not repeated even though it's kept depressed

This is a different behavior from X11, which confuses migrating users.

To mimic the X11 behavior, keep track of the number of keys pressed
simultaneously and cancel key repeat only when none is pressed.

This way, if a user pressed a key while another one is being repeated,
the new key press can possibly be repeated as well.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=778019
2017-02-27 11:53:03 +01:00
Daniel Mustieles
df65db2ad0 Update Spanish translation 2017-02-27 08:46:49 +00:00
Fran Dieguez
cbd06ffb69 Update Galician translation 2017-02-26 21:40:50 +00:00
Fran Dieguez
be6016ce39 Update Galician translation 2017-02-26 21:38:03 +00:00
Piotr Drąg
d17f5ca56c Update Polish translation 2017-02-26 21:10:18 +01:00
Balázs Meskó
d3110114cf Update Hungarian translation 2017-02-26 12:13:38 +00:00
Balázs Meskó
1c0c6cbeaf Update Hungarian translation 2017-02-26 11:33:44 +00:00
Мирослав Николић
ea7a6de799 Updated Serbian translation 2017-02-26 09:09:32 +01:00
Мирослав Николић
dd7bfebe87 Updated Serbian translation 2017-02-26 09:08:54 +01:00
Rafael Fontenelle
24483481c1 Update Brazilian Portuguese translation 2017-02-24 20:16:51 +00:00
Milo Casagrande
0909d5d9e5 Update Italian translation 2017-02-24 15:53:43 +00:00
Olivier Fourdan
83b54bab57 wayland: Fix a race condition with xdg_popup resize
When resizing an xdg_popup immediately after the initial mapping, there
is a race condition between the client and the compositor which is
processing the initial size given by the xdg_positioner, leading to the
xdg_popup to be eventually of the wrong size.

Only way to make sure the size is correct in that case is to hide and
show the window again. Considering this occurs before the initial
configure is processed, it should not be noticeable.

https://bugzilla.gnome.org/show_bug.cgi?id=772505
2017-02-24 10:07:17 +01:00
Baurzhan Muftakhidinov
1e7178e66f Update Kazakh translation 2017-02-24 04:42:31 +00:00
Daniel Boles
ad5ff5f6d1 Inspector: Use Title Case for labels & menu items
https://developer.gnome.org/hig/stable/writing-style.html.en

https://bugzilla.gnome.org/show_bug.cgi?id=779147
2017-02-23 19:13:41 +00:00
Jordi Mas
a66584eca8 Fix Catalan translation 2017-02-23 18:33:10 +01:00
Jordi Mas
c59f61b43c Update Catalan translation 2017-02-23 08:28:36 +01:00
Daniel Boles
b23513e2da TextView—Avoid pointless Pango in iter_line_is_rtl
Get the direction that was already worked out and stored in the
TextLineDisplay, rather than making Pango figure it out again.

https://bugzilla.gnome.org/show_bug.cgi?id=136059
2017-02-22 21:28:13 +00:00
Daniel Boles
2c9c871c5f TextView—Plug a memory leak
Thanks to Nelson Benitez for pointing this out.

https://bugzilla.gnome.org/show_bug.cgi?id=136059
2017-02-22 21:27:59 +00:00
Daniel Boles
449a17b56d Revert "testsuite/scrolledwindow—Test non-overlay/non-auto"
This reverts commit 5a6e6689ec.

Reverting until I can be sure gtkscrolledwindow.c does the right thing.

https://bugzilla.gnome.org/show_bug.cgi?id=778853
2017-02-22 19:31:57 +00:00
Daniel Boles
10e49a2861 Revert "ScrolledWindow—Don’t req size for auto-hidden bars"
This reverts commit 901e5ff3a3.

This causes criticals in e.g. the Text View: Multiple Buffers demo.
More work is required to get a fix for Bug 778853 that does not cause
anything else to regress.

https://bugzilla.gnome.org/show_bug.cgi?id=778853
2017-02-22 19:31:38 +00:00
Daniel Boles
830eb623e7 Scale: Fix erroneously removed : in a signal doc 2017-02-22 08:54:27 +00:00
Chao-Hsiung Liao
b115251b92 Update Chinese (Taiwan) translation 2017-02-22 01:14:45 +00:00
Chao-Hsiung Liao
d1caa5efa8 Update Chinese (Taiwan) translation 2017-02-22 01:11:15 +00:00
Daniel Boles
e0b70f3629 Frame—Note set_label always destroys :label-widget
The fact that it doesn’t reuse the existing GtkLabel if present is not
immediately obvious to users (or is it just me?), so clarify that the
pre-existing :label-widget, if any, is always removed and replaced.
2017-02-21 21:26:43 +00:00
Daniel Boles
b106c5e4d5 Frame—Clarify relationship of :shadow-type & .flat 2017-02-21 21:26:41 +00:00
Milo Casagrande
3553166bb4 Update Italian translation 2017-02-21 18:14:10 +00:00
Milo Casagrande
73e7b45389 Update Italian translation 2017-02-21 18:10:44 +00:00
Rafael Fontenelle
ef56d6de45 Update Brazilian Portuguese translation 2017-02-21 10:26:48 +00:00
Piotr Drąg
e5602e4010 Update Polish translation 2017-02-19 19:32:05 +01:00
Daniel Boles
b953710fd7 Frame: Explain the .flat style class 2017-02-19 17:19:08 +00:00
djb
5a6e6689ec testsuite/scrolledwindow—Test non-overlay/non-auto
It was only testing the default configuration where overlay-scrolling is
TRUE and the policy is POLICY_AUTOMATIC. We should also test FALSE and
POLICY_ALWAYS. This commit adds those tests and makes the !overlay &&
POLICY_ALWAYS case pass by excluding the size of the relevant scrollbar,
as we are only interested in whether the content size is as requested.

https://bugzilla.gnome.org/show_bug.cgi?id=778853
2017-02-19 17:03:44 +00:00
Daniel Boles
901e5ff3a3 ScrolledWindow—Don’t req size for auto-hidden bars
POLICY_AUTOMATIC means scrollbars are only shown when needed, i.e. when
the size of the window is not large enough to show the entire child. So
when measuring the preferred size, such scrollbars should be ignored.

But measure() was adding size for bars for which policy_may_be_visible()
was TRUE, which it returns for POLICY_ALWAYS (good) & _AUTOMATIC (bad).
So we reserved space for child plus scrollbars, & because we have enough
space for the child, POLICY_AUTOMATIC hides the scrollbar, leaving the
extra reserved space empty at the right/bottom sides of the child. This
is very noticeable/inconvenient for non-overlay, automatic scrollbars.

Fix this by only requesting size for scrollbars that use POLICY_ALWAYS,
rather than basing the decision on policy_may_be_visible().

https://bugzilla.gnome.org/show_bug.cgi?id=778853
2017-02-19 17:03:44 +00:00
Kjartan Maraas
7e201e19f9 Updated Norwegian bokmål translation. 2017-02-19 16:52:40 +01:00
Daniel Boles
0128b8d33f TextView—Fix inverted movements by arrows in RTL
Using Ctrl + left/right to skip between words, or left/right to cancel a
selection, were causing movement on the screen in the opposite direction
of the glyph on the key. This was surprising and awful UX for RTL users.

This is based on a patch covering the former case by:
Author:    Mehdi Sadeghi <mehdi@mehdix.org>
Date:      Sat Feb 18 02:16:00 2017 +0000

https://bugzilla.gnome.org/show_bug.cgi?id=136059
2017-02-19 12:39:05 +00:00
Daniel Boles
c4fbce52ce Entry: Add newlines to ease reading huge switches
These are monstrosities!
2017-02-19 12:39:05 +00:00
Daniel Boles
4bea7b0ae8 Entry—Fix inverted movements by arrow keys in RTL
Using Ctrl + left/right to skip between words, or left/right to cancel a
selection, were causing movement on the screen in the opposite direction
of the glyph on the key. This was surprising and awful UX for RTL users.

This is based on a patch covering the former case by:
Author:    Ori Avtalion <ori@avtalion.name>
Date:      Tue Apr 20 08:06:23 2010 +0000

https://bugzilla.gnome.org/show_bug.cgi?id=136059
2017-02-19 12:39:05 +00:00
Daniel Boles
3e28b1fc64 Scale: Fix signal documentation syntax
Oops, sorry. Thanks to Cristoph Reiter for correcting me on this.
2017-02-19 10:14:01 +00:00
Daniel Boles
5c9a100fe8 Scale: Improve docs of format-value property 2017-02-19 09:12:38 +00:00
Daniel Boles
ebca0c6ebf Scale: Improve docs of prop digits in other places
There were places still implying that it was only used for display.
2017-02-19 08:39:31 +00:00
Daniel Boles
97fe47bbd9 Scale: consistent #Class:signal-or-property syntax
Use : everywhere, not a mixture of : and ::
2017-02-19 08:39:30 +00:00
Daniel Boles
a1239a9a6a CssSelector: Fix warning for bad pseudo-class name
It was "Missing name of pseudo-class", but the real problem is exactly
the opposite: we /have/ been given a name, but it is not a valid one.
Change it to "Invalid name of pseudo-class" to minimise confusion.
2017-02-18 21:01:38 +00:00
Daniel Boles
397bced61b testsuite/gtk/textiter: Add missing assertion
gboolean ret for whether gtk_text_iter_backward_line() moved the iter
was declared but not used anywhere. I presume it was meant to be
checked, and it passes now, so let’s do it.
2017-02-18 20:20:34 +00:00
Daniel Boles
75b0431dcf Revert "testsuite/gtk/textiter: Remove an unused variable"
This reverts commit 8bddf52b51.
2017-02-18 20:20:21 +00:00
Daniel Boles
8bddf52b51 testsuite/gtk/textiter: Remove an unused variable 2017-02-18 19:37:50 +00:00
Timm Bäder
85aaf13c03 scrolledwindow: Remove unused define 2017-02-18 19:11:22 +01:00
Timm Bäder
9fc739e2c7 image: Remove useless queue_resize call
This will be done form GtkIconHelper already when we call
gtk_image_reset
2017-02-18 19:01:41 +01:00
Timm Bäder
0f15519794 expander: Remove unused defines 2017-02-18 19:01:28 +01:00
Timm Bäder
e1f8d5a647 notebook: Use gtk_widget_measure 2017-02-18 19:01:28 +01:00
Timm Bäder
4c94242988 expander: Use gtk_widget_measure 2017-02-18 19:01:28 +01:00
Timm Bäder
ed245b42cb scrolledwindow: Avoid usage of uninitialized local
the scrollbar passed in better be either priv->hscrollbar or
priv->vscrollbar. Ensure that by using a simple else instead of an
else-if and a g_assert.
2017-02-18 19:01:28 +01:00
Jiri Grönroos
54a0df69d7 Update Finnish translation 2017-02-18 17:36:52 +00:00
Aurimas Černius
bac3f1b2e8 Updated Lithuanian translation 2017-02-18 16:49:29 +02:00
Claude Paroz
c9aa5e55c5 Updated French translation 2017-02-18 14:22:38 +01:00
Peter Mráz
5aee849f39 Update Slovak translation 2017-02-18 08:14:22 +00:00
Lionel Landwerlin
72801a27eb widget: propagate scale factor upon reparenting a widget
When a widget is created, its default scale is the scale of the
primary screen (for instance 2). But once parented to another widget
its scale factor should be the one of its parent (if parented to a
widget on a screen at scale factor 1, it should be 1).

The problem is that we don't emit the notify::scale-factor signal when
reparenting happens.

https://bugzilla.gnome.org/show_bug.cgi?id=776821
2017-02-18 02:53:57 +00:00
Daniel Boles
1a8a35f347 Image—Add some more missing (nullable) annotations 2017-02-17 22:17:08 +00:00
Carlos Garnacho
9029bc0f6a gdk: Ensure GdkDragContext instantly updates drag window position
Otherwise we wait for the next gdk_drag_motion() call, which will
happen on the next motion event, making the drag window briefly visible
on the 0,0 root coordinates.

https://bugzilla.gnome.org/show_bug.cgi?id=778203
2017-02-17 19:35:42 +01:00
Timm Bäder
0675fce506 flowboxchild: Use gtk_widget_measure to measure widget sizes
GtkFlowBoxChild is a simple GtkBin, so measure the child widget size in
a simple way.
2017-02-17 18:23:10 +01:00
Timm Bäder
8165b641cd paned: Use gtk_widget_measure to measure widget sizes 2017-02-17 18:23:10 +01:00
Timm Bäder
a0323e52a6 combobox: Use gtk_widget_measure to measure widgets 2017-02-17 18:23:10 +01:00
Timm Bäder
848d55a187 cssimage: Plug a small memory leak 2017-02-17 18:23:10 +01:00
Timm Bäder
2786d52ab6 filechooserentry: Avoid an uninitialized value
|= with a garbage value on the left side results in a still-garbage
value.
2017-02-17 18:23:01 +01:00
Timm Bäder
aebea7d644 filechooserwidget: Fix profiling code compilation 2017-02-17 18:23:01 +01:00
Timm Bäder
548f6138ef Add a few missing (nullable) annotations 2017-02-17 18:23:01 +01:00
Timm Bäder
e0738b1e43 builder: avoid an uninitialized value
When g_module_supported() returns FALSE, args.module is garbage
otherwise.
2017-02-17 18:22:49 +01:00
Timm Bäder
d637b0eeed filechooserwidget: Fix rename popover position calculation
Since the browse_file_popover is positioned correctly, just convert the
coordinates in the same way we do there.

https://bugzilla.gnome.org/show_bug.cgi?id=778746
2017-02-17 18:22:15 +01:00
Daniel Boles
385e1236a7 docs/css-properties: Fix info on 3value properties
https://developer.mozilla.org/en/docs/Web/CSS/margin#Values
2017-02-17 15:18:24 +00:00
Nelson Benítez León
aa48399002 textiter: fix bug in gtk_text_iter_backward_line()
gtk_text_iter_backward_line() checks the value of
real->line_char_offset without previously calling
ensure_char_offsets (real) to make sure the former
is up-to-date.

As a consequence of this, when gtk_text_iter_backward_line()
is called after a gtk_text_buffer_insert_range() in the
first line of buffer, the iter is not moved to the start of
the line, and the return value is wrong.

Fixed by adding the ensure_char_offsets() call.

A test case for this bug is added to the textiter gtk testsuite.
2017-02-17 19:49:55 +05:00
Daniel Boles
0c09e4776d combobox—Always popup menu using current event
priv->trigger_event is never set, so it is always NULL. This means the
gtk_menu_popup*() methods use the current event. The only way to get any
other event to combobox_menu_popup() was from the button-press-event
handler I just removed, which would end up being the current one anyway.

So, bin priv->trigger_event & explicitly pass NULL to gtk_menu_popup*().
2017-02-16 21:33:25 +00:00
Daniel Boles
69d2459471 combobox—Remove useless button-press-event handler
We use toggled, which does everything we need; this adds nothing useful.

Credit to Timm for noticing this—I didn’t when moving it to the ui file.
2017-02-16 21:09:55 +00:00
Emmanuele Bassi
51010da740 Use gtk_show_uri_on_window() in GtkLabel
Avoid the deprecated gtk_show_uri(), and allow activating link in
sandboxed applications.

https://bugzilla.gnome.org/show_bug.cgi?id=778726
2017-02-16 16:37:55 +01:00
Bastien Nocera
0875aa56ba GtkMountOperation: We use gtk_show_uri_on_window() by default
Not gtk_show_uri().

https://bugzilla.gnome.org/show_bug.cgi?id=778726
2017-02-16 16:37:55 +01:00
Bastien Nocera
76dfef6257 gtk: Ignore gtk_show_uri() deprecation warnings
https://bugzilla.gnome.org/show_bug.cgi?id=778726
2017-02-16 16:37:55 +01:00
Bastien Nocera
c358383d6c GtkLinkButton: We use gtk_show_uri_on_window() by default
Not gtk_show_uri().

https://bugzilla.gnome.org/show_bug.cgi?id=778726
2017-02-16 16:37:55 +01:00
Bastien Nocera
d2c1e6faff GtkAboutDialog: We use gtk_show_uri_on_window() by default
Not gtk_show_uri().

https://bugzilla.gnome.org/show_bug.cgi?id=778726
2017-02-16 16:37:55 +01:00
Ask Hjorth Larsen
ecae2645fb Updated Danish translation 2017-02-16 14:30:13 +01:00
Ask Hjorth Larsen
484ec126c4 Updated Danish translation 2017-02-16 14:27:47 +01:00
Daniel Boles
02e9fb5a78 widget: Document signal mnemonic-activate
Name the extra bool argument, and move the explanatory paragraph from
the emitting method to the signal, with some minor tweaks to wording.

https://bugzilla.gnome.org/show_bug.cgi?id=778534
2017-02-15 21:44:29 +00:00
Bastien Nocera
22ea1a535e gtkshow: Prefer gtk_show_uri_on_window() which works for sandboxed apps
gtk_show_uri_on_window() will pass enough information for Portal helpers
to allow dialogue parenting in Flatpak, gtk_show_uri() won't, so
deprecate it.

https://bugzilla.gnome.org/show_bug.cgi?id=778678
2017-02-15 16:33:01 +01:00
Tong Hui
922156d05a Update zh_CN translation 2017-02-15 20:11:45 +08:00
Chun-wei Fan
ba4e2a775c Visual Studio builds: Support Visual Studio 2017
Update the autotools scripts to support Visual Studio 2017 builds by
copying the Visual Studio 2013 projects and updateing the items as
necessary to obtain the Visual Studio 2017 projects.

Note that the format of the toolset string changed, so allow one to
pass in and thus use a custom toolset string, otherwise the default
toolset string will be generated as it was before.

Note also the Visual Studio 2017 aims to be compatible with Visual
Studio 2015 on the CRT level, so binaries built with 2017 should
work without problems with the binaries built with 2015.
2017-02-15 14:43:15 +08:00
Daniel Mustieles
5d390526d3 Updated Spanish translation 2017-02-14 20:34:27 +01:00
Timm Bäder
4e141883e8 iconhelper: Remove unused _draw implementation 2017-02-14 16:56:55 +01:00
Timm Bäder
08355997c2 snapshot: Avoid a double-free
We can't pass the same string to two different snapshot states since
removing one of them will free the passed string, so just create another
one for the second state.
2017-02-14 16:56:55 +01:00
Timm Bäder
6a6b6549ea widget: Remove get_preferred_width/height mention in warning 2017-02-14 16:56:55 +01:00
Timm Bäder
1fcbc5b9e9 gtkcontainerprivate: Remove unused function prototypes 2017-02-14 16:56:55 +01:00
Timm Bäder
ec2ce26d82 colorbutton: Inherit from GtkWidget 2017-02-14 16:56:55 +01:00
Matthias Clasen
b842d6b008 3.89.4 2017-02-13 17:40:13 -05:00
Inaki Larranaga Murgoitio
d07685f903 Update Basque language 2017-02-13 22:36:57 +01:00
Inaki Larranaga Murgoitio
e36d30d7e8 Update Basque language 2017-02-13 22:36:09 +01:00
Kjartan Maraas
7409e870e7 Updated Norwegian bokmål translation. 2017-02-12 16:27:26 +01:00
Kjartan Maraas
21c6dfef3d Updated Norwegian bokmål translation. 2017-02-12 16:23:27 +01:00
Marek Černocký
4d27ac3031 Updated Czech translation 2017-02-12 13:09:13 +01:00
Lapo Calamandrei
c4524623a9 HC: insensitive styling for views. 2017-02-08 21:32:47 -05:00
Lapo Calamandrei
6eb9b57e72 adwaita: insensitive styling for views
Add an insensitive style to views, somehow we didn't ship one, so
for example, disabled textviews looked the same as sensitive ones.
2017-02-08 21:32:33 -05:00
Olivier Fourdan
afa78fcffe wayland: do not clamp anchor values
Clamping the anchor values as introduced in commit 9a5ffcd to fix bug
777176 breaks menu positioning.

By keeping the anchors rectangle size greater than zero, we end up
deducting some positive value from the original position, so there is no
need to clamp() actually, keeping the values positive is enough and
avoids the issue with menu positioning on the menubar.

An additional benefit is to make the code a lot simpler.

https://bugzilla.gnome.org/show_bug.cgi?id=778009
2017-02-06 09:29:38 +01:00
Chris Martin
705fc62840 getting-started: typo tie->the
https://bugzilla.gnome.org/show_bug.cgi?id=775864
2017-02-05 20:02:10 +00:00
Piotr Drąg
ee8258d285 Update Polish translation 2017-02-05 16:08:59 +01:00
Timm Bäder
a728a2e061 Never return NULL from gdk_get_program_class
gdk_init is not calling g_set_prgname anymore, so just return a dummy
string from gdk_get_program_class if it has not been set before.
2017-02-05 15:03:35 +01:00
Timm Bäder
78a36cf4bb popover: Simplify gtk_popover_measure 2017-02-05 15:03:35 +01:00
Timm Bäder
07643764a6 infobar: Use GtkButton:icon-name 2017-02-05 15:03:35 +01:00
Timm Bäder
3b1601f8ad colorchooserwidget: Show palette by default
Restore the old behavior.
2017-02-05 15:03:35 +01:00
Jiri Grönroos
2e66cda896 Update Finnish translation 2017-02-04 21:10:03 +00:00
Michael Catanzaro
3905726627 notebook: redraw arrows after closing a tab
Thanks to Daniel Boles for helping with a crash in an earlier version of
this patch.

https://bugzilla.gnome.org/show_bug.cgi?id=777547
2017-02-04 12:57:08 -06:00
Sveinn í Felli
059e50a512 Update Icelandic translation
(cherry picked from commit 6209a8e306)
2017-02-04 15:24:31 +00:00
Timm Bäder
f251c5bf94 spinbutton: Fix right and middle click on +/- buttons
Tell the gesture that we handle all buttons and actually claim the
gesture in the ::pressed handler
2017-02-01 21:05:27 +01:00
Daniel Mustieles
992796405d Update Spanish translation 2017-02-01 10:15:52 +00:00
Daniel Boles
2f2ec4fec8 searchentry: Fix typo in documentation 2017-01-31 09:39:39 +00:00
Timm Bäder
2f6d60d6af stack: Fix node position during crossfade 2017-01-30 18:11:15 +01:00
Timm Bäder
2aea8dfee9 togglebutton: Move :inconsistent to GtkCheckButton 2017-01-30 18:11:00 +01:00
Timm Bäder
66d584ce6e togglebutton: Move :draw-indicator property to GtkCheckButton
It's not used in GtkToggleButton at all, only in GtkCheckButton and
GtkRadioButton.
2017-01-30 18:11:00 +01:00
Timm Bäder
1a0577b3f4 checkbutton: Remove unused vfunc 2017-01-30 18:11:00 +01:00
Timm Bäder
eb0c5a6a6c checkbutton: Remove unused function prototype 2017-01-30 18:11:00 +01:00
Timm Bäder
6c6ed7496c widget: Remove gtk_widget_class_list_style_properties
Unused.
2017-01-30 18:11:00 +01:00
Timm Bäder
de56947e86 gtkbuilder: Remove unused struct 2017-01-30 18:11:00 +01:00
Timm Bäder
c82fee4882 build: Stop compressing ui files
It's slower at runtime. Instead, strip blanks.
2017-01-30 18:11:00 +01:00
William Hua
2088cc3395 mir: handle surface placement events
This allows the Mir backend to properly emit "moved-to-rect."
2017-01-30 03:06:59 -05:00
William Hua
b09b69472b mir: use mir_surface_spec_set_placement for menus
This API was added to Mir for GTK menus, combo boxes, etc.
2017-01-30 03:06:01 -05:00
Fran Dieguez
18a00ec5b1 Update Galician translation 2017-01-29 19:59:21 +00:00
Fran Dieguez
d9c006ebfd Update Galician translation 2017-01-29 19:48:13 +00:00
Dušan Kazik
a7bc291345 Update Slovak translation 2017-01-29 09:32:03 +00:00
Dušan Kazik
1d401cd880 Update Slovak translation 2017-01-29 09:30:05 +00:00
Daniel Boles
88ae92050e Remove tests/testtreemenu
Since GtkTreeMenu became a private class only used by GtkComboBox, all
this test actually did was to show a ComboBox constructed with a custom
CellArea. Now that the latter is no longer possible, the test just shows
a handful of settings that do nothing. Just test GtkComboBox directly.
2017-01-28 20:25:37 +00:00
Piotr Drąg
bfaed659f1 Fix translator comments
They need to be exactly one line above a string to show up in .po files.
2017-01-28 01:13:12 +01:00
Michael Catanzaro
03c026e6b6 Revert "notebook: redraw arrows after closing a tab"
This reverts commit 218beb2ef4.
2017-01-27 08:54:24 -06:00
Carlos Garnacho
4ebf98f440 wayland: Ensure to set gtk_surface dbus properties after hide()
Currently hiding destroys the wl_surface and all related interfaces,
(including the gtk_surface1) so the next time the GdkWindow is mapped,
we don't bother to set the DBus properties. Toggle the check off so
it's actually issued again after the GdkWindow gets a gtk_surface1.

https://bugzilla.gnome.org/show_bug.cgi?id=773686
2017-01-25 18:12:51 +01:00
Baurzhan Muftakhidinov
c8c4a940c4 Update Kazakh translation 2017-01-25 09:11:28 +00:00
Baurzhan Muftakhidinov
c85072806d Update Kazakh translation 2017-01-25 09:08:46 +00:00
Michael Catanzaro
218beb2ef4 notebook: redraw arrows after closing a tab
https://bugzilla.gnome.org/show_bug.cgi?id=777547
2017-01-24 08:33:35 -06:00
Mario Blättermann
d2a88272bd Update German translation 2017-01-24 13:32:48 +00:00
Timm Bäder
572639fed7 widget: Remove gtk_widget_get_preferred_size mention from docs
Mention gtk_widget_measure instead.
2017-01-22 15:01:53 +01:00
Timm Bäder
82e49952e5 flowbox: Measure child widget sizes using gtk_widget_measure 2017-01-22 15:01:40 +01:00
Timm Bäder
f05402ce2b widget: Remove warning about already visible widgets
That was just added by mistake of course.
2017-01-22 14:48:28 +01:00
Timm Bäder
56a58655fe Remove unnecessary gtk_widget_show calls 2017-01-22 14:38:21 +01:00
Timm Bäder
dc904ffaf9 gtkfontbutton: hexpand the font label
To restore the previous look.
2017-01-22 14:38:21 +01:00
Daniel Boles
19e2f347e1 3to4: Fix typo in previous commit 2017-01-21 22:43:50 +00:00
Daniel Boles
0a347c6ff2 3to4: Fix suggested replacements for border-width
The new CSS border-spacing does what Grid::(row|column)_spacing and
Box::spacing already did, i.e. controlling the space added between child
widgets, so it’s not a replacement for Container::border-width.
2017-01-21 22:39:06 +00:00
Daniel Boles
90b9dc458f combobox: Stop pointlessly NULL-checking the menu
We now have a valid menu to use at all times.
2017-01-21 21:34:46 +00:00
Daniel Boles
8c980445e3 combobox: Move area and menu to .ui file
Now that priv->area is guaranteed to be constructed by us, and not
passed in by a user, we can move it to the .ui file and stop manually
managing its lifetime altogether. And once the area is there, we can
move the menu there too (and stop pointlessly destroying/rebuilding it).
2017-01-21 21:34:46 +00:00
Daniel Boles
439fcf7578 combobox: Remove property cell-area
The CellArea is going to become a pure implementation detail & be moved
to the .ui, instead of letting users mess with it (if anyone ever did).
2017-01-21 21:34:45 +00:00
Daniel Boles
36413a8eca combobox: Reuse code rather than reimplementing it
We already have cell_layout_is_sensitive() to get whether at least one
cell in a Layout is sensitive, which we need because CellLayout/View
do not implement foreach(). So, since we wrote that, we can use it to
check our CellArea too, instead of doing foreach with a custom callback.
2017-01-21 19:00:10 +00:00
Daniel Boles
c7e4c82df4 combobox: some code cleanups
* Merge adjacent if statements with the same condition
 * Add a space between a function and its declaration
2017-01-21 18:59:27 +00:00
Daniel Boles
c5c0127e10 menushell: Fix select_last() to get last, not 1st
It was broken in the same way as select_first(), as explained in
commit a5211adb22
2017-01-21 18:55:46 +00:00
Daniel Boles
c662e691ed combobox: Fix documentation typo bx => box 2017-01-21 16:13:44 +00:00
Daniel Boles
a5211adb22 menushell: Make select_first() do that, not last…
It was looping over all items, not breaking out when it found the first
selectable one, and then selecting the _last_ selectable one (if any)
found. So, it did exactly the opposite of its name. This made me quite
baffled when opening a submenu with right-arrow put me at its last item.

Originally, the loop set to_select and broke if the current item was
selectable and not tear-off, meaning that it would correctly select the
first suitable item. However, when tear-off functionality was removed
in commit 4ed9452e90, so was the break.
2017-01-21 15:50:54 +00:00
Piotr Drąg
06269bf367 Update Polish translation 2017-01-20 23:47:04 +01:00
Piotr Drąg
e47bd31e6a Fix CSS spelling in a translatable string 2017-01-20 23:46:38 +01:00
Daniel Boles
71d7a1b3d0 menushell: Don’t dereference before typechecking 2017-01-20 22:15:42 +00:00
Piotr Drąg
aca0422d84 Update POTFILES.in and POTFILES.skip 2017-01-20 22:11:44 +01:00
Daniel Boles
802f838aa0 combobox: If typechecking, don’t reference before 2017-01-20 21:08:58 +00:00
Timm Bäder
ab051fd53f Don't hide windows and popovers in init()
Instead, don't make them visible in gtk_widget_init in the first place.
2017-01-20 21:51:05 +01:00
Timm Bäder
b1408c9694 fontbutton: Be a GtkWidget 2017-01-20 21:51:03 +01:00
Timm Bäder
6376aaf44b assistant: Don't forget to remove child widgets 2017-01-20 21:50:02 +01:00
Timm Bäder
0f2e043c3d toolitemgroup: Properly remove internal child widget
We now need to use gtk_widget_unparent and can't just destroy it.
2017-01-20 21:50:02 +01:00
Timm Bäder
4bd2a9bca9 popovermenu: Remove forall implementation 2017-01-20 21:50:02 +01:00
Timm Bäder
3fb4b079e1 button: Don't explicitly show child widgets 2017-01-20 21:50:02 +01:00
Timm Bäder
c36ad400fa recorder: Adapt to widget visibility changes
We now need to explicitly hide the details label.
2017-01-20 21:50:02 +01:00
Timm Bäder
3ec15d98fa Fix some widget visibility fallout 2017-01-20 21:37:08 +01:00
Timm Bäder
f4341ee9f7 widget: Remove show-all property
Doesn't make sense anymore now that gtk_widget_show_all is gone.
2017-01-20 21:37:07 +01:00
Timm Bäder
ea897c6df4 Remove gtk_widget_show_all 2017-01-20 21:37:04 +01:00
Timm Bäder
13b001b77c widget: Remove show_all vfunc 2017-01-20 21:33:38 +01:00
Timm Bäder
5f57e3b711 filechooserbutton: Be a GtkWidget
Instead of subclassing GtkBox to have 2 child widgets, subclass
GtkWidget and only render one of them.
2017-01-20 21:33:38 +01:00
Timm Bäder
d862c5c6df sizerequest: Use gtk_widget_measure to measure widget sizes 2017-01-20 21:33:38 +01:00
Timm Bäder
9679c4f0e0 gtkbuilder: Improve error messages 2017-01-20 21:33:37 +01:00
Timm Bäder
2a84be4ae5 shortcutswindow: Unset search_bar in dispose
And check for null-ness in unmap. This prevents a crash when the window
is first disposed and then unmapped.
2017-01-20 21:33:37 +01:00
Timm Bäder
5dbf8458f5 shortcutswindow: Use GtkButton:icon-name for search button 2017-01-20 21:33:37 +01:00
Timm Bäder
524bf22db7 shortcutsshortcut: Be a GtkWidget
Instead of subclassing GtkBox and overriding _add to not work, subclass
GtkWidget and add a normal GtkBox as a child widget.
2017-01-20 21:33:37 +01:00
Timm Bäder
8085884277 gtkshortcutswindow: Adapt to GtkWidget visibility changes 2017-01-20 21:33:37 +01:00
Timm Bäder
020d366ed6 widget-factory: Remove some gtk3-widget-factory leftovers 2017-01-20 21:33:37 +01:00
Timm Bäder
02c2887772 filechooser: adapt to GtkWidget:visible changes 2017-01-20 21:33:37 +01:00
Timm Bäder
8b3f5ce9a4 widget-factory: Adapt to GtkWidget visibility changes
Make the infobar and the toolbar invisible by default and remove all the
lines showing the other widgets.
2017-01-20 21:33:37 +01:00
Timm Bäder
b1eccd770e coloreditor: Hide overlay boxes 2017-01-20 21:33:37 +01:00
Timm Bäder
33d41fccdd Hide popovers and toplevels by default 2017-01-20 21:33:37 +01:00
Timm Bäder
fee788cd4a widget: Be visible by default 2017-01-20 21:33:36 +01:00
Daniel Boles
360fbd0920 combobox: popdown() the menu during unmap()
combo_box_popdown() currently skips popping down our menu if it is NULL.
But the required call to this at end-of-life was in destroy(), by which
point dispose() already NULLed the menu, so Menu::popdown() would never
run, even if it should. Fix this by trying popdown() earlier in unmap().
Also, add a converse assurance that we don’t popup() while not mapped.

Even once we remove all the now-pointless NULL checks, destroy() was the
wrong place to call combo_box_popdown(), and unmap() is the right place.
2017-01-20 13:47:26 +00:00
Carlos Garnacho
f686dfb575 Revert "wayland: Push NULL buffer when hiding a GdkWindow"
This reverts commit 6beb0b91c9.
2017-01-20 14:04:37 +01:00
Mandy Wang
95e0b494df update zh_CN translation 2017-01-20 20:39:17 +08:00
Chun-wei Fan
3629def0d0 gtkmain: Fix build on Windows
gtk_init() removed its support for supporting arguments, so we ought to do
likewise for Windows, which actually defines items that call gtk_init()
the old way (and also get rid of argument support in those functions,
since the direction is to not support them).

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-01-20 19:50:02 +08:00
Chun-wei Fan
f31aad3963 Visual Studio builds: Update GSK project
Another GSK Vulkan renderer source was added for the build, so include it
here.
2017-01-20 18:35:52 +08:00
Benjamin Otte
f8b6831c98 gtk: Register GSK resources at startup
That way they show up in the resource list in the inspector even when
running with the Cairo renderer.
2017-01-20 01:19:02 +01:00
Daniel Boles
68824e80fd combobox: Remove dead code & unneeded type checks
Commit fdc0c6426b removed the appears-as-
list style property, & hence the ability to put the ComboBox into list
mode – but it left behind a pile of hijinks that were only used in said
mode & so were now doing absolutely nothing. This commit deletes those.

While doing that, I got carried away…so this also stops pointlessly type
checking popup_widget, as that can never be anything but a GtkTreeMenu.
It still checks for NULL everywhere, which shouldn’t be needed, but (A)
this commit is already too big, & (B) simply removing such checks where
they _seem_ unnecessary causes bad times. I’ll puzzle through that later
2017-01-19 23:50:09 +00:00
Daniel Boles
d7c3d86f02 testcombo—Don’t set appears-as-list style property
List mode no longer exists, so this had no effect.
2017-01-19 22:10:59 +00:00
Daniel Boles
c790724469 combobox: Make wrap-width and grid mode work again
Commit fdc0c6426b for removing (partly!)
appears-as-list also deleted the code that propagated wrap-width to the
TreeMenu and thus put us into “grid mode”. This restores that code.

And as Benjamin noted, calling check_appearance() here is wrong, so bye.
2017-01-19 22:08:45 +00:00
Matthias Clasen
47bc8603b0 Add a section about initialization to the migration guide
Just the facts.
2017-01-19 13:53:11 -05:00
Matthias Clasen
2c7e567f05 Update callers
Adapt all our tests and examples to the new initialization api.
2017-01-19 13:50:17 -05:00
Matthias Clasen
4d7fa52fe9 Drop gdk init api
Supporting separately initialized gdk is just not worth it.
2017-01-19 13:21:12 -05:00
Matthias Clasen
7a13715736 Drop arguments from gtk_init
This is our ultimate goal: no more commandline argument handling.
Lots of callers will have to be updated.
2017-01-19 13:21:12 -05:00
Matthias Clasen
f2ee897009 Simplify initialization code
Now that gtk_get_option_group and gtk_parse_args are no longer
public, we can get rid of them.
2017-01-19 13:21:12 -05:00
Matthias Clasen
64b40c65ae Drop the --gtk-debug and --gtk-no-debug options
We have environment variables that cover this.
2017-01-19 13:21:12 -05:00
Matthias Clasen
4cfcca7997 Drop the --g-fatal-warnings argument
We don't need it, GLib has an environment variable for this.
2017-01-19 13:21:12 -05:00
Matthias Clasen
9c52f6b3ca Drop the --gtk-modules argument
We don't need it; the environment variable is enough.
2017-01-19 13:21:12 -05:00
Matthias Clasen
63d6e2d8e2 Don't export gtk_get_option_group
We want to get rid of commandline option handling in GTK+.
This is a step in that direction.
2017-01-19 13:21:12 -05:00
Matthias Clasen
42fd5a0b8b Stop exporting gtk_parse_args
We want to stop handling commandline arguments, and that is the
sole purpose of this function. So it has to go
2017-01-19 13:21:12 -05:00
Matthias Clasen
7e8eb3ddcd Drop gtk_init_with_args
We want to simplify our initialization code and remove all commandline
argument handling from it. The first stop for this is to reduce the
number of gtk_init variants we have.
2017-01-19 13:21:12 -05:00
Emmanuele Bassi
b39e537e1c gdk: Skip GdkVulkanContext methods when building introspection data
We cannot use Vulkan types through introspection anyway.
2017-01-19 18:18:07 +00:00
Carlos Garnacho
6beb0b91c9 wayland: Push NULL buffer when hiding a GdkWindow
This is how windows are meant to be hidden as per the wayland
protocol, there's no need to destroy the xdg_surface and other
interfaces.

Also, rename gdk_wayland_window_hide_surface() to clear_surface(),
as that's what it does.

https://bugzilla.gnome.org/show_bug.cgi?id=773686
2017-01-19 16:18:54 +01:00
Daniel Boles
94ae322f65 combobox: Avoid a pointless assignment
Don’t get the active item pointer before the grid/non-grid conditional,
because if we’re in grid mode, we re-get it before selecting it anyway.
2017-01-19 03:31:52 +00:00
Daniel Boles
c83ead5eea combobox: Also preselect active item in grid popup
i.e. when wrap-width > 0. This was only being done for non-grid cases.
So, ComboBoxes in grid mode did not indicate their selection when popped
up and required users to keynav from ‘nothing’ (at the top-left) to the
item they wanted to select. By selecting the active item in advance, now
it’s highlighted & acts as the starting point for keynav around the grid
2017-01-19 03:18:08 +00:00
Daniel Boles
494a38504b scale: Really fix documentation of set_digits()
This previously only mentioned its effect on the displayed value, and
even after the previous commit, its rounding of the actual value upon
change still reads like too much of an afterthought. Worse, it wasn’t
mentioned at all in the doc for the @digits parameter. Change this to
emphasise rounding always occurs and the displayed value is secondary.
2017-01-19 00:45:32 +00:00
Daniel Boles
0776bd438b scale: doc: set_digits doesn’t round retroactively
Whether it should is an open question, but for now, the documentation
should clearly indicate that currently rounding is only applied upon
changes to the value, not to the existing value when ::digits changes.
This is already clear in the doc for the underlying Range::round-digits.

https://bugzilla.gnome.org/show_bug.cgi?id=358970
2017-01-19 00:17:56 +00:00
Daniel Boles
d9dd312752 Scale: Always sync ::digits to Range::round-digits
The documents state that gtk_scale_set_digits() “causes the value of the
adjustment to be rounded off to this number of digits, so the retrieved
value matches the value the user saw.” Note the lack of any condition.

But in fact, if draw-value was false, rounding was disabled on the base
Range, so values that weren’t displayed weren’t rounded. This made the
docs wrong and made an apparently cosmetic detail alter functionality.

Fix by ensuring the number of digits set on Scale is always propagated
along to gtk_range_set_round_digits(), thus rounding to it in all cases
when the value changes, regardless of whether the value is displayed.

This doesn’t address the other idea from Bugzilla: that changing the
number of digits should clamp the _existing_ value if it’s more precise.
This contradicts digits docs in the base Range, but the above from Scale
can be read as implying it’ll happen. For now, that’s an open question.

https://bugzilla.gnome.org/show_bug.cgi?id=358970
2017-01-19 00:17:56 +00:00
Daniel Boles
e4ede33a65 combobox: Work around popup handler altering model
GtkFileChooserButton installs a handler for the popped-up signal, which
refilters the menu, in order to hide the “(None)” item from the popup
if it was previously selected in the ComboBox. This oddity means that:

 • Until recently, this item would be selected in the menu shell, which
   would then be popped up and change the selection away from that item.
   This was therefore redundant (more on which below!) but benign.

 • After the patch for https://bugzilla.gnome.org/show_bug.cgi?id=771242
   however, this causes a critical assertion fail, as now we stash the
   originally selected item in a pointer so that it can be selected only
   after realisation/popup – but by that stage, the model has just been
   refiltered and the previous pointer no longer refers to a valid item.

This commit works around this problem by, after popping up the menu,
getting the active item again, in case a popped-up handler has gone and
invalidated the pointer to the active item that we saved before popup.

If a handler does this, everything done to find/use the original item is
pointless. But this avoids the ugly critical in FileChooserButton, while
not harming every other ComboBox that doesn’t mess with its model while
popping up (hopefully the vast majority), and it’s very difficult to
imagine a way to check if the active item is /going to/ be hidden later)
2017-01-18 22:24:24 +00:00
Daniel Boles
7a5c995fd4 combobox: Don’t select active item if it’s hidden
I hope no one ever actually brings such a silly item into this world,
but this achieves symmetry with the similar checks immediately after.
2017-01-18 22:24:24 +00:00
Daniel Boles
2e973cedc9 combobox: Move variables into narrowest scopes 2017-01-18 22:24:24 +00:00
Dušan Kazik
0a0401cce3 Update Slovak translation 2017-01-18 20:50:55 +00:00
Benjamin Otte
ee9828d49c vulkan: Fix copy/paste error 2017-01-18 16:46:04 +01:00
Benjamin Otte
12637195de vulkan: Add compiled shaders
I forgot to include them when adding the shaders.
2017-01-18 16:42:01 +01:00
Benjamin Otte
cde933ebd9 vulkan: Compute right size for outset shadow
We were emitting the box and not the shadow box as the rectangle. So we
didn't draw any shadows. Oops.
2017-01-18 16:39:27 +01:00
Benjamin Otte
fb47a8d714 css: Remove deprecated number-as-pixels compatibility
Previously, for compatibility with GTK 3.0, we allowed specifying
numbers without units and interpreted them as pixels, even when the CSS
specification didn't.

Remove that now that we can break API.
2017-01-18 04:13:56 +01:00
Benjamin Otte
bd24ca5b18 vulkan: Add support for unblurred box-shadow 2017-01-18 04:13:56 +01:00
Benjamin Otte
84c1204853 rendernode: Add getters for box-shadow nodes 2017-01-18 04:13:56 +01:00
Benjamin Otte
2ae6f59e7a docs: Remove mention of GdkColor 2017-01-18 04:13:56 +01:00
Matthias Clasen
95834ad1e1 Revert "filechooser portal: Make sure we can save"
This reverts commit 4875c689a0.

This was a thinko. Writable is not actually settable from the
application side, but only for the user, from the backend side.
2017-01-17 14:14:44 -05:00
Matthias Clasen
4875c689a0 filechooser portal: Make sure we can save
Explicitly request files for saving to be writable, otherwise
we are at the mercy of the portal, which currently gets it wrong.
2017-01-17 14:09:55 -05:00
Rui Matos
7a1b30f16e gdk/wayland: Always get the seat's key modifiers from the GdkKeymap
Elsewhere we already go through the keymap to get modifiers so we
should do the same here. In fact, this was relying on xkb modifier
mask values being bitwise compatible with GdkModifierType which isn't
necessarily true.

https://bugzilla.gnome.org/show_bug.cgi?id=770112
2017-01-17 18:24:28 +01:00
Rui Matos
515b71f14c gdk/wayland: Don't add GDK_META_MASK to gdk mod masks if MOD1 is set
Gtk+ treats MOD1 as a synonym for Alt, and does not expect it to be
mapped around, so we should avoid adding GDK_META_MASK if MOD1 is
already included to avoid confusing gtk+ and applications that rely on
that behavior.

https://bugzilla.gnome.org/show_bug.cgi?id=770112
2017-01-17 18:24:28 +01:00
Jonas Ådahl
7ca6d7585f wayland: Handle subsurface as popup parent
When a subsurface is used as a parent of a popup, GDK needs to traverse
up to the transient-for as the next parent, to properly find the parent
used by the popup positioner. This is because the parent of a popup
must always either be an xdg_popup or an xdg_surface, but traversing
the "parent" (in GDK terms) upwards from a subsurface will end up on
the fake root window before we hit the actual parent (in Wayland terms).

https://bugzilla.gnome.org/show_bug.cgi?id=776225
2017-01-17 09:02:41 +01:00
Benjamin Otte
01d16524da vulkan: Add fallback message for node-as-texture
This is mainly to motivate me to implement it.
2017-01-17 06:38:36 +01:00
Benjamin Otte
6bec7aae89 vulkan: Generate clip shaders from same source
Instead of having 3 different shaders for the different clipping
versions, just have one shader and use a preprocessor define to use
different clip functions.

That preprocessor define is set in the Makefile.

Also use foo.frag and foo.vert as the file extensions instead of using
foo.frag.glsl and foo.vert.glsl, as that's what glslc suggests as
extension.
2017-01-17 06:17:55 +01:00
Benjamin Otte
3768c676c6 vulkan: Add clip.vert.glsl
Implement clipping the same way as in the last commit for the
fragment shaders.
2017-01-17 06:17:55 +01:00
Benjamin Otte
cf65443fb3 vulkan: Add a clip.frag.glsl include
This include is supposed to handle clipping for the different clipping
methods.

So far, we only use it in the rounded rect cases.
2017-01-17 06:17:55 +01:00
Benjamin Otte
6a60e335cd vulkan: Add push constants to fragment shader
That way we don't need to move the clip rounded rect manually through
the vertex shader into the fragment shader but can just look at the push
constants.

Simplifies shaders a lot.
2017-01-17 06:17:55 +01:00
Benjamin Otte
c7d899c535 vulkan: Move push constants into their own header
This is the first step towards easing maintenance of the Vulkan shaders
by moving common code into headers.
2017-01-17 06:17:55 +01:00
Mohammed Sadiq
8ffecabd93 wayland: avoid an unnecessary g_list_length call
https://bugzilla.gnome.org/show_bug.cgi?id=777363
2017-01-16 21:42:05 -05:00
Matthias Clasen
f21827eb22 3.89.3 2017-01-16 17:50:02 -05:00
Matthias Clasen
cfb599bf67 We no longer have gdktestutils
Update the docs build to reflect that.
2017-01-16 17:50:02 -05:00
Daniel Mustieles
a514faa074 Updated Spanish translation 2017-01-16 21:33:24 +01:00
Daniel Mustieles
ff4c05532b Updated Spanish translation 2017-01-16 21:33:13 +01:00
Timm Bäder
239f14cc96 switch: Fix build
Partial revert of 2b6b5c1c8f, which
removed a little too much.
2017-01-16 21:01:59 +01:00
Timm Bäder
2b6b5c1c8f switch: Remove some unused code 2017-01-16 18:17:28 +01:00
Timm Bäder
ca889b6e21 gtkentryprivate: Remove unused prototype 2017-01-16 17:23:01 +01:00
Timm Bäder
28a3dd539d scalebutton: Use GtkButon:icon-name in the ui file 2017-01-16 17:22:53 +01:00
Timm Bäder
3cfcbe2ccf spinbutton: Restore gtk3 focus behavior
Focus the spinbutton on button press, never focus the buttons.
2017-01-16 17:22:45 +01:00
Timm Bäder
132f2721ce inspector: Use GtkButton:icon-name in ui files 2017-01-16 17:22:38 +01:00
Timm Bäder
f4afa000a1 entry: Remove unused struct member 2017-01-16 17:22:29 +01:00
Timm Bäder
32783a8187 gtk4-section: Add GtkInfoBar:revealed setter+getter 2017-01-16 17:22:11 +01:00
Olivier Fourdan
4259aba883 wayland: avoid 0 width/height anchor rectangle
Passing a rectangle with zero width or height to xdg_shell-v6
set_anchor_rect() will cause a protocol error and terminate the client,
as with gedit when pressing the Win key.

Reason for this is because the rectangle used to set the anchor comes
from gtk_text_layout_get_iter_location() which uses the pango layout
width/height, which can be empty if there is not character at the given
location.

Make sure we don't use 0 as width or height as an anchor rectangle to
avoid the protocol error, and compensate the logical position of the
given rectangle if the size is changed, so that the actual position
remains as expected by the client.

https://bugzilla.gnome.org/show_bug.cgi?id=777176
2017-01-16 13:55:51 +01:00
Chun-wei Fan
f2ee8f4342 Visual Studio builds: Update gsk project
Another Vulkan renderer source was added, so include them in the builds.
2017-01-16 13:47:21 +08:00
Daniel Boles
5e816f7283 grid: Fix plural error in docs' @Short_description 2017-01-15 20:37:49 +00:00
Jordi Mas
b373512523 Update Catalan translation 2017-01-15 20:18:08 +01:00
Benjamin Otte
87497ca2e1 snapshot: Rename gtk_snapshot_translate_2d()
It's now called gtk_snapshot_offset().
2017-01-13 14:37:48 +01:00
Jordi Mas
fc94ee99e8 Update Catalan translation 2017-01-13 06:51:42 +01:00
Benjamin Otte
6055028c96 snapshot: Rename append APIs
Instead of having gtk_snapshot_append_foo_node(), just have
gtk_snapshot_append_foo(). Nobody needs to know that this internally
uses nodes.
2017-01-13 04:46:09 +01:00
Benjamin Otte
e5e5beafa5 cssimage: Fallback images have no aspect ratio
The aspect ratio for fallback image was incorrectly set to 1.

Reftest is included.
2017-01-13 03:38:36 +01:00
Benjamin Otte
a06b1ea1ba cssimage: Scale images to contain, not cover
Images with just an aspect ratio, but without a size, should be scaled
to be fully visible in the given area.
But we scaled them to completely cover the given area, which made them
partially invisible.

Reftest included.
2017-01-13 03:38:36 +01:00
Benjamin Otte
b58de2d16c snapshot: Redo pop() API
gtk_snapshot_pop() => removed
gtk_snapshot_pop_and_append() => gtk_snapshot_pop()

So now there is no way to get a rendernode out of the snapshotting API
until you gtk_snapshot_finish().
2017-01-13 03:38:36 +01:00
Benjamin Otte
bc3ba68641 snapshot: Add gtk_snapshot_push_blend()
and use it for backgrounds.
2017-01-13 03:38:36 +01:00
Benjamin Otte
9616df9292 reftests: Fix test
No, GtkActions don't need to be part of this test.
2017-01-13 03:38:36 +01:00
Benjamin Otte
4668e6dc63 stack: Build stored render node with custom Snapshot object
This is in preparation for API changes in GtkSnapshot.
2017-01-13 03:38:36 +01:00
Benjamin Otte
d9b0685b49 Add gtk_snapshot_push_cross_fade()
... and use it.

The function is a bit awkward because it requires 2 calls to
gtk_snapshot_pop(), but once you accept that, it's very convenient to
use, as can be seen by the 2 implementations.
2017-01-13 03:38:36 +01:00
William Hua
670ae58cc9 mir: use modal window hint 2017-01-12 17:24:19 -05:00
Matthias Clasen
b355c80977 widget-factory: Add a system tab to the about dialog
Just for trying it out.
2017-01-12 15:30:11 -05:00
Matthias Clasen
3024956df1 about dialog: Add a "system" tab
This is a free-form tab that can contain information about the
system environment. To see it, set GtkAboutDialog::system-information
to a non-NULL value.

https://bugzilla.gnome.org/show_bug.cgi?id=776604
2017-01-12 15:29:56 -05:00
Timm Bäder
e08918cce0 actionbar: Notify when :revealed changes 2017-01-12 15:14:25 +01:00
Timm Bäder
db12128d35 infobar: Fix copy&paste error in documentation
Of course you shouldn't call gtk_dialog_response on a GtkInfoBar.
2017-01-12 09:18:55 +01:00
Timm Bäder
58c252d5e6 infobar demo: Adapt to GtkInfoBar changes
Bind GtkToggleButton:active to GtkInfoBar:revealed instead of :visible.
2017-01-12 09:18:52 +01:00
Timm Bäder
1bb4f1e9d9 infobar: Add :revealed property 2017-01-12 09:16:02 +01:00
Timm Bäder
e3871c4424 infobar: Keep GParamSpecs around
So we can use them in notify_by_pspec
2017-01-12 09:13:38 +01:00
Benjamin Otte
d54117024c x11: Add call to XInitThreads()
The Mesa Vulkan drivers need XInitThreads() being called, because their
implementation has to use threads.

And I don't want to make the call depend on if Vulkan is compiled in
because that makes GTK's X11 behavior depend on compile-time flags, so
it's always called.
2017-01-12 02:01:07 +01:00
Matthias Clasen
0868757cfd More filter documentation updates
Actually document the filter property, not just -gtk-icon-filter.
2017-01-11 14:07:56 -05:00
Matthias Clasen
5f2a7ed3c1 Correct the -gtk-icon-filter docs
I was overlooking that it is possible to specify multiple
functions. Also add a reference to the relevant spec draft.
2017-01-11 13:42:58 -05:00
Benjamin Otte
10bc71a5e6 build: List resource files explicitly
This way, we ensure that files that are built during make always get
properly listed. And we ensure that creating the resources actually
depends on them.
2017-01-11 18:33:09 +01:00
Benjamin Otte
b8371a1d61 shortcutswindow: Make dispose work properly 2017-01-11 18:33:09 +01:00
Benjamin Otte
fd762d203c tests: Add a rendernode test for borders 2017-01-11 18:33:09 +01:00
Benjamin Otte
b186bce7ff vulkan: Add shader for border rendering 2017-01-11 18:33:09 +01:00
Alexander Larsson
c00f8dce9f GtkSnapshot: Always use int for the translation
We already take ints when setting the translation, so it can't
currently take any other values. Additionally, I was seeing large
costs in int -> double -> int for the rects in
gtk_snapshot_clips_rect(), as all callers really are ints (widget
allocations) and the clip region is int-based.

This change completely cleared a 2% rectangle_init_from_graphene from
the profile and is likely to have nice performance effects elsewhere
too.
2017-01-11 16:14:03 +01:00
Alexander Larsson
275185d415 widget: Avoid typechecks when accessing ->clip and ->allocation 2017-01-11 15:30:30 +01:00
Alexander Larsson
8cabfef9c9 GtkCSSImage: Avoid some type checks
The width/height/aspect getters are called a lot, and almost all
callers already verify it from _gtk_css_image_get_concrete_size (),
so just skip these checks.
2017-01-11 15:28:35 +01:00
Alexander Larsson
7bee22bcb6 Avoid some more type checks for internal calls 2017-01-11 15:27:51 +01:00
Alexander Larsson
68a27a9951 gtkcssgadget: Use private non-checking versions of gtk_widget calls
This avoids a lot of checking overhead.
2017-01-11 12:05:44 +01:00
Alexander Larsson
6341fab985 GtkSnapshot: Reuse snapshot state objects
Rather than allocate new ones all the time we reuse the previous ones.
We just clear them and save them in the parent for later reuse.
2017-01-11 11:41:46 +01:00
Alexander Larsson
f67ae85b7a GtkSnapshot: Move collect data to a union in the state
This means we allocate the collect data with the state, avoiding
an extra allocation. Also, a union means every state object
is the same size and we could reuse the state objects.
2017-01-11 11:21:27 +01:00
Alexander Larsson
65ad2541d7 Snapshot: Only record names if inspector is recording
Otherwise we do a lot of allocations and vprintf calls which are
not used.
2017-01-11 10:22:40 +01:00
Alexander Larsson
2f453cc57e gsk_rounded_rect_init_copy: Don't normalize
This was showing up quite high on the profiles, and there is
no real reason for copy to normalize, as the source is a
GskRoundedRect which should be normalized already unless
you did something very strange (and then you should have normalized
manually).
2017-01-11 09:23:37 +01:00
Alexander Larsson
882290b479 Skip dynamic type check in css value getters
This gets called a lot during snapshotting, and this change
alone brings down snapshot time by almost 10% in a syntethic
snapshot test.
2017-01-11 09:20:30 +01:00
Matthias Clasen
249a0b1f22 Some updates to the migration guide 2017-01-10 21:21:26 -05:00
Matthias Clasen
8a83362fb8 Document -gtk-icon-filter
Not much detail here yet, but the syntax is documented.
2017-01-10 21:21:26 -05:00
Benjamin Otte
4c7ddbf519 cssimage: Fix cross-fade
Simgle image cross-fade opacity was computed the wrong way, which caused
weird fade-in/out animations, for example in flat buttons.

I messed this up when porting cross-fades to snapshot().
2017-01-11 02:53:12 +01:00
Matthias Clasen
9133ec5cd4 Remove an unnecessary check
Since the demise of theme engines, we can no longer hit
the case of id >= GTK_CSS_PROPERTY_N_PROPERTIES. So don't
check for this in a very frequently called function.
2017-01-10 19:56:21 -05:00
Matthias Clasen
c1dc36dff0 Use an internal parameter check here as well
We should not slow down the core parts of the css machinery
with type checks.
2017-01-10 19:56:16 -05:00
Matthias Clasen
ecd0ce3993 Use gtk_internal_return_val_if_fail here
It seems odd to have checks in just a few functions,
so switch everything over to use the internal versions.
2017-01-10 19:56:09 -05:00
Matthias Clasen
a013a16d1c Use _gtk_widget_get_window more
This avoids type checks in places where we know it is safe.
2017-01-10 19:56:02 -05:00
Matthias Clasen
d9bc675cba Refactor some css transition code slightly
Reshuffling things a bit to avoid a bunch of NULL and
type checks.
2017-01-10 19:55:57 -05:00
Matthias Clasen
4f0cf475a5 Use the .symbolic.png assets in Adwaita
Using an image() fallback from svg to png doesn't make too
much sense, since the svg is always used (unless librsvg is
not present), while the png icon is faster and cheaper to
load and thus preferable.
2017-01-10 17:16:10 -05:00
Rui Matos
ae61220c9f gdk/wayland: Handle non-existant gsettings keys
Since we're a library, crashing on gsettings keys, whose presence is out
of our control, isn't appropriate.

https://bugzilla.gnome.org/show_bug.cgi?id=775846
2017-01-10 15:17:32 +01:00
Rui Matos
b46da27d34 gdk/wayland: Add support for the gtk-enable-primary-paste gsetting
The gsetting was recently added so that we can have this configurable
on the wayland backend too.

https://bugzilla.gnome.org/show_bug.cgi?id=775846
2017-01-10 15:17:27 +01:00
William Hua
57a11ca28d mir: fix compile-time warnings 2017-01-09 17:55:31 -05:00
Daniel Boles
0b7542bad1 revealer: Fix a typo in a function doc
Also, "ie" wasn't very clear, but fixing that to "i.e." would cause
truncation of the summary when processed by bindings using doxygen. So,
I replaced it with "in other words", which is no _less_ clear, at least.
2017-01-09 22:44:46 +00:00
William Hua
a50a98f38b mir: properly handle empty clipboard
https://bugzilla.gnome.org/show_bug.cgi?id=775732
2017-01-09 12:04:48 -05:00
Chun-wei Fan
ea58ebe76d Visual Studio builds: Move project files to win32/
It was suggested that the project files to be moved to win32/, so that we can
have one less layer of directories we need to go down into to reach the project files.
2017-01-09 15:38:48 +08:00
Chun-wei Fan
e382d9d9b5 build/Makefile.msvcproj: Improve documentation
Tell people about what happens when generating projects when Visual
Studio 2013 or later is required, and mention that the .headers are
only needed when headers need to be copied.
2017-01-09 12:11:33 +08:00
Benjamin Otte
dcb15d6728 cssgadget: Compute clip correctly
We were computing it relative to the gadget allocation, but it should be
relative to the widget allocation.
2017-01-09 01:12:06 +01:00
Timm Bäder
deb458c656 widget: Document child/sibling accessors 2017-01-08 16:58:27 +01:00
Timm Bäder
545fb271b7 switch: Use a widget as slider 2017-01-08 16:54:34 +01:00
Timm Bäder
9b76badb50 widget: Add construct-only css-name property
So we can set the css name of a widget to something that's not related
to the class name. If the css-name property is set to NULL, we will
still fall back to the one set using gtk_widget_class_set_css_name which
is alwasys non-NULL since GtkWidget itself sets it to "widget".
2017-01-08 16:44:46 +01:00
Timm Bäder
d15ca3b2b4 actionbar: Fix class and instance struct parent member 2017-01-08 15:12:45 +01:00
Timm Bäder
3d5a62a0c9 actionbar: Add revealed property
So we can show and hide it with a transition as well as bind another
property to it.
2017-01-08 14:57:11 +01:00
Timm Bäder
ad8acdcebf testsuite/cssprovider: Use actual existing style property
All the style properties in GtkTreeView are gone, so use one from
GtkScrollbar for now.
2017-01-08 13:10:43 +01:00
Timm Bäder
c392f41bb2 builderparser: Shuffle if-statements around once more
The previous reordering broke the builderparser test case.
2017-01-08 13:07:12 +01:00
Timm Bäder
f00ccd3259 testsuite/builder: Use g_assert_no_error to check GError
So we get a proper error message.
2017-01-08 12:02:48 +01:00
Timm Bäder
de6b788a91 printunixdialog: Remove leftover draw handler 2017-01-08 11:06:49 +01:00
Timm Bäder
48d5f7843b actionbar: Add revealer as internal child 2017-01-08 10:49:06 +01:00
Timm Bäder
12c2274750 actionbar: Remove show() and hide() implementations
They only show/hide the widget in a delayed fashion which doesn't
work, just like it doesn't work with infobars and popovers.
2017-01-08 10:46:26 +01:00
Rafael Fontenelle
c78bf6341d Update Brazilian Portuguese translation 2017-01-08 04:31:34 +00:00
Rafael Fontenelle
93e609ed69 Update Brazilian Portuguese translation 2017-01-08 03:40:55 +00:00
Benjamin Otte
7ade6e3f46 gdk: Remove testing functions
They were unused and unimplemented.
2017-01-08 03:46:30 +01:00
Benjamin Otte
2a9ae1e8df tests: Remove gtk_widget_send_key()
It's unused in GTK.
2017-01-08 03:46:30 +01:00
Benjamin Otte
daf0270f1a tests: Remove widget find functions
They are all unused by GTK.

And other people can write their own find functions if they need any in
their tests.
2017-01-08 03:36:05 +01:00
Matthias Clasen
507a1e4d7a Make GTK_DEBUG=interactive work better
We currently have various ways to initialize GTK+, and not
all of them were supporting this way of bringing up the
inspector. Fix this.

https://bugzilla.gnome.org/show_bug.cgi?id=776807
2017-01-07 19:16:15 -05:00
Pavel Grunt
9629cbfce4 build: Fix vulkan detection
Add missing 'test'

https://bugzilla.gnome.org/show_bug.cgi?id=776736
2017-01-07 19:15:28 -05:00
Benjamin Otte
4749eedc08 docs: Remove a line that's not true anymore 2017-01-08 00:48:13 +01:00
Benjamin Otte
c1f1dae997 viewport: Remove API to query GdkWindows 2017-01-08 00:48:13 +01:00
Benjamin Otte
d50b73f66d treeview: Remove gtk_tree_view_get_bin_window()
We don't want to expose GdkWindows in the public API.
2017-01-08 00:48:12 +01:00
Benjamin Otte
bc797f38f5 gdk: Remove unused debug category 2017-01-08 00:48:12 +01:00
Timm Bäder
1e6fce97a5 gtkfishbowl: Remove gtk_container_snapshot_child call 2017-01-07 18:08:53 +01:00
Timm Bäder
47d4ad71fb Remove gtk_container_snapshot_child
Replace it with the already existing gtk_widget_snapshot_child.
2017-01-07 17:19:30 +01:00
Timm Bäder
f486805ba0 Unparent child widgets 2017-01-07 17:19:30 +01:00
Timm Bäder
5f98597a0c Add gtk_widget_set_focus_child
With a very useful implementation, but at least now we don't get runtime
warnings.
2017-01-07 17:19:30 +01:00
Timm Bäder
52aed5d607 Add gtk_widget_snapshot_child 2017-01-07 17:19:30 +01:00
Timm Bäder
08d644c4a5 widget: Warn if children are left in finalize() 2017-01-07 17:19:30 +01:00
Timm Bäder
7d0e534969 gtkmain: Correctly notify all widgets of a grab 2017-01-07 17:19:30 +01:00
Timm Bäder
8960bb7c8e widget: Fix :parent property type
Parent widgets can now also be widgets, not just containers.
2017-01-07 17:19:30 +01:00
Timm Bäder
3698f664b2 testsuite: Stop testing style properties 2017-01-07 17:19:30 +01:00
Timm Bäder
9aedbc376b inspector: Don't try to access child props of non-containers 2017-01-07 17:19:30 +01:00
Timm Bäder
5ab2377afa widget: Remove gtk_widget_style_get_property 2017-01-07 17:19:30 +01:00
Timm Bäder
25236dbed8 spinbutton: Use widgets for up/down buttons 2017-01-07 17:19:30 +01:00
Timm Bäder
b2b4d9e418 switch: Use GtkLabels for on/off labels 2017-01-07 17:19:30 +01:00
Timm Bäder
42f1ff0123 inspector: Show child widgets of widgets 2017-01-07 17:19:29 +01:00
Timm Bäder
d77b288e65 widget: Implement create_path for widgets with non-container parent 2017-01-07 17:19:26 +01:00
Timm Bäder
af9d932e47 widget: Unparent widgets in dispose()
If they have a non-container parent.
2017-01-07 16:44:01 +01:00
Timm Bäder
ef44d05894 widget: Check for containerness before calling container API 2017-01-07 16:44:01 +01:00
Timm Bäder
8ef73660e4 widget: Implement map/unmap with child widgets
Once again, do what GtkContainer did before.
2017-01-07 16:44:01 +01:00
Timm Bäder
b15b9e028f widget: Implement show_all
Do what gtk_container_forall did: show_all all children, then the widget
itself.
2017-01-07 16:44:01 +01:00
Timm Bäder
8a55a6975c widget: Iterate over child widgets instead of gtk_container_forall 2017-01-07 16:44:01 +01:00
Timm Bäder
1e031cba99 widget: Add children and sibling pointers
and a (private) way to access them. We will later use these pointers to
manage children of non-container widgets and containers alike.
2017-01-07 16:44:00 +01:00
Timm Bäder
626868c7ba combobox: Remove unused define 2017-01-07 16:15:12 +01:00
Balázs Meskó
c6b52a8ad9 Update Hungarian translation 2017-01-07 10:18:25 +00:00
Benjamin Otte
4fdf880b6e gtk-demo: Make icon counter work from ui file
Gets rid of update always being 1 frame late.
2017-01-07 02:09:40 +01:00
Benjamin Otte
cd8e41e491 gtk-demo: Add GtkFishbowl
Avoids usage of GtkFixed where child properties eat up all the CPU time.
And that's kinda not what I want to benchmark.
2017-01-07 02:09:40 +01:00
Benjamin Otte
e4d0459d52 vulkan: Reallocate descriptor sets
Because wee now reset the descriptor pool, we also need to reallocate
the descriptor sets.
2017-01-06 18:10:12 +01:00
Benjamin Otte
5a6ead8760 vulkan: Keep vertex buffer around until cleanup
Don't just free it while the command buffer using it is still pending.
2017-01-06 17:16:38 +01:00
Benjamin Otte
639b5ffb9b vulkan: Reset descriptor pool
We don't want the pool to reference images we're gonna destroy. Drivers
don't like that at all.
2017-01-06 16:31:53 +01:00
Benjamin Otte
833607c19e gsk: Don't use wildcards
Explicitly list all the shaders, so new ones get picked up properly and
cause the resource file to be regenerated (due to Makefile.am changing).
2017-01-06 16:31:53 +01:00
Benjamin Otte
078902e8b0 gsk: Have variables for resources
Instead of relying on --generate-dependencies and the resource file,
actually list the resources in Make variables.

Fixes make not building new shaders because they're not inside the
resource file.
2017-01-06 16:31:53 +01:00
Georges Basile Stavracas Neto
33a6347766 vulkanrender: Create descriptor pools with correct descriptor number 2017-01-06 02:46:27 -02:00
Georges Basile Stavracas Neto
fc1cfd569a vulkancontext: Improve debug output 2017-01-06 02:02:08 -02:00
Georges Basile Stavracas Neto
ea952a6ec3 vulkancontext: Never abort on validation layer debug
Validation layers should never interfere on application
execution.
2017-01-06 02:01:58 -02:00
Matthias Clasen
5fa1b14a96 Revert "Use CSS for styling links in labels"
This reverts commit 60a8769e7f0c952fdc8090b1ecd96cca00123ad9.

This needs more work to work properly.
2017-01-05 20:57:42 -05:00
Matthias Clasen
4170f79eea Use CSS for styling links in labels
This was implemented only halfway, and was hardcoding the
underline. We don't need to do that anymore.
2017-01-05 20:57:42 -05:00
William Hua
384fe52e96 mir: paste clipboard data from content-hub
https://bugzilla.gnome.org/show_bug.cgi?id=775732
2017-01-05 17:57:36 -05:00
William Hua
516c0a2aab mir: copy clipboard data to content-hub
https://bugzilla.gnome.org/show_bug.cgi?id=775732
2017-01-05 17:57:36 -05:00
William Hua
dcda372c15 mir: connect to content-hub
https://bugzilla.gnome.org/show_bug.cgi?id=775732
2017-01-05 17:57:36 -05:00
William Hua
440e80c832 mir: track focused window
https://bugzilla.gnome.org/show_bug.cgi?id=775732
2017-01-05 17:57:36 -05:00
William Hua
ed0bd0bba2 mir: implement window properties
https://bugzilla.gnome.org/show_bug.cgi?id=775732
2017-01-05 17:57:36 -05:00
Matthias Clasen
f3779b42c5 Make it possible to set style classes for label links
This makes it possible to style links in labels differently
in certain situations.
2017-01-05 16:55:45 -05:00
Kjartan Maraas
29dec067fb Updated Norwegian bokmål translation. 2017-01-04 21:25:36 +01:00
Daniel Boles
49c452e4f9 demos/icon-browser: increase default window size
...to get more than 1 row of icons to browse!

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

I've bumped the size a bit further, to 1024x768
2017-01-04 13:59:04 -05:00
Sébastien Wilmet
88699f588d docs: improve the documentation of GtkEntry:attributes
See the implementation of gtk_entry_create_layout():
pango_attr_list_splice() is used to add the PangoAttrList of the preedit
string. And that is done *after* applying the PangoAttrList of the
"attributes" property.

https://bugzilla.gnome.org/show_bug.cgi?id=776868
2017-01-04 19:56:30 +01:00
Georges Basile Stavracas Neto
a001ddf7bf vulkan: Use LGPL v2 2017-01-04 16:02:44 -02:00
Georges Basile Stavracas Neto
67894ace64 vulkanpushconstants: Don't report invalid ranges
Vulkan doesn't accept empty ranges, so simply don't report
them.
2017-01-04 18:40:42 +01:00
Georges Basile Stavracas Neto
c6ec982ac6 vulkan: Turn headers to LGPL 2017-01-04 18:40:20 +01:00
Benjamin Otte
f74490739f vulkan: Create required number of swapchain images
Wayland has minImageCount == 4, so us just creating 2 images is not very
nice. So we don't do that anymore.
2017-01-04 18:38:40 +01:00
Benjamin Otte
efc5f8dc47 gdkvulkan: Track if we reffed the display's vulkan data
When reffing the display fails in init, we were still trying to unref
it. Which obviously failed and spewed warnings to stderr.
2017-01-04 18:26:14 +01:00
Georges Basile Stavracas Neto
3887548d55 wayland: Add support for Vulkan renderer
Mirror what's done with the X11 Vulkan renderer implementation,
with the addition of the extra Wayland window synchronization on
end_paint() override.
2017-01-04 13:24:08 +01:00
Georges Basile Stavracas Neto
38d6e45b32 vulkancontext: Assume the window geometry when extents are bogus
When the current extent is -1, we should assume whatever size
the GdkWindow has.
2017-01-04 13:23:48 +01:00
Georges Basile Stavracas Neto
d62e18ac87 vulkancontext: Fix header 2017-01-04 13:23:35 +01:00
Benjamin Otte
f05f0377df vulkan: Modernize blend pipeline
- Rename from blit => blend
- Use instances
- Add clip versions
2017-01-04 13:22:57 +01:00
Benjamin Otte
2f5737cc1c gtk-demo: queue_draw() when the color changes 2017-01-03 23:35:22 +01:00
Chun-wei Fan
901106fd95 Visual Studio build: Update gsk project
A new Vulkan source was added, so this needs to be added to the projects.
2017-01-03 15:17:38 +08:00
Piotr Drąg
1b6015f9cc gtkprintbackendfile: Correct PostScript capitalization
https://bugzilla.gnome.org/show_bug.cgi?id=776627
2017-01-02 16:20:29 +01:00
Benjamin Otte
b993acfe2c gsk: Add GskRepeatNode
Also add gtk_snapshot_push_repeat() and use that to draw backgrounds.

With that change, CSS background snapshots are created without Cairo
nodes.
2017-01-01 19:53:36 +01:00
Benjamin Otte
aa917ce3b7 css: Redo GtkCssAffects
We now have GTK_CSS_AFFECTS_CONTENT for properties that have an effect
on content rendering.

Using GTK_CSS_AFFECTS_ICON is wrong for icon-transform and icon-filter
as they don't change the icon, just how the icon is rendered, so we use
GTK_CSS_AFFECTS_CONTENT for those.

We also introduce GTK_CSS_AFFECTS_POSTEFFECT for opacity and filter -
properties that affect the whole drawing of the widget by applying an
effect after everything is said and done.
2017-01-01 19:53:36 +01:00
Benjamin Otte
2571036c07 gsk: Turn GskTexture into a GObject 2017-01-01 19:53:36 +01:00
Benjamin Otte
4ead5c3ba8 colorplane: Implement snapshot() 2017-01-01 19:53:36 +01:00
Benjamin Otte
2fe01a5b57 vulkan: Optimize getting textures
When we already have a texture or know we need to upload, just do that
instead of rendering to Cairo.
2017-01-01 19:53:36 +01:00
Emmanuele Bassi
d915292db9 build: Require graphene-gobject
We need the GType wrappers around Graphene types, so we need to do a
dependency check on graphene-gobject-1.0, not graphene-1.0.
2017-01-01 11:10:33 +00:00
Benjamin Otte
e18d5ca835 vulkan: Add support for color matrix nodes
@keyframes weee {
    100% { filter: hue-rotate(1turn); }
}

.background {
    animation: linear infinite 3s weee;
}
2016-12-31 14:37:20 +01:00
Benjamin Otte
e542d411ac accellabel: Initialize allocation variable
I have no idea why gcc didn't catch this.
2016-12-31 14:37:20 +01:00
Benjamin Otte
fb43807fbb cssfiltervalue: Change node name
We're not just using this for icon filters, but for regular filters, so
the existing name is confusing.
2016-12-31 14:37:20 +01:00
Benjamin Otte
1aa0f79e8b vulkan: Make the effect renderer take matrix + offset
This is in preparation for the new color matrix node.

I don't think keeping support for a separate opacity shader is worth it.
2016-12-31 14:37:20 +01:00
Daniel Boles
0259312142 scrolledwindow: Fix func summary being cut off in bindings using doxygen
...which treats the first '.' in doc comments as the end of the summary.
So, e.g., in gtkmm, get_kinetic_scrolling() is currently summarised as
"Changes the behaviour of @scrolled_window wrt." Not very informative!

No need for a period there & anyway, the phrase "wrt to" is superfluous,
and we have space to actually say "with regard to", so just do that now.
2016-12-31 13:27:15 +00:00
Benjamin Otte
959f80e6e9 css: Implement filter
So far, it's only implemented for widgets, not for gadgets.

Not sure how to do it for gadgets without conflicts for widget gadgets
yet...
2016-12-31 02:49:47 +01:00
Benjamin Otte
45fbc25e5e css: Remove -gtk-icon-effect
-gtk-icon-filter replaces this now.
2016-12-31 02:49:47 +01:00
Benjamin Otte
5b33127692 gtk: Replace -gtk-icon-effect with -gtk-icon-filter
Instead of
  -gtk-icon-effect: dim;
  -gtk-icon-effect: hilight;
we now use
  -gtk-icon-filter: opacity(0.5);
  -gtk-icon-filter: brightness(1.2);
respectively.
2016-12-31 02:49:47 +01:00
Benjamin Otte
2645b5a7d7 gtk: Implement -gtk-icon-filter
This uses the new GskColorMatrixNode to implement a filter that applies
to icons. It's meant to replace -gtk-icon-effect.
2016-12-31 02:49:47 +01:00
Benjamin Otte
8973191278 snapshot: Add gtk_snapshot_push_color_matrix()
So far, this is unused.
2016-12-31 02:49:47 +01:00
Benjamin Otte
7540702cf0 gsk: Add GskColorMatrixNode
This node essentially implements the feColorMatrix SVG filter. I got the
idea yesterday after looking at the opacity implementation.

It can be used for opacity (not sure if we want to) and to implement a
bunch of the CSS filters.
2016-12-31 02:49:47 +01:00
Benjamin Otte
91741f6b63 vulkan: Handle opacity nodes
Well, "handle" them actually. We still draw the node's child using
Cairo, but we apply the opacity manually now.
2016-12-31 02:49:47 +01:00
Benjamin Otte
d82e8bf3d6 debugupdates: Draw without cairo node 2016-12-31 02:49:47 +01:00
Chris Mayo
051a7eceb1 GtkAboutDialog: Fix formatting of example email address in html
Signed-off-by: Chris Mayo <aklhfex@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=776524
2016-12-30 10:36:50 -05:00
Matthias Clasen
e62696b145 about dialog: Simplify the template a bit
Remove some unnecessary complications, like an extraneous
box, and some child property settings that are not needed.
2016-12-30 10:33:16 -05:00
Chun-wei Fan
9d8b07d150 Visual Studio builds: Fix .pc generation
A space was missed...
2016-12-30 15:10:12 +08:00
Chun-wei Fan
cf8c72b431 Visual Studio builds: Mention about Vulkan builds
Let people know what is needed for Vulkan builds.
2016-12-30 14:52:00 +08:00
Chun-wei Fan
2fdd0cefa5 Visual Studio builds: Support Vulkan builds
This will assume that the Vulkan SDK can be found in the INCLUDE/LIB paths
that are used by the Visual Studio compiler.
2016-12-30 14:42:38 +08:00
Chun-wei Fan
c2fd445764 Visual Studio builds: Clean up project files
There are items in there that can be combined, as there are mostly no
differences between x64 and Win32 configs for source/data file generation.
2016-12-30 12:46:55 +08:00
Chun-wei Fan
22c719b7eb Visual Studio builds: Remove the Broadway projects
They are not used anymore, so we ought to remove them
2016-12-30 11:17:06 +08:00
Chun-wei Fan
ee2f577991 Visual Studio builds: Drop the Broadway projects
Since the status of the GDK broadway backend is more or less unsupported,
drop the projects that build gtk4-broadwayd and gdk-broadway, and update
the projects to not to refer to them.

However, keep the Broadway configs for now as we will later transform
them to become configs for Vulkan, so bascially besides "installation"
parts and output settings, they will do the same as their Release|Debug
counterparts with no support for Broadway.
2016-12-30 11:09:46 +08:00
Chun-wei Fan
391ea68671 Visual Studio builds: Include Vulkan sources in GSK
...but disable them for now.  Configs will be added for the projects to
support Vulkan-enabled builds which will then enable the builds of these
sources.  Extra commands and items will be needed for the GSK resources
along with ensuring GSK_RENDERER_GSK being defined for the build of GDK,
GDK-Win32 and GSK so that the builds of Vulkan-enabled builds can be done
properly.

Filter out the Vulkan sources from the 'dist hook' rules in
gsk/Makefile.am as we don't want to in turn include them twice in the
projects when the 'make dist' is performed on a system with Vulkan
builds enabled.
2016-12-30 01:08:07 +08:00
Stas Solovey
3cb6868e19 Update Russian translation
(cherry picked from commit c7dce1018b)
2016-12-29 16:23:57 +00:00
Matthias Clasen
7e6820415d Avoid a possible crash in ::activate-url handlers
If the signal handler ends up changing the label text,
the link is no longer around to update the css node.
Check for this possibility to avoid a crash here.
2016-12-29 11:09:20 -05:00
Mario Blättermann
715801f302 Update German translation 2016-12-29 10:40:32 +00:00
Chun-wei Fan
49a782413c gsk: Fix build on Visual Studio
One cannot use #if...#endif within macro calls in Visual Studio and
possibly other compilers, and there are more uses of VLAs that need to be
replaced with g_newa().

There were also checks for the clip type in gskvulkanrenderpass.c which
were possibly not done right (using the address of the type value to check
for a type value), which triggered errors as one is attempting to compare
a pointer type to an enum/int type.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-12-29 17:52:52 +08:00
Chun-wei Fan
9db5cc9a98 gdk/gdkvulkancontext.c: Avoid VLAs
During the drive to enable Vulkan context creation on Windows, some more
VLAs were found here.  Replace them with g_newa().

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-12-29 17:51:56 +08:00
Chun-wei Fan
c4244ea104 GDK/Win32: Support Vulkan context creation
This adds support to the GDK Win32 backend so that we can support Vulkan
context creation for use in the GSK Vulkan renderer, so that we can test
it on Windows platforms as well.

https://bugzilla.gnome.org/show_bug.cgi?id=776544
2016-12-29 17:48:39 +08:00
Chun-wei Fan
1e084567f9 gsk/gskrendernodeimpl.c: Avoid VLAs
Use g_newa() instead of VLAs, as VLAs may never be supported by some
compilers as it became optional in C11 and there are concerns about their
implementations in compilers that do support it.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-12-29 17:41:59 +08:00
Gábor Kelemen
e7f4863814 Update Hungarian translation 2016-12-27 23:08:22 +00:00
Gábor Kelemen
a3ef8d350e Update Hungarian translation 2016-12-27 22:57:31 +00:00
Benjamin Otte
68b39a4727 gsk: Add GSK_RENDERING_MODE=full-redraw
Forces a full redraw every frame.
This is done generically, so it's supported on every renderer.

For widget-factory first page (with the spinner spinning and progressbar
pulsing), I get these numbers per frame:

action                  clipped         full redraw
snapshot                   0ms           7-10ms
cairo rendering            0ms          10-15ms
Vulkan rendering         3-5ms          18-20ms
Vulkan expected *          0ms            1-2ms
GL rendering            unsupported     55-62ms

* expected means disabling rendering of unsupported render nodes,
instead of doing fallback drawing. So it overestimates the performance,
because borders and box-shadows are disabled.
2016-12-27 00:48:00 +01:00
Benjamin Otte
a5f8a74ec1 vulkan: Only render minimal region
It's faster to render once for every rectangle in the clip region than
rendering the outline of the clip region.
Especially because this reduces the time necessary to build up the frame
data.

In widget-factory (where we have 3 rectangles), this leads to a 5x
speedup in the rendering time rendering alone.
Snapshotting time goes from 10ms to ~1ms, which is another huge
improvement.
2016-12-27 00:31:33 +01:00
Benjamin Otte
293248c1d3 gdkvulkan: Track changes per swapchain image
... and use those in begin_frame() to ensure all of the invalid area
gets invalidated.
2016-12-26 22:24:22 +01:00
Benjamin Otte
af917c4ade vulkan: Handle linear gradients
Note: We interpolate premultiplied colors as per the CSS spec. This i
different from Cairo, which interpolates unpremultiplied.

So in testcases with translucent gradients, it's actually Cairo that is
wrong.
2016-12-26 17:22:02 +01:00
Benjamin Otte
c0c44c7b9c tests: Add linear gradient test 2016-12-26 17:22:02 +01:00
Benjamin Otte
573ceb0340 tests: Add a patternspec argument for test creation
That way, I don't need to recreate all the tests I don't care about.

This is particularly useful when I want to change the size of the
testcase.
2016-12-26 17:22:01 +01:00
Benjamin Otte
d7e867aa95 tests: Make rendernode --dump-variant actually work 2016-12-26 17:22:01 +01:00
Benjamin Otte
3c8518dce3 gsk: Add missing Mozilla copyright header
I stole one of their shader functions, and if I steal, I might as well
do it right.
2016-12-26 17:22:01 +01:00
Benjamin Otte
599cc995f3 css: Handle repeating gradients with only one offset
Example:
  repeating-linear-gradient(red 50%, blue 50%)

Those gradients in Firefox draw a solid image of the last color, so do
the same here.
2016-12-26 17:22:01 +01:00
Benjamin Otte
5017c3be65 gsk: Insist on ordered color stops
I don't want to sort them later for the shader preparation, so make
sure they come in ordered.
2016-12-26 17:22:01 +01:00
Benjamin Otte
3a79b17309 vulkan: Fix coordinate setup
This makes rendering textures work when the top left of the rendered
texture is not at (0, 0).
2016-12-26 17:22:01 +01:00
Benjamin Otte
c7083a5d37 tests: Make sure number of runs is 1. 2016-12-26 17:22:01 +01:00
Daniel Boles
2a7171534e Box: Restore an accidentally deleted comment
Also, split a MAX() onto its own line to match the others.
2016-12-26 10:57:51 +00:00
Daniel Boles
71bbd8881f Box: avoid recalc/reassignments, improve var names
Homogeneous branches repeated the calculation/assignment of the initial
space available to children. This avoids that by shuffling some code.

Perhaps more importantly, in doing that, I ended up with some ambiguous
names, and Company and I realised how vague the pre-existing naming was.
"size" becomes "extra_space", as this is what it represents. Conversely,
"extra" becomes "size_given_to_child" (albeit still given out in two
different ways depending on whether the Box is homogeneous). My hope is
that these sections of code are now somewhat less baffling than before!
2016-12-25 23:16:14 +00:00
Daniel Boles
5d10174031 Box: Don't unnecessarily repeat a function call
The spacing was already saved in a variable just above.
2016-12-25 21:46:40 +00:00
djb
476cadc7f8 tests: Remove executable bit from C files 2016-12-25 21:46:40 +00:00
Benjamin Otte
78582dd5e9 tests: Fix logic to detect argument length 2016-12-25 06:23:12 +01:00
Benjamin Otte
eacf725778 tests: Add a --runs argument to rendernode
This way we can rerun fast tests lots of times - not so much for
averaging times, but more for sysprof'ing.
2016-12-25 06:23:12 +01:00
Benjamin Otte
c99b46c46d tests: Add another test
In this test, Cairo is almost as fast as Vulkan. I wonder why.
2016-12-25 06:23:12 +01:00
Benjamin Otte
5878f9d8af vulkan: Add shader for color drawing with rectangle clip 2016-12-25 06:23:12 +01:00
Benjamin Otte
b30225e67c vulkan: We use VK_FORMAT_B8G8R8A8_UNORM
... not SRGB. SRGB messes up alpha compositing, GdkRGBA and everything
else.
2016-12-25 06:23:12 +01:00
Marek Černocký
16a9a82021 Updated Czech translation 2016-12-24 14:40:35 +01:00
Benjamin Otte
aa0ec774bf vulkan: Add proof-of-concept clip implementation
We can now clip to cicular rounded rectangles when drawing colors.
2016-12-24 06:19:16 +01:00
Benjamin Otte
81c487b841 vulkan: Fold clip into push constants
As a side effect, the clipping data is now available inside shaders.

Not that any shader would use them yet, but they could!
2016-12-24 06:19:16 +01:00
Benjamin Otte
18b65a2378 vulkan: Change handling of push constants
Instead of storing the wire format, store the true structs and only
convert to the wire format when needed.
2016-12-24 06:19:16 +01:00
Benjamin Otte
b11b7dfb1a gsk: Add debug category for fallbacks
... and use it for the cases in Vulkan where we fall back to Cairo.
2016-12-24 06:19:16 +01:00
Benjamin Otte
2bca24c455 gsk: Add GskVulkanClip
This is now tracking the clips added by the clip nodes.
If any particular node can't deal with a clip, it falls back to Cairo
rendering. But if it can, it will render it directly.
2016-12-24 06:19:16 +01:00
Benjamin Otte
1d84555729 iconhelper: Invalidate style before accessing texture
Invalidating the style might cause invalidation of the texture. So we
end up with a pointer to freed memory.
SAD!
2016-12-24 06:19:16 +01:00
Benjamin Otte
89d38ae93f vulkan: Try combining draw calls
This gives a 5-7% speedup in the case where we're just drawing N colors
and nothing else. So it;s not tremendously useful, but noticeable.
2016-12-24 06:19:16 +01:00
Garrett Regier
23d10df6c6 gsk: Fix memory leak in gsk_render_node_write_to_file() 2016-12-23 07:22:41 -08:00
Piotr Drąg
2750bb5e87 Update POTFILES.in 2016-12-23 16:18:23 +01:00
Benjamin Otte
6cc08d60ef calendar: Implement snapshot() 2016-12-23 12:07:22 +01:00
Benjamin Otte
b97e4e8631 tests: Improve rendernode test further
- Print benchmark output in fallback path
- Always run rendering, even when no filename given
- Don't require a filename when running with --benchmark
2016-12-23 11:31:35 +01:00
Benjamin Otte
a36e5ceea7 cellrenderer: Remove render() vfunc
Make the last 2 cell renderers create the cairo node themselves.
2016-12-23 11:11:52 +01:00
Benjamin Otte
513a8c46af cellrendererpixbuf: Implement snapshot() 2016-12-23 10:50:04 +01:00
Benjamin Otte
a0f65d16bc cellrendererprogress: Implement snapshot() 2016-12-23 10:44:49 +01:00
Benjamin Otte
b901572d86 cellrenderertoggle: Implement snapshot() 2016-12-23 09:31:54 +01:00
Benjamin Otte
c412a717f1 cellrenderertext: Implement snapshot() 2016-12-23 09:23:07 +01:00
Benjamin Otte
677c5bdedf cellrenderer: Move snapshotting down into cell renderers
Now that every call to GtkCellArea is a snapshot call and no more cairo
calls are left, move the actual differentiation between Cairo and
Snapshot down to the cell renderer.
2016-12-23 09:23:04 +01:00
Benjamin Otte
af6e7cc169 tests: Add rendernode-create-tests
Little tool that creates a bunch of test files to throw add the
rendernode binary.
They should really be part of a testsuite, but we have none, so OI just
put them here.
2016-12-23 08:11:01 +01:00
Benjamin Otte
4bb0c70c11 gsk: Add docs and error handling to serialization API 2016-12-23 08:11:01 +01:00
Benjamin Otte
4e866ec06b tests: Add some command-line flags to rendernode 2016-12-23 08:11:01 +01:00
Benjamin Otte
5e089c4345 gsk: Add gsk_render_node_write_to_file()
For when you're in a debugger and need to have a closer look at this
node...
2016-12-23 08:11:01 +01:00
Benjamin Otte
087ea8e531 gsk: Warn on cairo errors during gsk_render_node_draw()
It's the same warning we use inside GTK for when stuff weirdly goes
wrong.
2016-12-23 08:11:01 +01:00
Benjamin Otte
08f9a6078b gsk: Include config.h
The more you know:
Not including config.h causes the public API implemented in this file to
not be exported in the resulting library.
2016-12-23 08:11:01 +01:00
Benjamin Otte
adcde3034e gsk: Implement gsk_renderer_render_texture() on GL 2016-12-23 08:11:01 +01:00
Benjamin Otte
786d3a013e vulkan: Implement gsk_renderer_render_texture() 2016-12-23 08:11:01 +01:00
Benjamin Otte
b0d5224de5 tests: Use gsk_renderer_render_texture()
Only keep the version that calls gsk_render_node_draw() if people
specify the --fallback option.

The actual renderer selection works just as for regular GTK. The easiest
way to influence it is setting the GSK_RENDERER environment variable.
2016-12-23 08:11:01 +01:00
Benjamin Otte
6c56793147 gsk: Add gsk_texture_download() API
Now users can download pixels and make everything slooooooow.
2016-12-23 08:11:01 +01:00
Benjamin Otte
d58799ff7a gdk: Export gdk_cairo_surface_paint_pixbuf() into private header 2016-12-23 08:11:01 +01:00
Benjamin Otte
be8c999fe8 docs: Add GskTexture 2016-12-23 08:11:01 +01:00
Benjamin Otte
2d2209859e gsk: Rename to gsk_texture_download_surface()
I want to reuse the name gsk_texture_download() for downloading the
actual bytes.
2016-12-23 08:11:01 +01:00
Benjamin Otte
373e08d6d4 gsk: Add gsk_renderer_render_texture()
... and implement it for the Cairo renderer.

It's an API that instructs a renderer to render to a texture.
So far this is mostly meant to be used for testing, but I could imagine
it being useful for rendering DND icons.
2016-12-23 08:11:01 +01:00
Benjamin Otte
98086014d8 gskcairo: Don't store the viewport in the global struct
Just query it locally.
2016-12-23 08:11:01 +01:00
Benjamin Otte
d2622d93ad gsk: Don't overdraw with transparent
That code doesn't do anything.

And what the code should be doing (clearing the abckground) isn't
necessary as cairo drawing is guaranteed to clear the surface.
2016-12-23 08:11:01 +01:00
Benjamin Otte
df5e12fc1d rendernode: Fix typo 2016-12-23 08:11:00 +01:00
Benjamin Otte
814b66e1a8 gsk: Remove nonexisting functions
The function was removed when gsk_render_node_draw() was and
gsk_renderer_realize() was refactored respectively.
2016-12-23 08:11:00 +01:00
Benjamin Otte
b4ac7ffed4 tests: Add a simple test to convert rendernode to png
Takes a rendernode file, outputs a PNG. Nothing more.
2016-12-23 08:11:00 +01:00
Benjamin Otte
735846cc82 gsk: Export gsk_render_node_get_bounds()
I'll need it in tests/testsuite soon.
2016-12-23 08:11:00 +01:00
Benjamin Otte
91c71b10e6 inspector: Add a render node save button
Now we can select buggy nodes, save them to a file, and add that file to
our testsuite.
2016-12-23 08:11:00 +01:00
Benjamin Otte
c88d279416 gsk: Add gsk_render_node_serialize/deserialize()
This does a conversion to/from GBytes and is intended for writing tests.

It's really crude but it works.
And that probably means Alex will (ab)use it for broadway.
2016-12-23 08:11:00 +01:00
Benjamin Otte
3a38bc9bf7 gsk: Remove spread member from GskShadow
I had originally thought I'd use GskShadow for box-shadow, but didn't in
the end.

So now it's only used for text-shadow and icon-shadow, and those don't
have a spread.
2016-12-23 08:11:00 +01:00
Marek Černocký
5fa1733944 Updated Czech translation 2016-12-22 23:50:53 +01:00
Benjamin Otte
0efeaf9508 treeview: Port rest of stuff to snapshot()
The only thing still drawn with Cairo are grid lines.
2016-12-22 03:37:32 +01:00
Benjamin Otte
f1825f5eff treeview: Partially convert to snapshot()
The big fat scary bin drawing function that actually draws the cell
renderers - that one is still missing.
2016-12-22 03:37:32 +01:00
Chun-wei Fan
23edff1606 gtkcssimagelinear.c: Avoid VLAs
VLAs are not supported by Visual Studio and possibly other compilers that
are supported by GTK+-3.90+, and probably never will be, although it is a
C99 specification, and it became optional for C11.  It is also not a part
of the newer compiler requirements that are listed out for GTK+-3.90.x.

There exist concerns about the implementation of VLAs in compilers that
support them as well, so change it to a g_newa() approach.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-12-22 08:40:32 +08:00
Matthias Clasen
e64947662a 3.89.2 2016-12-21 14:12:31 -05:00
Matthias Clasen
a2f0c860ee Fix distcheck 2016-12-21 14:12:31 -05:00
Matthias Clasen
924efd988d Fixes for the gdk docs 2016-12-21 13:57:16 -05:00
Matthias Clasen
961286b7cd Make gsk docs build 2016-12-21 13:57:16 -05:00
Rico Tzschichholz
a571e53491 snapshot: Fix some annoations 2016-12-21 18:16:34 +01:00
Rico Tzschichholz
2b4dfeec7c gsk: Fix build of 22110ef5a4 2016-12-21 18:15:50 +01:00
Alexander Larsson
230d27b079 GskRenderNode: Use C99 flexible arrays to avoid extra allocation
Instead of a separate allocation for any arrays in the render node
we allocate these as part of the render node itself, using C99
flexible arrays.

This leads to less allocations, which is nice, but the major reason
for this is that it allows us to change the allocation scheme further
in the future. For instance, we want to do stack-like allocation so
that all the render-nodes for an entire frame are allocated in one
(or a few) chunks.
2016-12-21 14:01:34 +01:00
Alexander Larsson
22110ef5a4 gsk: Add bounds member to RenderNode
Instead of constantly recalculating this (especially recursively for
parents!) we do it only on construction, because everything is
immutable anyway. Also, most nodes had a bounds already and can
use the new parent member instead.

We also do direct access to the node bounds rather than calling
gsk_render_node_get_bounds in various places, which means
we do less copying.
2016-12-21 14:01:34 +01:00
Alexander Larsson
2d4b46f4f9 gsk: Drop gsk_render_node_make_immutable, nodes are always immutable 2016-12-21 14:01:34 +01:00
Alexander Larsson
4ee45b76ca gsk docs: gsk_render_node_iter_get_type doesn't exist anymore 2016-12-21 14:01:34 +01:00
Baurzhan Muftakhidinov
cfade39459 Update Kazakh translation 2016-12-21 10:56:38 +00:00
Christian Kirbach
24eeea46fa Update German translation
(cherry picked from commit e0856226c5)
2016-12-20 19:11:43 +00:00
Benjamin Otte
def94f03e2 debug: Add GTK_DEBUG=snapshot
This causes the snapshotting algorithm to dump all widget nodes into
their own container node. We then name that group accordingly (ie
"GtkSwitch<0xdeadbeef>") so you can easily see which node belongs where.

The feature is toggleable in the inspector's visual tab.

There's a few problems with it, becuse GtkSnapshot optimized container
nodes away if they are not needed, so we are losing some widgets...
2016-12-20 19:26:40 +01:00
Benjamin Otte
acaa04c031 revealer: Implement snapshot()
The revealer needs to clip the child during animations, whcih draw() did
automatically, but snapshot() does not.
2016-12-20 19:26:40 +01:00
Benjamin Otte
c4065b9ee0 API: Export gtk_container_snapshot_child()
It's equivalent to gtk_container_propagate_draw() and then one is
public, too.
2016-12-20 19:26:40 +01:00
Benjamin Otte
22a657004b debug: Remove pixel-cache debug categories
We have no more pixel cache, so they are kind of useless.
2016-12-20 19:26:40 +01:00
Debarshi Ray
2cbe057351 flowbox: Don't emit child-activated while dragging the pointer
https://bugzilla.gnome.org/show_bug.cgi?id=776306
2016-12-20 18:48:03 +01:00
Benjamin Otte
1b553478f6 cssimageradial: Handle "partial" gradients correctly
When the first/last color stop is not at 0%/100%, we need to start the
repeating at their offsets and not at 0%/100%.

Attached reftest demonstrates the problem.
2016-12-20 18:01:12 +01:00
Benjamin Otte
6c20ddc119 searchbar: Implement snapshot() 2016-12-20 18:01:12 +01:00
Benjamin Otte
0dbdf0c428 gadget: Remove gtk_css_gadget_draw()
And with it, remove the draw func from custom gadgets, that has been
NULL everywhere.

All gadgets are snapshot now.
2016-12-20 18:01:12 +01:00
Benjamin Otte
613194a246 colorswatch: Implement snapshot 2016-12-20 18:01:12 +01:00
Benjamin Otte
4d9eedafcd roundedbox: Add gtk_rounded_boxes_init_for_style()
Instead of making people intiialize a rectangle and then applying border
radius manually, provide a constructor that does it for them.
While doing that, also allow people to instead request the padding box
or the content box.

Refactor all relevant code to use this new constructor.
2016-12-20 18:01:12 +01:00
Benjamin Otte
95a2a5c54c gtk: Remove GtkJunctionSides 2016-12-20 18:01:12 +01:00
Benjamin Otte
f2f5941d65 testgtk: Remove resize grips example
Resize grips are gone. And just showing an empty window is not terribly
exciting.
2016-12-20 18:01:12 +01:00
Benjamin Otte
3f75b11982 frame: Implement snapshot() 2016-12-20 18:01:12 +01:00
Benjamin Otte
c87db76cb5 iconview: Implement snapshot() 2016-12-20 18:01:12 +01:00
Benjamin Otte
94e906c802 cellview: Implement snapshot()
This also adds gtk_cell_area_snapshot().
2016-12-20 18:01:12 +01:00
Benjamin Otte
2034e83a20 gsk: Add GskOutsetShadowNode 2016-12-20 18:01:12 +01:00
Benjamin Otte
fcc1f554d6 gsk: Add GskInsetShadowNode
And again lots of shadow code gets copied to GSK. But we're now almost
at a stage where widget-factory does not use cairo nodes anymore.
2016-12-20 18:01:12 +01:00
Benjamin Otte
4fc64ae3dd gsk: Add contains/intersect functions for GskRoundedRect
... and use them.
2016-12-20 18:01:12 +01:00
Benjamin Otte
2480e0d575 gsk: Add GskShadowNode
... and make the icon rendering code use it.

This requires moving even more shadow renering code into GSK, but so be
it. At least the "shadows not implemented" warning is now gone!
2016-12-20 18:01:12 +01:00
Benjamin Otte
071c9a8221 API: gdk: Add gdk_rgba_is_clear() and gdk_rgba_is_opaque()
I want to use these inside GSK, and I'm not a fan of putting GdkRGBA
APIs into it or duplicating it into GTK.

So public API it is.
2016-12-20 18:01:12 +01:00
Benjamin Otte
15e8a22f08 gsk: Move gtk/gtkcairoblur.c to gsk/gskcairoblur.c 2016-12-20 18:01:11 +01:00
Benjamin Otte
6e31fc4300 inspector: Print node type in node properties 2016-12-20 18:01:11 +01:00
Benjamin Otte
75b76af221 gsk: Add GskBorderNode
The node draws a solid CSS border, which can be used to cover everything
but dashed and dotted borders (double, groove, inset, ...).

For different border styles, we overlay multiple nodes and set their
colors to transparent for sides with non-matching styles.
2016-12-20 18:01:11 +01:00
Benjamin Otte
9af468cdec gtk: Remove unused argument from function 2016-12-20 18:01:11 +01:00
Benjamin Otte
a9809e5d30 gsk: Add gsk_rounded_rect_shrink()
... and replace _gtk_rounded_box_grow() and _gtk_rounded_box_shrink()
with it.
2016-12-20 18:01:11 +01:00
Benjamin Otte
1760e0d3f3 vulkan: Get rid of color in push constants
The color comes in instance data now, no need to abuse push constants
for it.
2016-12-20 18:01:11 +01:00
Benjamin Otte
1b90ce6b33 vulkan: Remove color from push constants
It's now handled by the color pipeline.
2016-12-20 18:01:11 +01:00
Benjamin Otte
b04eecf860 vulkan: Pass color rects in instance data
This way, we don't need push constants or per-vertex data, we can render
colored rectangles completely via instance data.
2016-12-20 18:01:11 +01:00
Benjamin Otte
4c74695a85 vulkan: Don't pass texture coordinates to the color pipeline 2016-12-20 18:01:11 +01:00
Benjamin Otte
5dfb74c70c vulkan: Get vertex description from pipeline subclass 2016-12-20 18:01:11 +01:00
Benjamin Otte
b4f04d0c1d vulkan: Split color and blend pipelines 2016-12-20 18:01:11 +01:00
Benjamin Otte
e68b18aa4e vulkan: Move vertex data tracking to the pipeline subclass
That way, different pipelines can draw different kinds of data.
2016-12-20 18:01:11 +01:00
Benjamin Otte
9aecd6dd56 vulkan: Add GskVulkanBlendPipeline
So far that's just a simple pipeline that doesn't do anything.
2016-12-20 18:01:11 +01:00
Benjamin Otte
453478719d vulkan: Make GskVulkanPipeline derivable 2016-12-20 18:01:11 +01:00
Benjamin Otte
65e9894450 menu: Implement snapshot() for the menu code 2016-12-20 18:01:11 +01:00
Benjamin Otte
e492a63e4c paned: Implement snapshot() 2016-12-20 18:01:11 +01:00
Benjamin Otte
8ad7c435ca cssimage: Implement snapshot() for cross-fade 2016-12-20 18:01:11 +01:00
Benjamin Otte
9822fe81a3 snapshot: Implement gtk_snapshot_push_opacity()
Use it in GtkWidget's opacity handling.
2016-12-20 18:01:11 +01:00
Benjamin Otte
6b29dbf26a snapshot: Handle NULL returns in pop_and_append() 2016-12-20 18:01:11 +01:00
Benjamin Otte
30438c6e8b gsk: Add cross-fade node
And implement stack crossfades with it.
2016-12-20 18:01:11 +01:00
Benjamin Otte
3e4fd32b54 vulkan: Batch upload image barriers together
Doesn't seem to help much though...
2016-12-20 18:01:11 +01:00
Benjamin Otte
7b9ace488b vulkan: Add GskVulkanUploader
It's the thing that makes sure pixels end up on the GPU.
2016-12-20 18:01:11 +01:00
Benjamin Otte
85559d1fd9 vulkan: Split out command pool
This way we can pass the command pool around.
And that allows us to allocate and submitcustom buffers.
And that is necessary to make staging images work.
2016-12-20 18:01:11 +01:00
Benjamin Otte
ba7ac637bc vulkan: Implement staging-buffer image upload
This is not enabled by default. Use GSK_RENDERING_MODE=staging-buffer to
use the code.
2016-12-20 18:01:11 +01:00
Benjamin Otte
81297857cc snapshot: Convert Range, Scale, ColorScale
And of course Scrollbar, but that one does no drawing itself.
2016-12-20 18:01:11 +01:00
Benjamin Otte
3ef03c8bc0 gsk: Check for NULL in calls to gsk_cairo_node_get_surface()
That function does actually sometimes return NULL and is documented to
do so, so handle that case in the renderers (by omitting the node).
2016-12-20 18:01:11 +01:00
Benjamin Otte
e8cd71228a gsk: Implement linear gradient render nodes 2016-12-20 18:01:11 +01:00
Benjamin Otte
cf520b7a1f gsk: Add blend nodes
Implement blend mode support in GTK background compositing with it.
2016-12-20 18:01:11 +01:00
Benjamin Otte
3e26fadb24 css: Replace custom blend modes with GskBlendMode 2016-12-20 18:01:11 +01:00
Benjamin Otte
2118f394d2 gsk: Add missing blend modes
This brings GSK blend modes in line with the CSS spec.
2016-12-20 18:01:11 +01:00
Benjamin Otte
08a2a29c26 vulkan: Add infrastructure for multiple pipelines
And use it to draw solid colors with a 2nd pipeline.
2016-12-20 18:01:11 +01:00
Benjamin Otte
7d837a2ae6 vulkan: Split PipelineLayout into its own object
This way, we can share the layout between different pipelines.
2016-12-20 18:01:11 +01:00
Benjamin Otte
f4f0dba5c6 vulkan: Split render ops into seperate structs
This makes it a lot clearer which members are relevant for each
different operation.
2016-12-20 18:01:11 +01:00
Benjamin Otte
62eb9d42aa vulkan: Add infrastructure for push constants
THe code includes fragment push constants for colors, but that code is
so far unused.
2016-12-20 18:01:10 +01:00
Benjamin Otte
58b2c1d009 cssimage: Port a few more simple ones to snapshots 2016-12-20 18:01:10 +01:00
Benjamin Otte
cd68c93b4c render: Fall back later when rendering backgrounds
We can now render most backgrounds fine.
2016-12-20 18:01:10 +01:00
Benjamin Otte
3d5173d4ac gtk: Fix memleaks
It turns out, some simple getters - such as
gdk_drawing_context_get_clip() - love copying things before returning
them.

I guess somebody has to burn cycles...
2016-12-20 18:01:10 +01:00
Benjamin Otte
dd1cf1ac0f css: An opaque background does not allow omitting push_group
When the background-clip of the background is smaller than the
background-clip of blended images, not pushing a group is wrong.

Test testing exactly that included.
2016-12-20 18:01:10 +01:00
Benjamin Otte
23e35706b4 gsk: Add support for rounded clip rectangles
Also add support to GtkSnapshot, so people can push rounded clips.
2016-12-20 18:01:10 +01:00
Benjamin Otte
f96f16899d roundedbox: Remove _gtk_rounded_box_path()
Use gsk_rounded_rect_path() instead.

That's a private GSK function, be we can just include its header.
2016-12-20 18:01:10 +01:00
Benjamin Otte
fa9b0f9965 roundedbox: Remove _gtk_rounded_box_move()
Use gsk_rounded_rect_offset() instead.
2016-12-20 18:01:10 +01:00
Benjamin Otte
e26f84fca0 gtk: Remove GtkRoundedBox struct
Use GskRoundedRect instead.
2016-12-20 18:01:10 +01:00
Benjamin Otte
a2dfb1e93f roundedbox: typedef to GskRoundedRect 2016-12-20 18:01:10 +01:00
Benjamin Otte
c04bece131 roundedbox: Use a graphene_size_t for the corners
Obviously, I'm trying to port GtkRoundedBox to GskRoundedRect.

This is the second step on that path.
2016-12-20 18:01:10 +01:00
Benjamin Otte
6d012fb4ea gtk: Get rid of GtkCssCorner
We have GskCorner now which is identical.
2016-12-20 18:01:10 +01:00
Benjamin Otte
59d638a09f gsk: Add GskRoundedRect
It's essentially a port of GtkRoundedBox to graphene.
2016-12-20 18:01:10 +01:00
Benjamin Otte
0a0cbcdcb6 viewport: implement snapshot() 2016-12-20 18:01:10 +01:00
Benjamin Otte
b0175421f2 stack: Implement snapshot()
This uses the new push()/pop() mechanism to its fullest extent when
implementing transitions. It's fun to inspect the results in the
inspector.

Crossfades don't work yet, they continue using a Cairo fallback.

A side effect of the stack conversion is that widget-factory now uses
snapshots for a lot more things.
2016-12-20 18:01:10 +01:00
Benjamin Otte
1137483d15 snapshot: Work on pushing and popping again
It is now possible to call push() subfunctions for simple container
nodes with just a single child. So you can for example
gtk_snapshot_push_clip() a clip region that all the nodes that get
appended later will then obey.

gtk_snapshot_pop() will then not return a container node, but a clip
node containing the container node (and similar for the transform
example).

This is implemented internally by providing a "collect function" when
pushing that is called when popping to collects all the accumulated
nodes and combine them into the single node that gets returned.

To simplify things even more, gtk_snapshot_pop_and_append() has been
added, which pops the currently pushed node and appends it to the
parent.

The icon rendering code has been converted to this approach.
2016-12-20 18:01:10 +01:00
Benjamin Otte
1f988d8b05 gsk: Add gsk_clip_node_new()
The node is a simple clipping node: It does a rectangular clip of its
contents.
2016-12-20 18:01:10 +01:00
Benjamin Otte
68a54ae81f stack: Don't draw an extra background
The gadget draws a background for us, we don't need another one.
2016-12-20 18:01:10 +01:00
Benjamin Otte
07d39299ea gsk: Replace gsk_render_node_set_opacity()
... with gsk_opacity_node_new().

Also implement support for opacity in gtk_widget_snapshot() using this
new node.
2016-12-20 18:01:10 +01:00
Benjamin Otte
671d43b873 cssimage: Implement snapshot() in the fallback image 2016-12-20 18:01:10 +01:00
Benjamin Otte
ed6643cf69 cssimage: Use textures in GtkCssImageSurface
We now use textures instead of surfaces and implement the snapshot()
vfunc instead of draw().
2016-12-20 18:01:10 +01:00
Benjamin Otte
429346fa7e cssimage: Implement a fallback draw() vfunc
... that chains into snapshot. This way, we can stop implementing draw()
in GtkCssImage subclasses and focus on snapshot() instead.
2016-12-20 18:01:10 +01:00
Benjamin Otte
c258ee403a snapshot: Make gtk_snapshot_get_renderer() private
Public API doesn't need to be concerned with renderers. Worst case, they
can use NULL instead of the actual renderer.
2016-12-20 18:01:10 +01:00
Benjamin Otte
e6d423e0e2 gsk: Remove gsk_renderer_create_fallback()
Use gsk_render_node_draw() instead.
2016-12-20 18:01:10 +01:00
Benjamin Otte
b120075698 snapshot: Add API for colors and textures 2016-12-20 18:01:10 +01:00
Benjamin Otte
ee9aca882d gsk: Add fallback code to renderers
This code makes renderers fall back to Cairo rendering if they don't
know how to handle a render node's type.

This allows adding new render nodes with impunity.
2016-12-20 18:01:10 +01:00
Benjamin Otte
6129daf29b gsk: Add gsk_color_node_new() 2016-12-20 18:01:10 +01:00
Benjamin Otte
361e2cda27 Call gsk_render_node_draw() instead of creating fallback renderers 2016-12-20 18:01:10 +01:00
Benjamin Otte
e82d02432e gsk: Add gsk_render_node_draw()
Draws a node to a given cairo_t. This is mostly intended for fallback
usage.
2016-12-20 18:01:10 +01:00
Benjamin Otte
02131d590e snapshot: Change how gtk_snapshot_push/pop works
Instead of appending a container node and adding the nodes to it as they
come in, we now collect the nodes until gtk_snapshot_pop() is called and
then hand them out in a container node.

The caller of gtk_snapshot_push() is then responsible for doing whatever
he wants with the created node.

Another addigion is the keep_coordinates flag to gtk_snapshot_push()
which allows callers to keep the current offset and clip region or
discard it. Discarding is useful when doing transforms, keeping it is
useful when inserting effect nodes (like the ones I'm about to add).
2016-12-20 18:01:10 +01:00
Benjamin Otte
ca80e9decf snapshot: Handle clip region as part of the state
This is in preparation for further changes.
2016-12-20 18:01:10 +01:00
Benjamin Otte
67fb129ed7 gsk: gsk_render_node_set_transform() => GskTransformNode
Instead of having a setter for the transform, have a GskTransformNode.

Most of the oprations that GTK does do not require a transform, so it
doesn't make sense to have it as a primary attribute.

Also, changing the transform requires updating the uniforms of the GL
renderer, so we're happy if we can avoid that.
2016-12-20 18:01:10 +01:00
Benjamin Otte
19753062c4 gsK: Move children handling to GskContainerNode 2016-12-20 18:01:09 +01:00
Benjamin Otte
e2625f8649 gsk: Remove GskRenderNode::parent
... and all related APIs.
2016-12-20 18:01:09 +01:00
Benjamin Otte
d691dfc894 inspector: Prepare TreeModelRenderNode for brave new world
I'm about to move children handling to the container node, which means
the generic code can no longer assume children APIs existing.

So rewrite the treemodel to work without it.
2016-12-20 18:01:09 +01:00
Benjamin Otte
a8f2b3e75e gsk: Remove world matrix support
Use the real transform and compute it manually.
2016-12-20 18:01:09 +01:00
Benjamin Otte
3eb7c4719b gsk: Remove gsk_render_node_set_bounds()
gsk_render_node_get_bounds() still exists and is computed via vfunc
call:
- containers dynamically compute the bounds from their children
- surface and texture nodes get bounds passed on construction
2016-12-20 18:01:09 +01:00
Benjamin Otte
4d376c80f3 gsk: Remove gsk_render_node_get_size()
In the brave new world of refactored render nodes, this function doesn't
really make any sense anymore. We could turn it into a vfunc, but I
don't think it's useful.

Especially because even in the brave old world, this function was
causing a vastl overallocation of nodes when the GL renderer needed render
targets.
2016-12-20 18:01:09 +01:00
Benjamin Otte
d907f60843 gsk: Add GskRenderNodeClass.make_immutable() 2016-12-20 18:01:09 +01:00
Benjamin Otte
e4ee65fd19 gsk: Remove gsk_render_node_set_opaque()
If we ever feel, we need this function again, we can readd it later.

But nobody is using it other than for overriding opactiy. And you can
just override opacity directly if you care.
2016-12-20 18:01:09 +01:00
Benjamin Otte
684d25bd1a gsk: Add custom structs to RenderNode subclasses
So now we don't need to keep a texture pointer and a surface pointer and
so on in the base struct.
2016-12-20 18:01:09 +01:00
Benjamin Otte
be8b9406e5 gsk: Add GskRenderNodeClass.finalize() 2016-12-20 18:01:09 +01:00
Benjamin Otte
a97b819b81 gsk: Add gsk_container_node_new()
It replaces gsk_renderer_create_render_node() which was doing the eact
same thing, only taking an unused extra argument.
2016-12-20 18:01:09 +01:00
Benjamin Otte
8830a1a1ad gtk: Remove gtk_snapshot_append()
It does not make sense to append an empty container node. Those should
only be push()'d.
2016-12-20 18:01:09 +01:00
Benjamin Otte
f16d523cb2 gsk: Introduce GskRenderNodeClass
This is modeled after GtkCssValueClass. So far it doesn't do anything.
2016-12-20 18:01:09 +01:00
Benjamin Otte
3af4fba895 gsk: Split render node subclasses out into their own file 2016-12-20 18:01:09 +01:00
Benjamin Otte
abd184efc9 gsk: Remove gsk_render_node_is_surface/texture()
Use gsk_render_node_get_node_type() instead.
2016-12-20 18:01:09 +01:00
Benjamin Otte
cb5c5170f4 gsk: Remove unneeded children modifiers
Creating render nodes is fire-and-forget, so all one should do is create
a container, append, append, append and then send it off to the
renderer. So there's no need to replace, insert between or anything
else.
2016-12-20 18:01:09 +01:00
Benjamin Otte
52d2faef88 gsk: Add gsk_cairo_node_new()
Split off Cairo drawn content nodes and require you to allocate them
using this new function.
2016-12-20 18:01:09 +01:00
Benjamin Otte
d1b80a6baa gtk: Don't push cairo nodes
We want to split nodes into containers and nodes that do actual drawing.
So pushing nodes that do drawing is exactly the wrong thing.

Also fix up GtkPopover. There's no need for it to push anything.
2016-12-20 18:01:09 +01:00
Benjamin Otte
8c8691b469 gsk: Add gsk_texture_node_new()
Start the transition into the different node types.
2016-12-20 18:01:09 +01:00
Benjamin Otte
ac5e277a71 gsk: Add GskRenderNodeType
For now, this is unused.
2016-12-20 18:01:09 +01:00
Benjamin Otte
f258af9cce gsk: Remove GskRenderNodeIter 2016-12-20 18:01:09 +01:00
Benjamin Otte
6fb46e3943 gsk: Make GskRenderNode a boxed type 2016-12-20 18:01:09 +01:00
Benjamin Otte
9bff1c12d4 gsk: Remove custom GValue API for GskRenderNode 2016-12-20 18:01:09 +01:00
Benjamin Otte
ff884385c0 gsk: Remove GskRenderNode::hidden
If you want to hide something, don't render it.
2016-12-20 18:01:09 +01:00
Benjamin Otte
04a2c1499a gsk: Remove RenderNode::anchor-point 2016-12-20 18:01:09 +01:00
Balázs Meskó
174d6a5613 Update Hungarian translation 2016-12-20 15:14:01 +00:00
Balázs Meskó
a47cb4d450 Update Hungarian translation 2016-12-20 15:13:33 +00:00
Daniel Mustieles
0ae27a3879 Update Spanish translation 2016-12-20 11:32:30 +00:00
Daniel Mustieles
4a13bd7a3f Update Spanish translation 2016-12-20 11:31:59 +00:00
Chun-wei Fan
696c48d0be build/Makefile.msvcproj: Fix cleanup
When we generate the Visual Studio 2013 projects, we need to remove the
*.vs12.sourcefiles and *.vs12.sourcefile.filters that are generated during
the process, so that 'make distcheck' won't complain about leftover files.
2016-12-20 14:39:39 +08:00
Debarshi Ray
7ea199c831 flowbox: Export gtk_flow_box_get_child_at_pos as public API
https://bugzilla.gnome.org/show_bug.cgi?id=776187
2016-12-20 00:35:17 +01:00
Debarshi Ray
faf2295440 GtkStack: Remove redundant code
Commit 7ce96cb6ac avoids notifications
during destruction by using gtk_widget_in_destruction. Therefore this
code is no longer needed.

This reverts commit 39e7afecb1

https://bugzilla.gnome.org/show_bug.cgi?id=749012
2016-12-20 00:32:15 +01:00
Philip Chimento
76e5fd4d0f GtkApplication: Lack of optional components shouldn't warn
When running uninstalled tests with GtkApplication on an autobuilder with
a fake session bus, warnings will cause the tests to abort. The GNOME
session manager, the Xfce session manager, and the Inhibit portal are all
not needed for normal operation of GTK, so we should not log warnings if
they are not found.

As well as not being present on a fake session bus, it's also not
expected that they'll be present on all platforms.

https://bugzilla.gnome.org/show_bug.cgi?id=774784
2016-12-19 15:20:58 -08:00
Piotr Drąg
a2da4ddceb Use Unicode in translatable strings
See https://developer.gnome.org/hig/stable/typography.html

https://bugzilla.gnome.org/show_bug.cgi?id=772371
2016-12-19 15:08:10 -05:00
Debarshi Ray
7331735499 flowbox: Don't emit selected-children-changed during destruction
https://bugzilla.gnome.org/show_bug.cgi?id=776012
2016-12-19 18:05:59 +01:00
Debarshi Ray
f5818c594c listbox: Don't emit selected-rows-changed, etc. during destruction
https://bugzilla.gnome.org/show_bug.cgi?id=776012
2016-12-19 18:05:51 +01:00
Debarshi Ray
9791641d43 flowbox: Rename gtk_flow_box_find_child_at_pos for consistency
... with gtk_list_box_get_row_at_y. It would be nice to avoid the
'find' versus 'get' discrepancy since we are planning to expose it as
public API.

https://bugzilla.gnome.org/show_bug.cgi?id=776187
2016-12-19 15:07:53 +01:00
Chun-wei Fan
4a7e7c00c1 GDK/Win32: Fix Windows backend after GdkWindow simplification
Fix the build after the branch wip/alexl/simplify-gdkwindow was merged, as
there are some changes that broke things in the Windows backend, namely:

-gdk_win32_input_shape_combine_region() should not be removed at this
 point (though it is a stub--otherwise GDK/Win32 will crash)

-Some more code need to be removed due to the removal of items in the
 above-mentioned merged branch

Also, like the X11 backend, do not allow the creation of native child
windows, and stop checking for subsequent child windows
(GDK_WINDOW_CHILD), so that we can clean things up a bit.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-12-19 17:47:47 +08:00
Marek Černocký
62627bc833 Updated Czech translation 2016-12-19 10:23:54 +01:00
Benjamin Otte
2090219abb scrolledwindow: Implement snapshot() 2016-12-19 05:36:06 +01:00
Benjamin Otte
e09fd1eb8a scrolledwindow: Fix rendering
We used to allocate the gadget relative to the view window. We allocate
relative to widget->window now.
2016-12-19 05:36:06 +01:00
Benjamin Otte
e755d9357d notebook: Implement snapshot 2016-12-19 05:36:06 +01:00
Benjamin Otte
3ba5c70028 iconhelper: Implement snapshot 2016-12-19 05:36:06 +01:00
Benjamin Otte
d9619abb11 progressbar: Implement snapshot() 2016-12-19 05:36:06 +01:00
Benjamin Otte
1733a3de0e toolbar: Implement snapshot() 2016-12-19 05:36:06 +01:00
Benjamin Otte
182dad304a eventbox: Implement snapshot() 2016-12-19 05:36:06 +01:00
Benjamin Otte
8900d6cc45 separatortoolitem: Implement snapshot() 2016-12-19 05:36:06 +01:00
Benjamin Otte
edf8ffecdf levelbar: Implement snapshot() 2016-12-19 05:36:06 +01:00
Benjamin Otte
96a94fc21d frame: Remove the border node
It does weird clipping that
(a) nobody likes
(b) is hard to support in the new rendering world.
So we take the easy way out.

The actual frame is now drawn by the frame node around the label.
2016-12-19 05:36:06 +01:00
Benjamin Otte
795f38b4cc cellview: Remove code to modify the background
GtkCellView has a gadget, so peopl can do all their shenanigans with
CSS.

And the original use case (overriding the background so that the
cellview's GdkWindow shares the background color of the combobox) is
outdated since we have transparent backgrounds.
2016-12-19 05:36:06 +01:00
Marek Černocký
087cb3f987 Updated Czech translation 2016-12-19 00:54:47 +01:00
Debarshi Ray
339f6e141a Mention that gdk_window_create_similar_image_surface inherits the scale
https://bugzilla.gnome.org/show_bug.cgi?id=776132
2016-12-17 22:50:18 +01:00
Matthias Clasen
2cb975ea77 Make gtk4-icon-browser work
It was using no-longer-existing widgets and properties.
2016-12-16 12:18:33 -05:00
Alexander Larsson
330c7feaa2 gdk: Drop gdk_window_reparent
We're not currently using this, and dropping it allows us to loose
a bunch of code which leads us towards the goal of having GdkWindow
only for toplevels (and reparenting makes not sense for toplevels).
2016-12-16 12:35:03 +01:00
Alexander Larsson
5bf28a3869 gdk: Drop support for native (and thus foreign) subwindows
We can't really support these on e.g. wayland anyway, and we're trying
to get rid of subwindow at totally in the long term, so lets drop this.
It allows us to drop a lot of complexity.
2016-12-16 12:28:44 +01:00
Olivier Fourdan
5c3192c75a wayland: apply empty input shape on parent commit
For subsurfaces, the new state which includes the input shape is not
applied by the compositor if the subsurface is in effective synchronous
mode.

So we need to apply the input shape once parent surface is in effective
desynchronized mode, which is when it's committed, otherwise the input
shape may never be applied if the widget is not using being_paint() /
end_paint() to draw on its subsurface, like clutter does.

We do that only for empty input shape as those won't need update when
the subsurface is resized, for all other non-empty input shape, the
client still has to use begin_paint()/end_paint() for the input shape to
be applied.

https://bugzilla.gnome.org/show_bug.cgi?id=774534
2016-12-15 13:27:39 +01:00
Baurzhan Muftakhidinov
cacd1da8a1 Update Kazakh translation 2016-12-14 11:13:24 +00:00
Matthias Clasen
c4fd5bc233 Add a css parser test for border-spacing 2016-12-10 20:41:07 -05:00
Matthias Clasen
b1f2e3b581 Remove -gtk-gradient from css parser tests
It is not supported anymore.
2016-12-10 20:40:48 -05:00
Matthias Clasen
8fb311cb4b Document the border-spacing CSS property 2016-12-10 20:34:24 -05:00
Benjamin Otte
0eecc6f686 grid: Implement support for CSS border-spacing 2016-12-10 04:32:55 +01:00
Benjamin Otte
404cdd5d02 boxgadget: Implement CSS border-spacing 2016-12-10 04:32:55 +01:00
Benjamin Otte
75c3d193f6 box: Implement support for border-spacing 2016-12-10 04:32:55 +01:00
Benjamin Otte
5aea108802 box: Remove unused member variable 2016-12-10 04:32:55 +01:00
Benjamin Otte
d7148a4718 css: Add "border-spacing" CSS property
It's using a GtkCssPositionValue, even though that name is wrong. But
the functionality of managing 2 lengths is exactly what we want.

Nobody is using this yet.
2016-12-10 04:32:55 +01:00
Matthias Clasen
438ad208e7 Use the new defines
It is no longer GDK_WINDOWING_VULKAN.
2016-12-09 15:51:58 -05:00
Benjamin Otte
cb8483b0a6 gtk: Remove unneeded gtk_snapshot_push()/pop() calls 2016-12-09 21:39:43 +01:00
Benjamin Otte
f8932d643d snapshot: Always create an initial node
This way we ensure that there is only one root node and everybody can
append() with impunity.
2016-12-09 21:39:43 +01:00
Benjamin Otte
2faad03f2f gsk: Improve GSK_RENDERER env var handling
- Recognize "gl" as well as "opengl" for the GL renderer
- GSK_RENDERER=help now works
- g_warning() for an unrecognized renderer (typo detection!)
- g_print() the actual renderer that is used (and error messages when
  selecting) when a GSK_RENDERER is given, so you'll notice if your
  renderer isn't taken.
2016-12-09 21:27:55 +01:00
Benjamin Otte
3e9811d91c build: Don't try to detect vulkan library if the header wasn't found.
We've already failed. No need to fail again.
2016-12-09 21:27:29 +01:00
Matthias Clasen
4ae50bf38e Trivial doc fixups 2016-12-09 14:59:46 -05:00
Benjamin Otte
2c0564a46e build: Make sure GTK compiles without Vulkan headers installed
Previously, code would work fine with --disable-vulkan if the Vulkan
headers were installed - code would happily just use them as they're
installed in /usr/include.
2016-12-09 20:23:06 +01:00
Matthias Clasen
98f5e794a6 Forgotten file 2016-12-09 14:22:14 -05:00
Matthias Clasen
3dd4f76703 Rename GDK_WINDOWING_VULKAN
The WINDOWING defines are only for GDK backends, really.
Define GDK_RENDERING_VULKAN instead.
2016-12-09 14:11:37 -05:00
Matthias Clasen
5b6a837b17 Only include vulkan.h if we have it 2016-12-09 14:05:26 -05:00
Matthias Clasen
17c8ebc4a8 Fix the configure check for Vulkan
GDK_WINDOWING_VULKAN was getting defined regardless of the tests.
2016-12-09 14:00:48 -05:00
Benjamin Otte
f52dd12569 vulkan: Implement texture caching
And with this change, the GPU looks bored again.
2016-12-09 18:35:52 +01:00
Benjamin Otte
6525fbe90f vulkan: Don't create more than one render object
By creating unlimited render objects, we would never wait on the GPU.

This would mean that if the GPU was the bottleneck, we would fill its
queue with render commands faster than it could process them.

And because the nvidia binary driver and my code work surprisingly well
and bugfree, this lead to exhaustion of RAM. I had 50GB of swap
configured and my hard disk was quicker as swap storage than my GPU was
at processing the commands, so stuff still filled up.

At that point my computer became rather unresponsive and I decided to
reboot it, so I that could write this patch.
2016-12-09 18:35:52 +01:00
Benjamin Otte
b3388aaca9 vulkan: Don't limit number of descriptor sets
If we need more than we have reserved as maximum, recreate the
descriptor pool with a higher maximum.
2016-12-09 18:35:52 +01:00
Benjamin Otte
35d1dc6dd5 vulkan: Add more node operations
Add SURFACE and TEXTURE operations. This way, we actually render more
than one node every frame because not everything is a fallback node
anymore that gets composited with its children into a cairo surface.
2016-12-09 18:35:52 +01:00
Benjamin Otte
cf470f31ca vulkan: Push the correct matrix when drawing
Instead of pushing the root matrix, push the world matrix for the
current node. That way, the bounds we emit as vertices are actually
properly transformed.
2016-12-09 18:35:52 +01:00
Benjamin Otte
93448b8c7e vulkan: Enable alpha blending
We will need that once we actually composite stuff.
2016-12-09 18:35:52 +01:00
Benjamin Otte
b3a1732a3e vulkan: Redo descriptor set handling
First, we collect all the info about descriptor sets into a hash table,
then we use its size to determine the amount of sets and allocate those
before we finally go ahead and use the hash table's contents to
initialize the descriptor sets.

And then we're ready to render.
2016-12-09 18:35:52 +01:00
Benjamin Otte
f4685e0291 vulkan: Move remaining structs to VulkanRender object
It now gets to maintain things.
2016-12-09 18:35:52 +01:00
Benjamin Otte
e989375c04 vulkan: Create framebuffers from GskVulkanRender object
Also create them on-demand, as they need to be created per-image and
per-framebuffer, so we don't want to create loads of them.
2016-12-09 18:35:52 +01:00
Benjamin Otte
8756deec58 vulkan: Turn swapchain image targets into GskVulkanImages
This gives us proper refcounting here, too. And there's no longer a
difference between the different types of images.
2016-12-09 18:35:52 +01:00
Benjamin Otte
17c11dd97b vulkan: Store width/height of GskVulkanImage
This is to enable lazy framebuffer creation later.
2016-12-09 18:35:51 +01:00
Benjamin Otte
c160ef16c1 vulkan: Turn GskVulkanImage into a GObject
This way, we can do real refcounting on them.
2016-12-09 18:35:51 +01:00
Benjamin Otte
85bc9ff36b vulkan: Hook up image upload mechanism to env variables
Instead of having to decie at compile-time, check if
GSK_RENDERING=staging-image was given, and if so, select the staging
image upload mode.
2016-12-09 18:35:51 +01:00
Benjamin Otte
b2e30fb66e vulkan: Don't wait until graphics are done computing
We can let the GPU do its stuff without waiting. The GPU knows what it's
doing.

Which means we now get a lot of time to spend on doing CPU things (read:
we're way better in benchmarks).

The old behavior is safer, so we want to keep it around for debugging.
It can be reenabled with GSK_RENDERING_MODE=sync.
2016-12-09 18:35:51 +01:00
Benjamin Otte
ac9d48151b vulkan: Keep render objects around
That way we can reuse them. We only create a new one if the last render
operation hasn't finished executing.
2016-12-09 18:35:51 +01:00
Benjamin Otte
adff39953d vulkan: Move command pool and fence into render object 2016-12-09 18:35:51 +01:00
Benjamin Otte
9635598124 vulkan: Make the GskVulkanRender struct private 2016-12-09 18:35:51 +01:00
Benjamin Otte
eb94153a2c vulkan: Make the VulkanRender object allocated
That way, we can have multiple of those and keep them around for reuse.
2016-12-09 18:35:51 +01:00
Benjamin Otte
747df7aa3c vulkan: Also wait on the draw semaphore when present()ing
That way we have a synchronization primitive at the start and at the
end.
2016-12-09 18:35:51 +01:00
Benjamin Otte
3c5b25b1d1 vulkan: Add GskVulkanRenderPass
And move the actual rendering code there.

A RenderPass is a collection of operations on the same target that
get executed one after another. It roughly targets VkRenderPass or
rather the subpasses of a VkRenderPass.

For now, only the infrastructure is there. No real stuff is happening.
2016-12-09 18:35:51 +01:00
Benjamin Otte
681554787b vulkan: Add GskVulkanRender object
This is refactoring work.

GskVulkanRender is supposed to be the global object for a render
operation, ie GskVulkanRenderer.render() will create this object for
what it does.

The object will be split into stages that perform the operations
necessary to create a drawing.
2016-12-09 18:35:51 +01:00
Benjamin Otte
583956266e vulkan: Make MVP matrix available to vertex shader
We use push constants for this.
2016-12-09 18:35:51 +01:00
Benjamin Otte
13b53656ea vulkan: Upload image data directly
Instead of using a staging iamge, we require the final image to be
linearly allocated and have host-visible memory.

This improves performance quite a bit.

The old code is still there and can be enabled with a simple change
to a #define in gskvulkanimage.h
2016-12-09 18:35:51 +01:00
Benjamin Otte
3c4b952256 vulkan: Make GskVulkanRenderer work
We now create a Cairo renderer, render to an image surface and upload
and retnder it with Vulkan.
2016-12-09 18:35:51 +01:00
Benjamin Otte
9120bdd9e9 xim: Use the native parent window for the X connection
Don't try to gdk_window_get_xid() on the current window.
2016-12-09 18:35:51 +01:00
Benjamin Otte
5e4f95d77f x11: Don't make random windows native
Instead, complain if somebody calls gdk_x11_window_get_xid() on a
non-native window.

We cannot make random windows native anymore because there's no GSK
renderer associated with them, so we cannot draw them.
2016-12-09 18:35:51 +01:00
Benjamin Otte
a7cbbaf8fc gsk: Pass texture coordinates to Vulkan renderer
We just render the coordinates as color, we don't do anything with them
yet.
2016-12-09 18:35:51 +01:00
Benjamin Otte
2a0e7f8829 gsk: Loads of work on Vulkan backend
We can now upload vertices.

And we use this to draw a yellow background. Which is clearly superior
to not drawing anything.

Also, we have shaders now. If you modify them, you need glslc installed
so they can be recompiled into Spir-V bytecode.
2016-12-09 18:35:51 +01:00
Benjamin Otte
3f7cc013cc configure: Improve Vulkan detection
1. Output Vulkan status in summary
2. Add missing "test" call
3. Check for glslc

The glslc check will be necessary later for the code that automatically
compiles the Vulkan glsl source to Spir-V.
Nothing happens if glslc is not available - unless you modify the glsl.
2016-12-09 18:35:51 +01:00
Benjamin Otte
8ba2898e08 vulkan: acquire/present images when drawing
Another step towards the final goal of actually showing something.
2016-12-09 18:35:51 +01:00
Benjamin Otte
06657fa23b gskvulkan: Create render pass and command pool 2016-12-09 18:35:51 +01:00
Benjamin Otte
3e59b11700 gskvulkanrenderer: Create imagevies and framebuffers 2016-12-09 18:35:51 +01:00
Benjamin Otte
5bea4ff45e gsk: Add a vulkan debug category 2016-12-09 18:35:51 +01:00
Benjamin Otte
325efe7078 vulkan: Expose the swapchain images in public API 2016-12-09 18:35:51 +01:00
Benjamin Otte
a753f047df gsk: Add skeleton for Vulkan renderer
The renderer itself obviously doesn't do anything.
2016-12-09 18:35:51 +01:00
Benjamin Otte
0c8e7d0ac0 vulkan: Register debug handler
We now hook Vulkan error reporting into glib's error reporting.

I'm not sure on the severity handling yet, but we can fix that as we go
along.
2016-12-09 18:35:51 +01:00
Benjamin Otte
b6227aa998 gdk: Add GDK_VULKAN env variable
Also add 2 flags:

GDK_VULKAN="disable" will disable Vulkan usage.

GDK_VULKAN="validate" will enable VK_LAYER_LUNARG_standard_validation.
2016-12-09 18:35:51 +01:00
Benjamin Otte
e11a6a0e68 x11: Call gdk_display_sync() when creating Vulkan surfaces
The Vulkan driver wants to operate on an X Window that it is sure does
exist.
2016-12-09 18:35:51 +01:00
Benjamin Otte
e22cb94e50 vulkan: More work on GdkVulkanContext
Code has now arrived at creation of swapchains.
2016-12-09 18:35:51 +01:00
Benjamin Otte
4ef8bf821e vulkan: Turn GdkVulkanContext into a GdkDrawContext 2016-12-09 18:35:51 +01:00
Benjamin Otte
6d1d6e6792 vulkan: Add more infrastructure
gdk_window_create_vulkan_context() now exists and will return a Vulkan
context for the given window. It even initializes the surface. But it
doesn't do anything useful yet.
2016-12-09 18:35:51 +01:00
Benjamin Otte
cca547e5bc vulkan: Initial support
Adds the gdk_display_ref_vulkan() and gdk_display_unref_vulkan()
functions which setup/tear down VUlkan support for the display.

Nothing is using those functions yet.
2016-12-09 18:35:51 +01:00
Benjamin Otte
843fe3eec1 build: Add Vulkan detection code
Also define GDK_WINDOWING_VULKAN if Vulkan is enabled.
2016-12-09 18:35:51 +01:00
Gianvito Cavasoli
87ae5885dd Update Italian translation
(cherry picked from commit 44fb5c9c70)
2016-12-09 10:34:59 +00:00
William Hua
9a7b0847b9 mir: swap buffers on paint 2016-12-08 15:28:31 -05:00
Timm Bäder
489aee5d00 widget: Remove unused adjust_* vfuncs
Expose them privately to gtksizerequest.c using normal functions
instead.
2016-12-07 18:12:54 +01:00
Timm Bäder
1aa1676d9d menu: Replace button-press-handler with gesture 2016-12-07 18:06:37 +01:00
Timm Bäder
be9adea58e toolbar: Replace button-press-event handler with gesture 2016-12-07 18:06:32 +01:00
Timm Bäder
55b1f231fb linkbutton: Replace button-press-event handler with gesture 2016-12-07 18:06:28 +01:00
Timm Bäder
c4a6c37767 separatortoolitem: Remove button-event/motion-event handlers
These only exist for the window dragging which does not exist anymore
currently. It will be reintroduced later in a form that does not require
these handlers.
2016-12-07 18:06:23 +01:00
Timm Bäder
4c12c4ba02 snapshot: Add annotations to parameters/return values 2016-12-07 18:06:17 +01:00
Timm Bäder
ea22bd9d40 widget: Use gtk_widget_measure to measure widget sizes 2016-12-07 08:19:22 +01:00
Timm Bäder
07a9b202ab widget: Remove _gtk_widget_supports_clip 2016-12-07 08:19:22 +01:00
Timm Bäder
3063d4a5e3 widget: Remove gtk_widget_invalidate_style_context 2016-12-07 08:19:22 +01:00
Benjamin Otte
cd2b898353 wayland: Sync attributes also when drawing with GL
Probably syncing attributes shouldn't happen when drawing in the first
place, but what do I know about Wayland. ¯\_(ツ)_/¯
2016-12-06 18:02:11 +01:00
Benjamin Otte
a85a97c1a1 wayland: Uncomment erroneously commented out code
I read the code as if (use_gl) instead of if (!use_gl) and commented it
out in bddfd7bb41. That broke drawing on
Wayland without OpenGL completely.

Whoops.

Now it's back.
2016-12-06 17:51:35 +01:00
Chun-wei Fan
060365a9bb GDK/Win32: Fix build after GDKGL refactoring
There were some parts that need some updates after the refactoring in
GDKGL, so that the code will continue to build and run.

For gdkwindow-win32.c, comment out the parts where we check for use_gl
(which was removed), since we are going to move all drawing to OpenGL,
but don't remove/disable the whole portion as that transition is not
complete at this point.

There a is new GDKGL function that checks for the damaged area of the back
buffer, but since the notion of "damage" is for *NIX (GLX/EGL for
Wayland/mir), meaning that there is no such extension for Windows in this
regard, so we can't support this on Windows as-is, at least for now.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-12-06 16:47:47 +08:00
Piotr Drąg
82401032c5 Update POTFILES.in 2016-12-05 19:46:59 +01:00
William Hua
fdec3e8a3f build: add gir depends for GdkX11, GdkWin32, and Gsk on Gdk
https://bugzilla.gnome.org/show_bug.cgi?id=775651
2016-12-05 12:56:50 -05:00
William Hua
3c2aefddd4 mir: fix type warning 2016-12-05 11:06:32 -05:00
William Hua
32b3928eda mir: fix build failures 2016-12-05 10:28:48 -05:00
William Hua
e27e8e6e1c mir: implement display monitor vfuncs 2016-12-05 09:17:44 -05:00
Benjamin Otte
8915be00d1 gdkgl: Add gdk_gl_context_get_damage()
This is a way to query the damaged area of the backbuffer.

The GL renderer uses this to compute the extents of that damage region
(computed via buffer age) and use them to minimize the area to redraw.

This changes the semantics of GL rendering to "When calling
gdk_window_begin_frame() with a GL context, the area by
gdk_gl_context_get_damage() needs to be redrawn and every other pixel of
the backbuffer is guaranteed to be correct.
After gdk_window_end_frame() on a GL-drawn window, the whole backbuffer
must be correct.

We can always glXBufferSwap() now because of this.
2016-12-05 15:02:47 +01:00
Benjamin Otte
582ea50faa inspector: Add support for displayin the render region
Now I just need a UI designer that makes this look nice...
2016-12-05 15:02:47 +01:00
Benjamin Otte
9597caef5e glrenderer: Always redraw the whole screen 2016-12-05 15:02:47 +01:00
Benjamin Otte
ca78f5d3cb gdk: Make gdk_window_begin_draw_frame() take a draw context
... instead of a gl context.

This requires some refactoring in the way we mark the shared context as
drawing: We now call begin_frame/end_frame() on it and ignore the call
on the main context.
Unfortunately we need to do this check in all vfuncs, which sucks. But I
haven't found a better way.
2016-12-05 15:02:47 +01:00
Benjamin Otte
60567db486 gskrenderer: Add gsk_renderer_begin_draw_frame()
This way, we can hijack the begin/end draw process and do out own
processing before passing it on to GDK.
2016-12-05 15:02:47 +01:00
Benjamin Otte
e950a5190d inspector: Pass the drawing context into the recorder
That way we can capture both the actual changes (clip region) and the
area that was redrawn (render region), which in OpenGL might not be
identical.

Nothing shows the render region yet though...
2016-12-05 15:02:47 +01:00
Benjamin Otte
358aca9e20 glrenderer: Always redraw the whole screen 2016-12-05 15:02:47 +01:00
Benjamin Otte
da8d886b17 gsk: Change GSK_USE_SOFTWARE env var to GSK_RENDERER
This way, we can use the variable as more than a boolean flag.

This will be useful for Vulkan or D3D renderers.
2016-12-05 15:02:47 +01:00
Benjamin Otte
725a7236c0 gdk: Turn GdkGLContext into a GdkDrawContext 2016-12-05 15:02:47 +01:00
Benjamin Otte
db8e3065bd gdk: Add GdkDrawContext
This will be the base class for GdkVulkanContext and GdkGLContext.
2016-12-05 15:02:47 +01:00
Benjamin Otte
e38bd27d58 gdk: Redo GL drawing
Reenable GL drawing, but do it without Cairo.

Now, the context passed to gdk_window_begin_draw_frame() decides how
drawing is going to happen. If it is NULL, Cairo is used like before.

If a context is passed, Cairo may not be used for drawing and
gdk_drawing_context_get_cairo_context() is going to return NULL.
Instead, the GL renderer must draw to the GL backbuffer and
end_draw_frame() is then swapping that to the front.

The GskGLRenderer has lost the texture it used to render to and adapted
to render directly to the backbuffer instead.

The only thing missing is for GtkGLArea to gain back a performant way to
render. But it didn't have one since the introduction of GSK, this
patchset doesn't change anything about it.

The new rendering avoids two indirections (the GSK renderer's texture
and the GDK double buffering surface).
It improves icon count in the fishbowl demo by 30%.
2016-12-05 15:02:47 +01:00
Benjamin Otte
e87b472143 glcontext: Make begin/end_draw() paired
This way, we can query the GL context's state via
gdk_gl_context_is_drawing().

Use this function to make GL contexts as attached and grant them access
to the front/backbuffer for rendering.

All of this is still unused because GL drawing is still disabled.
2016-12-05 15:02:47 +01:00
Benjamin Otte
182d18bcd1 gdk: Large GL refactoring
No visible changes as GL rendering is disabled at the moment.

What was done:

1. Move window->invalidate_for_new_frame to glcontext->begin_frame
This moves the code to where it is used (the GLContext) and prepares it
for being called where it is used when actually beginning to draw the
frame.

2. Get rid of buffer-age usage
We want to let the application render directly to the backbuffer.
Because of that, we cannot make any assumptions about the contents the
application renders outside the clip area.
In particular GskGLRenderer renders random stuff there but not actual
contents.

3. Pass the actual GL context
Previously, we passed the shared context to end_frame, now we pass the
actual GL context that the application uses for rendering. This is so
that the vfuncs could prepare the actual contexts for rendering (they
don't currently).

4. Simplify the code
The previous code set up the final drawing method in begin_frame.
Instead, we now just ensure the clip area is something we can render
and decide on the actual method in end_frame.
This is both more robust (we can change the clip area in between if we
want to) and less code.
2016-12-05 15:02:47 +01:00
Benjamin Otte
4b484557f5 gsk: Allow 0 for gsk_gl_driver_begin_frame()
Special-case this situation to unset the current framebuffer and render
to the backbuffer again.
2016-12-05 15:02:47 +01:00
Benjamin Otte
4967257f3a gdk: Don't recurse when processing updates
We don't need to send expose events for backwards compatibility anymore.
2016-12-05 15:02:47 +01:00
Benjamin Otte
bddfd7bb41 gdk: Remove all code that only existed because of use_gl
Now that we don't use GL anymore, this code is unnecessary.
2016-12-05 15:02:47 +01:00
Benjamin Otte
77d336de17 gdk: Never draw with GL
This is a temporary switch-off of the GL dawing code that will make
things keep running. All GL related code (like the GSK renderer or
GtkGLArea will now fall back to software.
2016-12-05 15:02:47 +01:00
Benjamin Otte
e42e27304a gskrenderer: Store the GL context
And use it to create the drawing context with it.

Note that this doesn't yet have any effect and is all infrastructure
preparation work.
2016-12-05 15:02:47 +01:00
Benjamin Otte
332ed7be5b API: Require passing a GLContext to begin_draw_frame()
This is in preparation for requiring explicit passing of GL contexts
when drawing.
2016-12-05 15:02:47 +01:00
Benjamin Otte
9c041f6bcc window: Change behavior of gdk_window_begin_draw_frame()
(1) Require a native window
(2) Create the drawing context before calling begin_paint().
2016-12-05 15:02:47 +01:00
Benjamin Otte
a860bbbe46 drawingcontext: Store the GL paint context 2016-12-05 15:02:47 +01:00
Benjamin Otte
633631a47b cssgadget: Compute relative to own allocation, not widget allocation
This would lead to clipped gadgets when the gadget allocation differed
from the widget allocation, like in GtkListBox.
2016-12-05 15:02:46 +01:00
Olivier Fourdan
f6b4477393 wayland: destroy subsurfaces along with parents
Wayland subsurfaces can have other native window parents, but those need
to be destroyed along with the rest of the window hierarchy otherwise
an assert() is reached.

https://bugzilla.gnome.org/show_bug.cgi?id=774915
2016-12-05 10:56:41 +01:00
Timm Bäder
ac20c3eb22 frame: Use gtk_widget_measure to measure child sizes 2016-12-04 12:00:46 +01:00
Timm Bäder
7096d6dd28 viewport: Use gtk_widget_measure to measure child sizes
and rewrite the adjustment handling in a orientation-agnostic way.
2016-12-04 12:00:46 +01:00
Timm Bäder
5ee590fbc8 scrolledwindow: measure child widgets using gtk_widget_measure 2016-12-04 12:00:46 +01:00
Timm Bäder
1ab3d32808 revealer: Measure child widget size using gtk_widget_measure 2016-12-04 12:00:46 +01:00
Timm Bäder
7f8d0acfd3 headerbar: measure children using gtk_widget_measure 2016-12-04 12:00:46 +01:00
Timm Bäder
d45e5ef3dc widget-factory: Use GtkButton:icon-name to construct icon buttons 2016-12-04 12:00:45 +01:00
Timm Bäder
5b05c12780 toolpalette: call set_has_window 2016-12-04 12:00:45 +01:00
Timm Bäder
9f98138ffb printunixdialog: Remove GtkDrawingArea::draw handler
the source file has been updated to use gtk_drawing_area_set_draw_func,
but the draw_cb handler in the ui file is still left.
2016-12-04 12:00:38 +01:00
Benjamin Otte
0d68b22479 stylecontext: Remove a bunch of unneeded headers 2016-12-03 18:15:49 +01:00
Daniel Boles
8efc91c4e0 GtkProgressBar: trivial conditional optimisation
I'd hope the compiler would realise this for us, but let's be explicit.
2016-12-03 16:27:03 +00:00
Timm Bäder
3dac21f20b entry: Refactor get_icon_pixbuf
This way it will only return a pixbuf if the icon helper has a pixbuf.
2016-12-03 13:19:26 +01:00
Timm Bäder
8a543ab23c iconhelper: Ensure the surface used for textures is ARGB32 2016-12-03 13:19:26 +01:00
Timm Bäder
49508ddfdb iconhelper: Remove allocate implementation 2016-12-03 13:19:26 +01:00
Timm Bäder
31ed68dbfa listbox: Fix row hovering
GtkListBox is not a windowed widget anymore so we can't use
gtk_widget_get_window. Just directly access priv->view_window instead to
get the right window.
2016-12-03 13:19:26 +01:00
Timm Bäder
fa4d6e8918 spinbutton: Remove _get_panels 2016-12-03 13:19:26 +01:00
Timm Bäder
36377e9964 Remove gtk_widget_get_preferred_height_and_baseline_for_width
It's just a wrapper around gtk_widget_measure nowadays.
2016-12-03 13:19:25 +01:00
Timm Bäder
8d36fbfbaa togglebutton: Remove unused defines 2016-12-03 13:19:25 +01:00
Debarshi Ray
1f7b03bb2b flowbox: Fix get_child_at_index crash with an invalid index
https://bugzilla.gnome.org/show_bug.cgi?id=775525
2016-12-02 19:17:40 +01:00
Daniel Boles
975a3fa4aa ComboBox: Fix the whitespace fix 2016-12-01 12:59:46 +00:00
Daniel Boles
e723fd6a23 ComboBox: Do not select item before menu realised
For a menu mode CB with wrap_width == 0 and an active item, that item is
selected in gtk_combo_box_menu_popup. Selection causes the MenuShell to
activate and hence take a grab. This was done before the menu was popped
up. A patch distributed in Debian sid - after being proposed on our BZ -
revealed that on the 1st popup of any such ComboBox, within grab_add,
the MenuShell's toplevel's GdkWindow is NULL. This causes a Gdk-CRITICAL
assertion fail on the 1st time opening any such CB, on Debian and if
that patch were merged to GTK+. By selecting after popup, we ensure the
MenuShell is realised before its grab_add and so avoid the critical.

https://bugzilla.gnome.org/show_bug.cgi?id=771242
2016-12-01 12:46:12 +00:00
Daniel Boles
a72dbeba06 ComboBox: Fix whitespace
* Replace tabs for indentation with spaces
 * Remove whitespace at ends of lines
2016-12-01 12:46:12 +00:00
Benjamin Otte
e09b78f7f7 cssshadows: Fix extents computation
Someody busted this code a *lot*.
2016-11-30 23:54:49 +01:00
Benjamin Otte
970f99615e image: Don't translate twice
The animation can pass x/y through to the render_icon() function, so
don't gtk_snapshot_translate() it.
2016-11-30 23:54:49 +01:00
Matthias Clasen
92a1abcd23 wayland: Don't warn if we loose the compositor connection
And instead, exit cleanly. This avoids filling the logs with
these warnings from every single application that has a
connection to the compositor.
2016-11-30 13:45:04 -05:00
Matthias Clasen
1c51da82bd x11: Don't warn if the display is closed
This causes a storm of warnings from all applications in the logs
whenever the display goes away, and is not useful.
2016-11-30 13:45:00 -05:00
William Hua
7d18a86140 gsk: ensure libgsk-4.la before running g-ir-scanner
https://bugzilla.gnome.org/show_bug.cgi?id=775410
2016-11-30 10:30:17 -05:00
Benjamin Otte
318e19f570 gskrenderer: Add GError argument to gsk_renderer_realize()
This way, we don't spam criticals when GL is not available. Instead, we
print a useful debug message to stderr and continue with the Cairo renderer.

Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
2016-11-30 15:58:07 +01:00
Benjamin Otte
5563841603 gsk: Add gsk_renderer_new_for_window()
and remove gsk_renderer_get_for_display().

This new function returns a realized renderer. Because of that, GSK can
catch failures to realize, destroy the renderer and try another one.

Or in short: I can finally use GTK on Weston with the nvidia binary
drivers again.

Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
2016-11-30 15:56:00 +01:00
Benjamin Otte
ce98df881f gsk: Change gsk_renderer_realize()
Instead of having a gsk_renderer_set_window() call, pass the window to
realize(). This way, the realization can fail with the wrong window.

Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
2016-11-30 15:55:45 +01:00
Benjamin Otte
efd04b47aa gdk: Make GdkDrawingContext not per-backend
No backend is using it, and we can put the backend-specific drawing code
into GdkGLContext.
2016-11-30 15:52:22 +01:00
Benjamin Otte
bdcfc17c43 gdkwindow: Remove unused vfunc
GdkGLContext knows how to realize itself.
2016-11-30 15:15:08 +01:00
Benjamin Otte
d12c81f177 flowbox: Size gadget realtive to widget->window
This fixes a few clipping issues and syncs code with GtkListBox.
2016-11-30 15:15:08 +01:00
Benjamin Otte
e28d94bc8b listbox: Move the priv->gadget allocation
It used to be relative to the window, now it is relative to the widget.

That is necessary so the snapshot fuction doesn't confuse coordinate
systems.
2016-11-30 15:15:08 +01:00
Benjamin Otte
238334c74e cairorenderer: Remove nonexisting function from header 2016-11-30 15:15:08 +01:00
Olivier Fourdan
bd4519922c wayland: Check for subsurface looking up the toplevel
gdk_window_get_toplevel() walks up the windows tree looking for the
corresponding toplevel window, but needs to account for subsurfaces as
well on Wayland.

https://bugzilla.gnome.org/show_bug.cgi?id=775319
2016-11-30 10:05:47 +01:00
Emmanuele Bassi
c8b92cb0d2 demos: Remove undefined function call
The gtk_container_set_border_width() function has been removed from
the GTK+ 4.x API.
2016-11-29 23:29:10 +00:00
Matthias Clasen
ee1ae7f9ed gtk-demo: Add a demo for tabs
One of the least-appreciated features in pango.
It deserves a demo.
2016-11-29 16:40:24 -05:00
Matthias Clasen
0037d4d257 Don't leak a pixbuf reference in dnd
https://bugzilla.gnome.org/show_bug.cgi?id=775316
2016-11-29 14:42:35 -05:00
Matthias Clasen
316b24e0a0 Fix reference handling in GtkScaleButton
We were leaking the adjustment, since we confuse ourselves
with a property whose initial value comes out of a template.
Stop doing that.

https://bugzilla.gnome.org/show_bug.cgi?id=775212
2016-11-28 15:04:20 -05:00
William Hua
3efbb75619 mir: fix build failures 2016-11-27 21:31:21 -05:00
Sébastien Wilmet
82b2bf2184 docs: fix a parameter name of GtkEntry::populate-popup
Trivial commit.

The documentation block refers to @widget, not @popup. @widget is a
better name since the type is GtkWidget.
2016-11-26 12:31:34 +01:00
Sébastien Wilmet
e2881d1e4f docs: fix docs of functions to convert layout_index <-> text_index
Trivial commit.

The documentation was swapped. The documentation for the parameters and
the return values is good.
2016-11-26 12:31:34 +01:00
Benjamin Otte
8161f8dcca rendericon: Pass the scale factor when rendeirng textures
Fixes icon rendeirng on hidpi.
2016-11-26 11:52:30 +01:00
Cosimo Cecchi
7ebbd075b9 Adwaita: make rubberband selection work again for libgd apps
libgd views still use the old style class.
2016-11-25 18:55:12 +01:00
Matthias Clasen
4939cfd67e Make gtk-encode-symbolic-svg work for icons with dotted names
We were producing org.symbolic.png from org.gnome.Recipes-symbolic.svg,
which is not useful. Look for the last dot in the original name, to
produce the expected org.gnome.Recipes-symbolic.symbolic.png instead.
2016-11-25 08:55:33 -05:00
Dominique Leuenberger
cae8fc74ac Build: Add wayland to GSKs dependencies
gskrenderer.c includes gdk/wayland/gdkwayland.h and as a consequence
we need to be able to locate wayland's headers in case they are not
in standard location.

https://bugzilla.gnome.org/show_bug.cgi?id=775038
2016-11-24 19:53:36 +01:00
Benjamin Otte
624e0e1409 gdk: Rewrite docs some more
Now gdk_window_process_updates() isn't mentioned either.

GDK takes care of redrawing, not you!
2016-11-24 18:31:11 +01:00
Benjamin Otte
d7876bde74 inspector: Remove leftover GDK_PRIVATE_CALL()s 2016-11-24 15:41:19 +01:00
Benjamin Otte
4b6e70b9c8 gdk: Get rid of all mentions of process_all_updates() 2016-11-24 15:26:49 +01:00
Olivier Fourdan
39200e75b6 wayland: Place subsurfaces relative to their parent
Now that subsurfaces can be created as child of another GdkWindow (and
not just the root window), they must be placed according to the location
of their parent, i.e. the abs_x/abs_y must be updated and taken int
account when placing and moving subsurfaces under Wayland.

https://bugzilla.gnome.org/show_bug.cgi?id=774917
2016-11-24 09:32:41 +01:00
Benjamin Otte
ae29d4db5a gdk: Use stricter checks for begin_draw_frame()
We don't support drawing on child windows, so make sure nobody tries.
2016-11-24 04:43:42 +01:00
Matthias Clasen
3414f10bad Drop the GDK_PRIVATE_CALL mechanism
We don't need to do this extra complication anymore, since
we're now living inside a single shared library.
2016-11-23 19:31:16 -05:00
Matthias Clasen
1af817e254 inspector: Respect text-scaling-factor value initially
This was pointed out in
https://bugzilla.gnome.org/show_bug.cgi?id=774893
2016-11-23 19:16:16 -05:00
Florian Müllner
593b75fb69 GtkLabelAccessible: Initialize link before setting parent
Since at-spi-atk commit 96621a5e95 fixed PropertyChange notifications
for AccessibleParent, setting the parent will result in a call to
ref_state_set() which assumes that the object is fully initialized.

https://bugzilla.gnome.org/show_bug.cgi?id=774939
2016-11-23 18:55:42 -05:00
Christian Hergert
c14c9aca34 inspector: ensure controller is a GtkGesture
While GtkEventController implementations today are all GtkGesture, it is
possible to create a GtkEventController manually. This is an extrac check
to ensure we only add gestures to the list.

https://bugzilla.gnome.org/show_bug.cgi?id=774760
2016-11-23 14:03:13 -08:00
Stas Solovey
10a7c65f47 Update Russian translation
(cherry picked from commit dd3cf38c53)
2016-11-23 20:43:13 +00:00
Matthias Clasen
3a947fa318 menu: Don't leak check menu items
Pointed out in
https://bugzilla.gnome.org/show_bug.cgi?id=774686
2016-11-23 14:48:17 -05:00
Matthias Clasen
1dded6d633 notebook: Don't leak arrow gadgets
This was pointed out in
https://bugzilla.gnome.org/show_bug.cgi?id=774743
2016-11-23 14:44:37 -05:00
Matthias Clasen
0e37d67393 text handle: Don't leak adjustments
This can happen if the weak pointer is triggered before the
adjustments are unset. Pointed out in

https://bugzilla.gnome.org/show_bug.cgi?id=774790
2016-11-23 13:57:03 -05:00
Benjamin Otte
0cb35bf394 gdk: Only draw toplevels
Simplify gdk_window_paint_on_clock () to only draw the toplevel. We do
no longer draw child windows and offscreens no longer exist.
2016-11-23 19:32:27 +01:00
Benjamin Otte
2a27b7ecc6 API: Remove gdk_window_process_all_updates()
It's completely unused since we have a frame clock.
2016-11-23 19:10:34 +01:00
Benjamin Otte
ef75ca2d53 API: gdk: Remove gdk_window_process_updates()
We have a frame clock now.
2016-11-23 19:02:58 +01:00
Benjamin Otte
4dedafb79b drawingcontext: Add a private struct
This is to control what backends can and cannot access.
2016-11-23 18:49:48 +01:00
Benjamin Otte
4850271ae8 API: Remove gtk_cairo_should_draw_window()
The answer is: Yes.
2016-11-23 18:48:38 +01:00
Benjamin Otte
b7869c65a8 gdk: Move GdkDrawingContext definition to gdktypes.h 2016-11-23 18:48:15 +01:00
Benjamin Otte
8cb96dec7e window: unrealize renderer before destroying GDK window
We need to unrealize the children manually for that to happen, but so it
goes.

The order is necessary because we want the renderer to still be alive
while children are unrealizing.
2016-11-23 18:47:58 +01:00
Lapo Calamandrei
cb1a349d17 HC: progressbar style fix
Reset styling on the progress node when trough node has the `empty'
styleclass.

See https://bugzilla.gnome.org/show_bug.cgi?id=774695
2016-11-23 17:25:18 +01:00
Lapo Calamandrei
5ab18062a3 HC: really use radial-gradient() in place of -gtk-gradient()
Regenerate the css from sass..
2016-11-23 16:39:14 +01:00
Lapo Calamandrei
eb5b8b22e2 Adwaita: progressbar style fix
Reset styling on the progress node when trough node has the `empty'
styleclass.

See https://bugzilla.gnome.org/show_bug.cgi?id=774695
2016-11-23 16:14:58 +01:00
Andrew Chadwick
368e0117ed wintab: init only after the display is assigned
Only attempt to initialize Wintab after the display manager announces
that the first default display has been set. Fixes a segfault during
initialization of specific tablet drivers' wintab32.dlls. Add assertions
and verbose comments explaining this nonsense because this stuff is a
pain to have to keep fixing.

https://bugzilla.gnome.org/show_bug.cgi?id=774379
2016-11-22 12:50:32 +01:00
Andrew Chadwick
8fb9d1578d wintab tilt: Check return location for validity
https://bugzilla.gnome.org/show_bug.cgi?id=774265
2016-11-22 12:16:19 +01:00
Marek Cernocky
331302005c Updated Czech translation 2016-11-22 11:57:57 +01:00
Andrew Chadwick
9e3bd03d3e win32: Fix tilt from Wintab devices
Move the orientation sanity-checks into the packet decode func.
Rationale: the packet handling func may otherwise read beyond the end of
device->last_axis_data.

Also expand them to cope with my test Huion's weird reporting.

Also correct the azimuth angle to align with GDK's presentation.

Most importantly, fix annoying comment typo.

https://bugzilla.gnome.org/show_bug.cgi?id=774265
2016-11-22 11:21:06 +01:00
Chun-wei Fan
17fe2288e8 gtk/gtkprintoperation-win32.c: Fix for GTK+-4.0 API
We no longer have GtkPlug nor GtkWin32EmbedManifest for GTK+-4.x, and it
is not entirely clear at this point what would be the "best" replacement
for them, but this issue here prevents GTK+-3.89.x building on Windows.

As a result, this is a fast port to avoid using APIs that have been
removed for 4.x, and things seem to work properly (the print.c page
printed).

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-11-22 11:40:57 +08:00
Matthias Clasen
1f7ab7c069 3.89.1 2016-11-21 18:36:07 -05:00
Andrew Chadwick
6e197afc44 wintab: fix skipping of odd-numbered devices
Fix a regression introduced in 4ce6d10601
which causes devices with an odd-numbered zero-based index in the list
to be passed over incorrectly. This might present as yet another "device
does not send pressure" bug for ~50% of devices out there.

This commit also closes off another potential segfault for wintab_devices
lists which have an odd length.

https://bugzilla.gnome.org/show_bug.cgi?id=774699
2016-11-21 19:11:09 +01:00
Emmanuele Bassi
7ae83717af Bump the Graphene dependency
The initialization macros for Point, Point3D, Size, and Rectangle have
been modified in Graphene 1.5.1 to allow their use as compound
literals.
2016-11-21 16:24:34 +00:00
Emmanuele Bassi
4cbe079767 Use Graphene init macros for compound literals
The Graphene init macros can now be used for compound literals, which
means we need to update our mixed uses.
2016-11-21 16:21:38 +00:00
Gustavo Noronha Silva
8e5e165f79 Fix off by one in check for GtkRoundedBox containing a rectangle
When checking if a rectangle is contained by the rounded box, the code
will refuse a rectangle which is the exact size as the one backing the
rounded box, since it checks for greater or equal width and height.
Check for greater only instead.

https://bugzilla.gnome.org/show_bug.cgi?id=774114
2016-11-21 10:53:11 -02:00
Balázs Meskó
895fd0e773 Update Hungarian translation 2016-11-21 09:35:08 +00:00
Balázs Meskó
bd73a55f32 Update Hungarian translation 2016-11-21 09:33:59 +00:00
Chun-wei Fan
efd92da101 Visual Studio builds: Rename broadwayd to gtk4-broadwayd
We need to update the solution file and the projects that refer to
broadwayd.
2016-11-21 15:51:21 +08:00
Chun-wei Fan
724e7f48e7 gdk/win32/gdkwindow-win32.c: Fix build
Fix the assignment of ->create_draw_context, in which an underscore is
accidently added.
2016-11-21 15:40:28 +08:00
Chun-wei Fan
18b1305d08 build: Complete renaming of broadwayd to gtk4-broadwayd
The parts where the Visual Studio projects are generated must also be updated
so that 'make dist' will work properly.
2016-11-21 15:09:35 +08:00
Matthias Clasen
a33b551f83 Update for 3.89.1 2016-11-20 08:14:36 -05:00
Matthias Clasen
8a88745186 Some additions to the migration guide 2016-11-20 08:14:19 -05:00
Matthias Clasen
7625beec50 fishbowl: Fix up initial text
Avoid the text changing from "0 fish" to "0 icons" right
after opening the fishbowl demo.
2016-11-20 06:15:19 -05:00
Benjamin Otte
e62a4d8eea API: gdk: Remove ability to render window contents
The functions gdk_pixbuf_get_from_window() and
gdk_cairo_set_source_window() are unreliable and depend on the windowing
system (they work great on X11 and Win32, less so on Quartz and Wayland).

With the switch to new drawing API and OpenGL, we can definitely no
longer support a generic way to snapshot windows.

People should either write windowsystem-specific code or draw their
widgets directly - like with gtk_widget_draw() - if they need to get a
rendering.
2016-11-20 11:47:44 +01:00
Benjamin Otte
84918c7e6f modules: Add a check for GTK3 symbols
This way, we can warn if GTK2 or GTK3 are linked into libgtk4.
2016-11-20 11:44:19 +01:00
Benjamin Otte
78888ade0d tools: Rewrite screenshotting code for shooter
Uses X directly, so bypasses both the need to query the root window and
to draw window contents.
2016-11-20 11:43:09 +01:00
Benjamin Otte
196737a958 reftest: Make screenshot code work without GDK
GDK does not support taking images of GDK windows.
2016-11-20 11:20:34 +01:00
Benjamin Otte
dfd9150a82 build: Don't link against libgtk and libgdk
libgdk is statically linked these days, so if you link against it, all
of its symbols will exist twice: Once in libgtk.so and once in your
binary.
2016-11-20 11:19:32 +01:00
Benjamin Otte
fef2f96add tests: Remove outdated tests
The tests read a nonexisting colorprofile, try to convert stuff read
from the window into it, do things that gdk-pixbuf should test and
then aren't even integrated into the testuite.

Sheesh.
2016-11-20 08:33:13 +01:00
Benjamin Otte
1492175a28 window: Remove unused destroy_draw_context vfunc 2016-11-20 07:27:00 +01:00
Benjamin Otte
cb18752f94 gdk: Make each backend have a custom GdkDrawingContext subclass 2016-11-20 07:19:52 +01:00
Benjamin Otte
1912d992d8 gtk-demo: Allow locking of icon count in fishbowl demo
I'm not sure I'm proud of the hack to get the changing icon into the UI
file without having to write code. But it works.
2016-11-20 05:29:03 +01:00
Benjamin Otte
39bf2ba96f cairorenderer: Record cpu time in the profiler 2016-11-20 05:28:52 +01:00
Benjamin Otte
aa084333c8 inspector: Redo recording list
- Make the rows larger
- Display the elapsed time between renderings
- Display if it was a full or a partial redraw
- Add a toggle button to display profiler info
2016-11-20 05:03:18 +01:00
Benjamin Otte
be237dbb5a inspector: Pass the renderer when recording
... and collect the profiler information from the renderer.
2016-11-20 03:54:43 +01:00
Benjamin Otte
32adb31428 inspector: Record a "start" event whenever we start recording 2016-11-20 03:54:43 +01:00
Matthias Clasen
b404ecf294 Drop deprecated gtk_dialog_get_action_area
Add an internal version for the few places where we still need it,
and drop it from everywhere else.
2016-11-19 21:23:17 -05:00
Matthias Clasen
b0303c539c Make unknown window types fatal
This helps gcc to see that there's no point in warning about
gdk_window being used uninitialized.
2016-11-19 21:23:17 -05:00
Benjamin Otte
b93c26f559 render: Refactor background drawing code
We can query the blend mode inside the paint function.
2016-11-19 21:28:18 +01:00
Benjamin Otte
305ea71b97 inspector Reselect bottom row in recorder
When inserting a new recording and the bottommost row was selected,
select the newly added row. This way, you can observe the ongoing
recording.
2016-11-19 20:58:36 +01:00
Benjamin Otte
38f226b5ce render: Propagate snapshot drawing to box shadows
This decouples actual background drawing from shadow drawing in the
snapshot case.

We also now create seperate nodes for shadows vs for backgrounds.
2016-11-19 20:58:36 +01:00
Benjamin Otte
c45f8b1a25 cssshadows: Reengineer API
This way we have an API to query extents per shadow and I want that in
the next patch.
2016-11-19 20:58:36 +01:00
Benjamin Otte
2745c2502f snapshot: Move GtkSnapshot declaration to gtypes.h 2016-11-19 20:58:36 +01:00
Matthias Clasen
8afb655347 Document gtk_menu_place_on_monitor 2016-11-19 13:51:50 -05:00
Matthias Clasen
fd6d28dd8d Add some things to the sections file
This makes gtk-doc happier.
2016-11-19 13:46:13 -05:00
Matthias Clasen
1bffefce7d Small documentation additions 2016-11-19 13:45:58 -05:00
Matthias Clasen
5170218a1d More work towards a clean doc build
Tell gtk-doc about more private headers.
2016-11-19 13:45:04 -05:00
Matthias Clasen
9bacbb489b Don't confuse gtk-doc
It doesn't like doc comments for non-api.
2016-11-19 13:44:36 -05:00
Matthias Clasen
64a75ec87d Drop docs for no-longer-existing API
Poor gtk-doc gets confused so easily...
2016-11-19 13:36:58 -05:00
Matthias Clasen
2d65156be3 Add gtk_im_context_simple_add_compose_file 2016-11-19 13:30:27 -05:00
Matthias Clasen
b0feee803f Add a since tag 2016-11-19 13:30:02 -05:00
Matthias Clasen
6734f354b4 docs: Add gtk_print_job_set_source_fd 2016-11-19 13:26:49 -05:00
Matthias Clasen
d0f8e324b1 Add gtk_menu_place_on_monitor to the docs 2016-11-19 12:53:13 -05:00
Matthias Clasen
712196c416 Don't confuse gtk-doc
Empty doc comments make gtk-doc complain about undocumented
functions, even though these functions are not supposed to
be documented in the first place.
2016-11-19 12:39:09 -05:00
Matthias Clasen
3dc53dab69 Document ::snapshot vfunc 2016-11-19 12:37:19 -05:00
Matthias Clasen
c9c391bd55 Drop macro wrappers for get_version functions
These are not really useful, and were added long ago
as a clutch for transitioning to the new names.
2016-11-19 12:28:52 -05:00
Matthias Clasen
c418ce0365 testgtk: Stop using gtk_micro_version
This will be going away soon
2016-11-19 12:28:52 -05:00
Matthias Clasen
158afb4ef9 Fix a signature mismatch
The new drawingarea draw func returns void.
2016-11-19 12:28:52 -05:00
Benjamin Otte
9dae0a9b00 widgetnode: We never need widget paths anymore
Backwards compat is not necessary in GTK4.
2016-11-19 18:08:35 +01:00
Matthias Clasen
0d1c54b6cc Remove once again, empty doc comments that break the docs
This is just more breakage from introspection ursurping doc
comments. Somebody needs to find a proper solution before this
is brought back.
2016-11-19 12:02:07 -05:00
Ask Hjorth Larsen
270af15f16 Updated Danish translation 2016-11-19 16:29:44 +01:00
Matthias Clasen
0392acd875 Reduce the text shadow warnings
They make it hard to see other useful information.
2016-11-19 08:05:42 -05:00
Baurzhan Muftakhidinov
76b8adcfbd Update Kazakh translation
(cherry picked from commit 4bc2904dae)
2016-11-19 12:16:13 +00:00
Benjamin Otte
dc634fe6db render: Compute extents correctly
I multiplied matrices the wrong way. Again.
2016-11-19 03:15:51 +01:00
Benjamin Otte
14b746eeaa tests: Remove styleexamples test
It's so outdated it doesn't even do anything useful anymore.

So I'll just assume nobody uses it.
2016-11-19 03:02:46 +01:00
Simon Steinbeiss
a1deb8e459 progressbar: add empty and full classes on trough based on fill-level
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=774695
2016-11-19 03:02:46 +01:00
Benjamin Otte
ca47c75272 tests: Use new drawing area APIs in testcairo 2016-11-19 03:02:46 +01:00
Benjamin Otte
4a604cf927 tests: Use drawing area in testellipsise 2016-11-19 03:02:46 +01:00
Benjamin Otte
915e791586 tests: Use new drawing area APIs 2016-11-19 03:02:46 +01:00
Matthias Clasen
295066dad8 inspector: Show render node properties 2016-11-18 20:59:10 -05:00
Matthias Clasen
aa74d96532 Document newly supported 3d transforms in CSS 2016-11-18 19:34:02 -05:00
Matthias Clasen
7d34229cdd More docs cleanup 2016-11-18 18:54:45 -05:00
Benjamin Otte
dbfc1d72fc csstransform: Handle matrix3d() 2016-11-18 21:44:25 +01:00
Benjamin Otte
ff4b8512be csstransform: Implement 3D scale and transform matrices 2016-11-18 21:44:25 +01:00
Benjamin Otte
ef6d95879f csstransforms: Parse 3D rotations 2016-11-18 21:44:25 +01:00
Benjamin Otte
d52fcd914c csstransform: Convert to use graphene_matrix_t
Pre-work to use 3D-transforms.
2016-11-18 21:44:25 +01:00
Benjamin Otte
fe23c3165e tests: Use a drawing area in motion-compression example 2016-11-18 21:44:25 +01:00
Benjamin Otte
e950d0cd8b tests: Use a drawing area in animated-resizing 2016-11-18 21:44:25 +01:00
Matthias Clasen
0a75bb4353 Work towards a clean docs build
Remove various no-longer-existing functions from the sections
file, and exclude more private headers, etc.
2016-11-18 14:43:34 -05:00
Matthias Clasen
b15bc437a6 Rename broadwayd to gtk4-broadwayd
This was the last unprefixed binary, and it was causing file
conflicts between gtk3 and gtk4.
2016-11-18 13:40:37 -05:00
Olivier Fourdan
36575a4424 gdkwindow: Allow native subsurface for all parents
Under Wayland, a subsurface can have another surface as parent, but
gdk would not allow native windows if the parent is not the root window.

Allow native subsurface for all parent under Wayland, not just for the
root window.

https://bugzilla.gnome.org/show_bug.cgi?id=774475
2016-11-18 13:25:36 -05:00
Carlos Garnacho
665c3a2877 wayland: Keep last scale factor on surfaces after it left all outputs
This can be triggered on workspace switches, and on hidpi results in
the scale factor being reset to 1 while the window is not in the
current workspace.

https://bugzilla.gnome.org/show_bug.cgi?id=774476
2016-11-18 13:24:31 -05:00
Matthias Clasen
f73c5dd8dd docs: Name the 3.90 index properly 2016-11-18 08:14:23 -05:00
Matthias Clasen
5c1af1af04 docs: Ignore gtksnapshotprivate.h 2016-11-18 08:12:20 -05:00
Matthias Clasen
0311a1883c snapshot: Name api parameters consistently
gtk-doc gets upset otherwise.
2016-11-18 07:57:10 -05:00
Matthias Clasen
95c13ee471 Document GtkSnapshot
This is just some initial documentation, more detail needed.
2016-11-18 07:43:39 -05:00
Matthias Clasen
9ecb34b4a0 Add some drawing information the migration guide
Mention snapshot(), and the new GtkDrawingArea API.
2016-11-18 07:43:33 -05:00
Matthias Clasen
3c5dbc2f17 docs: Add GtkDrawingAreaDrawFunc 2016-11-18 06:09:46 -05:00
Benjamin Otte
3ee2138ee7 tests: Use a drawing area in testpopup 2016-11-18 07:24:31 +01:00
Benjamin Otte
f2fb2da8bd tests: Make testtooltips not use the draw signal 2016-11-18 07:22:02 +01:00
Benjamin Otte
a57fe52fc6 tests: Produce load without waiting for draw signal 2016-11-18 07:15:12 +01:00
Benjamin Otte
4a06d22c7d tests: Use drawing area instead of draw signal 2016-11-18 07:14:28 +01:00
Benjamin Otte
cd8d84beb6 testsuite: Don't use draw signal, use a drawing area instead 2016-11-18 06:40:53 +01:00
Benjamin Otte
dd6fb87443 printunixdialog: Use new drawing area API 2016-11-18 06:40:53 +01:00
Benjamin Otte
b0f392534f coloreditor: Don't draw a background on boxes
Boxes know how to draw backgrounds these days.
2016-11-18 06:40:53 +01:00
Benjamin Otte
979b56e86f gtk-demo: Update drawing area usage to new APIs
A few demos are broken because they do input on drawing areas.
2016-11-18 06:40:53 +01:00
Benjamin Otte
5940625e9e drawingarea: Add gtk_drawing_area_set_draw_func() 2016-11-18 06:40:53 +01:00
Benjamin Otte
41d1e1fea8 drawingarea: Add content-width and content-height properties
People should use these instead of gtk_widget_set_size_request().
2016-11-18 06:40:53 +01:00
Benjamin Otte
100ac17505 drawingarea: Clean up
No need to send configure events anymore and this should be a no-window
widget.
2016-11-18 06:40:53 +01:00
Matthias Clasen
585b1d5f67 gsk: Don't leak texture surfaces
gsk_texture_download returns a reference.
2016-11-17 20:30:34 -05:00
Matthias Clasen
39e3b3a483 style context: Don't leak a widget path
Found by valgrind.
2016-11-17 20:22:42 -05:00
Benjamin Otte
efa1c6cbd5 widget: Add a defualt snapshot vfunc
Just to avoid having to do NULL checks when calling
widget_class->snapshot. We were crashing with drawing areas who don't
have a draw or a snapshot vfunc (woot!).
2016-11-18 00:47:56 +01:00
Marek Černocký
f8f2b8144f Updated Czech translation 2016-11-18 00:40:11 +01:00
Benjamin Otte
9a06b0fd5f widget: Fix math screwups in clip calculation
We need so subtract the allocation from the clip to get the clip offset,
not the other way around.

This was screwing in particular with marks on GtkScale, because GtkScale
mark clip computation is broken and always returns (0,0) which makes
scales have a waaaaay too large clip.
But that's another bug.
2016-11-17 23:16:14 +01:00
Benjamin Otte
c162b87ebd gdk: Fix a variable
The passed in surface is the current_paint surface, so I guess this
usage hasn't been noticed.
2016-11-17 22:11:33 +01:00
Matthias Clasen
214eb5860d placeview: Don't leak the file enumerator
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=774634
2016-11-17 13:50:25 -05:00
Matthias Clasen
0cec768b54 entry: Fix input window position for icons
This makes the icon in the placesview address entry and
in widget-factory's progress entry work again.
2016-11-17 12:04:35 -05:00
Timm Bäder
957274ed1a tests/styleexamples: Remove gtk_render_extension calls
The function doesn't exist anymore so there's nothing to test.
2016-11-17 16:48:57 +01:00
Timm Bäder
55fda57c44 filechooserwidget: Forward file filter to entry
And in the entry, apply the currently used filter as a second step to
the completion items.

https://bugzilla.gnome.org/show_bug.cgi?id=773007
2016-11-17 15:42:25 +01:00
Timm Bäder
f4929360aa sizerequest: rename _compute_size_for_orientation to _measure
They have the exact same parameters and gtk_widget_measure did
unnecessary work before. Also better stack traces!
2016-11-17 15:42:25 +01:00
Matthias Clasen
fbbd3ccfd7 docs: Fix print-related includes
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=774614.
2016-11-17 09:33:30 -05:00
Matthias Clasen
5b3b111260 GtkFileChooser: Make local-only default to FALSE
There is no good reason anymore to default to TRUE, and this
default only makes applications miss out on useful functionality.
2016-11-17 09:06:57 -05:00
Matthias Clasen
2f197ac0c2 Revert "GtkFileChooser: Make local-only default to FALSE"
This reverts commit 0bc79910e0.
2016-11-17 09:05:47 -05:00
Matthias Clasen
0bc79910e0 GtkFileChooser: Make local-only default to FALSE
There is no good reason anymore to default to TRUE, and this
default only makes applications miss out on useful functionality.
2016-11-17 09:02:29 -05:00
Matthias Clasen
77aa562415 gtk-demo: Set local-only to FALSE for the file chooser
No good reason for that.
2016-11-17 08:51:16 -05:00
Ondrej Holy
16bce17168 gtkplacesview: Add example of IPv6 address in guidance
Square brackets are mandatory for IPv6 addresses. Add example of IPv6
address in the guidance to make it obvious.

https://bugzilla.gnome.org/show_bug.cgi?id=756570
2016-11-17 08:15:40 -05:00
Matthias Clasen
21570a57f2 docs: Update an example
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=774490
2016-11-17 06:17:11 -05:00
Caolán McNamara
ce36ac93f4 spin entry should be a child of spin context
https://bugzilla.gnome.org/show_bug.cgi?id=774609
2016-11-17 05:55:20 -05:00
Rafael Fontenelle
4ad4275c24 Update Brazilian Portuguese translation
(cherry picked from commit 0103bbf5eb)
2016-11-17 04:21:33 +00:00
Benjamin Otte
ab60cbd86a snapshot: Implement gtk_snapshot_clips_rect()
And use this to cull widgets and gadgets that are completely outside the
clip region.

A potential optimization is to apply this clip region to cairo contexts
created with gtk_snapshot_append_cairo_node(), but for that we'd need to
apply the inverse matrix to the clip region, and that causes rounding
errors.

Plus, I hope that cairo drawing becomes exceedingly rare so it won't be
used for the whole widget factory like today (which might also explain
why no culling happens in the widget factory outside the header bar.
2016-11-17 03:33:50 +01:00
Benjamin Otte
28b32d336f snapshot: Pass the clip region to the snapshot 2016-11-17 02:14:10 +01:00
Benjamin Otte
7493f90662 snapshot: Add GtkSnapshotState
Essentially copies cairo_gstate_t.

This is in preparation for attaching more information to the snapshot.
2016-11-17 01:55:26 +01:00
Benjamin Otte
5dfe788e9e snapshot: Fix graphene misunderstandings
The equivalent to cairo_matrix_multiply (a, b, c) is
graphene_matrix_multiply (c, b, a).

graphene_matrix_multiply (a, b, c) may not be called with b and c being
the same matrix.
2016-11-17 01:05:15 +01:00
Benjamin Otte
6d9725f7fd snapshot: Add infrastructure to snapshot CSS images
Use this infrastructure to render builtin images. Which means from now
on, GtkCheckbutton, GtkSpinner and a few others use snapshots.
2016-11-16 20:51:53 +01:00
Benjamin Otte
c22a9a03f9 renderbackground: Remove unused functions 2016-11-16 19:31:47 +01:00
Benjamin Otte
bcf70e3a03 API: Remove everything relating to "grip"
Grips have long been unused in GTK, so remove all support for them.
This removes the GTK_STYLE_CLASS_GRIP and the special
gtk_render_handle() code for drawing those grips.
2016-11-16 19:27:43 +01:00
Benjamin Otte
56e11f057c API: Remove gtk_render_extension()
This is long-gone drawing API.
2016-11-16 18:36:10 +01:00
Benjamin Otte
48e7f4191f gsktexture: Allow attaching render data to textures
This allows renderers (or anyone really) to attach "render data" to
textures. Only the first render data sticks.

You can gsk_texture_set_render_data() with the key you will use to
look the data up again, and if no data has been set yet, yours will be
set.

You can retrieve this data via gsk_texture_get_render_data() later on.
If your data has been cleared, NULL will be returned.

When gsk_texture_clear_render_data() is called (which the texture will
call when it is finalized), your destory notify will be called and you
have to release your render data.

The GL driver uses this to attach texture ids to GskTextures.
2016-11-16 17:36:33 +01:00
Benjamin Otte
40565fb030 gsk: Rework GskTexture
We do no longer bind textures to a renderer, instead they are a way for
applications to provide texture data.

For now, that's it. We've reverted to uploading it from scratch every
frame.
2016-11-16 17:36:33 +01:00
Piotr Drąg
455ce80ff7 Update Polish translation 2016-11-16 13:08:32 +01:00
Piotr Drąg
6e9ee9e03c Update Polish translation 2016-11-16 11:43:34 +01:00
Benjamin Otte
f728f33382 container: ensure we only append a single node
The snapshot vfuncs must only append at most a single node,
otherwise things are going to break if the widget is the root node.

Unfortunately there is no code that can check this in a generic fashion,
so we'll have to debug this on a case-by-case basis.
2016-11-15 22:39:26 +01:00
Benjamin Otte
2e9ff11c85 snapshot: push/pop mismatch is critical
This is broken code that needs to be fixed right now.
2016-11-15 22:39:05 +01:00
Benjamin Otte
b8710d8962 widget: Remove get_render_node() vfunc 2016-11-15 17:49:19 +01:00
Benjamin Otte
313a708006 snapshot: Convert inspector's RenderNodeView 2016-11-15 17:49:19 +01:00
Benjamin Otte
e2fb970889 container: Remove get_render_node() support API
It's unused now.
2016-11-15 17:49:19 +01:00
Benjamin Otte
e8381f84d6 snapshot: Convert GtkPopover 2016-11-15 17:49:19 +01:00
Benjamin Otte
475cffd7f8 gadget: Remove gtk_css_gadget_get_render_node()
It's unused now that we can snapshot.
2016-11-15 17:49:19 +01:00
Benjamin Otte
ada70f4872 snapshot: Convert GtkIcon 2016-11-15 17:49:19 +01:00
Benjamin Otte
d38cf9fee2 snapshot: Convert GtkExpander 2016-11-15 17:49:19 +01:00
Benjamin Otte
82eb223c58 Revert "GtkFrame: Convert to indirect rendering"
This reverts commit a0b2b3745f.

Frames cannot be rendered by GSK yet, because they do clipping.
2016-11-15 17:49:19 +01:00
Benjamin Otte
9c1da58ad1 snapshot: Convert GtkSeparator 2016-11-15 17:49:19 +01:00
Benjamin Otte
47a82640a8 Revert "Covert GtkOverlay to indirect rendering"
This reverts commit fd4a1cdad6.

GtkOverlay uses clipping and render nodes can't clip yet.
2016-11-15 17:49:19 +01:00
Benjamin Otte
30e0bbeaaa snapshot: convert GtkListBox 2016-11-15 17:49:19 +01:00
Benjamin Otte
150f75af66 snapshot: Convert GtkFlowBox 2016-11-15 17:49:19 +01:00
Benjamin Otte
a2b1aef6bd Revert "paned: Convert to indirect rendering"
This reverts commit ba9193fc81.

Paneds can do indirect rendering yet as we need clipping support first.
2016-11-15 17:49:19 +01:00
Benjamin Otte
dad8703e03 snapshot: Convert GtkSpinner 2016-11-15 17:49:19 +01:00
Benjamin Otte
0cf9f70ccd snapshot: Convert box gadget
Makes spinbuttons have text again!
2016-11-15 17:49:19 +01:00
Benjamin Otte
3a18bed7d7 gsk: Allow creating cairo contexts for 0x0 nodes
This happens in regular code paths for example when trying to render the
empty text string. We don't want to store a surface on the render
node in such a case (so actual rendering isn't slowed down), but we do
want to return a working cairo context that is not in an error state
(so the cairo rendering can continue without error messages).
2016-11-15 17:49:19 +01:00
Benjamin Otte
703d80eac0 window: Unrealize renderer last
We want to unrealize the renderer only after all widgets have been
unrealized. Otherwise, the widgets cannot release rendering resources
like textures.
2016-11-15 17:49:19 +01:00
Benjamin Otte
e253f408e3 rendernode: Unref texture on finalize
Leaking textures is no fun.
2016-11-15 17:49:19 +01:00
Benjamin Otte
4b8b06bb08 image: Invalidate icon helper when unrealizing
This frees up any cached surfaces and textures in the iconhelper,
ensuring that the renderer can release its texture data.
2016-11-15 17:49:19 +01:00
Benjamin Otte
c0aa065ac1 snapshot: Convert GtkImage and GtkIconHelper
Adds a bunch of new APIs to render textures with theming.

FIXME: Cannot draw shadows for textures.
2016-11-15 17:49:19 +01:00
Benjamin Otte
92e6b3a000 snapshot: Port GtkHeaderBar 2016-11-15 17:48:45 +01:00
Benjamin Otte
55de4e7140 snapshot: Convert GtkFixed 2016-11-15 17:48:45 +01:00
Benjamin Otte
9b6dfa83e2 snapshot: Convert GtkComboBox 2016-11-15 17:48:45 +01:00
Benjamin Otte
349f55f2fe snapshot: Convert GtkLabel and GtkAccelLabel
Also adds gtk_snapshot_render_insertion_cursor().
2016-11-15 17:48:45 +01:00
Benjamin Otte
ab47479045 snapshot: Convert GtkButton and subclasses 2016-11-15 17:48:45 +01:00
Benjamin Otte
4c9033b62d snapshot: Port GtkActionBar 2016-11-15 17:48:45 +01:00
Benjamin Otte
8c77b6f7f1 snapshot: Convert GtkButtonBox 2016-11-15 17:48:45 +01:00
Benjamin Otte
cc1b422f64 snapshot: Convert GtkGrid 2016-11-15 17:48:45 +01:00
Benjamin Otte
64e802c441 snapshot: Convert entry and spinbutton 2016-11-15 17:48:45 +01:00
Benjamin Otte
8ac7918e0b snapshot: convert GtkBox 2016-11-15 17:48:45 +01:00
Benjamin Otte
e3b1c9f1cd snapshot: Port to GtkSwitch
Included is the addition of gtk_snapshot_render_layout(), which is meant
to replace gtk_render_layout().
2016-11-15 17:48:45 +01:00
Benjamin Otte
da207c9fdd snapshot: Add a snapshot function to GtkCssCustomGadget 2016-11-15 17:48:45 +01:00
Benjamin Otte
4e06d8f73c snapshot: Add gtk_css_gadget_snapshot()
Including a snpahsot() vfunc, wee!
2016-11-15 17:48:45 +01:00
Benjamin Otte
ae2477b1bc container: Add snapshot() implementation
Note that this implementation does not respect GDK windows at all. If
your widget requires respecting them, you should write your own
snapshot implementation and not chain up.
2016-11-15 17:48:45 +01:00
Benjamin Otte
2cd9e5170e widget: Add more sophisticated detection of rendering method
We now look at which of get_render_mode, draw or snapshot vfuncs is the
latest to have been overwritten in the class tree and then use that one.

This allows GtkContainerClass and GtkBinClass to override all of them
for without screwing things up.
2016-11-15 17:48:45 +01:00
Benjamin Otte
79d2d0e40d snapshot: Add gtk_snapshot_render_background()
and gtk_snapshot_render_frame() to be direct replacements for the
old gtk_render_*() functions.

Use them to replace Cairo usage completely in gtk_window_snapshot().
2016-11-15 17:48:45 +01:00
Benjamin Otte
9006e697fb flowbox: children per line may not be 0 2016-11-15 17:48:45 +01:00
Benjamin Otte
d1fec79c00 snapshot: Completely reengineer API
We now try to emulate cairo_t:

We keep a stack of nodes via push/pop and a transform matrix.

So whenever a new node is added to the snapshot, we transform it
by the current transform matrix and append it to the current node.
2016-11-15 17:48:45 +01:00
Benjamin Otte
956edd83a7 gsk: Add implementation for gsk_render_node_get_transform() 2016-11-15 17:48:45 +01:00
Benjamin Otte
bb9626dc29 window: Implement snapshot() 2016-11-15 17:48:45 +01:00
Benjamin Otte
b1154be1c4 widget: Add GtkWidgetClass.snapshot() vfunc
Does the same thing as the render vfunc, only that it uses a different
prototype.
2016-11-15 17:48:45 +01:00
Benjamin Otte
93cbba6c3e gtk: Add gtk_widget_snapshot()
It's functionally equivalent to gtk_widget_get_render_node() but uses a
GtkSnapshot argument to carry the state.
2016-11-15 17:48:45 +01:00
Carlos Garnacho
f90dcb33f9 gdk: Fix win32 build typo
We've left libgdk-3 behind. Noticed by Andrew Chadwick, spotted
by Emmanuele Bassi.
2016-11-15 17:09:30 +01:00
Marek Cernocky
4c7f907d16 Updated Czech translation 2016-11-15 14:39:46 +01:00
Matthias Clasen
d462c31233 entry: Avoid recursion in gtk_entry_ensure_layout
This was unintentional, and lead to a memory leak.
2016-11-14 15:17:41 -05:00
Lauri Kasanen
8b75268d1c recent-manager: Fix a memory leak caused by "recent-manager: Add a limit to the list's size"
Signed-off-by: Lauri Kasanen <curaga@operamail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=773587
2016-11-14 14:26:34 -05:00
Matthias Clasen
34e26017e3 appchooser: Plug a memory leak
We were not dropping the reference that the model gives us.

https://bugzilla.gnome.org/show_bug.cgi?id=774352
2016-11-14 14:19:58 -05:00
Andrew Chadwick
83712a48f4 win32: remove an unused func operating on GdkColor
https://bugzilla.gnome.org/show_bug.cgi?id=774347
2016-11-14 14:11:36 -05:00
Matthias Clasen
23354ff6e7 widget-factory: Better progressbar testing
Hook the two top progressbars up to the scale with marks.
Your turn, Lapo.
2016-11-14 08:21:31 -05:00
Olivier Fourdan
03b8a8a880 gtkstack: reorder size_allocate and move_window
Unlike other container widgets, GtkStack would allocate its children
prior to moving its windows, which might prevent further valid size
allocation signals to be emitted.

Re-order the size allocation of child widgets to be performed after
moving the GtkStack windows.

Thanks to Owen for spotting the real issue here.

https://bugzilla.gnome.org/show_bug.cgi?id=767713
2016-11-14 12:24:18 +01:00
Olivier Fourdan
4ae1eab3b1 Revert "gdkwindow: configure native windows in move_native_children()"
This reverts commit 9e2b1ad39e.
2016-11-14 12:24:18 +01:00
Olivier Fourdan
5ccc570cca Revert "gdk: Get rid of unused variables"
This reverts commit 7016409e9f.
2016-11-14 12:24:18 +01:00
Matthias Clasen
2520662d13 Allow replacing input file in gtk-builder-tool simplify 2016-11-12 22:33:01 -05:00
Timm Bäder
c944bf7330 Call gtk_widget_set_has_window for missing windowed widgets 2016-11-12 21:48:23 +01:00
Timm Bäder
4e445e8e53 window: Properly propagate for_size=-1 2016-11-12 20:37:30 +01:00
Timm Bäder
0d88fe65ba stack: Use gtk_widget_measure 2016-11-12 20:37:22 +01:00
Timm Bäder
95eed97586 listbox: Use gtk_widget_measure 2016-11-12 20:37:18 +01:00
Timm Bäder
9a0513d911 window: Use gtk_widget_measure 2016-11-12 20:37:14 +01:00
Timm Bäder
997fd3c81e grid: Use gtk_wiget_measure 2016-11-12 20:37:10 +01:00
Timm Bäder
26746c8369 toolitemgroup: Remove style properties
Replace them with their default values
2016-11-12 08:10:02 +01:00
Timm Bäder
fdc0c6426b combobox: Remove appears-as-list style property
Remove all the code handling the appears-as-list=TRUE case.
2016-11-12 08:10:02 +01:00
Timm Bäder
5e06701f53 treeview: Remove style properties
Replace them with the Adwaita default values
2016-11-12 08:09:58 +01:00
Chun-wei Fan
fcd216a409 gdkscreen-win32.c: Also define _WIN32_WINNT
As in the last commit on gdkdisplay-win32.c, we need to define that to be
0x0600 (Vista) or later so that the items needed in the Windows headers be
activated.

See: https://bugzilla.gnome.org/show_bug.cgi?id=768081#c62
2016-11-11 21:06:01 +08:00
Chun-wei Fan
718efc2f59 gdkdisplay-win32.c: Define _WIN32_WINNT
... to be for Vista (0x0600) or later.  This is so that the necessary
items in the Windows headers be activated so that the code will build
properly on mingw-w64, and we already require Vista or later for GTK+.

Thanks Ting-Wei Lan for pointing this out.

See: https://bugzilla.gnome.org/show_bug.cgi?id=768081#c62
2016-11-11 20:58:16 +08:00
Lauri Kasanen
0d364173f6 recent-manager: Add a limit to the list's size
This fixes a DOS where any app can cause all running gtk apps
to use arbitrary amounts of memory.

Originally reported against mate-panel, where running a big slideshow
in eye-of-mate caused increasing RAM usage in mate-panel.

v2: Hardcode the value
Signed-off-by: Lauri Kasanen <curaga@operamail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=773587
2016-11-10 17:09:45 -05:00
Matthias Clasen
3c27774a5d places sidebar: Don't leak a reference
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=774185
2016-11-10 15:16:05 -05:00
Matthias Clasen
5e19e06dcc Fix a copy-paste error
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=774185#c3
2016-11-10 15:07:08 -05:00
Matthias Clasen
547970b0bc headerbar: Don't leak widgets
We were not properly freeing separators that we end up
not using.

https://bugzilla.gnome.org/show_bug.cgi?id=774066
2016-11-10 15:03:35 -05:00
Matthias Clasen
c7d119614f spinbutton: Fix some gadget handling issues
We were not adding the down_button gadget to the parent,
and we were not unreffing the button gadgets.

https://bugzilla.gnome.org/show_bug.cgi?id=774046
2016-11-10 14:46:21 -05:00
Massimo Valentini
8121860251 GdkGLContext: chain finalize handler
https://bugzilla.gnome.org/show_bug.cgi?id=773979
2016-11-10 14:34:31 -05:00
Thibaut Girka
641b42f9f5 Fix loading cached compose tables
https://bugzilla.gnome.org/show_bug.cgi?id=773916
2016-11-10 14:32:59 -05:00
Gustavo Noronha Silva
942e904bcc cssshadowvalue: scale the blur surface by the same factor as the target
Making sure the surfaces are using the same scale factor makes it more
likely a fast path will be used when pixman gets involved, as pointed
out by Benjamin Otte.

https://bugzilla.gnome.org/show_bug.cgi?id=772075
2016-11-10 16:47:13 -02:00
Carlos Garcia Campos
c836be0508 printing: Do not truncate job names in GtkPrintOperation
We are currently truncating job names to 255 bytes, because that's the
maximum allowed length of job-name attribute in CUPS. This is a CUPS
limitation that GtkPrintOperation shouldn't need to know, and it
shouldn't affect other backends, that might have other limitations or
even no limitation at all. This has another side effect, that what you
set as GtkPrintOperation:job-name could be different to what you get if
the property is truncated, this is not documented in
gtk_print_operation_set_job_name(). So, I think the job name should be
truncated by the CUPS backend, right before setting the job-name
attribute.

https://bugzilla.gnome.org/show_bug.cgi?id=774097
2016-11-10 16:57:30 +01:00
Matthias Clasen
7b2313a6df Avoid criticals in gtk_image_get_render_node
These nodes can be NULL, we need to handle that.
2016-11-10 08:26:37 -05:00
Florian Müllner
38a8e4ee7c wayland: Set startup ID from GApplication platform data
The GApplication platform data may contain a startup ID that on X11
is used to set the startup notification ID when activated. Do the
same on the wayland backend to make startup notifications work for
DBus-activated applications where the DESKTOP_STARTUP_ID environment
variable is not set.

https://bugzilla.gnome.org/show_bug.cgi?id=768531
2016-11-09 14:18:14 -05:00
Florian Müllner
d163aba030 gdkdisplay-wayland: Add API to set startup notification ID
For wayland clients, the startup notification ID is currently only set
from the DESKTOP_STARTUP_ID environment variable. As that variable is
only set for clients launched via exec(), startup completion is not
indicated correctly for DBus-activated applications unless an explicit
ID is specified - usually that is not the case, as the default handling
uses gdk_notify_startup_complete().
To address this, we need API to set the startup notification ID from GTK
as we have on X11.

https://bugzilla.gnome.org/show_bug.cgi?id=768531
2016-11-09 14:18:14 -05:00
Benjamin Otte
1259a489f2 iconhelper: Add support for GskTexture
... and use that in GtkImage.
2016-11-08 20:31:34 +01:00
Benjamin Otte
09359197a7 gsk: Implement textures for the Cairo renderer 2016-11-08 20:31:34 +01:00
Benjamin Otte
46eb2c1be9 gsk: Add GskTexture 2016-11-08 20:31:34 +01:00
Marek Cernocky
71aeb8075b Updated Czech translation 2016-11-08 12:38:32 +01:00
Piotr Drąg
7c55830d02 Update POTFILES.skip 2016-11-08 10:08:14 +01:00
Benjamin Otte
c16a7d96b8 range: Don't leak pointers to discarded gadgets 2016-11-08 02:32:40 +01:00
Benjamin Otte
46b9b07a11 reftests: Add reftest for the last 2 fixes
Makes sure that the clipping we do when pushing a group is at the
correct place and in particular doesn't influence shadows.
2016-11-08 02:32:39 +01:00
Benjamin Otte
a54db5adcd render: Draw shadows outside of potential push_group() call
Before, the shadows were clipped.
2016-11-08 02:32:29 +01:00
Benjamin Otte
f9da4f0270 render: Clip the correct rectangle
We translated before.
2016-11-08 02:32:29 +01:00
Lapo Calamandrei
8d212ae5c2 Adwaita: tweak radial-gradient()'s
radial-gradient()'s are behaving, hence simplify the css.
2016-11-07 23:15:56 +01:00
Matthias Clasen
5b8646c6e8 Update the migration guide
Mention the demise of -gtk-gradient, and explain that CSS syntax
works fine for this now.
2016-11-07 16:00:05 -05:00
Matthias Clasen
2a5a94b260 css: Improve spec compliance of the radial gradient parser
The spec says:
"If <shape> is omitted, the ending shape defaults to a circle if the <size>
is a single <length>, and to an ellipse otherwise."

Make it so.
2016-11-07 15:40:21 -05:00
Matthias Clasen
fa7d77d407 Revert "Update the CSS docs for the demise of define-color"
This reverts commit 12d9451b1c.
2016-11-07 15:05:37 -05:00
Matthias Clasen
a1e03346d9 Revert "Update the migration guide"
This reverts commit b868164381.
2016-11-07 15:05:28 -05:00
Matthias Clasen
b868164381 Update the migration guide
Mention some removed CSS extensions.
2016-11-07 14:59:23 -05:00
Matthias Clasen
12d9451b1c Update the CSS docs for the demise of define-color 2016-11-07 14:49:46 -05:00
Matthias Clasen
1410031e57 Drop support for symbolic colors
-gtk-gradient was the last internal user of this code, so
we can drop it now.
2016-11-07 14:46:41 -05:00
Matthias Clasen
069c5e48d4 Update CSS docs to reflect the demise of -gtk-gradient 2016-11-07 14:46:41 -05:00
Matthias Clasen
d674e9c8fa Drop support for -gtk-gradient
The standard CSS radial-gradient can be used instead, and Adwaita
and HighContrast have been ported over.
2016-11-07 14:46:41 -05:00
Matthias Clasen
aceba7484f css: Avoid a crash while parsing radial gradients
has_size does not imply that sizes[0] is != NULL.
2016-11-07 14:46:15 -05:00
Lapo Calamandrei
5af1e87f59 HC: use radial-gradient() in place of -gtk-gradient(). 2016-11-07 18:22:28 +01:00
Lapo Calamandrei
c4a4fe32ea Adwaita: no more -gtk-gradient(), really
the undershoot is drawn with a radial-gradient now.
2016-11-07 18:12:42 +01:00
Chun-wei Fan
e470567fd0 gdkprivate-win32.h: Complete removal of attributes_mask
We removed this parameter from the function declaration, but not the
prototype.  Fix that.
2016-11-07 14:37:32 +08:00
Benjamin Otte
b04e25f29b gdk: gdk_window_new() is not called for foreign windows
So we can remove the special cases that were used for them.
2016-11-07 03:15:00 +01:00
Benjamin Otte
d2c26c471c gdk: Remove attributes_mask from gdk_window_new()
The only remaining values were always treated as 0, so we just hardcode
them to 0.
2016-11-07 01:33:43 +01:00
Benjamin Otte
9fe8b1e112 API: gdk: Remove gdk_window_new()
It's finally no longer public API.
2016-11-07 01:12:47 +01:00
Benjamin Otte
3b93773add API: gdk: Add gdk_window_new_temp()
Your one stop shop for all those nasty hidden input-only windows.
2016-11-07 01:03:17 +01:00
Benjamin Otte
24d0baec38 API: gdk: Add gdk_window_new_popup()
... and use it.
2016-11-06 23:47:56 +01:00
Benjamin Otte
13d8ac83ee range: Use gdk_window_new_input() 2016-11-06 23:46:44 +01:00
Benjamin Otte
0e93e39e74 tests: Remove subsurface test
It did lots of ubsupported things (like creating subsurfaces on every
platform).
2016-11-06 22:03:45 +01:00
Benjamin Otte
b30afff511 API: wayland: Add gdk_wayland_window_new_subsurface()
... and use it instead of gdk_window_new().
2016-11-06 21:36:43 +01:00
Benjamin Otte
87f07bac6b API: gdk: Add gdk_window_new_toplevel()
... and use it in GTK.
2016-11-06 17:40:59 +01:00
Benjamin Otte
7a6cab14eb gdkwindow: Remove GdkWindowAttr.type_hint
Instead, let the callers call gdk_window_set_type_hint(). Which is
surprsingly what every backend did.
2016-11-06 16:22:21 +01:00
Benjamin Otte
e0600346e2 scrolledwindow: Turn into no-window widget 2016-11-06 15:50:26 +01:00
Benjamin Otte
b7619a2603 x11: Set override_redirect on input-only windows
b9955cfff1 broke this.
2016-11-06 15:43:06 +01:00
Benjamin Otte
b7a72224e1 listbox: Turn into no-window widget 2016-11-06 14:52:56 +01:00
Benjamin Otte
2f8df5237f flowbox: Turn into no-window widget 2016-11-06 14:41:07 +01:00
John Ralls
2c642dd654 Update gdk-quartz functions for the demise of GdkDeviceManager. 2016-11-05 15:08:59 -07:00
John Ralls
2b53583e80 Remove screen height and width functions from gdk-quartz.
Since they were previously deleted from gdk.
2016-11-05 15:08:59 -07:00
John Ralls
5416db16f3 Add some new function prototypes to gtkquartz.h.
Fixes compile errors (-Werror,-Wmissing-prototypes).
2016-11-05 15:08:59 -07:00
John Ralls
a45f96e9cb Update GdkOSXVersion enum with the last 4 MacOS releases. 2016-11-05 15:08:59 -07:00
John Ralls
832f5b892c Framework Carbon required for building against MacOSX10.12.sdk.
Should be harmless elsewhere.
2016-11-05 15:08:59 -07:00
Lapo Calamandrei
f4c6994e57 Adwaita: no more -gtk-gradient()
the only place where it was used was the `needs attention` dot
which is now drawn using radial-gradient().
2016-11-05 16:16:37 +01:00
Timm Bäder
a5b967ed31 menu: Properly clip child menuitems
Now that GtkMenu isn't a windowed widget anymore, we have to
differentiate between the (0, 0) of the cairo_t and the position of
priv0->view_window.
2016-11-05 13:39:41 +01:00
Timm Bäder
96f382e5b0 tests/popupat: Remove references to noexistent widgets 2016-11-05 13:39:41 +01:00
Timm Bäder
fdc24c7505 entry: Fix coordinates after rendernode conversion
Ease the transition by removing the text_area and frame vfuncs which are
unused inside GTK+.
2016-11-05 11:56:37 +01:00
Timm Bäder
f483d931ec spinbutton: Convert to indirect rendering 2016-11-05 11:56:36 +01:00
Timm Bäder
932b9acb39 Revert "Revert "Convert GtkEntry to indirect rendering""
This reverts commit f4fa111e32.
2016-11-05 11:56:36 +01:00
Timm Bäder
3b970f4555 button: Remove _get_event_window 2016-11-05 11:56:36 +01:00
Timm Bäder
846cf681e8 Remove gtk_widget_set_mapped
Let all the remaining callers chain up.
2016-11-05 11:56:36 +01:00
Timm Bäder
34626eaa16 notebook: use gesture for clicks
Instead of GtkWidget's buton-press-event/button-release-event
2016-11-05 11:56:33 +01:00
Gábor Kelemen
a47fb1c451 Update Hungarian translation 2016-11-05 09:30:58 +00:00
Piotr Drąg
ff75f1c929 Update POTFILES.skip 2016-11-05 08:51:34 +01:00
Benjamin Otte
079f0427cb fixed: Port to GskRenderNode
The fishbowl demo uses this.
2016-11-05 03:35:46 +01:00
Benjamin Otte
2e284451ff gtk-demo: Add fishbowl demo 2016-11-05 03:35:46 +01:00
Benjamin Otte
a659bbecb9 win32: Remove unused headers 2016-11-05 03:35:36 +01:00
Benjamin Otte
9707f4d3b3 API: gdk: Remove title from gdk_window_new()
Use gdk_window_set_title() afterwards instead.
2016-11-05 03:32:27 +01:00
Benjamin Otte
b9955cfff1 API: gdk: Remove override_redirect flag from GdkWindowAttr
When you want an override-redirect window, you create it that way by
creating a GDK_WINDOW_TEMP window.
2016-11-05 03:32:27 +01:00
Benjamin Otte
33e7a7898f API: gdk: Remove gdk_window_set_override_redirect()
When you want an override-redirect window, you create it that way.
Changing that behavior is not supported anywhere (but on X of course).
2016-11-05 03:32:27 +01:00
Philip Withnall
1dbdbecd39 gtkstylecontext: Clarify memory allocation behaviour of getters
It wasn’t clear that gtk_style_context_get[_valist]() behave like
g_object_get() — i.e. pointer-based types are returned newly-allocated.
Clarify that.

https://bugzilla.gnome.org/show_bug.cgi?id=773954
2016-11-05 00:25:25 +00:00
Matthias Clasen
f4fa111e32 Revert "Convert GtkEntry to indirect rendering"
This reverts commit 3656c9f94c.

Still causes to many unresolved drawing issues.
2016-11-04 13:22:48 -04:00
Matthias Clasen
338534fb8d Fix up the fullscreen_on_monitor support
I didn't pay attention, and forgot to port this code to the
new monitor apis.
2016-11-04 12:41:51 -04:00
Georges Basile Stavracas Neto
8507083928 levelbar: update css nodes even when no offset value is found
GtkLevelBar supports adding custom offsets as style classes, and they
are applied whenever the :value property matches. The current code,
however, only updates any CSS nodes when an offset is found, causing
it to not update when a discrete value changes but no custom offset
is added.

Fix that by always updating the CSS nodes.

https://bugzilla.gnome.org/show_bug.cgi?id=773799
2016-11-04 12:38:21 -04:00
Rui Matos
b8fc4c246a gdkwindow-x11: Add support for gdk_window_fullscreen_on_monitor
This way we can recommend that applications use the
fullscreen_on_monitor() API on both X and Wayland otherwise they'd
have to keep a path for each backend to achieve this functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=773857
2016-11-04 12:10:43 -04:00
Matthias Clasen
2c26f0cae4 Complete the privatization of GtkTextAttributes
This was not quite complete, as gtktextattributes.h was still
being included in public headers.

https://bugzilla.gnome.org/show_bug.cgi?id=773903
2016-11-04 12:05:52 -04:00
Руслан Ижбулатов
e75878f976 W32: Fix malformed svg file
https://bugzilla.gnome.org/show_bug.cgi?id=768081
2016-11-04 13:36:34 +00:00
Chun-wei Fan
6abd65c83b GDK-Win32/4.0: Enable HiDPI support for Windows
This enables HiDPI support for GTK+ on Windows, so that the
fonts and window look better on HiDPI displays.  Notes for the current
work:

-The DPI awareness enabling can be disabled if and only if an application
 manifest is not embedded in the app to enable DPI awareness AND a user
 compatibility setting is not set to limit DPI awareness for the app, via
 the envvar GDK_WIN32_DISABLE_HIDPI.  The app manifest/user setting for
 DPI awareness will always win against the envvar, and so the HiDPI items
 will be always setup in such scenarios, unless DPI awareness is disabled.

-Both automatic detection for the scaling factor and setting the scale
 factor using the GDK_SCALE envvar are supported, where the envvar takes
 precedence, which will therefore disable automatic scaling when
 resolution changes.

-We now default to a per-system DPI awareness model, which means that we
 do not handle WM_DPICHANGED, unless one sets the
 GDK_WIN32_PER_MONITOR_HIDPI envvar, where notes for it are in the
 following point.

-Automatic scaling during WM_DISPLAYCHANGE is handled (DPI setting change of
 current monitor) is now supported.  WM_DPICHANGED is handled as well,
 except that the window positioning during the change of scaling still
 needs to be refined, a change in GDK itself may be required for this.

-I am unable to test the wintab items because I don't have such devices
 around.

https://bugzilla.gnome.org/show_bug.cgi?id=768081
2016-11-04 18:14:48 +08:00
Chun-wei Fan
3baa4a9741 gdkscreen-win32.c: Remove leftovers of removal of visual APIs
There were some more items that ought to be removed.  Remove them.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-11-04 17:28:12 +08:00
Balázs Meskó
9898085149 Update Hungarian translation 2016-11-04 06:18:55 +00:00
Benjamin Otte
4b88b81e67 x11: Init no-multihead monitor without root window
Previous code gave warnings because the root window wasn't initialized
yet.
2016-11-04 00:33:13 +01:00
Benjamin Otte
7c474c689a wayland: Remove all mentions of visuals 2016-11-04 00:17:57 +01:00
Benjamin Otte
77a9e90cb9 mir: Remove all mentions of visuals 2016-11-04 00:15:52 +01:00
Benjamin Otte
8040d78c04 broadway: Remove all mentions of visuals 2016-11-04 00:15:07 +01:00
Benjamin Otte
31a0933fe9 quartz: Remove all mentions of visuals 2016-11-04 00:10:43 +01:00
Benjamin Otte
ec06a717ce win32: Remove all mentions of visuals 2016-11-04 00:08:03 +01:00
Benjamin Otte
4585af5719 gdk: Remove visual APIs from GdkScreen
gdk_screen_list_visuals(), gdk_screen_get_system_visual() and
gdk_screen_get_rgba_visual() are gone now.
2016-11-04 00:02:37 +01:00
Benjamin Otte
fe08641205 x11: Maointin window visuals without GdkVisual
That way, we don't need a GdkScreen to create a GdkWindow anymore.
2016-11-03 23:54:39 +01:00
Benjamin Otte
b741d32262 x11: Remove unused hash table
We were neatly populating it, but nobody ever looked at it.
2016-11-03 22:47:42 +01:00
Benjamin Otte
0192f93689 x11: Replace gdk_display_get_window_visual()
... with functions that don't use GdkVisual.

A small step towards getting rid of GdkVisual.
2016-11-03 22:40:36 +01:00
Benjamin Otte
6c6359df4f menubar: We don't need an input window
Input is handled by the menuitems completely.
2016-11-03 21:29:07 +01:00
Benjamin Otte
d8d8059ee1 x11: Use X11 variables instead of GDK variables
This way, we avoid GdkVisual usage.
2016-11-03 20:33:33 +01:00
Benjamin Otte
4ebcb6fd1e x11: Remove unused complexity
With all Windows having the same visual, there's only ever one visual we
need to check.
2016-11-03 20:33:33 +01:00
Benjamin Otte
a178258a2a docs: Remove vfunc that doesn't exist anymore 2016-11-03 20:33:33 +01:00
Lapo Calamandrei
993f867744 Adwaita: correctly style headerbars in a stack
corners are correctly rounded now. Stacked splitted headerbars are
not supported yet though.
2016-11-03 14:04:32 -04:00
Ernestas Kulik
3885e85f77 popover: pop down when pressing escape
Simply hiding the popover may introduce inconsistencies in application
behavior, since popping up/down is the usual use case.

https://bugzilla.gnome.org/show_bug.cgi?id=773885
2016-11-03 15:46:04 +02:00
Matthias Clasen
5c18bf79a1 Add a testcase for stacked headerbars
This currently has some theming issues.
This example is for Lapo to work those out.
2016-11-03 08:32:31 -04:00
Chun-wei Fan
e982f31800 configure.ac: Remove gdk/win32/rc/gdk.rc
This needs to be removed, which was forgotten.  Sorry.
2016-11-03 18:07:43 +08:00
Chun-wei Fan
53077f15d8 autotools: Update MSVC gir build script generation
Now that GTK+ is built as a single DLL, and the .lib that is built is
gtk-4.lib, we need to update the autotools sections in generating the
NMake Makefile snippets so that we can have the correct commands and flags
for building the .gir files, which will all now link to gtk-4-vsXX.dll (or
so).
2016-11-03 18:00:03 +08:00
Chun-wei Fan
e4c5ce4cc3 Visual Studio builds: Use gtk-4.lib for the .lib file
As with the autotools builds, use gtk-4 as the name of the .lib file that
is produced from the build.

Actually this is already done with GTK-3.x with the autotools builds,
but this update is not done there as gtk-3.0.lib/gdk-3.0.lib/gailutil-3.0.lib
was used for such a long time that changing it there might have caused
trouble for people there.
2016-11-03 17:46:32 +08:00
Chun-wei Fan
493ad0cad4 Visual Studio builds: Build GTK+ as a monolithic DLL
Update the project configs to build GDK/GSK as a static lib and include
them into the GTK+ DLL as a monolithic DLL, which is in line with what is
done in the autotools builds, since the code changes needed for Windows
builds for a monolithic build are now in place.
2016-11-03 17:37:49 +08:00
Chun-wei Fan
abef8d4860 Windows: Update code for monolithic GTK DLL
Now that the autotools build folded the GDK/GSK bits into the main GTK+
DLL, there are some updates that need to be done for this.  We need to:

-Fold the DllMain() of GDK-Win32 into the main GTK+ DllMain(), as we need
 the HINSTANCE to register the window.  We can't have two DllMain()'s in a
 single DLL.
-Remove the GDK rc(.in) files, as that is not used anymore.  Make the GTK+
 .rc(.in) file load the gtk.ico GTK+ logo file instead so that we still
 get the GTK+ logo for the application icon by default.  Update the
 autotools build files as well.
-Revert commit b9f9980 as LRN pointed out in comment 25 in bug 773299, as
 GTK+ is now a monolithic DLL, and we ought not to export this private
 function.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-11-03 16:55:35 +08:00
Olivier Fourdan
2324b96a32 wayland: check valid pending cairo surface
gdk_wayland_window_attach_image() is normally called from
gdk_window_end_paint() to notify the compositor of newly staged drawing.

If any of the drawing code inadvertently dispatches the wayland event
loop (for instance with a gdk_flush() call), then it's possible that by
the time gdk_window_end_paint() is called, the staged drawing is already
destroyed.

This commit bypasses the attach_image call in scenarios where the staged
drawing is prematurely dropped.

https://bugzilla.gnome.org/show_bug.cgi?id=773274
2016-11-03 08:50:34 +01:00
Benjamin Otte
c9a313a125 revealer: Port to no-window widget 2016-11-03 03:00:15 +01:00
Benjamin Otte
acd801000c textview: Convert to no-window widget 2016-11-03 03:00:15 +01:00
Benjamin Otte
6c3d1fba78 iconview: Turn into no-window widget 2016-11-03 03:00:15 +01:00
Benjamin Otte
7e9796568d colorplane: Port to be a no-window widget 2016-11-03 03:00:15 +01:00
Benjamin Otte
0508526658 colorswatch: Readd accidentally removed call 2016-11-03 01:15:08 +01:00
Benjamin Otte
d818f3fcd4 viewport: Turn into no-window widget
While doing so, get rid of the GdkWindow instead of keeping it.
2016-11-02 22:00:29 +01:00
Benjamin Otte
bb8b24da47 menu: Don't set widget->window
Instead, create an input window for the menubar and omit the window for
the menu itself.
2016-11-02 22:00:29 +01:00
Timm Bäder
633a93f418 widget: Remove outdated comment
gtk_widget_override_color is no more.
2016-11-02 18:40:00 +01:00
Timm Bäder
a7efe10ef8 widget: Remove unused visibility-notify-event 2016-11-02 18:40:00 +01:00
Timm Bäder
773c16076b widget: Remove state-flags leftovers 2016-11-02 18:40:00 +01:00
Benjamin Otte
6dddf0447e css: Fix radial-gradient() color stop computation
The copy/paste from the linear gradient code had an error.
2016-11-02 15:19:49 +01:00
Chun-wei Fan
2d7df8e66a gdk/win32: Complete gdk_screen_is_composited() removal
Commit d249e77 (API: screen: Remove gdk_screen_is_composited()) attempted
to update the GDK-Win32 for the removal of the API, but some parts were
missed.  This updates the code so that things continue to build and run.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-11-02 15:37:10 +08:00
Chun-wei Fan
b9f9980bb4 gsk: Export gsk_render_node_get_bounds()
gtk/inspector/rendernodeview.c calls this private function from GSK, so we
need to ensure that this function is exported so that GTK+ can link
properly on compilers that do not support automatic exporting.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-11-02 15:26:02 +08:00
Benjamin Otte
32a5729d18 gtk: Chain up in realize()
... instead of copy/paste from gtk_widget_real_realize.
2016-11-02 07:16:08 +01:00
Benjamin Otte
b0a5e8764c widget: Insist on widgets calling gtk_widget_set_has_window()
This way, we can grep the code for the bad widgets that set this to
TRUE and fix them.
2016-11-02 06:54:57 +01:00
Benjamin Otte
5e07a31d2b gtk: Call gtk_widget_set_has_window() on every widget
Even if we just set it to the value it already had.
2016-11-02 06:54:57 +01:00
Benjamin Otte
8ea1157d38 treeview: Don't use gtk_widget_get_allocaton()
Use gtk_widget_get_allocated_width()/height() instead.
2016-11-02 06:54:57 +01:00
Chun-wei Fan
21b061b0dd demos/application: Call the right program
We need to update the call to gtk4-application-demo, plus include the
correct icon file for this.
2016-11-02 12:23:41 +08:00
Matthias Clasen
2d14217cd7 inspector: Cosmetic improvements to the recorder 2016-11-01 22:06:25 -04:00
Juan Pablo Ugarte
c607d51890 Use GLSL version 110 for OpenGL 2 shaders.
According to docs and Intel legacy drivers,
GLSL version 130 is for GL 3.0 not GL 2.0/2.1

Validated files with reference compiler from
https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/
2016-11-01 15:42:46 -03:00
Matthias Clasen
793f843b08 check button: Update for new box gadget functionality
The box gadget now does the render node conversion for
all its children, so we have less work to do.
2016-11-01 14:29:25 -04:00
Matthias Clasen
18f321df94 expander: Update for new box gadget functionality
The box gadget now does the render node conversion for
all its children, so we have less work to do.
2016-11-01 14:29:25 -04:00
Matthias Clasen
953c7ba6be box gadget: Implement get_render_node vfunc
This implements get_render_node in the obvious way.
2016-11-01 14:29:25 -04:00
Matthias Clasen
68cc1412e5 container: Add a private api for render node propagation
Add a function that propagates a render node for a single
child. This will be used in the box gadget to handle widgets.
2016-11-01 14:29:25 -04:00
Matthias Clasen
30a56acc7d gadget: Add a get_render_node vfunc
This will let us do box gadgets like we do containers.
2016-11-01 14:29:25 -04:00
Matthias Clasen
3656c9f94c Convert GtkEntry to indirect rendering
Warning! This unveils some positioning issue with the secondary icon.
2016-11-01 14:29:25 -04:00
Matthias Clasen
6ed58cfd50 Fix the build
testgtk.c had some dead code referring to GdkColor. Drop it.
2016-11-01 14:11:25 -04:00
Matthias Clasen
7a2537866b Drop GdkColor
It is deprecated and no longer used.
2016-11-01 13:58:11 -04:00
Matthias Clasen
35209f098b Stop supporting GdkColor in text buffer serialization
GdkColor is going away soon.
2016-11-01 13:58:10 -04:00
Matthias Clasen
17a061b8da Drop the settings color parser
We have no color-valued settings anymore.
2016-11-01 13:58:10 -04:00
Matthias Clasen
6e178aede2 Use GdkRGBA for text attributes
Now that GtkTextAttributes is private, we can clean this struct
up a bit. The first step is to switch from GdkColor to GdkRGBA,
and adapt all users.
2016-11-01 13:58:10 -04:00
Matthias Clasen
e6d5a3dce2 Drop GtkTextAttributes from the docs 2016-11-01 13:58:10 -04:00
Matthias Clasen
745c348ff8 Make GtkTextAttributes private
This is a problematic struct, and giving direct access to it
has kept us from making improvements to GtkTextView. Drop it
from the public API, together with the auxiliary APIs. If
it turns out that this functionality is needed, we should add
individual getters.
2016-11-01 13:58:10 -04:00
Benjamin Otte
72a9c53262 inspector: Add a button to clear all recordings
Clears the recordings list, and even better: Frees all your memory.
2016-11-01 18:34:40 +01:00
Benjamin Otte
e02ff7c064 inspector: Collect statistics for unclassable types
I want to know how many GskRenderNodes I have!
2016-11-01 18:34:40 +01:00
Benjamin Otte
3741e6906e inspector: Require toggling on/off of recording
This way, we don't eat up all your memory every time you start the
inspector.
2016-11-01 18:34:40 +01:00
Benjamin Otte
4673318028 inspector: Add list of render nodes to recorder
And make it possible to view the actually selected node in the view.
2016-11-01 18:34:40 +01:00
Benjamin Otte
4265c0e5b0 inspector: Next step in the recorder view
We now record all render operations and display them.

Warning: This is very brute force, you can't clear the recordings or
turn recording off. And this thing easily records 25MB per recorded
frame, so be careful to not run out of memory and get your browser
killed. ;)
2016-11-01 18:34:40 +01:00
Benjamin Otte
e6f711a94a inspector: Add more infrastructure
This one introduces the Recording object which is essentially a single
instance of something that happened.
The RenderRecording is an instance of an actual rendering operation.
2016-11-01 18:34:40 +01:00
Benjamin Otte
98a500a434 inspector: Add outline for a new "recorder" tab 2016-11-01 18:34:40 +01:00
Sébastien Wilmet
59a9eda5ae docs: fix typos in GtkMenuShell 2016-11-01 18:28:09 +01:00
Benjamin Otte
4129b70b96 rendernode: Remove the renderer from the rendernode 2016-11-01 16:32:26 +01:00
Benjamin Otte
a0e63b8a07 rendernode: Require passing a renderer to get_draw_context()
This is in preparation of making render nodes independent of the
renderer, so that they can be rendered multiple times with different
renderers.
2016-11-01 16:32:26 +01:00
Benjamin Otte
e201c4dc92 gsk: Remove gsk_render_node_get_scale_factor()
Scale factors belong to the renderers, not the nodes. The nodes should
just use whatever scale factor the renderer tells them to when
rendering.
2016-11-01 16:32:26 +01:00
Benjamin Otte
3d8b00600e gdkgl: Change prototype of function
The function does not upload a cairo surface, it uploads pixel data.

So don't take a cairo surface as an argument, take pixel data.
2016-11-01 16:32:26 +01:00
Emmanuele Bassi
02c615cc34 gsk: Use the appropriate GLSL version
The GLSL versions are:

  OpenGL 2.1: #version 110
  OpenGL 3.0: #version 130
  OpenGL 3.2: #version 150

  OpenGLES 2.0: #version 100
  OpenGLES 3.0: #version 300 es

So we need to check the version of the GdkGLContext if we want use the
appropriate version, especially for legacy OpenGL contexts, which can be
both 3.x and 2.x.
2016-11-01 15:00:31 +00:00
Marek Černocký
3c1f72671a Updated Czech translation 2016-11-01 09:48:00 +01:00
Benjamin Otte
e96c485afa widget: Create render node with correct bounds
We want a render node where (0,0) is the top left of the widget.
However, we need to account for the clip origin not matching the
allocation origin.
2016-11-01 03:59:37 +01:00
Benjamin Otte
8854279e2a treeview: Clip before translating
We want to clip invalidations to the bin window, not the treeview
itself.
2016-11-01 03:51:48 +01:00
Benjamin Otte
b40aeb7ab4 treeview: Clip to bin window size when drawing bin window
This ensures that the drawing does not extend the actually drawn area.

It also ensures that our math is sane, because the math assumes the clip
area cannot extend the window. After all, before GTK4 it always was like
that.

Fixes a bunch of drawing bugs when the clip area does indeed extend too
far.
2016-11-01 03:51:48 +01:00
Benjamin Otte
b3e5c31b08 rendernode: Transform cairo_t to correct coordinates
We want to have the coordinate system of the created cairo surface to be
identical to the coordinate system of the node's bounds. For that, we
need to translate the cairo surface by the bounds' origin.
2016-11-01 03:42:35 +01:00
Benjamin Otte
f4c4ab6ab1 rendernode: Use ceilf() on the size of the cairo surface
Bounds sizes are floats, so round up to the next integer so we end up
with enough space to draw.
2016-11-01 03:40:01 +01:00
Timm Bäder
ee4ba18d5e stack: Don't underallocate child in interpolate-size case
In that case, we can't just rely on the stack allocation being big
enough. Especially, the child can actually be bigger than the current
stack allocation, so take that into account when positioning it.
2016-10-31 19:29:36 +01:00
Timm Bäder
8dce94c47a stack: Redraw last_visible_surface if child allocation changes
So the widget is properly aligned.
2016-10-31 19:29:36 +01:00
Timm Bäder
212f8a6c7b builderparser: Order string comparisons after frequency
The typical UI file has a lot more <property> tags than it has
<requested> or <interface> tags, etc. so order the string comparisons
according to this expected case.
2016-10-31 19:29:36 +01:00
Timm Bäder
938598032c builderparser: Save tag type instead of tag name
So we can save a few string comparisons
2016-10-31 19:29:36 +01:00
Timm Bäder
e3a3a66370 builderparser: Don't needlessly copy requested object names 2016-10-31 19:29:36 +01:00
Timm Bäder
f415a8bc84 builderparser: stack-allocate ParserData
No reason for it to be heap-allocated, it won't survive this function
call anyway.
2016-10-31 19:29:36 +01:00
Timm Bäder
ba9193fc81 paned: Convert to indirect rendering 2016-10-31 19:29:35 +01:00
Timm Bäder
679b515170 popover: convert to indirect rendering 2016-10-31 19:29:35 +01:00
Timm Bäder
2f2ff773ae separator: Convert to indirect rendering 2016-10-31 19:28:28 +01:00
Timm Bäder
c261d890ad widget: Remove damage-event 2016-10-31 19:28:28 +01:00
Timm Bäder
c25a5606d1 widget: remove show-help 2016-10-31 19:28:28 +01:00
Timm Bäder
5071206d60 widget: Remove app-paintable 2016-10-31 19:28:28 +01:00
Emmanuele Bassi
567f6373c8 build: Clean the uninstalled introspection GIR files
We need to remove them from the build when cleaning them.

Additionally, this automatically adds them to the Git ignore file.
2016-10-31 16:30:10 +00:00
Emmanuele Bassi
a203b8cc28 gsk: Use GskRenderer.create_cairo_surface()
GskRenderNode should ask the renderer for a Cairo surface when creating
a drawing context.
2016-10-31 16:28:09 +00:00
Emmanuele Bassi
50a5deb8e3 gsk: Add internal Renderer.create_cairo_surface()
We need an overridable entry point for GskRenderer to create Cairo
surfaces.

Implementations of GskRenderer can override create_cairo_surface() to
create efficient surfaces, possibly with zero copies involved, depending
on the GDK backend.
2016-10-31 16:26:50 +00:00
Juan Pablo Ugarte
50056d804b gdk/Makefile.am: fixed glsl resources extra dist files.
Use the same wildcard partern used to generate gdk.gresource.xml to include files in EXTRA_DIST var.
2016-10-31 10:15:05 -03:00
Timm Bäder
d7df491656 button: show() the image in gtk_button_new_from_icon_name 2016-10-31 12:23:27 +01:00
Timm Bäder
3ae14630a3 tests: Don't add wigets to a GtkInvisible
It's not a GtkContainer.
2016-10-31 12:20:41 +01:00
Timm Bäder
6488dde4fd box: Use measure() to measure child sizes 2016-10-31 12:20:41 +01:00
Timm Bäder
76ff53193a box: Mark out params of _query_packing as (optional) 2016-10-31 12:20:41 +01:00
Timm Bäder
a829929a41 sidebarrow: Use GtkButton:icon-name 2016-10-31 12:20:41 +01:00
Timm Bäder
3154d3f258 box: Remove unused private API 2016-10-31 12:20:41 +01:00
Timm Bäder
86e94d0e0f dialog: Let GtkButton manage its style classes
A button created using gtk_button_new_with_label will already have the
text-button style class applied.
2016-10-31 12:20:41 +01:00
Timm Bäder
01723fa02f filechooser: Use GtkButton's icon-name property 2016-10-31 12:20:41 +01:00
Rico Tzschichholz
5147ea96e0 gsk: Fix return annotation for gsk_render_node_get_name() 2016-10-30 07:58:05 +01:00
Piotr Drąg
e455843bbb Update POTFILES.in 2016-10-29 21:32:56 +02:00
Benjamin Otte
def62a9dda API: rendernode: Add gsk_render_node_get_name()
Make the debug string available to public API.
2016-10-29 18:10:26 +02:00
Benjamin Otte
d028667fc6 display: Actually initialize variables
Forgot to add this in d249e77bcb.
2016-10-29 18:10:26 +02:00
Lapo Calamandrei
5bb5213486 Adwaita: add more padding to popover menus...
...since Timm removed that from the actual code.
2016-10-29 17:34:49 +02:00
Lapo Calamandrei
91723bfcfc Revert "Adwaita: add more padding to popovers"
Padding should be added back to menu popover only...
This reverts commit 670948586a.
2016-10-29 17:33:26 +02:00
Lapo Calamandrei
da1348edb4 Adwaita: no rounded corners for solid-csd. 2016-10-29 17:18:58 +02:00
Lapo Calamandrei
670948586a Adwaita: add more padding to popovers
...since Timm stole some.
2016-10-29 17:14:07 +02:00
Benjamin Otte
73cd739e19 API: widget: Remove gtk_widget_is_composited()
We don't need to clutter our API with functions that are easily
available elsewhere and effectively unused.
2016-10-29 04:49:47 +02:00
Benjamin Otte
d249e77bcb API: screen: Remove gdk_screen_is_composited()
Switch code to use gdk_display_is_composited() instead.

The new code also doesn't use a vfunc to query the property but rather
requires the backend to call set_composited()/set_rgba() to change the
value.
2016-10-29 04:49:47 +02:00
Benjamin Otte
a334316d5e API: widget: Remove GtkWidget::composited-changed signal
Nobody uses it.

If you need the functionality, listen to display changes on
your widget and then connect to the display's notify::composited.
2016-10-29 04:49:47 +02:00
Benjamin Otte
b69328eb74 inspector: Use the new APIs when displaying information 2016-10-29 04:49:47 +02:00
Benjamin Otte
42d8142cc7 API: gdk: Add gdk_display_is_rgba() and gdk_display_is_composited()
Also add properties for those two properties.

The first property is equivalent to checking if an RGBA visual exists,
the 2nd is equivalent to gdk_screen_is_composited().
2016-10-29 04:49:47 +02:00
Timm Bäder
b2a0105234 frame: Get the render node from the gadget
So we get a proper css background etc. applied.
2016-10-28 19:33:47 +02:00
Timm Bäder
5c99f7a670 Fix clip of more windowed widgets 2016-10-28 19:33:47 +02:00
Timm Bäder
acbdd5c8f2 Fix clip position of windowed widgets 2016-10-28 17:56:51 +02:00
Marek Černocký
c7496b86b6 Updated Czech translation 2016-10-28 17:07:54 +02:00
Timm Bäder
90292b1aa3 modelbutton: Convert to indirect rendering 2016-10-28 16:33:03 +02:00
Timm Bäder
48602e500c cssgadget: Move gadgets to their allocated position 2016-10-28 16:33:02 +02:00
Timm Bäder
46d80b94a8 switch: Port to indirect rendering 2016-10-28 16:33:02 +02:00
Timm Bäder
90b133bb50 testframe: Fix css element name 2016-10-28 16:33:02 +02:00
Timm Bäder
8c128f36c5 frame: Use measure() to measure label size 2016-10-28 16:33:02 +02:00
Timm Bäder
82d38e35f8 stack: Use measure() to measure child widget
Simpler code this way \o/
2016-10-28 16:33:02 +02:00
Timm Bäder
6eb3d98de0 csswidgetnode: Fix container condition for GtkInvisible
... which is a toplevel, but not a container.
2016-10-28 16:33:02 +02:00
Timm Bäder
21a43014ed menusectionbox: Remove margins
So the theme can add the spacing on its own.
2016-10-28 16:33:02 +02:00
Timm Bäder
37e06f19e2 inspector: make use of GtkButton's icon-name property 2016-10-28 16:33:02 +02:00
Timm Bäder
5a64ad4479 toggletoolbutton: Remove unneeded deprecation markers 2016-10-28 16:33:02 +02:00
Matthias Clasen
775b42ef92 Revert "Convert GtkEntry to indirect rendering"
This reverts commit 8e29222d95.

This needs more work - spin buttons need to be converted at
the same time, and we should make sure that text still appears.
2016-10-28 06:47:26 -04:00
Chun-wei Fan
b960008955 GDK-Win32/4.0: Improve GL on Windows
Update the GDKGL implementation:

-Allow legacy contexts to be created.
-Use finer-grained attributes to ask for a pixel format when possible,
 which also adds support for anti-aliasing

In fact the changes here are required for GTKGL to work properly on
Windows for 4.x.

Note that creation of gles contexts is not done here, as the system does
not support such contexts directly on Windows, but only through means such
as ANGLE, which is a totally different issue here.

https://bugzilla.gnome.org/show_bug.cgi?id=773528
2016-10-28 15:56:49 +08:00
Chun-wei Fan
fcecec1a9d GDK/Win32: Deal with leftovers from removal of GdkWindow items
We need to further remove items for the removal of:
-GdkWindow->depth (commit 6cc94ff)
-gdk_window_get_visual()/GdkWindow->visual (commit f420dc7)
-GDK visual query APIs (commit 45c0379)

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-10-28 15:56:36 +08:00
Benjamin Otte
45c0379f87 API: gdk: Remove visual querying APIs
They are unused, only work on the default display anyway and visuals are
on their way out.
2016-10-28 05:22:50 +02:00
Benjamin Otte
f420dc7456 API: gdk: Remove gdk_window_get_visual()
With it, remove window->visual.
2016-10-28 05:22:49 +02:00
Benjamin Otte
6cc94ff176 gdk: Remove GdkWindow.depth member variable
It's unused.
2016-10-28 05:22:32 +02:00
Benjamin Otte
cd67c0d7cc window: Add a GdkWindow:display property
... and make it an explicit property of the window struct instead of
looking it up in the visual.
2016-10-28 04:45:35 +02:00
Matthias Clasen
8e29222d95 Convert GtkEntry to indirect rendering
Warning! This unveils some positioning issue with the secondary icon.
2016-10-27 20:46:08 -04:00
Matthias Clasen
45e83f3d38 Convert GtkIcon to indirect rendering 2016-10-27 20:35:39 -04:00
Sébastien Wilmet
4dee2535c3 docs: more logical GtkEntry function order in the section file
Trivial commit.

Group related functions together. Most of the functions had already the
set -> get order, so keep that order.
2016-10-27 12:30:04 +02:00
Sébastien Wilmet
75ef45f53d docs: consistent get/set function order for GtkScrolledWindow
Trivial commit.

For all the other GtkScrolledWindow functions, the order was get -> set.
Except for 3 functions, so fix that.
2016-10-27 12:29:40 +02:00
Chun-wei Fan
71b7435c56 MSVC builds: Simplify "install" property sheet
Use a for loop to loop through the icon sizes to copy them.
2016-10-27 14:28:45 +08:00
Rico Tzschichholz
42d3a9e68a gtk+-4.0.pc: Make sure to add requirements for Gsk (e.g. graphene-1.0) 2016-10-27 08:21:13 +02:00
Chun-wei Fan
874b0daea2 MSVC builds: Make the GSK project functional
Add the needed custom build steps to generate the GResource and
enumeration sources that is needed for the build, and make sure that the
build is able to find the Graphene headers and lib.

Also add the necessary CFLAGS needed for building GSK.
2016-10-27 14:17:28 +08:00
Chun-wei Fan
80ff8d6d89 MSVC builds: Fix previous patch on .sln file
We need to change the filenames of the .vcxproj project files as well,
oops.
2016-10-27 14:17:28 +08:00
Rico Tzschichholz
9c6e614bc3 gtk+-4.0.pc: Drop rogue refererene to non-existing gdk-4.0.pc 2016-10-27 08:12:20 +02:00
Chun-wei Fan
1f791b59d8 build/win32/vs12/gtk4-gen-srcs.props: Fix XML reference URL
Visual Studio can be picky about this, causing projects not to load.
2016-10-27 12:48:49 +08:00
Chun-wei Fan
710e706643 Visual Studio projects: Rename tools to become gtk4-*
This follows what happens in the autotools builds.

Also fix some project namespaces and the install project where there is a typo
in a project dep, which may cause a problem during the build.
2016-10-27 12:48:49 +08:00
Benjamin Otte
56b25e2574 x11: Remove code that temporarily unsets the background
We don't set a background anymore, so we don't need to temporarily unset
it.
2016-10-27 06:37:02 +02:00
Benjamin Otte
be8c0b27af inspector: Don't connect to nonexisting signal
The GdkScreen::size-changed signal was removed a while ago.

And because signal changes don't trip the compiler, there are always
leftovers...
2016-10-27 06:14:01 +02:00
Benjamin Otte
48f5df5318 gtk: Add back infrastructure for GTK_DEBUG=updates
Includes the ability to turn on updates in the inspector. Animations are
now run via a tick function which allows us to neatly overlay a
semi-transparent red rectangle and fade it out over time.

It also probably enables way more, but somebody with more UI neatness
than me needs to figure out what it eanbles first...
2016-10-27 05:07:23 +02:00
Benjamin Otte
e1e64ac6fc treeview: Use gtk_widget_queue_draw() 2016-10-27 05:07:23 +02:00
Benjamin Otte
a81c309c39 textview: Use gtk_widget_draw() 2016-10-27 05:07:23 +02:00
Benjamin Otte
0cf4fdcb86 widget: Use gtk_widget_queue_draw() 2016-10-27 05:07:23 +02:00
Benjamin Otte
2ca641edc9 scrolledwindow: Use gtk_widget_queue_draw() 2016-10-27 05:07:23 +02:00
Benjamin Otte
bf64b6aec4 paned: Use gtk_widget_queue_draw() 2016-10-27 05:07:23 +02:00
Benjamin Otte
8202d3fe89 menu: Remove unneeded invalidations
The gadgets should take care of those themselves
2016-10-27 05:07:23 +02:00
Benjamin Otte
ef1ba12037 notebook: Use gtk_widget_queue_draw() 2016-10-27 05:07:23 +02:00
Benjamin Otte
1df8b15711 gtk: Remove gdk_window_invalidate() from docs
And replace its mentions with gtk_widget_queue_draw().
2016-10-27 05:07:23 +02:00
Benjamin Otte
b9aef64f09 toolitemgroup: Use gtk_widget_queue_draw() 2016-10-27 05:07:23 +02:00
Benjamin Otte
4d4b355d0e iconview: Use gtk_widget_queue_draw() 2016-10-27 05:07:23 +02:00
Benjamin Otte
ac88153f60 expander: Remove unnecessary redraws 2016-10-27 05:07:23 +02:00
Benjamin Otte
8b76d12f28 drawingarea: Clarify docs
Don't use gdk_window_invalidate(), use gtk_widget_queue_draw().
2016-10-27 05:07:23 +02:00
Benjamin Otte
27ab75250c widget: Redo how gtk_widget_queue_draw() works
Before, we would immediately invalidate the GdkWindow of the widget, now
we call the parent's GtkWidgetClass.queue_draw_child() function.
This allows the parent to track redraw queueing of children.

By default GtkWidgetClass.queue_draw_child() will again chain up to its
parent while respecting the GdkWindow hierarchy for clipping.
GtkWindow is then the only widget actually invalidating the GdkWindow.

This essentially moves redraw queueing from GDK to GTK.
2016-10-27 05:07:23 +02:00
Benjamin Otte
77038a9b0b widget: Inline function into only caller
... and remove all the checks that are not needed in this case.
2016-10-27 05:07:23 +02:00
Benjamin Otte
dd105f3db8 gdk: Remove gdk_window_set_invalidate_handler()
It's not used anymore.
2016-10-27 05:03:06 +02:00
Benjamin Otte
b1f61b6fcc gdk: Add deprecation guards around deprecated function 2016-10-27 05:03:06 +02:00
Benjamin Otte
568f1ff301 pixelcache: Remove
It's now unused.
2016-10-27 05:03:06 +02:00
Benjamin Otte
a9c05448a8 textview: Get rid of the pixel cache 2016-10-27 05:03:06 +02:00
Benjamin Otte
134165e773 treeview: Remove the pixel cache usage 2016-10-27 05:03:06 +02:00
Matthias Clasen
6861a5d0a4 Spacing fixes for builtin dialogs
Replace border-width and padding by margins, in most places.
2016-10-26 20:58:07 -04:00
Matthias Clasen
50a75b37a9 More gtk-demo spacing fixes 2016-10-26 20:37:23 -04:00
Matthias Clasen
76aeb706ef gtk-demo: Start to fix up the spacing
Replace some cases of lost border-width with margins.
2016-10-26 15:03:04 -04:00
Matthias Clasen
b2284ef48f Fix widget-factory appearance, a bit
Use margins instead of border-width, for now.
2016-10-26 14:42:11 -04:00
Matthias Clasen
e2e8231ca9 color chooser: Fix a problem with show-editor=TRUE
For some reason we end up allocating the colorplane widget
before it is realized, and then never initialize the surface.

Fix this by explicitly doing it on realize.

https://bugzilla.gnome.org/show_bug.cgi?id=773474
2016-10-26 14:33:07 -04:00
Benjamin Otte
75358e4d8d applicationwindow: Fix issues with measure vfunc transition 2016-10-26 19:52:02 +02:00
Benjamin Otte
a750f942ac viewport: Remove pixelcache
With the rework for GSK and queueing of redraws pending, the pixel cache
just gets in the way. So we remove it everywhere.
2016-10-26 19:52:02 +02:00
Emmanuele Bassi
da2d91b9b3 build: Update CLEANFILES
We use nodist for gir and typelib files, because we expect them to be
rebuilt.
2016-10-26 16:10:35 +01:00
Emmanuele Bassi
b6c749e61c build: Beautify the GIR post-processing
Use AM_V_GEN to silence the command line output.
2016-10-26 15:58:23 +01:00
Emmanuele Bassi
e161f9eba3 gsk: Add check on GL_MAX_TEXTURE_SIZE
We should check (once) what's the maximum GL texture size and then use
that size to check when we create any GL texture, to avoid errors.
2016-10-26 15:49:28 +01:00
Matthias Clasen
42a5608af6 Fix the build
Copy-paste error.
2016-10-26 10:45:04 -04:00
Matthias Clasen
9aa1257bd0 GdkWindow: Use the seat to enumerate devices
GdkDeviceManager is going away.
2016-10-26 10:36:32 -04:00
Matthias Clasen
7fa09a3e3a quartz: Stop using gdk_device_manager_list_devices
The function has been deprecated.
2016-10-26 10:36:32 -04:00
Matthias Clasen
35fda80a4b x11: Stop using gdk_device_manager_list_devices
The function has been deprecated.
2016-10-26 10:36:32 -04:00
Matthias Clasen
d2d209865b broadway: Stop using gdk_device_manager_list_devices
The function is deprecated.
2016-10-26 10:36:32 -04:00
Alexander Larsson
723b588b5d Make gdk.la and gsk.la a noninst helper library
This merged gtk, gdk and gsk into one library, making it possible to
have internal private APIs between gtk them, as well as producing more
efficient code.

https://bugzilla.gnome.org/show_bug.cgi?id=773100
2016-10-26 16:34:15 +02:00
Benjamin Otte
3fd63e1d67 widget: Improve early exit checks on queue_draw()
(1) We don't need to check for realized when we check for mapped right
    below.
(2) Empty regions don't need to be drawn.
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
52c4421bd3 win32 theme: Fix tooltip borders
https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
d1dafbeaef win32 theme: Fix combobox
https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
16926308a8 win32 theme: Fix column headers
https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
1f340882e2 win32 theme: Fix popup window decorations
Windows such as combobox's popup were using toplevel window's borders

https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
5c6dda0459 gtkwin32theme: delete #if 0 code
https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
a877d2c163 win32 theme: Fix scale widget
It was invisible before.

https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
7e3f9d6f71 win32 theme: No need to create a DC for GetThemePartSize
https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
77ff3ada62 win32 theme: use TS_TRUE in GetThemePartSize
Several styles return a size of 0x0px when using TS_DRAW, as
we don't pass a RECT to draw into.

https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
ed980824c4 win32 theme: Fix scrollbars
The fix is only partial, when both scrollbars are visible their ends
overlap.

https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
ea9b992351 Fix CSS warnings in win32 theme
https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Jaime Velasco Juan
9a9969b337 Fix tiny fonts in win32 theme
broken since df08fc91... (css: always get default font size in pixels)

https://bugzilla.gnome.org/show_bug.cgi?id=773221
2016-10-26 16:25:49 +02:00
Sébastien Wilmet
83dc4c8b39 docs: fix copy/paste errors in the docs of GtkScrolledWindow
Trivial commit.
2016-10-26 15:20:25 +02:00
Sébastien Wilmet
371aa0dba3 docs: update section file for GtkScrolledWindow
Trivial commit.

- More logical ordering (re-group related things).
- Add missing functions: max_content_width/height.
2016-10-26 14:17:00 +02:00
Chun-wei Fan
4b3c0314dd gdk/win32/gdkevents-win32.c: Avoid gdk_device_manager_get_core_pointer()
This function has been removed, so replace it with gdk_seat_get_pointer().

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-10-26 18:54:51 +08:00
Chun-wei Fan
306fd15c34 demos: Fix 'make install'
We need to change gtk-update-icon-cache to gtk4-update-icon-cache, as that tool
has been renamed.
2016-10-26 18:30:09 +08:00
Chun-wei Fan
ac875073fc GSK: Add initial Visual Studio projects
This adds the initial MSVC build items needed to build GSK under Visual Studio,
this is part of it that is required, we need to add items to the property sheets
to generate the code that is generated via glib-mkenums and glib-compile-resources.

This set includes, with the autotools scripts for the complete:
-GSK project files, which is integrated into the gtk+-4.sln.
-The NMake snippets to build the introspection files for GSK.
-The .bat files to call glib-mkenums to generate the enumeration sources.
2016-10-26 18:30:09 +08:00
Matthias Clasen
c9ce0bd4ba Drop x11-specific code from the GTK+ dnd code
We were using passive grabs to listen for some individual
keys. Nowadays, the managed dnd code in the x11 backend
does the same.
2016-10-26 05:13:52 -04:00
Chun-wei Fan
2ba64e0b62 MSVC builds: Support MSVC 2013 and later
We now need C99 features from the compiler which are only supported by
Visual Studio 2013 and later, so drop the MSVC 2008~2012 projects, and make
the baseline supported Visual Studio version be 2013.  Update the build files
as a result.
2016-10-26 16:46:38 +08:00
Chun-wei Fan
910300bcb2 build/Makefile.msvcproj: Add rules for MSVC 2013 to be baseline version
GTK+-3.89.0 and later will require C99 features that is only supported on
Visual Studio 2013 and later, so prepare build/Makefile.msvcproj for this.

We still keep the 2008~2010 stuff here as this strives to be a shared module,
and there are projects using this that still supports building on pre-2013
Visual Studio.
2016-10-26 16:46:38 +08:00
Chun-wei Fan
2e103e85cc Remove gtk4-install.props's during re-generation
This is to ensure the changes in the generated
build/win32/vs10/gtk4-install.props are applied in
build/win32/vs[11|12|14] as well.
2016-10-26 16:46:38 +08:00
Rico Tzschichholz
b4c37bfff8 visual: Remove deprecated API 2016-10-26 10:12:58 +02:00
Rico Tzschichholz
e0b1f2e5f4 Remove deprecated gdk_display_open_default_libgtk_only 2016-10-26 10:06:23 +02:00
Matthias Clasen
dd0f700bfd Fix the docs build after offscreen window removal 2016-10-25 21:46:14 -04:00
Matthias Clasen
cbe1337aa1 Revert "Remove gdk_device_grab/ungrab from the API"
This reverts commit efc37d0855.

Turns out we need to clean up the dnd code some more, first.
2016-10-25 21:24:37 -04:00
Matthias Clasen
f350e346e4 Drop the deprecated gdk_device_manager_get_client_pointer 2016-10-25 21:06:25 -04:00
Matthias Clasen
efc37d0855 Remove gdk_device_grab/ungrab from the API
These are still used in a few places internally,
so make them private.
2016-10-25 20:03:34 -04:00
Matthias Clasen
74d62acf5c Drop GDK_MULTIDEVICE_SAFE from the docs
All the non-multidevice safe API was deprecated and has been
dropped now.
2016-10-25 19:51:24 -04:00
Matthias Clasen
5e4a05e5b7 Remove deprecated gdk_window_get_pointer 2016-10-25 19:45:48 -04:00
Matthias Clasen
1396d6c92a Remove some more deprecated display API
gdk_display_get_pointer, gdk_display_get_window_at_pointer and
gdk_display_warp_pointer have long been deprecated.
2016-10-25 19:31:24 -04:00
Matthias Clasen
ee7ddefce9 Remove deprecated gdk_display_list_devices 2016-10-25 16:04:01 -04:00
Matthias Clasen
dcda9c3d8c Remove deprecated GDK_DISPLAY_OBJECT macro 2016-10-25 16:02:07 -04:00
Matthias Clasen
e041345fcb Remove the last uses of GDK_DISPLAY_OBJECT
This is an obsolete macro.
2016-10-25 16:01:50 -04:00
Matthias Clasen
e642909823 Remove deprecated display ungrab functions 2016-10-25 15:56:52 -04:00
Matthias Clasen
6b231af45e Remove deprecated gdk_app_launch_context_set_display 2016-10-25 15:52:57 -04:00
Matthias Clasen
5cb3fc4c4f Drop deprecated gdk_display_get_screen 2016-10-25 15:35:44 -04:00
Matthias Clasen
0ba67021a9 Remove an unused function
This function is no longer used, now that offscreen windows are gone.
2016-10-25 15:32:02 -04:00
Matthias Clasen
4f1e06380c Remove deprecated gdk_app_launch_context_new 2016-10-25 15:27:42 -04:00
Matthias Clasen
78d0876c46 Remove deprecated gdk_display_get_n_screens 2016-10-25 15:21:46 -04:00
Felix Riemann
0ca12fabf0 GtkShortcutType: Fix typos in developer documentation
https://bugzilla.gnome.org/show_bug.cgi?id=773479
2016-10-25 20:10:41 +02:00
Alexander Larsson
70935f0952 Drop support for offscreen GdkWindows
These complicate a lot of GdkWindow internals to implement features
that not a lot of apps use, and will be better achieved using gsk.
So, we just drop it all.
2016-10-25 09:54:37 +02:00
Rico Tzschichholz
639898000e gdkwindow: Remove deprecated API 2016-10-24 12:22:32 +02:00
Rico Tzschichholz
7630c86468 gdk: Remove deprecated gdk_cairo_set_source_color 2016-10-24 10:36:55 +02:00
Rico Tzschichholz
e528819d00 gdk: Remove deprecated gdk_add_option_entries_libgtk_only and gdk_pre_parse_libgtk_only 2016-10-24 10:33:51 +02:00
Rico Tzschichholz
b19fe8f4e0 gdk: Remove deprecated gdk_threads_set_lock_functions 2016-10-24 10:33:17 +02:00
Rico Tzschichholz
b12e3b5cf2 gdk: Remove deprecated gdk_get_display 2016-10-24 10:33:17 +02:00
Rico Tzschichholz
16ded8d47b gdk: Remove deprecated {keyboard,pointer}_{grab,ungrab} API 2016-10-24 10:33:11 +02:00
Rico Tzschichholz
02d500ac70 cursor: Remove deprecated API 2016-10-24 09:18:53 +02:00
Rico Tzschichholz
540cfd8580 textiter: Remove deprecated gtk_text_iter_begins_tag 2016-10-24 09:07:32 +02:00
Rico Tzschichholz
8abf05e194 gtk: Update path references from gtk-3.0 to gtk-4.0 2016-10-23 20:22:38 +02:00
Charles Monzat
66a422affc Update French translation 2016-10-23 18:09:50 +00:00
Rico Tzschichholz
bdaa2bf531 gtkplacessidebar: Remove deprecated "show-other-locations" signal 2016-10-23 19:13:15 +02:00
Rico Tzschichholz
62b19498ac docs: Follow removal of GtkAction and GtkActivatable 2016-10-23 19:13:15 +02:00
Rico Tzschichholz
c15d61df1f cellrenderertoggle: Fix compile warnings 2016-10-23 19:10:06 +02:00
Rico Tzschichholz
614079ffb0 accessible: Fix compile warnings 2016-10-23 19:09:27 +02:00
Rico Tzschichholz
94058583dc treeview: Remove stray property enum-entry 2016-10-23 19:08:27 +02:00
Rico Tzschichholz
b5f9343ab4 treeview: Remove deprecated API 2016-10-23 18:23:59 +02:00
Rico Tzschichholz
db8369de1f cellrenderertoggle: Remove deprecated indicator-size property 2016-10-23 18:23:59 +02:00
Rico Tzschichholz
502e63eddc stylecontext: Remove deprecated API 2016-10-23 18:23:59 +02:00
Rico Tzschichholz
5c526c9926 gtkplacessidebar: Remove deprecated "show-connect-to-server" 2016-10-23 18:23:59 +02:00
Rico Tzschichholz
f3bc6619eb Remove deprecated gtk_im_multicontext_append_menuitems 2016-10-23 18:23:59 +02:00
Rico Tzschichholz
88fcbd946a testutils: Remove deprecated API 2016-10-23 18:23:59 +02:00
Rico Tzschichholz
471d8d6184 Remove deprecated GTK_RELIEF_HALF 2016-10-23 18:23:58 +02:00
Rico Tzschichholz
3c4f6d64cd quartz: Remove stock API usage 2016-10-23 13:12:00 +02:00
Rico Tzschichholz
24b917165b Remove stray "stock" references 2016-10-23 13:01:52 +02:00
Rico Tzschichholz
a1b519a102 Removed deprecated GtkIM*Style enums 2016-10-23 12:52:00 +02:00
Rico Tzschichholz
64e63e7977 radiotoolbutton: Remove deprecated API 2016-10-23 12:42:52 +02:00
Rico Tzschichholz
d69f657aec layout: Remove deprecated API 2016-10-23 12:38:31 +02:00
Rico Tzschichholz
5c5f8f4672 iconsource: Remove stray reference 2016-10-23 11:12:13 +02:00
Rico Tzschichholz
2273f5d28e iconset: Remove stray references 2016-10-23 11:12:13 +02:00
Rico Tzschichholz
723b4af529 assistant: Remove deprecated API 2016-10-23 11:12:12 +02:00
Rico Tzschichholz
5d41103750 accessible: Drop deprecated connect_widget_destroyed 2016-10-23 11:12:08 +02:00
Timm Bäder
9f47b43f7c colorbutton: Don't notify nonexistent properties 2016-10-22 21:51:59 +02:00
Timm Bäder
ab467317a1 widget: Add docs for ::measure 2016-10-22 21:40:04 +02:00
Timm Bäder
38f2290479 button: Add Since annotations to icon-name setter/getter 2016-10-22 21:02:34 +02:00
Timm Bäder
a50587b9ec widget: Really remove get_preferred_xxx vfuncs 2016-10-22 19:40:57 +02:00
Timm Bäder
e2b6044c1b expander: Remove spacing property 2016-10-22 19:36:58 +02:00
Timm Bäder
85e01b9f39 toolbar: Remove GtkToolbarSpaceStyle 2016-10-22 19:32:45 +02:00
Timm Bäder
a06d34aaff cellrendererpixbuf: Remove :follow-state 2016-10-22 19:32:25 +02:00
Timm Bäder
6c911c8171 remove GTK_DEBUG_PLUGSOCKET
Both GtkPlug and GtkSocket are gone so this doesn't make a lot of sense
anymore.
2016-10-22 19:30:01 +02:00
Timm Bäder
d188912338 icontheme: Remove deprecated API 2016-10-22 19:08:29 +02:00
Timm Bäder
66430e683c toolpalette: Remove deprecated API 2016-10-22 19:08:29 +02:00
Timm Bäder
9992a616ef widget: Use ::measure vfunc to measure size
Add a new ::measure vfunc similar to GtkCssGadget's that widget
implementations have to override instead of the old get_preferred_width,
get_preferred_height, get_preferred_width_for_height,
get_preferred_height_for_width and
get_preferred_height_and_baseline_for_width.
2016-10-22 19:05:47 +02:00
Timm Bäder
6525b95e25 textview: Remove deprecated GtkScrollable API 2016-10-22 17:02:06 +02:00
Timm Bäder
145387add5 css: Stop parsing GdkColor values 2016-10-22 16:59:47 +02:00
Timm Bäder
5cadbc7084 paned: Don't check handle-size style property 2016-10-22 16:59:47 +02:00
Timm Bäder
2da886dd0e Remove gtk_cell_view_get_size_of_row 2016-10-22 14:36:22 +02:00
Emmanuele Bassi
8e85f55240 gl: Check whether use_es is positive
Now that the use_es field is an int with a possible negative value, we
cannot use it its truth value directly; we need to check if it's a
positive value, instead.
2016-10-22 02:40:08 +01:00
Emmanuele Bassi
31c05771e9 gl: Set legacy bit depending on OpenGL version
GDK defaults to asking for an OpenGL 3.2 Core Profile, but if we get a
legacy profile from the underlying windowing system, the OpenGL version
will be fixed to 3.0. If that happens, we need to set the legacy bit on
the GdkGLContext, since that bit will be used to determine the version
and type of GLSL shaders that will be used by application and toolkit
code alike.
2016-10-22 02:40:08 +01:00
Mario Blättermann
8129d5b593 Update German translation
(cherry picked from commit ffb1ac56a8)
2016-10-21 23:45:08 +00:00
Jonas Ådahl
11b5cfbc50 GtkMenu: Try using gdk_window_move_to_rect() more often
With best-effort, try to use gdk_window_move_to_rect() more often, when
all pieces fit together. For the non-legacy paths to be triggered for
when gtk_menu_popup_for_device() or gtk_menu_popup() were used, the
following conditions must be met:

 1) There is no custom positioning function specified
 2) The menu is attached to a widget (using gtk_menu_attach_to_widget())
 3) There is a associated grab device

https://bugzilla.gnome.org/show_bug.cgi?id=772922
2016-10-21 11:54:54 -04:00
Pavel Grunt
5993117b84 overlay: Document availability of properties
Add missing "Since"

https://bugzilla.gnome.org/show_bug.cgi?id=773082
2016-10-21 11:53:01 -04:00
Robert Roth
07724de3d9 Fix css documentation typo for color definition
'ligher' should be 'lighter', of course.

https://bugzilla.gnome.org/show_bug.cgi?id=773246
2016-10-21 11:43:03 -04:00
Emmanuele Bassi
b878ec7f2f gdk/gl: Allow autodetection for GL/GLES
If the GdkGLContext was not explicitly instructed to use or not GLES, we
can detect whether the underlying API is going to be desktop GL or GLES.

https://bugzilla.gnome.org/show_bug.cgi?id=773180
2016-10-21 11:39:24 -04:00
Adam Jackson
627867863f gdk: Don't second-guess whether a context is GLES
We've already set ->use_es correctly at context creation time, all this
can possibly do is change our mind about what kind of GL we're using.

Signed-off-by: Adam Jackson <ajax@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=773180
2016-10-21 11:39:24 -04:00
Victor Toso
ebbfbc0bea tests: fix clipboard test by loading correct icon
The icon name changed from "terminal" to "utilities-terminal" in
Adwaita-icon-theme.

Signed-off-by: Victor Toso <victortoso@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=773113
2016-10-21 11:37:34 -04:00
Matthias Clasen
c501867192 docs: Expand icon-palette example
Add a warning color, and show that hex colors work here.
2016-10-21 11:08:07 -04:00
Matthias Clasen
9a684accfe Add border-width to the migration guide
No good answers here yet.
2016-10-21 10:01:29 -04:00
Timm Bäder
ca305bb596 window: Don't leak the GskRenderer 2016-10-21 14:32:31 +02:00
Lapo Calamandrei
40955ad737 Fix a typo in the css docs 2016-10-21 13:55:03 +02:00
Chun-wei Fan
5140bc97b3 gdkwindow-win32.c: Make code compatible with GDK 4.0 APIs
Port the code here so that things will continue to build and work on 4.x.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-10-21 16:21:32 +08:00
Timm Bäder
81c12493ae Fix a few memory leaks 2016-10-21 06:45:22 +02:00
Matthias Clasen
c07f395a4f Beef up the migration guide 2016-10-20 16:10:42 -04:00
Matthias Clasen
53fc5a7d83 Add a bit more to the migration guide 2016-10-20 16:10:42 -04:00
Timm Bäder
a5867ffe71 Remove some more GdkColor properties 2016-10-20 20:12:08 +02:00
Timm Bäder
f65af48d51 button: Fix icon-name implementation 2016-10-20 20:12:05 +02:00
Timm Bäder
f989281b38 button: Remove grab_time
Unused.
2016-10-20 20:12:05 +02:00
Timm Bäder
0f6235752e container: Remove composite_name 2016-10-20 20:12:05 +02:00
Timm Bäder
00e7c69044 frame: Remove unused constants 2016-10-20 20:12:05 +02:00
Timm Bäder
de65f87816 container: Remove reallocate_redraws 2016-10-20 20:12:05 +02:00
Timm Bäder
3e3eb0187a gtk4-demo: Fix builder demo 2016-10-20 20:12:05 +02:00
Timm Bäder
18f0b80e2e widget: Remove in_reparent flag
gtk_widget_reparent is gone so we don't need this anymore.
2016-10-20 20:12:05 +02:00
Timm Bäder
6150ce4484 menuitem: Stop looking at nonexistant child properties 2016-10-20 20:12:05 +02:00
Timm Bäder
2e32655ccd checkbutton: Remove unused constants 2016-10-20 20:12:05 +02:00
Timm Bäder
2437e97da1 builder: Stop parsing GdkColor values 2016-10-20 20:12:04 +02:00
Timm Bäder
8dd549850c shortcutswindow: Remove unneeded deprecation guards
Leftovers from when it was still using a GtkArrow
2016-10-20 17:09:47 +02:00
Timm Bäder
f8eaadb32e testsuite: Update buttons.nodes
We don't create a box anymore here.
2016-10-20 17:09:47 +02:00
Timm Bäder
e772c2b622 container: Don't queue resize on non-toplevel widgets 2016-10-20 17:09:06 +02:00
Carlos Garnacho
31db11dd5b wayland: Allow grabless xdg_popups
xdg_shell v6 allows grabless popups, whose behavior is not that
different from override redirect windows with no grab to take
keyboard input (and pointer events outside).

This means we can relax the requirement to have a grab before
creating an xdg_popup. The warning is still useful to have so
people stop relying on gdk_window_show();gdk_device_grab() being
an ok pattern to popup a window, it's been moved to wayland
implementation of gdk_device_grab() instead, so we warn if trying
to grab a GDK_WINDOW_TEMP window that's already visible.

https://bugzilla.gnome.org/show_bug.cgi?id=771694
2016-10-20 11:41:59 +02:00
Emmanuele Bassi
59af3a0c15 build: Enable subdir-objects
Newer versions of Automake warn about forward compatibility when the
build uses sources in sub-directories without the subdir-objects option.

Both GTK+ and GDK have an almost-but-not-quite non-recursive Automake
layout, with sources in sub-directories contributing to the build of a
top-level object.

In theory, just adding subdir-objects to AM_INIT_AUTOMAKE would be
enough, but the test suite references sources in a different top-level
in order to build tests that verify the implementation of private data
structures. This is not really allowed when using subdir-objects and out
of srcdir builds. In order to fix this case, we require some ad hoc
rules to create symbolic links in the appropriate build directory.
2016-10-19 15:26:24 +01:00
Lapo Calamandrei
24cb9d4ba6 Adwaita: make circular button border looking nice
the darker bottom border used on buttons looks bad on circular ones
so now a gradient clipped on the border-box and a transparent
border is used in that partcular case.
See https://bugzilla.gnome.org/show_bug.cgi?id=771205 for details.
2016-10-19 16:07:52 +02:00
Lapo Calamandrei
1f8b146410 Adwaita: sass, make button mixin export a global $button_fill var
$button_fill contains the background-image property value of
buttons, having it readable outside the drawing mixin allows, for
example, stacking background images in an easier way.
2016-10-19 16:07:34 +02:00
Lapo Calamandrei
a1b7f36afa Adwaita: sass cleanup
aggregate circular button style to the main button structure.
2016-10-19 16:07:12 +02:00
Lapo Calamandrei
bec95e55e4 widget-factory: use circular style class on the circular button...
...in place of the circular-button one, killing the custom style
shipped, realying on the theme style.
2016-10-19 16:07:02 +02:00
Emmanuele Bassi
5cb804a808 build: Remove unused target variables
The foreigndrawing test has been removed.
2016-10-19 14:34:05 +01:00
Emmanuele Bassi
a9bcd05a14 icontheme: Simplify lookup_size()
No need to use an internal function, and no need to store the icon size
id, since we're using the id as the offset.
2016-10-19 14:04:00 +01:00
Chun-wei Fan
8b8f378050 Visual Studio builds: Update from [gdk|gtk]-3 to [gdk|gtk]-4
This updates all the projects files to be be named appropriately as we move from GTK-3.x to 4.x,
and updates the autotools files so that things are distributed and generated properly.

Also remove deprecated/gtkstatusicon-quartz.c from gtk/Makefile.am, as that was causing 'make dist'
to fail as that file has been removed.

This fixes 'make dist' with the updated existing project files in proper order.

Note that this does not include the new GSK, which will be added later, so the project files do
not yet build the whole stack on Visual Studio at this point.
2016-10-19 18:39:36 +08:00
Chun-wei Fan
51b7146138 Visual Studio Solutions: Drop references to libgail-util
We dropped it...
2016-10-19 16:13:54 +08:00
Chun-wei Fan
594ec7cfdd build/: Force MSVC project file generation on Makefile.am changes
Make the Makefile.am targets for generating the Visual Studio projects re-generate the
project files and the header listings whenever the Makefile.am's that include
build/Makefile.msvcproj changes, so that whenever a source/header is added, they will
be reflected in the projects and in the property sheets that are used to copy the
headers.

Also ensure that these are applied to the vs11, vs12 and vs14 projects when this
happens, as they are copied and processed from the Visual Studio 2010 projects.
2016-10-19 15:56:10 +08:00
Matthias Clasen
cf7445d9e6 Add some content to the migration guide 2016-10-18 16:20:44 -04:00
Matthias Clasen
56cc9e2d71 Start a new migration guide
Remove information that is only relevant for porting to GTK+ 3,
and put scaffolding in place for information relevant to GTK+ 4.
2016-10-18 15:21:12 -04:00
Emmanuele Bassi
14322b03ab gsk: Clear the profiler instance
When disposing the GskRenderer.
2016-10-18 16:49:21 +01:00
Emmanuele Bassi
d3f88adab7 gsk: Plug leak in GskRenderNode
We need to destroy the node's surface when finalizing it.
2016-10-18 16:34:29 +01:00
Emmanuele Bassi
976a4f6b12 build: Fix variable name for gtk4-update-icon-cache target 2016-10-18 15:51:05 +01:00
Emmanuele Bassi
b915efa976 build: Rework the GSK source lising
We need to only parse the public sources during the introspection step,
otherwise the introspection scanner will try to access private data
types.
2016-10-18 15:48:05 +01:00
Emmanuele Bassi
c0ce28374c build: Drop LDADD from GSK's Makefile
We can use the LDFLAGS target build.
2016-10-18 15:48:05 +01:00
Matthias Clasen
46187f8a22 Rename all binaries to be versioned
This is just easier to avoid parallel installation problems.
2016-10-18 10:27:45 -04:00
Matthias Clasen
e4e6cb87b2 Rename gtk-query-immodules to follow our binary naming scheme
Instead of gtk-query-immodules-4.0, lets call it gtk4-query-immodules,
to use the same prefix as all the other versioned binaries.
2016-10-18 09:59:42 -04:00
Matthias Clasen
c978fc792d Fix the docs build more
This makes gtk-doc produce output again.
2016-10-18 08:57:14 -04:00
Rico Tzschichholz
6fb8f61124 gdk: Fix Since tag of gdk_cairo_surface_upload_to_gl 2016-10-18 13:38:08 +02:00
Rico Tzschichholz
310a1f7e90 gdk: Add missing Since tags for gdk_window_new_child/input
In addition to d22e5e69d9
2016-10-18 13:27:19 +02:00
Emmanuele Bassi
69781c25da gsk: Bump up all version annotations
GSK is part of the 4.0 development cycle.
2016-10-18 11:49:16 +01:00
Emmanuele Bassi
8d2208359d docs: Bump up major version for GSK's API reference 2016-10-18 11:49:16 +01:00
Emmanuele Bassi
dace0791a9 gsk: Add the ability to create fallback renderers
While porting GTK to GskRenderer we noticed that the current fallback
code for widgets using Cairo to draw is not enough to cover all the
possible cases.

For instance, if a container widget still uses GtkWidget::draw to render
its children, and at least one of them has been ported to using render
nodes instead, the container won't know how to draw it.

For this reason we want to provide to layers above GSK the ability to
create a "fallback" renderer instance, created using a "parent"
GskRenderer instance, but using a Cairo context as the rendering target
instead of a GdkDrawingContext.

GTK will use this inside the gtk_widget_draw() implementation, if a
widget implements GtkWidgetClass.get_render_node().
2016-10-18 11:49:16 +01:00
Emmanuele Bassi
a9bbb020aa gsk: Update Cairo renderer
The Cairo renderer has been lagging behind a series of changes inside
GskRenderer, like surface-less nodes, so it needs to be updated.
2016-10-18 11:49:15 +01:00
Emmanuele Bassi
6b3c0052fc gsk: Make GskRenderer.render() drawing context-agnostic
We're going to need to allow rendering on a specific cairo_t in order to
implement fallback code paths inside GTK; this means that there will be
times when we have a transient GskRenderer instance that does not have a
GdkDrawingContext to draw on.

Instead of adding a new render() implementation for those cases and then
decide which one to use, we can remove the drawing context argument from
the virtual function itself, and allow using a NULL GdkDrawingContext
when calling gsk_renderer_render(). A later commit will add a generic
function to create a transient GskRenderer with a cairo_t attached to
it.

Renderers inside GSK will have to check whether we have access to a
GdkDrawingContext, in which case we're going to use it; or if we have
access to a cairo_t and a window.
2016-10-18 11:49:15 +01:00
Emmanuele Bassi
13f7f5bdfc docs: Update the GSK API reference section 2016-10-18 11:49:15 +01:00
Emmanuele Bassi
3aaae6c49c gsk: Move GskRenderNode getters to internal API
GskRenderNode is, at its core, a write-only API; you're supposed to set
up the render nodes instead of querying them for state.

Querying render nodes is left to the GskRenderer implementation.
2016-10-18 11:49:15 +01:00
Emmanuele Bassi
7de49fb7b2 gsk: Remove GskRenderer:auto-clear
We control the clearing inside each GskRenderer implementation, and we
don't allow providing a target surface any more.
2016-10-18 11:49:15 +01:00
Matthias Clasen
c5a2ae2f95 Convert GtkSpinner to indirect rendering 2016-10-18 11:49:15 +01:00
Matthias Clasen
8f5db4bc32 Convert GtkImage to indirect rendering 2016-10-18 11:49:15 +01:00
Matthias Clasen
bed5e6fb16 Convert GtkAccelLabel to indirect rendering 2016-10-18 11:49:15 +01:00
Matthias Clasen
be0de54237 Convert GtkLabel to indirect rendering
Warning! This breaks GtkAccelLabel. It will be fixed in the next
commit.
2016-10-18 11:49:15 +01:00
Matthias Clasen
f101ef7cd1 Convert GtkFlowBox to indirect rendering 2016-10-18 11:49:15 +01:00
Matthias Clasen
58b38d59c5 container: Prepare to prune render nodes
Add a should_propagate function for render nodes. Eventually,
this is meant to avoid creating render nodes for child widgets
that are outside the parents clip area. Since we don't have
that information available right now, just filter out nondrawable
children for now.
2016-10-18 11:49:15 +01:00
Matthias Clasen
39c1aa5e27 Split css background into individual render nodes
Use separate render nodes for each layer in a multi-image
background. WARNING: blend modes don't work right yet.
2016-10-18 11:49:15 +01:00
Matthias Clasen
9a2de80497 Add blend mode to debug spew 2016-10-18 11:49:14 +01:00
Matthias Clasen
b660361fb7 Don't create render nodes for empty backgrounds 2016-10-18 11:49:14 +01:00
Matthias Clasen
cffb8ae4b5 Break out the css background render node in a function
This is in preparation for creating separate render nodes
for individual backgrounds.
2016-10-18 11:49:14 +01:00
Matthias Clasen
f74dd416d6 Make outer shadows work again
Change get_render_node to return nodes that are sized to the clip
area and expect to be placed at the clip position; change
gtk_container_propagate_render_node to place child render nodes
accordingly, and change gtk_css_gadget_get_render_node to return
nodes that are sized accordingly as well.
2016-10-18 11:49:14 +01:00
Alexander Larsson
e0ab6d5a3c gsk: Fix hidpi scaling
We store the vertices in (unscaled) window coords (but the item size
is still scaled to match the texture size). Also, the
projection/model-view multiplication order is switched so that the scale
is applied at the right place.
2016-10-18 11:49:14 +01:00
Alexander Larsson
1c7c77bc94 gdk_cairo_surface_upload_to_gl: Don't apply device scale
The arguments to this function is the texture width/height, and these
are already scaled.
2016-10-18 11:49:14 +01:00
Emmanuele Bassi
f764d03cfd gsk: Remove :use-alpha from GskRenderer
It's unused, and we always assume we render with an alpha channel
enabled because it's 2016.
2016-10-18 11:49:14 +01:00
Emmanuele Bassi
387ed37f74 gsk: Move scaling filters to GskRenderNode
The renderer will always use nearest-neighbor filters because it renders
at 1:1 pixel to texel ratio.

On the other hand, render nodes may be scaled, so we need to offer a way
to control the minification and magnification filters.
2016-10-18 11:49:14 +01:00
Emmanuele Bassi
3bdd9c270a gsk: Allow adding a GL texture as a node content
If we already have a GL texture we definitely don't want to use
gdk_cairo_draw_from_gl() to draw on a Cairo context if we're going
to take the Cairo surface to which we draw and put it into an OpenGL
texture.
2016-10-18 11:49:14 +01:00
Emmanuele Bassi
ce67336577 gsk: Drop modelview/projection from GskRenderer API
The details of the modelview and projection matrices are only useful for
the GL renderer; there's really no point in having those details
available in the generic API — especially as the Cairo fallback renderer
cannot really set up a complex modelview or a projection matrix.
2016-10-18 11:49:14 +01:00
Emmanuele Bassi
23a009a408 gtk: Sort children by window depth when rendering
This makes popovers pop over instead of under.
2016-10-18 11:49:14 +01:00
Emmanuele Bassi
c9514b45ff gsk: Ensure that non-drawing nodes are supported
Non-drawing nodes should skip the texturing phase.
2016-10-18 11:49:14 +01:00
Emmanuele Bassi
b2f5a69742 gtk: Add a box render node for gadgets
Instead of using the background as the gadget's node, we add a
non-drawing node that can be used to apply offsets; all other nodes are
children of the "box" node.
2016-10-18 11:49:13 +01:00
Emmanuele Bassi
955d9a8463 gsk: Fix the blend mode
The default blend mode should be the equivalent of Cairo's OVER
operator.
2016-10-18 11:49:13 +01:00
Emmanuele Bassi
0812d691b3 gsk: Reuse VAOs with identical buffers
Just like we reuse texture ids with the same size we can, at the expense
of a little memory, reuse vertex buffers if they reference the same
attributes and contain the same data.

Each VAO is marked as free at the end of the frame, and if it's not
reused in the following frame, it gets dropped.
2016-10-18 11:49:13 +01:00
Emmanuele Bassi
56c93a7661 gsk: Remove child-transform from render nodes
The child-transform is useful only if we also provide clipping to the
parent nodes, otherwise children will just be drawn outside of the
parent's bounds.

We'll introduce child transforms either at a higher layer, or once we
add clipping support to GskRenderNode.
2016-10-18 11:49:13 +01:00
Matthias Clasen
fd4a1cdad6 Covert GtkOverlay to indirect rendering
There is no gadget, so we use the gtk_widget_create_render_node
function for the first time here.
2016-10-18 11:49:13 +01:00
Matthias Clasen
579b43b8e8 Convert GtkComboBox to indirect rendering
The removal of the draw method in GtkComboBox reveals another
instance of parent-child invariant violation in GtkComboBoxText.
2016-10-18 11:49:13 +01:00
Matthias Clasen
b8acd23a86 GtkButtonBox: Convert to indirect rendering 2016-10-18 11:49:13 +01:00
Matthias Clasen
53266e7a15 Small documentation additions 2016-10-18 11:49:13 +01:00
Matthias Clasen
7eb8646ace Small fixes for the docs
Set titles and short descriptions for the sections.
2016-10-18 11:49:13 +01:00
Matthias Clasen
d8dc6f0c81 gsk: Build docs 2016-10-18 11:49:13 +01:00
Matthias Clasen
ea549a3ce4 GtkListBox: Convert to indirect rendering
Note that there is a problem with the pixel cache that causes
listboxes to come out black when in a scrolled window.
2016-10-18 11:49:13 +01:00
Matthias Clasen
1046262048 gadget: Fix handling of custom content
The transformations here were wrong, causing content to go nowhere.
This patch fixes check and radio buttons to appear as expected.
2016-10-18 11:49:13 +01:00
Matthias Clasen
6a1edb0960 GtkCheckButton: Convert to indirect rendering
This is another example of indirect rendering with a box gadget.
There is currently still some positioning problem with the
checkmark.
2016-10-18 11:49:13 +01:00
Matthias Clasen
f68eaae581 Prevent box gadget content from being drawn twice
Now that we split out box gadget children into separate
render nodes, we must not draw them onto the box gadgets
node anymore.
2016-10-18 11:49:12 +01:00
Matthias Clasen
ac52abcedc GtkExpander: Convert to indirect rendering
This is the first example of indirect rendering involving
a box gadget. For now, we iterate the child gadgets manually,
and rely on gtk_container_propagate_render_node for the
child widgets. Eventually, we may want a better solution
here.
2016-10-18 11:49:12 +01:00
Matthias Clasen
62eb900b83 gadget: Add a has_content vfunc
...and implement it for GtkCssGadget and GtkCssCustomGadget.
This allows us to decide on a per-object basis if a custom
gadget needs a render node for content or not.
2016-10-18 11:49:12 +01:00
Matthias Clasen
9d06ee637b button: Restore focus
The custom gadget draw function has the side effect of informing
the gadget machinery wether to draw focus or not. Bring the
draw function back, just for its boolean return value. We may
want to find a better solution for this.
2016-10-18 11:49:12 +01:00
Matthias Clasen
7f86516c27 Allow selective debug spew
I don't think this should stay in the code long-term, but it
is useful for debugging. It helped me track down some suspicious
placements of render nodes.
2016-10-18 11:49:12 +01:00
Matthias Clasen
02187371a2 Add details to css render nodes
Give all nodes the same detail about the owner widget.
This reveals that every GtkCssCustomGadget gets a
DrawGadgetContents node, even if their draw_func is NULL.
We may want to come up with a better solution for that.
2016-10-18 11:49:12 +01:00
Matthias Clasen
bde55ccdce Some debug help
Make the bounds of drawing surfaces created by render nodes visible.

Trigger with GSK_DEBUG=surface.
2016-10-18 11:49:12 +01:00
Matthias Clasen
b371b5da42 Drop an unused variable 2016-10-18 11:49:12 +01:00
Emmanuele Bassi
9fe18f6561 gtk: Clean up render fallback node creation in GtkWidget 2016-10-18 11:49:12 +01:00
Emmanuele Bassi
e58965a3cc gtk: Port GtkHeaderBar to render nodes 2016-10-18 11:49:12 +01:00
Emmanuele Bassi
2e0d3ef866 gtk: Port GtkActionBar to render nodes 2016-10-18 11:49:12 +01:00
Emmanuele Bassi
abe19f1826 gtk: Attempt at handling CSS coordinates
When creating the GskRenderNodes for the gadgets we should not translate
the coordinates inside the Cairo context, but we should tweak the
coordinates of the anchor point.

This is still not enough to get an appropriate rendering, as the result
is still slightly offset to the left.
2016-10-18 11:49:12 +01:00
Emmanuele Bassi
32d45b0081 gsk: Pass the appropriate value for the n_quads argument
Instead of passing the size of the buffer, we should pass the number of
quads; we know what the size of a single quad structure is, so we can do
the multiplication internally when creating the VAO.

This allows us to print the quads for debugging purposes.
2016-10-18 11:49:12 +01:00
Matthias Clasen
a0b2b3745f GtkFrame: Convert to indirect rendering
Create a GskRenderNode for the contents of the frame.
2016-10-18 11:49:11 +01:00
Emmanuele Bassi
354d4435b1 gtk: Add convenience function for creating render nodes
GtkWidget.create_render_node() sets up a GskRenderNode appropriate for
rendering the contents of a widget, including its bounds,
transformation, and anchor point.
2016-10-18 11:49:11 +01:00
Emmanuele Bassi
a146618de0 gsk: Rename set_offset() to set_anchor_point()
The naming is consistent with other scene graph libraries, as it
represents an additional translation transformation applied on top of
the provided transformation matrices.

We can also simplify the implementation by applying the translation when
we compute the world matrix.
2016-10-18 11:49:11 +01:00
Emmanuele Bassi
702befc697 gsk: Recycle textures across frames
We keep the textures used inside a frame around until the end of the
following frame; whenever we need a texture with the same size, and
it's not marked in use, then we just reuse the existing texture.
2016-10-18 11:49:11 +01:00
Matthias Clasen
e7c7932d72 Fix fallback render nodes
We were allocating a surface thats big enough for the clip, and
we were setting the transform for that, but then GtkContainer
was overriding the transform with the one for the allocation.
Also, we were drawing at the clip position, not the allocation
position.
2016-10-18 11:49:11 +01:00
Matthias Clasen
7b204b0eea Add an offset to render nodes
This will let us account for the difference between
clip and allocation.
2016-10-18 11:49:11 +01:00
Matthias Clasen
ff20a68ca3 gsk: Split of debug spew for transforms
This was overwhelming other useful debug output, so make it
opt-in. We print the render items for both opengl and transforms,
since the matrices bleed into each other, otherwise.
2016-10-18 11:49:11 +01:00
Matthias Clasen
b876068e5b gsk: Add debug macros that trigger on two conditions
This will be useful in the following commits.
2016-10-18 11:49:11 +01:00
Matthias Clasen
819ffdd5c2 gsk: Add a debug flag for transforms 2016-10-18 11:49:11 +01:00
Matthias Clasen
23745462a4 gsk: Improve debug output a bit
Indent render node debug spew to make the tree structure obvious.
2016-10-18 11:49:11 +01:00
Matthias Clasen
1d5e05b0d1 button: Convert to indirect rendering
WARNING! This commit breaks GtkButton subclasses.
2016-10-18 11:49:11 +01:00
Matthias Clasen
72ccb39f66 Convert GtkGrid to indirect rendering
Following the example of GtkBox.
2016-10-18 11:49:11 +01:00
Emmanuele Bassi
d227b9ce38 gsk: Add GskProfiler to GskRenderer
The profiler instance is per-renderer, and is accesible to
implementations.
2016-10-18 11:49:10 +01:00
Emmanuele Bassi
005fea59b6 gsk: Add profiler object
The GskProfiler holds counters and timers, and will be used by the
renderer implementations to acquire frame timings.
2016-10-18 11:49:10 +01:00
Emmanuele Bassi
137ff8ede7 box: Port from immediate to deferred rendering
Drop the ::draw() vfunc implementation in favour of the
::get_render_node() vfunc.
2016-10-18 11:49:10 +01:00
Emmanuele Bassi
e5dace2d51 Integrate CSS gadget with GSK render nodes
First stab at an internal API that generates render nodes when drawing a
CSS gadget.
2016-10-18 11:49:10 +01:00
Emmanuele Bassi
bfad9fe4ee gtk: Update the coordinates when propagating render nodes
Just like gtk_container_propagate_draw() does for the immediate mode
rendering.
2016-10-18 11:49:10 +01:00
Emmanuele Bassi
1ab1fd4391 Use the projection to flip around the content
Since we use an FBO to render the contents of the render node tree, the
coordinate space is going to be flipped in GL. We can undo the flip by
using an appropriate projection matrix, instead of changing the sampling
coordinates in the shaders and updating all our coordinates at render
time.
2016-10-18 11:49:10 +01:00
Emmanuele Bassi
6c92846936 widget: Fix compatibility fallbacks 2016-10-18 11:49:10 +01:00
Emmanuele Bassi
9982b66906 gsk: Add texture size to debug message 2016-10-18 11:49:10 +01:00
Emmanuele Bassi
a8a8f97511 gsk: Take into account the scaling factor
We need to apply a scaling factor whenever we deal with user-supplied
coordinates, like:

 - when creating textures
 - when setting up the viewport
 - when submitting the scene
2016-10-18 11:49:10 +01:00
Emmanuele Bassi
3d90a070d5 gsk: Tie render nodes to renderers
Render nodes need access to rendering information like scaling factors.
If we keep render nodes separate from renderers until we submit a nodes
tree for rendering we're going to have to duplicate all that information
in a way that makes the API more complicated and fuzzier on its
semantics.

By having GskRenderer create GskRenderNode instances we can tie nodes
and renderers together; since higher layers will also have access to
the renderer instance, this does not add any burden to callers.

Additionally, if memory measurements indicate that we are spending too
much time in the allocation of new render nodes, we can now easily
implement a free-list or a renderer-specific allocator without breaking
the API.
2016-10-18 11:49:10 +01:00
Emmanuele Bassi
ab8420ec52 gsk: Bind GL context to the GL profiler
Similarly to how we bind it to the GL driver object used by the GSK GL
renderer.
2016-10-18 11:49:10 +01:00
Emmanuele Bassi
f0c04cdd09 gtk: Port GtkWindow to render nodes
WARNING: BROKEN COMMIT
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
cd0de3f87c gtk: Add GtkContainer API to gather render nodes
We cannot implement GtkWidgetClass.get_render_node() in GtkContainer
without breaking the fallback path that renders a widget to a single
render node rasterization. For GtkContainer subclasses we should provide
a simple API, similar to gtk_container_propagate_draw(), that gathers
all the render nodes for each child.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
43904892bc gtk: Name GSK render nodes
For debugging purposes it's helpful to name the nodes.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
d6a6820d99 gsk: Fix build without Wayland 2016-10-18 11:49:09 +01:00
Emmanuele Bassi
9e22118feb gsk: Add redirection to FBOs for opacity groups
If a node is non-opaque and has a non-zero opacity we need to paint its
contents and children first to an off screen buffer, and then render the
resulting texture at the desired opacity — otherwise the opacities will
combine and result in the wrong rendering.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
8ac9127283 gsk: Drop opaque/transparent item split
We're not going to use separate rendering lists soon, and the way we
render items is less similar to a gaming engine and more similar to a
simpler compositor. This means we don't need to perform a two pass
rendering — opaque items first, transparent items later.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
03ab560fae gsk: Rename uniforms and attributes in shaders
Use appropriate names, and annotate the names with the types — 'u' for
uniforms, 'a' for attributes. The common preambles for shaders are split
from the bodies, so we need some way to distinguish the uniforms and the
attributes just from their name.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
24a6f3c055 gsk: Move resource handling inside GskGLDriver
We want the GL driver to cache as many resources as possible, so we can
always ensure that we're in a consistent state, and we can handle state
transitions more appropriately.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
bbfe4324e4 gsk: Simplify buffer handling in GskGLRenderer
We don't have optional stencil and depth buffers, like GtkGLArea: we
always create both of them internally.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
db4ade48e9 gsk: Drop render buffer code path from GskGLRenderer
We always use texturing, to preserve the alpha channel when blitting the
frame buffer object on the window surface.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
b169ce374e gsk: Rework surface -> texture API
Drop the texture parameters handling from the texture creation, and
associate them with the contents upload. Also, rename the function to
something more in line with what it does.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
e2a43a8701 gsk: Add GL driver API to create render targets
It's going to be used by the GL renderer to safely create and bind
FBOs when needed.
2016-10-18 11:49:09 +01:00
Emmanuele Bassi
9836d2259f gsk: Turn texture cache into a hash table
We want to add the list of FBOs tied to a texture; this means we cannot
trivally copy the Texture structure when adding it to a GArray. We're
also going to have more textures than VAOs, so it makes more sense to
use a O(1) access data structure for them.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
30be7bd543 gsk: Add GL profiler
We can use the GL_ARB_timer_query extension (available since OpenGL
3.2, and part of the OpenGL specification since version 3.3) to query
the time elapsed when drawing each frame. This allows us to gather
timing information on our use of the GPU.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
8807f23f76 gsk: Split surface upload from texture creation
We're going to need a method to create textures without a surface.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
b98fb07419 gsk: Enable depth testing
Use the appropriate depth testing function for transparent items.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
c052443633 gsk: Use consistent naming for blend fragment shader
This should make it immediately clear if we're doing something wrong.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
9c86579e47 gsk: Fix pre-condition check
We warn if the node is marked as not mutable.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
51f05731a9 gsk: Flip mutability on GskRenderNode.finalize
We use the public API when removing children nodes, so we need to mark
the node as mutable while we destroy it.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
d3393d51ff gsk: Add specific debug type for shaders
So that we don't lose GskShaderBuilder debugging messages in the stream
of GskGLRenderer ones.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
46bb14e173 gsk: Add GskGLDriver
We can move the caching and management of textures, VAOs, and state of
the GL machinery into a single object, GskGLDriver.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
8555c6ba11 gsk: Use the right pointer to the parent RenderItem
We copy the local RenderItem into the render items array, so we need to
use the copy in the array in order to get the correct reference.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
dc3b240c20 Ensure that render nodes are translated
The clip rectangle may have non-zero offsets, so we need to ensure that
the GskRenderNode associated to the rendered area is translated by those
same offsets.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
d790054c2e gsk: Add fundamental type annotations for GskRenderNode
We need to annotate the GskRenderNode so that the introspection
machinery can find the functions for managing reference counting
and GValues.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
0fbf638999 gsk: Add 'blit' program
For the root node we do not need to use blending, as it does not have
any backdrop to blend into. We can use a simpler 'blit' program that
only takes the content of the source and fills the texture quad with
it.
2016-10-18 11:49:08 +01:00
Emmanuele Bassi
4cda720ab9 gsk: Consolidate program creation and storage
We should use ShaderBuilder to create and store programs for the GL
renderer. This allows us to simplify the creation of programs (by moving
the compilation phase into the ShaderBuilder::create_program() method),
and move towards the ability to create multiple programs and just keep a
reference to the program id.
2016-10-18 11:49:07 +01:00
Emmanuele Bassi
43974761bb docs: Add more GSK documentation 2016-10-18 11:49:07 +01:00
Emmanuele Bassi
a840c7f00c gsk: Add more modes to the blend shader
Use the compositing CSS spec at:

  https://www.w3.org/TR/compositing-1/#blending

For the implementation.
2016-10-18 11:49:07 +01:00
Emmanuele Bassi
9e3b0f5aa0 gsk: Don't store the uniform and attribute location twice
We should keep the ShaderBuilder around and use it to query the various
uniform and attribute locations when needed, instead of storing those
offsets into the Renderer instance, and copying them. This allows a bit
more flexibility, once we have more than one program built into the
renderer.
2016-10-18 11:49:07 +01:00
Emmanuele Bassi
12db9ee164 gsk: Add getter for program id in ShaderBuilder
Since we store it into the ShaderBuilder instance we should also allow
getting the program id.
2016-10-18 11:49:07 +01:00
Emmanuele Bassi
8bb0c9a226 gsk: Add debugging notes to ShaderBuilder
Print out the generated shader and the list of available uniforms and
attributes.
2016-10-18 11:49:07 +01:00
Emmanuele Bassi
28b490f14f gsk: Rework how GLSL shaders are built
The GL renderer should build the GLSL shaders using GskShaderBuilder.
This allows us to separate the common parts into separate files, and
assemble them as necessary, instead of shipping one big shader per type
of GL API (GL3, GL legacy, and GLES).
2016-10-18 11:49:07 +01:00
Emmanuele Bassi
2ded2ad6b7 gsk: Add ShaderBuilder
GskShaderBuilder is an ancillary, private type that deals with the
internals of taking GLSL shaders from resources and building them,
with the additional feature of being able to compose shaders from a
common preamble, as well as adding conditional defines (useful for
enabling debugging code in the shaders themselves).
2016-10-18 11:49:07 +01:00
Emmanuele Bassi
3d21c4afba gsk: Add rendering debug mode for shaders
It's going to be useful to inject debugging data into the shaders used
by GSK.
2016-10-18 11:49:07 +01:00
Emmanuele Bassi
0ce9815bd1 gdk: Add more GDK_GL_ERROR error ids
We're going to use them in other locations.
2016-10-18 11:49:07 +01:00
Emmanuele Bassi
1b1edcebd0 gsk: Use the node's blend mode in the GL renderer 2016-10-18 11:49:07 +01:00
Emmanuele Bassi
81e992e1ff gsk: Store blend mode in the render node 2016-10-18 11:49:07 +01:00
Emmanuele Bassi
bf09ce93c8 gsk: Make GskBlendMode enumeration public 2016-10-18 11:49:07 +01:00
Emmanuele Bassi
638297a22e gsk: Allow sampling between parent and child nodes 2016-10-18 11:49:07 +01:00
Emmanuele Bassi
7416aa762f gsk: Group render state attributes 2016-10-18 11:49:06 +01:00
Emmanuele Bassi
b8a92dfa0e gsk: Turn GskRenderNode into a pure GTypeInstance
Using GObject as the base type for a transient tree may prove to be too
intensive, especially when creating a lot of node instances. Since we
don't need properties or signals, and we don't need complex destruction
semantics, we can use GTypeInstance directly as the base type for
GskRenderNode.
2016-10-18 11:49:06 +01:00
Emmanuele Bassi
b997f4c575 gtk: Use GskRenderNode to render widgets
We need a virtual function to retrieve the GskRenderNode for each
widget, which is supposed to attach its own children's GskRenderNodes.
Additionally, we want to maintain the existing GtkWidget::draw mechanism
for widgets that do not implement get_render_node() — as well as widgets
that have handlers connected to the ::draw signal.
2016-10-18 11:49:06 +01:00
Emmanuele Bassi
258af60c18 gtk: Add a GskRenderer to GtkWindow
Each top-level should have its own GskRenderer, to be used when drawing
the render node tree.
2016-10-18 11:49:06 +01:00
Emmanuele Bassi
074c77e7ac gsk: Rework GskRenderer and GskRenderNode semantics
This commit changes the way GskRenderer and GskRenderNode interact and
are meant to be used.

GskRenderNode should represent a transient tree of rendering nodes,
which are submitted to the GskRenderer at render time; this allows the
renderer to take ownership of the render tree. Once the toolkit and
application code have finished assembling it, the render tree ownership
is transferred to the renderer.
2016-10-18 11:29:34 +01:00
Emmanuele Bassi
d99f91f5fd gsk: Flush the GL render items cache
Whenever the render tree changes we want to drop the RenderItem arrays,
as each item contains a pointer to the GskRenderNode which becomes
dangling once the root node changed.
2016-10-18 11:29:34 +01:00
Emmanuele Bassi
635fd7026a gsk: Add GskRenderer::clear_tree
We need a way to clear eventual caches inside GskRenderer subclasses if
the root node has changed.
2016-10-18 11:29:34 +01:00
Emmanuele Bassi
9d3ca22b4c gsk: Port GskGLRenderer to GLES
Use the appropriate API and shaders if the GdkGLContext was created for
OpenGL ES instead of OpenGL.
2016-10-18 11:29:34 +01:00
Emmanuele Bassi
5909ce6897 gsk: Use surface-to-texture utility function
Now that we have it.
2016-10-18 11:29:34 +01:00
Emmanuele Bassi
eb9c0920ab gsk: Rename shaders for OpenGL 2016-10-18 11:29:34 +01:00
Emmanuele Bassi
b425cff689 gdk: Add utility for uploading Cairo surfaces to GL
The surface-to-GL upload logic has become more complicated with the
addition of the GLES code paths; it's more logical to have a public
utility function that can be called from GDK users, instead of copy
pasting the whole thing multiple times.
2016-10-18 11:29:34 +01:00
Emmanuele Bassi
0e2a87a4bc build: Add GSK deps to GTK 2016-10-18 11:29:34 +01:00
Emmanuele Bassi
7afdd3fdb5 Initial implementation of GSK rendering pipeline
GSK is conceptually split into two scene graphs:

 * a simple rendering tree of operations
 * a complex set of logical layers

The latter is built on the former, and adds convenience and high level
API for application developers.

The lower layer, though, is what gets transformed into the rendering
pipeline, as it's simple and thus can be transformed into appropriate
rendering commands with minimal state changes.

The lower layer is also suitable for reuse from more complex higher
layers, like the CSS machinery in GTK, without necessarily port those
layers to the GSK high level API.

This lower layer is based on GskRenderNode instances, which represent
the tree of rendering operations; and a GskRenderer instance, which
takes the render nodes and submits them (after potentially reordering
and transforming them to a more appropriate representation) to the
underlying graphic system.
2016-10-18 11:29:34 +01:00
Emmanuele Bassi
d519e4aafe gsk: Initial commit / build environment 2016-10-18 11:29:34 +01:00
Emmanuele Bassi
3fb413beea label: Avoid shadowing variables 2016-10-18 11:29:34 +01:00
Piotr Drąg
ba299d9ba4 Update POTFILES.in 2016-10-18 03:50:55 +02:00
Matthias Clasen
dfb45f4396 Add a test for cursor names
This tests both that all standard cusor yield a cursor, and that
unknown cursor names yield NULL.
2016-10-17 19:11:32 -04:00
Matthias Clasen
95c7de70c7 x11: Add the same message as the wayland backend has
This seems prudent, if we make noise about missing cursors
on Wayland, we should do the same on X11.
2016-10-17 19:11:32 -04:00
Matthias Clasen
a0140cad15 Reduce a warning to a message
The warning interferes with having a testcase to check this behavior,
so reduce this to a message.
2016-10-17 19:11:32 -04:00
Timm Bäder
4384628afb Remove GtkAction 2016-10-18 00:34:41 +02:00
Timm Bäder
ead36206a3 Remove GtkActionGroup 2016-10-18 00:34:41 +02:00
Timm Bäder
1bb3501ef7 Fix unittests 2016-10-18 00:34:41 +02:00
Timm Bäder
a864f4d474 widget: Not all toplevels are also containers 2016-10-18 00:34:41 +02:00
Timm Bäder
8245374f9c tests/testylecontext: Don't double-free widgetpath 2016-10-18 00:34:41 +02:00
Timm Bäder
f7d22fec7b Remove GtkRecentAction 2016-10-18 00:34:41 +02:00
Timm Bäder
d963ede668 Remove GtkUIManager 2016-10-18 00:34:41 +02:00
Timm Bäder
62b2949fa2 Remove GtkActivatable 2016-10-18 00:34:41 +02:00
Timm Bäder
a8a2588cab recentchooser: Stop implementing GtkActivatable 2016-10-18 00:34:41 +02:00
Timm Bäder
d0c087be37 recentchooserdefault: Stop implementing GtkActivatable 2016-10-18 00:34:40 +02:00
Timm Bäder
0c7d091651 toolitem: Stop implementing GtkActivatable 2016-10-18 00:34:40 +02:00
Timm Bäder
41f5d3b14c Remove GtkToggleAction 2016-10-18 00:34:40 +02:00
Timm Bäder
53ab8eb46d Remove GtkRadioAction 2016-10-18 00:34:40 +02:00
Timm Bäder
bc7206d70f Remove GtkStock 2016-10-18 00:29:20 +02:00
Timm Bäder
cf56decbb4 infobar: Stop looking at stock items
GtkButton doesn't have a use-stock property anymore anyway.
2016-10-18 00:29:20 +02:00
Timm Bäder
301e1a4d55 window: Remove decoration-button-layout style property
GtkSettings has a gtk-decoration-layout property for this.
2016-10-18 00:29:20 +02:00
Timm Bäder
7823406db4 window: Remove decoration-resize-handle style property 2016-10-18 00:29:20 +02:00
Timm Bäder
4bf1e4ebe6 toolbar: Remove max-child-expand child property 2016-10-18 00:29:20 +02:00
Timm Bäder
dece018994 Remove GtkAlignment 2016-10-18 00:29:19 +02:00
Timm Bäder
e0d50233f6 gtkapplication: Remove deprecated API 2016-10-18 00:29:19 +02:00
Timm Bäder
700300eb81 treeview: Remove deprecated adjustment API 2016-10-18 00:29:19 +02:00
Timm Bäder
d5e3897052 combobox: Remove deprecated API 2016-10-18 00:29:19 +02:00
Timm Bäder
3ad624d6c0 adjustment: Remove deprecated API 2016-10-18 00:29:19 +02:00
Timm Bäder
b65908da3e menutoolbutton: Remove deprecated API 2016-10-18 00:29:19 +02:00
Timm Bäder
3573cdc0cd popover: Remove deprecated API 2016-10-18 00:29:19 +02:00
Timm Bäder
d9a3afb059 range: Remove unused class struct members 2016-10-18 00:29:19 +02:00
Timm Bäder
2a07ee2dac filechooserbutton: Remove deprecated API 2016-10-18 00:29:19 +02:00
Timm Bäder
1b2f291c1d messagedialog: Remove deprecated API 2016-10-18 00:29:19 +02:00
Timm Bäder
be2f19663b button: Add icon-name property
Remove the old-style button construction that allowed to show both an
icon and a label and change visibility based on a GtkSetting.
2016-10-18 00:29:19 +02:00
Timm Bäder
37c728be12 testsuite/gtk: Use a GtkMenuButton to test exposing objects 2016-10-18 00:29:19 +02:00
Timm Bäder
3ddcd9ecea docs/tools/widgets: Stop using gtk_button_set_image 2016-10-18 00:29:19 +02:00
Timm Bäder
e9a974f4f6 buttonaccessible: Stop looking at the button's image 2016-10-18 00:29:19 +02:00
Timm Bäder
5789c4fbc3 tests: Add testgaction.c 2016-10-18 00:29:19 +02:00
Timm Bäder
24866c5d12 radiomenuitem: Remove GtkActivatable code 2016-10-18 00:29:18 +02:00
Timm Bäder
efe4a36746 toolbutton: Stop implementing GtkActivatable 2016-10-18 00:29:18 +02:00
Timm Bäder
dd03372eac switch: Stop implementing GtkActivatable 2016-10-18 00:29:18 +02:00
Timm Bäder
8cafd3c5a7 menuitem: Stop implementing GtkActivatable 2016-10-18 00:29:18 +02:00
Timm Bäder
d844abe066 Remove GtkTable 2016-10-18 00:29:18 +02:00
Timm Bäder
b082fb598d gtkwindow: Stop checking gtk-menu-bar-accel 2016-10-18 00:29:18 +02:00
Timm Bäder
7e16396cc5 button: Stop implementing GtkActivatable 2016-10-18 00:29:18 +02:00
Timm Bäder
05211d200f button: Stop checking for GtkSettings:gtk-button-images setting 2016-10-18 00:29:18 +02:00
Timm Bäder
a9367b705e Stop checking GtkSettings:gtk-enable-mnemonics 2016-10-18 00:29:18 +02:00
Timm Bäder
dd3c3b683f widget: Remove push/pop_composite_child
as well as the composite-child property
2016-10-18 00:29:18 +02:00
Timm Bäder
2ae996e242 widget: Remove gtk_widget_get_pointer 2016-10-18 00:29:18 +02:00
Timm Bäder
5da7a824ff widget: Remove docs for style-set 2016-10-18 00:29:18 +02:00
Timm Bäder
a4368a73a5 widget: Remove gtk_widget_reparent 2016-10-18 00:29:17 +02:00
Timm Bäder
296db5ab52 scrollbar: Remove style property 2016-10-18 00:29:17 +02:00
Timm Bäder
0a6ed12d56 builtinicon: remove unused struct member 2016-10-18 00:29:17 +02:00
Timm Bäder
ac72d96a8a menuitem: Remove right-justify 2016-10-18 00:29:17 +02:00
Timm Bäder
203cf0d120 label: Stop using GdkColor 2016-10-18 00:29:17 +02:00
Timm Bäder
57f4fead98 cellrenderer: Remove cell-background-gdk 2016-10-18 00:29:17 +02:00
Timm Bäder
31cf2e3bf5 gtksettings: Remove Deprecated API 2016-10-18 00:29:17 +02:00
Timm Bäder
77f50ec5d7 window: Remove reshow_with_initial_size 2016-10-18 00:29:17 +02:00
Timm Bäder
019960f131 viewport: remove deprecated api 2016-10-18 00:29:17 +02:00
Timm Bäder
09214e4974 gtkdnd: Remove gtk_drag_begin 2016-10-18 00:29:17 +02:00
Timm Bäder
feb8975a4b gtkmain: Remove deprecated key snooper API 2016-10-18 00:29:17 +02:00
Timm Bäder
7b22037613 treeview: Remove unused style properties 2016-10-18 00:29:16 +02:00
Timm Bäder
7d47d8023e bbox: Remove style properties 2016-10-18 00:29:16 +02:00
Timm Bäder
84649f57c5 gtkdialog: Remove style properties 2016-10-18 00:29:16 +02:00
Timm Bäder
99f112f58d colorbutton: Remove deprecated API 2016-10-18 00:29:16 +02:00
Timm Bäder
7d84f744c2 menu: Remove vertical/horizontal-offset style properties 2016-10-18 00:29:16 +02:00
Timm Bäder
b88a0bb682 notebook: Remove deprecated public API 2016-10-18 00:29:16 +02:00
Timm Bäder
4f9bcaf3c6 toolbar: Remove button-relief style property
And in turn also public API to set the button relief on the toolbar as
well as the vfunc from GtkToolShell.
2016-10-18 00:29:16 +02:00
Timm Bäder
d56962740d textview: Remove error-underline-color style property 2016-10-18 00:29:16 +02:00
Timm Bäder
33a857decf toolbutton: Remove icon-spacing style property 2016-10-18 00:29:16 +02:00
Benjamin Otte
cd90b56627 separatortoolitem: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
4ab85723c8 spinbutton: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
cd8b08f98f switch: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
e5b67ff7d8 pathbar: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
978684cf29 paned: Use gdk_window_new_child() and gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
c78568b4dd notebook: Use gdk_window_new_child() and gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
c599f6b9cb menu: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
5d3f6367cb layout: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
3fc32511b5 iconview: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
9127e49f45 toolitemgroup: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
ac79aed338 toolitem: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
5e8c719e34 toolbar: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
6a399ebd15 popover: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
a839e195a8 menushell: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
360301a774 label: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
6117f042a8 menuitem: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
c3274eff6e overlay: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
f8a48507a6 listbox: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
1c6a879e1c flowbox: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
a2a23ee337 fixed: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
e54a76aee7 scrolledwindow: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
73ef9e1438 revealer: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
edc9a08b7c stack: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
210e1665de textview: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
3cf7b21256 viewport: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
d6eedf19dc toolpalette: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
7dceaf5931 glarea: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
46b10ca419 expander: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
a8d7b0d32e window: Use gdk_window_new_child() and gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
dff5a7bd64 tests: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
8417ecd602 treeviewcolumn: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
b17bdbdf97 treeview: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
1952b57328 eventbox: Use gdk_window_new_input() and gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
c61e669e56 entry: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
9d2309cc39 drawingarea: Use gdk_window_new_child() 2016-10-18 00:22:35 +02:00
Benjamin Otte
0f2d983ea9 colorswatch: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
4b92c0bb88 calendar: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
31b5ba5bad button: Use gdk_window_new_input() 2016-10-18 00:22:35 +02:00
Benjamin Otte
d22e5e69d9 API: gdk: Add gdk_window_new_child() and gdk_window_new_input()
This is an attempt to get rid of gdk_window_new() for more specific use
cases. These 2 are for client-side windows - regular ones and input-only
ones resepectively.

So far all those functions just call into gdk_window_new().
2016-10-18 00:22:35 +02:00
Timm Bäder
6b01940194 colorscale: Avoid invalid write 2016-10-17 18:47:16 +02:00
Jordi Mas
d72bc7f3e8 Fix to Catalan translation 2016-10-17 18:23:29 +02:00
Benjamin Otte
4322b69528 cssprovider: Return void, not TRUE
Parsing a css file always succeeds as CSS can recover from parsing
errors.
2016-10-17 17:41:03 +02:00
Benjamin Otte
dbeeaf7de6 cssprovider: Remove GError out argument from load functions
People should use the GtkCssProvider::parsing-error signal instead.
2016-10-17 16:52:05 +02:00
Ben Iofel
55e599c561 textbufferserialize: declare set_error as G_GNUC_PRINTF
And fix a missing format argument
2016-10-17 10:36:26 -04:00
Ben Iofel
84739239ce colorscale: modify loop variables in loop body 2016-10-17 15:17:28 +01:00
Emmanuele Bassi
7b73bc3572 build: Use correct compiler flag
The name is -Wformat-nonliteral.
2016-10-17 15:13:09 +01:00
Garrett Regier
7173df1dd1 gtk+: Fix GI warnings about missing parameters
These were removed for GTK+ 4.
2016-10-17 07:07:20 -07:00
Emmanuele Bassi
a0aa1d963a broadway: Remove redundant declaration 2016-10-17 14:56:38 +01:00
Emmanuele Bassi
2332ac444c gtk/utils: Include stdio.h
We need it because of the declaration using FILE*.
2016-10-17 14:51:16 +01:00
Ignacio Casal Quinteiro
a12b691b76 gtkicontheme: check if the context quark string is not null
On windows you might not have a theme installed by default which
means that when trying to create the context quark it will fail.
If then we try to replace a NULL key in the hash table it will crash.

https://bugzilla.gnome.org/show_bug.cgi?id=769859
2016-10-17 13:04:31 +02:00
Emmanuele Bassi
857d241e22 Remove redundant variable declaration
The inner `var` declaration is shadowing the outer one.
2016-10-17 11:52:00 +01:00
Emmanuele Bassi
20b2e479f8 build: Add various compiler warnings and errors
Just like GLib, GTK+ would benefit from getting warnings and errors from
the compilers.

We check various, common warnings, especially for a future use of C99;
additionally, we promote some warnings to errors, in order to ensure
that simple mistakes are caught during the development phase, before
they are submitted to the code repository.
2016-10-17 11:44:11 +01:00
Emmanuele Bassi
6a9be60a16 notebook: Remove redundant variable declarations
We're already declaring notebook and priv at the top of the function,
and assigning them to the same values.
2016-10-17 11:44:11 +01:00
Emmanuele Bassi
39e848c0eb icontheme: Drop unnecessary allocation
Use a static array for the known icon sizes, now that we don't allow
registering custom icon sizes any more. This allows us to cut a one-off
allocation that makes Valgrind sad.
2016-10-17 11:44:11 +01:00
Emmanuele Bassi
5563ba96bc Avoid variable shadowing in GtkShortcutsSection 2016-10-17 11:44:11 +01:00
Emmanuele Bassi
fc9826fb41 Remove declarations for getresuid()/getresgid()
Back in 2001, their prototypes were missing from system headers, but
since glibc 2.3.2 they are defined in unistd.h if _GNU_SOURCE is
defined.
2016-10-17 11:44:11 +01:00
Emmanuele Bassi
db6f9a8e45 gtk: Add missing function declarations 2016-10-17 11:44:11 +01:00
Emmanuele Bassi
b3adbbe5e7 text: Constify field of GtkTextLineSegmentClass
We only use it internally for statically allocated structures, with
static strings, so there's no reason for it to be a `char*`.
2016-10-17 11:44:11 +01:00
Emmanuele Bassi
1f132607f7 gtk: Use appropriate constness for variables 2016-10-17 11:44:11 +01:00
Emmanuele Bassi
590e7e68d8 filechooserwidget: Rename error variable
Avoid shadowing an existing error.
2016-10-17 11:44:10 +01:00
Emmanuele Bassi
e75bbafeac filechooserbutton: Remove unnecessary declaration 2016-10-17 11:44:10 +01:00
Emmanuele Bassi
9557364216 gtk: Mark internal functions as static
These functions are only used within their compilation unit.
2016-10-17 11:44:10 +01:00
Emmanuele Bassi
fbf6aa1776 colorscale: Rename variables
Avoid shadowing existing variables.
2016-10-17 11:44:10 +01:00
Emmanuele Bassi
4ba169b82e cellview: Constify argument 2016-10-17 11:44:10 +01:00
Emmanuele Bassi
5880d1b990 gtk: Cast static strings assigned to non-const variables
GtkTargetEntry.target is particularly egregious, and it should really be
constified.
2016-10-17 11:44:10 +01:00
Emmanuele Bassi
9bb816f8ee gtk: Include the appropriate headers 2016-10-17 11:10:14 +01:00
Emmanuele Bassi
3fdbe2ea13 widget: Make gtk_widget_get_parent_muxer() as static
It's a private function, used only inside gtkwidget.c and not declared
in any private header.
2016-10-17 11:10:14 +01:00
Emmanuele Bassi
24d59f6c34 inspector: Mark internal function as static 2016-10-17 11:10:14 +01:00
Emmanuele Bassi
44885bcfed Remove redundant declarations 2016-10-17 11:10:14 +01:00
Emmanuele Bassi
923b868400 gdk/x11: Constify argument 2016-10-17 11:10:14 +01:00
Emmanuele Bassi
175800f345 Add private header for GtkTextView
This allows us to declare the symbols that are currently used inside
gtktextdisplay.c without incurring in the wrath of the compiler.
2016-10-17 11:10:14 +01:00
Emmanuele Bassi
8b9153d109 Remove redundant declarations 2016-10-17 11:10:14 +01:00
Emmanuele Bassi
5e388fc3e4 Fix _gtk_get_slowdown()
We need to pass void as the argument type.
2016-10-17 11:10:14 +01:00
Emmanuele Bassi
1db5d7fd8d Remove redundant declarations 2016-10-17 11:10:14 +01:00
Emmanuele Bassi
81e5996c91 Include the appropriate headers
The GtkStackAccessible implementation should include the private header,
and the private header should include the public one.
2016-10-17 11:10:14 +01:00
Emmanuele Bassi
d8892c0fdb Remove redundant declarations 2016-10-17 11:10:14 +01:00
Emmanuele Bassi
137e1aa988 Use appropriate const declaration for static strings 2016-10-17 11:10:14 +01:00
Emmanuele Bassi
68cab95c5d Remove re-declarations of public functions 2016-10-17 11:10:14 +01:00
Emmanuele Bassi
d64ca9560c Remove redundant declaration 2016-10-17 11:10:13 +01:00
Emmanuele Bassi
a87bdc47c7 stylecontext: Remove gtk_gradient_resolve_for_context()
Just like we remove gtk_gradient_resolve().
2016-10-17 11:10:13 +01:00
Emmanuele Bassi
dae97c3027 textview: Remove commented block
It's referencing gdk_cairo_create(), which does not exist any more.
2016-10-17 10:44:27 +01:00
Emmanuele Bassi
cf9b9a034b gdk: Comment out gdk_cairo_create() 2016-10-17 10:44:27 +01:00
Emmanuele Bassi
07cd87eb9c gdk: Remove mentions of gdk_cairo_create()
This function does not exist any more.
2016-10-17 10:44:27 +01:00
Matthias Clasen
95b9981a87 Fix the doc build
Remove no-longer-existing types.
2016-10-16 14:10:52 -04:00
Piotr Drąg
12dad0c234 Update POTFILES.in 2016-10-16 19:49:54 +02:00
Benjamin Otte
a65a4de38d gdk: Remove old code to create drawing context
You now have to use a GdkDrawingContext
2016-10-16 18:18:58 +02:00
Benjamin Otte
17895e746c tests: Remove custom preview from print-editor
It's using gdk_cairo_create() to do the drawing, which is unsupported.
2016-10-16 18:18:58 +02:00
Benjamin Otte
b4a7fc7d75 tests: Remove code from testinput that does nothing 2016-10-16 18:18:58 +02:00
Benjamin Otte
e76ba9a3c3 gdk: Remove gdk_window_set_debug_updates()
The update tracking code was ugly and using deprecated drawing APIs. It
was also in the wrong place.

So instead of trying to keep it working, I'll remove it. We need to find
a better way to put it and make it work there.
2016-10-16 18:18:58 +02:00
Benjamin Otte
4a95f8802c widget: Remove gtk_widget_set_double_buffered()
Everything is always double-buffered.
2016-10-16 18:18:58 +02:00
Benjamin Otte
36b7ad0cd2 shortcutswindow: Modernize some code
No functional changes, just don't call valist functions anymore.
2016-10-16 18:18:58 +02:00
Benjamin Otte
6c7b6f9654 menu: Modernize code
No functional changes, just don't call valist functions anymore.
2016-10-16 18:18:58 +02:00
Benjamin Otte
cda617df4d API: sizegroup: Remove gtk_size_group_set_ignore_hidden() 2016-10-16 18:18:58 +02:00
Benjamin Otte
1d4f23da8e API: container: Remove GtkContainer::child property 2016-10-16 18:18:58 +02:00
Benjamin Otte
d4d3374729 container: Remove gtk_container_set_resize_mode() 2016-10-16 18:18:58 +02:00
Benjamin Otte
4df6ddad54 API: container: Remove gtk_container_set_border_width() 2016-10-16 18:18:58 +02:00
Benjamin Otte
1518fe0a8f API: stylecontext: Remove state argument from getters
The argument must always be the current state.
2016-10-16 18:18:58 +02:00
Benjamin Otte
7ae008421a API: Remove libgail-util 2016-10-16 18:18:58 +02:00
Benjamin Otte
9b9b475f0a API: stylecontext: Remove regions 2016-10-16 18:17:21 +02:00
Benjamin Otte
1a7dcb2053 gdk: Remove unused argument parsing structs 2016-10-16 18:17:21 +02:00
Benjamin Otte
59c702d88c gdk: Remove leftover structs from ClientMessage days 2016-10-16 18:17:21 +02:00
Benjamin Otte
10a7963ebf gdk: Remove unused structs from ColorMap days 2016-10-16 18:17:21 +02:00
Benjamin Otte
95d2f0b831 css: Remove custom properties
Those aren't used anymore, now that theming engines are gone.
2016-10-16 18:17:21 +02:00
Benjamin Otte
1a5b842682 API: Remove GtkStyleProperties 2016-10-16 18:17:21 +02:00
Benjamin Otte
dd83f9ca86 API: Remove API to set CSS properties from GValues
This API was only used in GtkModifierStyle and GtkStyleProperties and
they are both on their way out.

CSS properties must now be set using strings via the regular parser API.
2016-10-16 18:17:21 +02:00
Benjamin Otte
66dd954290 API: stylecontext: Remove old unused animation functions 2016-10-16 18:17:21 +02:00
Timm Bäder
f2c455fedb Remove GtkThemingEngine
As well as the corresponding GtkCssEngineValue used to parse it in css.
2016-10-16 18:17:21 +02:00
Timm Bäder
9f930c08a6 ui: Don't unnecessarily set GtkEntry:invisible-char 2016-10-16 18:17:21 +02:00
Timm Bäder
f360a69f4c entry: Remove invisible-char style property 2016-10-16 18:17:21 +02:00
Timm Bäder
58a76b700f stylecontext: Remove _REGION_ constants 2016-10-16 18:17:21 +02:00
Timm Bäder
ed184b3935 Remove GtkIconFactory
Move the icon size lookup API into gtkicontheme.c
2016-10-16 18:17:21 +02:00
Timm Bäder
5b00a31c30 widget-factory: Stop using custom icon sizes 2016-10-16 18:17:21 +02:00
Timm Bäder
9fd1a1bbe3 widget: Remove cursor-aspect-ratio/window-dragging style properties
And replaces its usages in GtkTextView/GtkStyleContext with a hard-coded
0.04 which was the default value for cursor-aspect-ratio.  Also remove
the public gtk_draw_insertion_cursor which used draw_insertion_cursor
which in turn looked up cursor-aspect-ratio
2016-10-16 18:17:21 +02:00
Timm Bäder
ccd3ff7fba gtkwidget: Remove gtk_widget_class_install_style_property_parser...
... from public API
2016-10-16 18:17:21 +02:00
Timm Bäder
281c1e4fe5 widget: Remove cursor-aspect-ratio style property 2016-10-16 18:17:21 +02:00
Timm Bäder
08c1c584b3 Remove GtkModifierStyle 2016-10-16 18:17:21 +02:00
Timm Bäder
9a388690f4 widget: Remove gtk_widget_override* API 2016-10-16 18:17:21 +02:00
Timm Bäder
addb655aee testoverlay: Stop using gtk_widget_override API 2016-10-16 18:17:21 +02:00
Timm Bäder
7377b7e5c2 plugman: Stop using gtk_override_color 2016-10-16 18:17:21 +02:00
Timm Bäder
3c901d6376 Remove a few more unused style properties 2016-10-16 18:17:21 +02:00
Timm Bäder
b1d35a594e widget: Remove text-handle-width/height style properties 2016-10-16 18:17:21 +02:00
Timm Bäder
9f5baf9130 GtkTextHandle: Use min-width/min-height
instead of GtkWidget's text-handle-width/text-handle-height style
properties
2016-10-16 18:17:21 +02:00
Timm Bäder
999d45b4e8 Remove various unused style properties 2016-10-16 18:17:21 +02:00
Timm Bäder
6a6c49369e Fix a few GtkTextTag:*-gdk references 2016-10-16 18:17:21 +02:00
Timm Bäder
601839c825 Remove various sizing related style properties 2016-10-16 18:17:21 +02:00
Timm Bäder
feac88dc52 switch: Remove deprecated style properties 2016-10-16 18:17:21 +02:00
Timm Bäder
86dbe591d2 entry: Remove deprecated style properties 2016-10-16 18:17:21 +02:00
Timm Bäder
2455bd0857 widget: Remove visibility-notify-event 2016-10-16 18:17:21 +02:00
Timm Bäder
1add02879e entry: Remove inner-border (style) property 2016-10-16 18:17:21 +02:00
Timm Bäder
878f2e4107 widget: Remove deprecated margin-left/right properties 2016-10-16 18:17:21 +02:00
Timm Bäder
d34b7d98b2 widget: Remove gtk_widget_{s,g}et_composite_name 2016-10-16 18:17:21 +02:00
Timm Bäder
80ab5ea942 widget: Remove gtk_widget_get_requisition 2016-10-16 18:17:21 +02:00
Timm Bäder
16b0906b4a widget: Remove gtk_widget_send_expose 2016-10-16 18:17:21 +02:00
Timm Bäder
bc0cef27a2 widget: Remove gtk_widget_{s,g}et_state 2016-10-16 18:17:21 +02:00
Timm Bäder
4a2c087a1e widget: Remove gtk_widget_region_intersect 2016-10-16 18:17:21 +02:00
Timm Bäder
a80a1cf8a6 widget: Remove gtk_widget_get_child_requisition 2016-10-16 18:17:21 +02:00
Timm Bäder
b3bd5fefb1 widget: Remove gtk_widget_size_request 2016-10-16 18:17:21 +02:00
Timm Bäder
4c10807e24 widget: Remove state-changed signal 2016-10-16 18:17:21 +02:00
Timm Bäder
96d9abded8 widget: Remove deprecated style properties 2016-10-16 18:17:21 +02:00
Timm Bäder
2cfa05fc84 testsensitive: Use state-flags-changed instead of state-changed 2016-10-16 18:17:21 +02:00
Timm Bäder
040db1efcd Remove some deprecated GdkColor style properties 2016-10-16 18:17:21 +02:00
Timm Bäder
627a824cab image: Remove GtkIconSet API 2016-10-16 18:17:21 +02:00
Timm Bäder
efffa3b6bd range: Remove min slider size setter/getter 2016-10-16 18:17:21 +02:00
Timm Bäder
aca35a14a0 scrollbar: Remove min-slider-length style property 2016-10-16 18:17:21 +02:00
Timm Bäder
116cb9fc0c label: Remove now unneeded deprecation markers 2016-10-16 18:17:21 +02:00
Timm Bäder
2e96f8ae70 scrolledwindow: Remove window-placement-set property 2016-10-16 18:17:21 +02:00
Timm Bäder
ba9220591f scrolledwindow: Remove scrollbar-spacing and scrollbars-within-bevel 2016-10-16 18:17:21 +02:00
Timm Bäder
05353ec933 scrolledwindow: Remove _add_with_viewport
Replaced by a normal gtk_container_add
2016-10-16 18:17:21 +02:00
Timm Bäder
33ece4e37a Remove GtkHSV 2016-10-16 18:17:21 +02:00
Timm Bäder
134556435d Remove various deprecated GtkOrientable subclasses 2016-10-16 18:17:21 +02:00
Timm Bäder
d06d17b81e Remove gtkcolorsel(dialog).{c,h} 2016-10-16 18:17:21 +02:00
Timm Bäder
9c09669711 window: Remove _set/_get_opacity 2016-10-16 18:17:21 +02:00
Timm Bäder
7fa4ac08ea window: Remove resize grip API 2016-10-16 18:17:21 +02:00
Timm Bäder
9cfbaf4916 Remove gtkfontsel.{c,h} 2016-10-16 18:17:21 +02:00
Timm Bäder
3b336dda73 dialog: Remove alternative button order API 2016-10-16 18:17:21 +02:00
Timm Bäder
2acc31b46a Remove GtkHandleBox 2016-10-16 18:17:21 +02:00
Timm Bäder
155fa4664d Remove GtkImageMenuItem 2016-10-16 18:17:21 +02:00
Timm Bäder
8a3595236d reftests: Remove GtkMisc tests 2016-10-16 18:17:21 +02:00
Timm Bäder
5d3a5ffdfb Fix a few css/a11y test cases
They were broken because of missing -icon-stock properties in GtkEntry
and GtkButton not creating an adjustment child anymore.
2016-10-16 18:17:21 +02:00
Timm Bäder
7f79a3fade Remove GtkMisc 2016-10-16 18:17:21 +02:00
Timm Bäder
cc3dceee83 testfilechooserbutton: Remove GtkMisc API usage 2016-10-16 18:17:21 +02:00
Timm Bäder
7088d9d294 reftests: Remove celldenderer-pixbuf-stock
The stock properties tested here don't exist anymore.
2016-10-16 18:17:21 +02:00
Timm Bäder
367f13a76f Remove GtkArrow 2016-10-16 18:17:21 +02:00
Timm Bäder
9b5a50bf22 shortcutswindow: Stop using GtkArrow 2016-10-16 18:17:21 +02:00
Timm Bäder
ad155fb26c Remove GtkStock API from GtkImage 2016-10-16 18:17:21 +02:00
Timm Bäder
f37cb8f9d0 reftests: Remove GtkMisc properties from now non-misc widgets 2016-10-16 18:17:21 +02:00
Timm Bäder
eadb49d97f recentchoosermenu: Stop using GtkImageMenuItem 2016-10-16 18:17:21 +02:00
Timm Bäder
421be38a3c toolbutton: Stop using GtkImageMenuItem 2016-10-16 18:17:21 +02:00
Timm Bäder
d36e4125d1 testgtk: Remove GtkImageMenuItem usage 2016-10-16 18:17:21 +02:00
Timm Bäder
b9a304cf6f testgtk: fix css 2016-10-16 18:17:21 +02:00
Timm Bäder
ac31a00dcf testbuttons: Stop looking at use-stock property
Doesn't exist anymore. Instead, force the image to be visible on one of
the buttons.
2016-10-16 18:17:21 +02:00
Timm Bäder
10e24d58c3 button: Remove _{get,set}_focus_click
Deprecated for the GtkWidget variant. Also remove some unused fields
from the GtkButtonPrivate struct.
2016-10-16 18:17:21 +02:00
Timm Bäder
10a92a210b button: Remove deprecated style properties 2016-10-16 18:17:21 +02:00
Timm Bäder
9f2ca684e2 button: Remove deprecated signals from public API 2016-10-16 18:17:21 +02:00
Timm Bäder
590cd6a9f2 button: Remove GtkStock API 2016-10-16 18:17:21 +02:00
Timm Bäder
4162d65a7b tests: Remove teststockbuttonmenu 2016-10-16 18:17:21 +02:00
Timm Bäder
485d1b9835 Button: Remove alignment API 2016-10-16 18:17:21 +02:00
Timm Bäder
9d43644153 label,image: Remove GtkMisc usage 2016-10-16 18:17:21 +02:00
Timm Bäder
f45dadadd0 box: Remove 'padding' child property 2016-10-16 18:17:21 +02:00
Timm Bäder
c301357627 inspector: Remove object_title from css editor
It's unused
2016-10-16 18:17:21 +02:00
Timm Bäder
91f989006c Don't use GtkBox's center child in a few places
We can as well use a normal child and let it hexpand.
2016-10-16 18:17:21 +02:00
Benjamin Otte
eace2cf421 API: Remove gdk_window_set_background()
Backgrounds are always transparent black.
2016-10-16 18:17:21 +02:00
Benjamin Otte
bae12e6a2f tests: Remove testwindows test
It wasn't drawing anything anymore...
2016-10-16 18:17:21 +02:00
Benjamin Otte
0df388051d API: Remove GtkStyle
All the remaining gtkrc.c stuff like GtkRcStyle goes with it.
2016-10-16 18:17:21 +02:00
Benjamin Otte
05763e4875 settings: Pull in the RC parsing code 2016-10-16 18:17:21 +02:00
Benjamin Otte
361d322bfb immodules: Move path code out of gtkrc 2016-10-16 18:17:21 +02:00
Benjamin Otte
1aa336b500 cellrendererspinner: Draw our own spinner
This is the GtkStyle code just moved.
2016-10-16 18:17:21 +02:00
Benjamin Otte
662001b60a API: Remove ability to set visuals on windows
And with it, gtk_widget_get_visual() and gtk_widget_set_visual() are
gone.

We now always use the RGBA visual (if available) and otherwise fall back
to the system visual.
2016-10-16 18:17:21 +02:00
Benjamin Otte
380494c1d7 API: Remove gtk_drag_dest_set_proxy()
Proxies were only used by GtkSocket.
2016-10-16 18:17:21 +02:00
Benjamin Otte
021fe010b6 API: Remove GtkPlug, GtkSocket and GtkWin32EmbedWidget 2016-10-16 18:17:21 +02:00
Benjamin Otte
89f2e17f91 API: Remove gdk_window_set_composited()
And the related call gdk_display_supports_composite().
2016-10-16 18:17:21 +02:00
Benjamin Otte
8d54c641f1 screen: Remove unused vfunc
GdkScreenClass.broadcast_client_message was unused, but a bunch of
backends still had functions (not) implementing it.
2016-10-16 18:17:21 +02:00
Benjamin Otte
ad64402a55 filechooserwidget: Query dpi from CssStyle 2016-10-16 18:17:21 +02:00
Benjamin Otte
77cdbfde97 fontchooserwidget: Query dpi from CssStyle 2016-10-16 18:17:21 +02:00
Benjamin Otte
fec8069e7b API: screen: Stop storing font options
font options are only ever set by the GtkSettings object and only ever
used inside GTK, so just store them there.
2016-10-16 18:17:21 +02:00
Benjamin Otte
fcbd480c76 API: Remove GDK_WA_CURSOR
The cursor was set using gdk_window_set_cursor() even in
gdk_window_new().

So instead of having yet another flag, just make the users of that flag
call gdk_window_set_cursor() directly after the window was created.
2016-10-16 18:17:21 +02:00
Benjamin Otte
2fd5048943 API: window: Remove suppport for changing wmclass_name/group
X11 was the only backend to support it and people can just override it
using XSetClassHint() directly.
The docs already advertised the function as "Do not use".

Keep the existing call to XSetClassHint() in place, so that we keep
setting the same values as in GTK3.
2016-10-16 18:17:21 +02:00
Timm Bäder
fe24fcbc3e Delete gtkvbox.{c,h} 2016-10-16 18:17:21 +02:00
Timm Bäder
fb3d9022ad Remove GtkHBox 2016-10-16 18:17:21 +02:00
Benjamin Otte
9a5de96187 API: Remove GtkNumerableIcon 2016-10-16 18:17:21 +02:00
Benjamin Otte
d09e48cec1 API: Remove -gtk_widget_get_root_window() 2016-10-16 18:17:21 +02:00
Benjamin Otte
9be9e00a0e API: screen: Remove gdk_screen_make_display_name()
It's identical to gdk_display_get_name().
2016-10-16 18:17:21 +02:00
Benjamin Otte
6b9e481e38 API: screen: Remove gdk_screen_get_active_window()
... and gdk_screen_get_window_stack().

Those functions were originally added in
5afb4f0f11 but do not seem to be used as
they are not implemented anywhere but in X.

As GDK is not meant to fulfill window management functionality I'm going
to remove these functions without replacements.
2016-10-16 18:17:21 +02:00
Benjamin Otte
26f9b584be API: gdk: Remove gdk_screen_get_number()
It's useless everywhere but in internal X11 code.
2016-10-16 18:17:21 +02:00
Benjamin Otte
0be88cc76e API: Remove gdk_screen_get_width() and gdk_screen_get_height()
... and gdk_screen_get_width_mm() and gdk_screen_get_height_mm() and
the shortcut counterparts that call these functions on the default
screen.

Modern display servers don't provide an ability to query the size of a
screen or display so we shouldn't allow that either.
2016-10-16 18:17:21 +02:00
Benjamin Otte
579edbbca8 display: Insist that backends implement the monitor vfuncs
We cannot fallback anymore once we remove the ability to query screen
size, and that's about to happen.
2016-10-16 18:17:21 +02:00
Benjamin Otte
ed30f271f5 gdk: Insist axis.min_value < axis.max_value
Remove fallback code that would substitute screen size otherwise.
2016-10-16 18:17:21 +02:00
Benjamin Otte
2033b06cb6 gdk: Require passing screen size to translate_screen_coord() 2016-10-16 18:17:21 +02:00
Benjamin Otte
4445807421 shooter: Use root window size instead of screen size
Avoids usage deprecated screen size.
2016-10-16 18:17:21 +02:00
Benjamin Otte
013caef941 testgtk: Remove feature unsupported in Wayland
Wayland doesn't allow positioning windows randomly, so don't try.
2016-10-16 18:17:21 +02:00
Benjamin Otte
c2125e80a3 API: window: Remove geometry support 2016-10-16 18:17:21 +02:00
Benjamin Otte
4ed9452e90 API: menu: Remove tearoff support 2016-10-16 18:17:21 +02:00
Benjamin Otte
1a0a423250 API: gdk: Remove monitor APIs on GdkScreen 2016-10-16 18:17:21 +02:00
Benjamin Otte
d2a8667f83 API: Remove GtkStatusIcon 2016-10-16 18:17:21 +02:00
Benjamin Otte
c0276e2c5c applaunchcontext: Ignore screen name
It's guaranteed to be identical to the display name.
2016-10-16 18:17:21 +02:00
Benjamin Otte
9222b4cd7c inspector: Use display name instead of screen name
This is for future compatibility as they are guaranteed to be identical.
2016-10-16 18:17:21 +02:00
Benjamin Otte
f7cebf5c1f wayland: Use GdkMonitor APIs 2016-10-16 18:17:21 +02:00
Benjamin Otte
7232b4f735 x11: Use GdkMonitor APIs 2016-10-16 18:17:21 +02:00
Benjamin Otte
d33c251cf6 gdk: Use GdkMonitor APIs
... instead of the old ones using GdkScreen
2016-10-16 18:17:21 +02:00
Benjamin Otte
266fd36f3f inspector: Port to GdkMonitor 2016-10-16 18:17:21 +02:00
Benjamin Otte
29c570a660 tests: Port to GdkMonitor 2016-10-16 18:17:21 +02:00
Benjamin Otte
76d95c312d display: Don't return NULL in get_primary_monitor()
Nobody ever does a NULL check there so all that causes is crashes. So
we better return a non-primary monitor than NULL.

Fixes gdk-wayland always returning NULL.
2016-10-16 18:17:21 +02:00
Benjamin Otte
dcb816f99a gdk: Fix docs typo 2016-10-16 18:17:21 +02:00
Benjamin Otte
7016409e9f gdk: Get rid of unused variables 2016-10-16 18:15:37 +02:00
Aurimas Černius
713d4ad3e6 Updated Lithuanian translation 2016-10-15 22:07:36 +03:00
Matthias Clasen
a703ba8406 Avoid 0/FALSE confusion
Since this is supposedly exemplary code, lets get it right.

https://bugzilla.gnome.org/show_bug.cgi?id=772683
2016-10-14 11:15:27 -04:00
Alan Jenkins
b7baf3371b shortcutswindow: working version of set_section_name()
(testing before+after, it actually works now)

https://bugzilla.gnome.org/show_bug.cgi?id=772926
2016-10-14 10:57:32 -04:00
Matthias Clasen
565b35ac00 Add new gestures to gtk4-demo
Show the new single-finger swipe gestures in the builder
shortcuts example.
2016-10-13 15:02:36 -04:00
Felix Riemann
b6cdc3961a GtkShortcutsShortcut: Support single finger swipe gestures
https://bugzilla.gnome.org/show_bug.cgi?id=772770
2016-10-13 15:02:36 -04:00
Jakub Steiner
21fa12120c gestures: provide new artwork
- illustrations for single finger swiping left and right

https://bugzilla.gnome.org/show_bug.cgi?id=772770
2016-10-13 15:02:36 -04:00
Ben Iofel
a9464f65c3 docs: replace gtk3 with gtk4 in man pages 2016-10-13 13:45:14 -04:00
Alan Jenkins
38667b8dd0 scrolledwindow: fix leak of pan_gesture
https://bugzilla.gnome.org/show_bug.cgi?id=772859
2016-10-13 09:39:02 -04:00
Alan Jenkins
982c4a70b6 headerbar: fix leak of label_sizing_box
Since the widget is not added to a container, we have the responsibility
to sink the initial floating reference, and ultimately to unref it.

https://bugzilla.gnome.org/show_bug.cgi?id=772859
2016-10-13 09:39:02 -04:00
Alan Jenkins
3731da14a0 headerbar: fix leak of separator
https://bugzilla.gnome.org/show_bug.cgi?id=772859
2016-10-13 09:39:02 -04:00
Alan Jenkins
8ef4f7fd74 headerbar: fix leak of start_box/end_box
gtk_widget_destroy() removes widgets from their container.  However
_internal_ widgets must be unref'ed using gtk_widget_unparent() instead.
This is symmetric with the fact that these widgets were ref'ed by direct
call to gtk_widget_set_parent().  It's also the method that was used in
gtk_headerbar_destroy().

https://bugzilla.gnome.org/show_bug.cgi?id=772859
2016-10-13 09:39:01 -04:00
Alan Jenkins
8aa9339b2d shortcutsgroup: fix leak of title
like previous commit, albeit simpler this time

https://bugzilla.gnome.org/show_bug.cgi?id=772859
2016-10-13 09:39:01 -04:00
Alan Jenkins
353281d9d0 applicationwindow: fix leak of help_overlay
> Due to Gtk+ keeping a reference to the window internally,
> gtk_window_new() does not return a reference to the caller.
> To delete a GtkWindow, call gtk_widget_destroy().

Caller(s) aren't expecting a need to delete help_overlay themselves
once they've installed it.  (E.g. see gtk_application_window_added()).

I didn't notice any direct precedents, but there's a parallel in the
current implementation of gtk_container_destroy() which uses
gtk_widget_destroy() on any added widget.

This avoids leaking 100s of kB per window, when I tested nautilus.

https://bugzilla.gnome.org/show_bug.cgi?id=772859
2016-10-13 09:39:01 -04:00
Christian Hergert
133da65433 menusectionbox: add support for "text-direction" attribute
This allows the use of a "text-direction" hint set to one of "none", "rtl",
or "ltr" to enforce the text direction of a "horizontal-buttons"
display-hint.

This is useful when a menu has buttons that map to physical space in the
UI and therefore must match the application widgetry.

https://bugzilla.gnome.org/show_bug.cgi?id=772775
2016-10-13 06:34:50 -04:00
Olivier Fourdan
9e2b1ad39e gdkwindow: configure native windows in move_native_children()
ClutterEmbed on Wayland uses a subsurface and relocates it on configure
events, but when placed within a scrolled window, no configure event is
emitted and the ClutterEmbed subsurface remains static.

Emit a configure event for native windows in GdkWindow's internal
move_native_children() so that custom widgets relying on configure
events such as ClutterEmbed can relocate their stuff.

Similarly, when switching to/from normal/maximized/fullscreen states
which change the shadows' size and possibly shows/hides a header bar,
we need to emit a configure event even if the abs_x/abs_y haven't
changed to make sure the subsurface is size appropriately.

https://bugzilla.gnome.org/show_bug.cgi?id=771320
https://bugzilla.gnome.org/show_bug.cgi?id=767713
2016-10-13 08:53:59 +02:00
Piotr Drąg
b65fbbf739 Update Polish translation 2016-10-12 19:50:06 +02:00
Lapo Calamandrei
9054e49776 Adwaita: dodge drop active style for window and decoration nodes
to hilight drop target there is a wildcard selector which turns
the border and shadow to green, this clearly shouldn't happen when
the whole window is a drop target.
2016-10-12 19:34:10 +02:00
Tom Tryfonidis
3e3f20854b Update Greek translation
(cherry picked from commit e74dc54567)
2016-10-11 11:05:34 +00:00
Christian Hergert
a68915abd1 shortcuts: the accelerator should always be LTR
Even on RTL languages, we want the shortcut to be LTR so that we always
have <control> to the left of the accel keyval.

https://bugzilla.gnome.org/show_bug.cgi?id=772695
2016-10-10 13:56:48 -07:00
djb
fe6030a41b gtkplacesviewrow: stop busy_spinner from offsetting the other widgets when visible
...by putting it in a stack. The busy_spinner and eject_button are
mutually exclusive, but only the latter was coded to ensure that its
visibility did not cause the rest of the row to reflow. By putting both
widgets in a stack and setting child_visible on that, the row allocates
enough space to show one - or none - at once, avoiding any misalignment.

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

https://bugzilla.gnome.org/show_bug.cgi?id=772348
2016-10-10 15:13:50 -04:00
Matthias Clasen
0d00e0c3d3 Fix the build 2016-10-10 14:37:09 -04:00
Adam Jackson
434ce02ebe Use eglGetPlatformDisplay{,EXT} if available
Calling eglGetDisplay forces libEGL to guess what kind of pointer you
passed it. Different EGL libraries will do different things here, and in
particular glvnd will do something different than Mesa. Since we do have
an API that allows us to explicitly type the display, use it.

The explicit call to eglGetProcAddress is working around a bug in
libepoxy 1.3, which does not understand the EGL concept of client
extensions. Since it does not, the normal epoxy resolver for
eglGetPlatformDisplayEXT would not find any provider for that entry
point, and crash when you attempted to call it.

Signed-off-by: Adam Jackson <ajax@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=772415
2016-10-10 14:17:09 -04:00
Adam Jackson
3b11575f0b Fix some EGLDisplay * abuse
EGLDisplays are already opaque pointers, and eglGetDisplay returns an
EGLDisplay not a pointer to one.

Signed-off-by: Adam Jackson <ajax@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=772415
2016-10-10 14:17:09 -04:00
Ask Hjorth Larsen
31b77ae0b6 Updated Danish translation 2016-10-09 22:05:28 +02:00
Rūdolfs Mazurs
5db8cc4f18 Update Latvian translation 2016-10-09 19:32:14 +03:00
Matthias Clasen
b373c6054e Remove autoconf macros from the docs 2016-10-07 14:05:57 -04:00
Matthias Clasen
a03a12098d Drop deprecated autoconf macro
AM_PATH_GTK_3_0 is deprecated, use PKG_CHECK_MODULES([GTK], [gtk+-3.0])
instead.
2016-10-07 13:26:37 -04:00
Matthias Clasen
ce74c3a5a5 Re-add missing files 2016-10-07 11:17:49 -04:00
Matthias Clasen
bbe5980c54 Make docs parallel installable
This addresses gdk and gtk docs.
2016-10-07 10:34:50 -04:00
Matthias Clasen
b337b405a3 Make the demos build 2016-10-07 10:34:50 -04:00
Matthias Clasen
d053d5c58f Rename Makefile references from 3.0 to 4.0
This is almost certainly incomplete.
Needs careful scrutiny
2016-10-07 10:34:50 -04:00
Matthias Clasen
74f3d7f6d3 Switch gettext domain from gtk30 to gtk40 2016-10-07 10:34:50 -04:00
Matthias Clasen
ecd384eeb7 Adjust versions in configure.ac
This is almost certainly incomplete or wrong in some places.
Needs careful scrutiny
2016-10-07 10:34:50 -04:00
Matthias Clasen
4cce6104a4 Rename pc files from 3.0 to 4.0 2016-10-07 10:34:50 -04:00
gogo
eeffde368f Update Croatian translation
(cherry picked from commit 0a08a199d8)
2016-10-06 16:16:43 +00:00
gogo
f06485e278 Update Croatian translation
(cherry picked from commit 051fddaa61)
2016-10-06 16:09:19 +00:00
Matthias Clasen
ddd1ac0934 entry: Fix a corner case of overwrite mode
We currently beep when a character is appended at the end in
overwrite mode. That is obviously not right. Patch based on
a patch by Ian MacDonald.

https://bugzilla.gnome.org/show_bug.cgi?id=772389
2016-10-05 12:22:21 -04:00
Lapo Calamandrei
3da324fbce Adwaita: render updated assets. 2016-10-05 13:47:52 +02:00
Lapo Calamandrei
f2eda1acc5 Adwaita: update assets svg
correct colors for pointy sliders assets.
2016-10-05 11:35:47 +02:00
Piotr Drąg
81cad59aeb gtk-launch: Move translator comment one line down
So it appears in .po files.
2016-10-03 16:45:20 +02:00
William Hua
83efaaf64a gtkcombobox: pass trigger event when popping up menu
https://bugzilla.gnome.org/show_bug.cgi?id=771242
2016-10-03 09:18:59 -04:00
Milo Casagrande
870af2b7c6 Updated Italian translation 2016-10-03 09:36:15 +00:00
Milo Casagrande
fac9d59303 Updated Italian translation 2016-10-03 09:30:44 +00:00
Jiri Grönroos
51fb56504e Updated Finnish translation 2016-10-02 17:57:30 +00:00
Matthias Clasen
ae7a1e0d08 3.22.1 2016-09-30 15:29:50 -04:00
Christoph Reiter
ae8ffc775d widget: Don't print underallocation warnings by default
See similar changes:
    https://git.gnome.org/browse/gtk+/commit/?id=1b15588732f2c4e3c59994a59613d4e5c963e283
    https://git.gnome.org/browse/gtk+/commit/?id=54fdcb3ffac3383432b379f3e16e8cb0086b8101

https://bugzilla.gnome.org/show_bug.cgi?id=770388
2016-09-30 14:41:01 -04:00
Victor Toso
9701b58c4e icon-theme: Fix leaks on error
13 bytes in 1 blocks are definitely lost in loss record 766 of 16,875
   at 0x4C2DB9D: malloc (vg_replace_malloc.c:299)
   by 0xA9D0247: vasprintf (in /usr/lib64/libc-2.24.so)
   by 0xA2453FC: g_vasprintf (gprintf.c:316)
   by 0xA2152F7: g_strdup_vprintf (gstrfuncs.c:514)
   by 0xA21539C: g_strdup_printf (gstrfuncs.c:540)
   by 0x678F25C: gdk_rgba_to_string (gdkrgba.c:360)
   by 0x5FAE00D: rgba_to_string_noalpha (gtkicontheme.c:4322)
   by 0x5FAE6F2: gtk_icon_info_load_symbolic_svg (gtkicontheme.c:4492)
   by 0x5FAED4F: gtk_icon_info_load_symbolic_internal (gtkicontheme.c:4622)
   by 0x5FAEEE8: gtk_icon_info_load_symbolic (gtkicontheme.c:4711)
   by 0x5F00246: gtk_css_image_recolor_load (gtkcssimagerecolor.c:118)
   by 0x5F003E4: gtk_css_image_recolor_compute (gtkcssimagerecolor.c:170)

14 bytes in 1 blocks are definitely lost in loss record 801 of 16,875
   at 0x4C2DB9D: malloc (vg_replace_malloc.c:299)
   by 0xA9D0247: vasprintf (in /usr/lib64/libc-2.24.so)
   by 0xA2453FC: g_vasprintf (gprintf.c:316)
   by 0xA2152F7: g_strdup_vprintf (gstrfuncs.c:514)
   by 0xA21539C: g_strdup_printf (gstrfuncs.c:540)
   by 0x678F25C: gdk_rgba_to_string (gdkrgba.c:360)
   by 0x5FAE00D: rgba_to_string_noalpha (gtkicontheme.c:4322)
   by 0x5FAE68E: gtk_icon_info_load_symbolic_svg (gtkicontheme.c:4482)
   by 0x5FAED4F: gtk_icon_info_load_symbolic_internal (gtkicontheme.c:4622)
   by 0x5FAEEE8: gtk_icon_info_load_symbolic (gtkicontheme.c:4711)
   by 0x5F00246: gtk_css_image_recolor_load (gtkcssimagerecolor.c:118)
   by 0x5F003E4: gtk_css_image_recolor_compute (gtkcssimagerecolor.c:170)

15 bytes in 1 blocks are definitely lost in loss record 838 of 16,875
   at 0x4C2DB9D: malloc (vg_replace_malloc.c:299)
   by 0xA9D0247: vasprintf (in /usr/lib64/libc-2.24.so)
   by 0xA2453FC: g_vasprintf (gprintf.c:316)
   by 0xA2152F7: g_strdup_vprintf (gstrfuncs.c:514)
   by 0xA21539C: g_strdup_printf (gstrfuncs.c:540)
   by 0x678F25C: gdk_rgba_to_string (gdkrgba.c:360)
   by 0x5FAE00D: rgba_to_string_noalpha (gtkicontheme.c:4322)
   by 0x5FAE6C3: gtk_icon_info_load_symbolic_svg (gtkicontheme.c:4487)
   by 0x5FAED4F: gtk_icon_info_load_symbolic_internal (gtkicontheme.c:4622)
   by 0x5FAEEE8: gtk_icon_info_load_symbolic (gtkicontheme.c:4711)
   by 0x5F00246: gtk_css_image_recolor_load (gtkcssimagerecolor.c:118)
   by 0x5F003E4: gtk_css_image_recolor_compute (gtkcssimagerecolor.c:170)

16,384 bytes in 1 blocks are definitely lost in loss record 16,847 of 16,875
   at 0x4C2DADE: malloc (vg_replace_malloc.c:298)
   by 0x4C2FC91: realloc (vg_replace_malloc.c:785)
   by 0xA1F89FA: g_realloc (gmem.c:159)
   by 0xA1BAD2E: g_array_maybe_expand (garray.c:779)
   by 0xA1BA566: g_array_set_size (garray.c:555)
   by 0xA1BBCB8: g_byte_array_set_size (garray.c:1752)
   by 0x8D1CC48: g_file_load_contents (gfile.c:6766)
   by 0x5FAE767: gtk_icon_info_load_symbolic_svg (gtkicontheme.c:4501)
   by 0x5FAED4F: gtk_icon_info_load_symbolic_internal (gtkicontheme.c:4622)
   by 0x5FAEEE8: gtk_icon_info_load_symbolic (gtkicontheme.c:4711)
   by 0x5F00246: gtk_css_image_recolor_load (gtkcssimagerecolor.c:118)
   by 0x5F003E4: gtk_css_image_recolor_compute (gtkcssimagerecolor.c:170)

https://bugzilla.gnome.org/show_bug.cgi?id=772215
2016-09-30 14:20:01 -04:00
Dušan Kazik
6c7d78f07d Updated Slovak translation 2016-09-30 16:46:41 +00:00
Jonas Ådahl
f7c0661a61 wayland: Only 'moved-to-rect' if move_to_rect() was used
Don't emit the 'moved-to-rect' signal if move_to_rect() was used.

https://bugzilla.gnome.org/show_bug.cgi?id=771516
2016-09-30 06:40:30 -04:00
Richard Hughes
13e00b70c0 Add GDK_AVAILABLE_IN_3_90 2016-09-29 17:24:56 +01:00
Carlos Garnacho
769ee1156d popover: Update scrollable on relative-to hierarchy changes
The relative-to widget may be reparented itself into/out of a
scrollable. In this cases make the hierachy-changed handler to
unset the parent scrollable when unparented, and look up again
the parent scrollable after it's reparented.

https://bugzilla.gnome.org/show_bug.cgi?id=771812
2016-09-29 12:46:34 +02:00
Carlos Garnacho
588a1dce2b popover: Add helper functions around setting up an scrollable
gtk_popover_set_scrollable_full() takes care of the signal connected
on the scrollable itself, in addition to the adjustment signals the
popover listens to.

gtk_popover_update_scrollable() looks up the current relative-to
widget hierarchy and updates the current scrollable.

The places where the scrollable is being maintained have been updated
to use these functions.

https://bugzilla.gnome.org/show_bug.cgi?id=771812
2016-09-29 12:46:34 +02:00
Christian Hergert
73d09c8f74 scrolledwindow: handle NULL cursor safely
It's possible to get a NULL cursor back if there are improperly
configured or missing cursors on the system.
2016-09-28 12:37:41 -07:00
Gustavo Noronha Silva
7292b03559 wayland: always sync state after a frame is painted
Opaque region, margin and input region were only being synced when a cairo
paint happened. That caused GL paints to sometimes end up with bad state.
Move calls to sync state to gdk_window_impl_wayland_end_paint.

https://bugzilla.gnome.org/show_bug.cgi?id=771553
2016-09-28 10:17:09 +02:00
Olivier Fourdan
dbd0923b5f wayland: Avoid negative size constraints
Setting the shadow width earlier as done with commit 4cb1b96 to address
bug 771561 proved to cause unexpected side effects on size_allocate
signal propagation.

As the window is sized correctly earlier, the size_allocate signal is
not emitted again in gtk_widget_size_allocate_with_baseline() which
prevents clutter-gtk from relocating its child widget correctly.

To avoid this issue, revert commit 4cb1b96 but make sure the values
passed as min and max size is never negative in Wayland as this is a
protocol error.

With this, the min/max size will be wrong for a short amount of time,
during the state transition, until the shadow width is updated from
gdk_window_set_shadow_width().

This approach is much safer and less intrusive than changing the
size_allocate logic in gtk.

This reverts commit 4cb1b9645e.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=771915
2016-09-28 09:28:52 +02:00
Christian Hergert
b684b23c74 entry: handle NULL cursor when updating cursors
If we got a NULL cursor from gdk_cursor_new_from_name(), we need
to handle that when unreffing.
2016-09-27 14:12:43 -07:00
Christian Hergert
7ecd337877 entry: handle NULL cursor when releasing reference
If we happen to have gotten NULL back for a cursor, then we
need to check before unreffing it.
2016-09-27 14:09:02 -07:00
Christian Hergert
3c775eb2b8 treeviewcolumn: use g_clear_object when freeing cursor
There is the chance that the cursor returned NULL on systems
with missing cursors. This defensively handles that by checking
for a NULL cursor.
2016-09-27 12:41:55 -07:00
Matthias Clasen
8a7d0ab481 Make gtk_init_with_args behave as documented
This docs say it should return FALSE if the display can't be opened,
but it was failing.

https://bugzilla.gnome.org/show_bug.cgi?id=771959
2016-09-27 15:12:47 -04:00
Matthias Clasen
6181ff2552 paned: quietly handle missing cursors
The row-/col-resize cursors should really be present, but if they
aren't we don't need to crash.

https://bugzilla.gnome.org/show_bug.cgi?id=771963
2016-09-27 14:55:13 -04:00
Gautier Pelloux-Prayer
fea851b3eb Fix wrong URL link in gtkshortcutswindow documentation
https://bugzilla.gnome.org/show_bug.cgi?id=772057
2016-09-27 14:48:38 -04:00
Daniel Drake
fa23641992 _gtk_icon_helper_draw: get style earlier
After checking for rendered_surface, the call to gtk_css_node_get_style
can invalidate the style and result in rendered_surface being set to
NULL. This was result in some icon views appearing blank on
Endless OS on armv7hl, and this error:

Gtk-CRITICAL **: gtk_css_style_render_icon_surface: assertion 'surface != NULL' failed

Call gtk_css_node_get_style earlier to ensure we always pass a valid
surface to gtk_css_style_render_icon_surface.

https://bugzilla.gnome.org/show_bug.cgi?id=765649
https://phabricator.endlessm.com/T13524
2016-09-26 14:23:51 -07:00
Andreas Pokorny
fe216b0039 Do not filter out small scroll event fractions
The scroll motion values are subject of batching and scaling. Either
through scaling or by using a touchpad smooth scroll motion changes
below 0.5 are possible.

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

Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
2016-09-26 11:49:56 -04:00
Charles Monzat
ea0436c3b5 Updated French translation 2016-09-26 08:45:58 +00:00
Piotr Drąg
4a4ef04020 bloatpad: replace single quotes with double quotes in menus.ui
Double quotes are more friendly to some l10n tools, and this sets
a good example for application authors to follow.
2016-09-24 18:17:34 +02:00
Lapo Calamandrei
ebc852249a Adwaita: always use images for button backgrounds
transitions gets messed up when some background-image and
background-color are in the mix.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=769500
2016-09-24 16:11:39 +02:00
gogo
17ff570023 Updated Croatian translation 2016-09-24 10:12:21 +00:00
gogo
e023fac417 Updated Croatian translation 2016-09-24 10:07:29 +00:00
Philip Withnall
506426a30e gtktreeviewcolumn: Fix typo in typedef documentation 2016-09-23 21:10:13 -07:00
Balázs Meskó
ad32a48765 Updated Hungarian translation 2016-09-23 08:50:09 +00:00
Rafael Fontenelle
a7484beac4 Updated Brazilian Portuguese translation 2016-09-23 00:13:40 +00:00
Anders Jonsson
94425acc00 Updated Swedish translation 2016-09-22 20:09:46 +00:00
Yosef Or Boczko
ad152590f8 Updated Hebrew translation 2016-09-22 23:06:57 +03:00
Dušan Kazik
aa49f861d5 Updated Slovak translation 2016-09-22 20:00:54 +00:00
Mario Blättermann
caaad35207 Updated German translation 2016-09-22 18:14:38 +00:00
Matthias Clasen
9aceb34429 Fix another type in the css docs 2016-09-22 11:01:45 -07:00
Matthias Clasen
c0048b426b Fix a typo in the css docs 2016-09-22 10:58:41 -07:00
Baurzhan Muftakhidinov
5cf367b9aa Updated Kazakh translation 2016-09-22 16:25:29 +00:00
Piotr Drąg
7ac07ff09a Updated Polish translation 2016-09-22 18:17:20 +02:00
Changwoo Ryu
539e616ad6 Updated Korean translation 2016-09-22 15:27:05 +00:00
Marek Černocký
d7af39efbc Updated Czech translation 2016-09-22 17:26:05 +02:00
Changwoo Ryu
dca4565980 Updated Korean translation 2016-09-22 15:25:20 +00:00
Carlos Soriano
cc814fdeac gtkplacesview: mark string as translatable
We missed it.

https://bugzilla.gnome.org/show_bug.cgi?id=771666
2016-09-22 17:02:19 +02:00
Rico Tzschichholz
a3f1596069 Add some missing (nullable) annotations
https://bugzilla.gnome.org/show_bug.cgi?id=771826
2016-09-22 14:02:07 +02:00
Timm Bäder
54fdcb3ffa widget: Don't print missing allocation warning by default
This was meant to be silenced unless expicitly requested but
G_ENABLE_DEBUG is defined by default unless --disable-debug is passed to
configure, so use G_ENABLE_CONSISTENCY_CHECKS instead which is only
defined if --enable-debug is explicitly passed.
2016-09-22 09:01:06 +02:00
Lapo Calamandrei
06b2adb107 encodesymbolic: handle circle objects
add circle objects to the injected style for recoloring.
Should avoid randomly colored symbolic icon bits when circles are
in the mix as in network-vpn-acquiring-symbolic for example.
2016-09-21 17:46:19 +02:00
Khaled Hosny
26dcb6aa8e Update Arabic translation 2016-09-21 09:05:35 +02:00
Emmanuele Bassi
b74cd23e29 docs: Add a diagram for GtkListBox nodes
GtkListBox's API reference for CSS nodes should follow the template of
other widget classes.
2016-09-20 23:32:00 +01:00
Inaki Larranaga Murgoitio
f88c8e45e7 Update Basque language 2016-09-19 13:22:33 +02:00
Inaki Larranaga Murgoitio
c75e7cc146 Update Basque language 2016-09-19 13:21:55 +02:00
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
Friedrich Herbst
17d798de11 Updated German translation 2016-05-25 08:36:09 +00:00
Matthias Clasen
e92e54c646 Move release notes to online docs
This will let us expand the information e.g. with code examples,
and can serve as starting material for a future 3->4 migration
guide.
2016-05-25 00:55:11 -04:00
Matthias Clasen
10b8c08203 Update migration guide a bit
Resize grips are no more.
2016-05-24 23:41:42 -04:00
Matthias Clasen
c201cb3af0 Fix a duplicate word in the docs 2016-05-24 23:41:42 -04:00
Benjamin Otte
b9f55dfd63 window: Unfreeze window on unmap
Make sure to keep parity with the number of times we froze the window
when we unmap it.
Otherwise it will permanently stay frozen after being remapped.

https://bugzilla.gnome.org/show_bug.cgi?id=766643
https://bugzilla.mozilla.org/show_bug.cgi?id=1225044
2016-05-25 01:19:11 +02:00
Bastian Ilsø
5759e2a334 gtktextview: document how to get line space
adds a paragraph to gtk_text_view_get_pixels_below_lines(),
describing how it can be used together with
gtk_text_view_get_pixels_above_lines() to get the total
amount of line spacing between two paragraphs.

https://bugzilla.gnome.org/show_bug.cgi?id=747206
2016-05-23 23:02:37 -04:00
Matthias Clasen
b90ae2cfbf Add a deprecation note
Mark GtkWidget:style property as deprecated in the docs.
2016-05-23 20:40:03 -04:00
Matthias Clasen
30c3d6af56 Improve CSS docs a bit
Among other things, explain the relationship of background-color
and background-image.
2016-05-23 19:25:41 -04:00
Matthias Clasen
46b51e36b4 Trivial typo fix 2016-05-23 19:24:07 -04:00
Matthias Clasen
f39a7ecd63 Remove an unused variable 2016-05-23 14:19:30 -04:00
Matthias Clasen
16bca98305 infobar: Update documentation
Remove explicit reference to color from the
gtk_info_bar_set_message_type() docs.

https://bugzilla.gnome.org/show_bug.cgi?id=759037
2016-05-23 14:19:30 -04:00
Kjartan Maraas
b5d52a209d Updated Norwegian bokmål translation. 2016-05-23 18:56:30 +02:00
Emmanuele Bassi
9c3802fc4b gdk: Provide safe fallback for creating GL contexts
If the backend does not override GdkWindowClass.create_gl_context()
then we should provide a fallback that gives an error, instead of
crashing.

https://bugzilla.gnome.org/show_bug.cgi?id=766782
2016-05-23 08:46:53 +01:00
Emmanuele Bassi
fe684078f9 gl: Add a realize() fallback
Calling gdk_gl_context_realize() should always result in a valid result,
so we need to provide a default implementation, to avoid a call to a
NULL function pointer.
2016-05-23 08:34:17 +01:00
Anders Jonsson
9318dc1f3e Updated Swedish translation 2016-05-21 21:39:34 +00:00
Carlos Garnacho
76a5e3fc3c popover: set priv->window before setting doing add_popover() on it
If the popover's relative-to widget is unparented/reparented, we end
up unparenting/reparenting the popover as well. In that case, at the
moment of reparenting, the widget might have been visible (and is
thus mapped again), but priv->window hasn't been set yet.

We must first set priv->window, and then call gtk_window_add_popover(),
that way gtk_popover_map() has its prerequisites straight.

https://bugzilla.gnome.org/show_bug.cgi?id=766323
2016-05-21 20:40:43 +02:00
Khaled Hosny
ebf703ff5a Typo 2016-05-21 15:54:19 +02:00
Khaled Hosny
3d0e8cf2a8 Update Arabic translation 2016-05-21 15:42:48 +02:00
Florian Müllner
57efcabfd6 stack: Only map children when necessary
gtk_widget_set_parent() will map the widget if the parent is mapped
and the widget is both visible and child-visible. As we currently
only set the child visibility after adding the child, we immediately
map all children that are added to a mapped stack, even when they
are not actually shown. Avoid this by setting the child visibility
before adding the child, so widgets are only mapped when shown.

https://bugzilla.gnome.org/show_bug.cgi?id=766737
2016-05-21 00:56:34 +02:00
Lapo Calamandrei
386ead4243 Adwaita: add vertical margins to switches on a headerbar
See https://bugzilla.gnome.org/show_bug.cgi?id=766642
2016-05-20 15:39:08 +02:00
Lapo Calamandrei
0d5b4779b8 Adwaita: shave 1px from the switch
make the switch height and width 1px smaller.
2016-05-20 15:28:58 +02:00
Ondrej Holy
55751fc6fb Improve external drives detection
Use g_drive_is_removable for external drives detection. Current heuristic
fails in some cases (e.g. when removable drive is attached before login),
see Bug 765457.

Bump GLib version accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=765924
2016-05-20 10:40:14 +02:00
Ignacio Casal Quinteiro
64eca0bb2d gtktextview: fix < public > comment
This was causing problems with the gtk# scanner
2016-05-20 09:08:08 +02:00
Matthias Clasen
d3adf47d9f treeview: Fix a rubberbanding-related crash
When starting a rubberband selection from an empty area, we could run
into crashes if the selection moves over the rows and then back out
to unpopulated area. Handle this case without crashing.

https://bugzilla.gnome.org/show_bug.cgi?id=766336
2016-05-19 16:59:10 -04:00
Matthias Clasen
eace965a19 scale css node test: Adapt to changes
The style classes are reflected in the output here.
2016-05-19 12:26:47 -04:00
Matthias Clasen
6293a50501 color scale: Sync style classes with GtkScale
We should use the same style classes here, to avoid theme
confusion.
2016-05-19 18:09:24 +02:00
Lapo Calamandrei
cca2a22b63 color scale: Really sync style classes with GtkScale
sync the alpha scale styleclass too.
2016-05-19 17:32:09 +02:00
Lapo Calamandrei
5ae7f62f25 Adwaita: fix scale theming
rely on toplevel styleclass for scale with marks.

See https://bugzilla.gnome.org/show_bug.cgi?id=766440
2016-05-19 17:31:05 +02:00
Ignacio Casal Quinteiro
fab70d34d4 gtkselectionprivate: minor style fix
This seems to make some issue with the gtk# scanner.
2016-05-19 16:56:57 +02:00
Matthias Clasen
4151cb1202 scale: Use more succinct names for style classes
Use .marks-before/after to indicate the presence of marks.
As Lapo points out, compatibility with the previous names
is not really that important, since everything else changed
around it.

https://bugzilla.gnome.org/show_bug.cgi?id=766440
2016-05-19 09:44:48 -04:00
Matthias Clasen
de7c15636d icon theme: Add a warning
Warn about the situation when we've found a resource or file path,
but gdk-pixbuf fails to give us a pixbuf. This generally means that
either pixbuf loaders are not found or the shared-mime database
is missing.
2016-05-19 09:03:20 -04:00
Matthias Clasen
d14305f380 wayland: Survive lack of settings
This can be made to happen eg by setting XDG_DATA_DIRS and
XDG_DATA_HOME to /. Not a useful value, but not a good reason
to crash either.
2016-05-19 07:38:33 -04:00
Olivier Fourdan
0b58c96f06 wayland: Make gdk_wayland_window_get_wl_output() private
There is no need to make it a public API, move it to the private header
instead.

https://bugzilla.gnome.org/show_bug.cgi?id=766566
2016-05-19 09:48:46 +02:00
Dušan Kazik
6c939c0e72 Updated Slovak translation 2016-05-18 18:48:18 +00:00
Olivier Fourdan
b03784eb97 wayland: Add get_monitor_at_window to Wayland backend
Given that Wayland has no global coordinate, the only way for gdk to
retrieve the monitor a window last entered is to retrieve it from the
GdkWaylandWindow itself.

Implement the backend specific get_monitor_at_window() to return the
monitor that was last entered by the window.

https://bugzilla.gnome.org/show_bug.cgi?id=766566
2016-05-18 19:07:27 +02:00
Olivier Fourdan
ca77de055b wayland: Add API to retrieve the Wayland output
In Wayland, surfaces get an enter/leave notification each time they
enter or leave an output.

Add an API to GdkWaylandWindow to retrieve the output the window has
last entered.

https://bugzilla.gnome.org/show_bug.cgi?id=766566
2016-05-18 19:07:27 +02:00
Olivier Fourdan
d288a134a4 display: Add vfunc for get_monitor_at_window
Some backends (namely Wayland) do not support global coordinates so
using the window position to determine the monitor will always fail on
such backends.

In such cases, the backend itself might be better suited to identify
the monitor a given window resides on.

Add a vfunc get_monitor_at_window() to the display class so that we can
use the backend to retrieve the monitor, if the backend implements it.

https://bugzilla.gnome.org/show_bug.cgi?id=766566
2016-05-18 19:07:27 +02:00
Matthias Clasen
fa9f22eec4 scale: Bring back marks-related style classes
It turns out that it is too hard (and in some cases, impossible)
to get this information from node positioning, so bring back the
.scale-has-marks-above/below style classes on the main node.

This should allow us to fix the 'pointy sliders'.

https://bugzilla.gnome.org/show_bug.cgi?id=766440
2016-05-18 12:59:39 -04:00
Matthias Clasen
f516faaef8 Revert "scrolledwindow: Better size requisition for GTK_SCROLL_NATURAL children"
This reverts commit 096bea3f0e.

This was accidentally pushed.
2016-05-18 07:52:18 -04:00
Carlos Garnacho
1d04bdf845 x11/dnd: Ignore grab broken events from other devices than our DnD device.
The GdkDragContext should only listen to GDK_GRAB_BROKEN events sent to
its own pointer device. It turns out that the passive key grabs mistake
GDK into sending a GdkEventGrabBroken on the master keyboard, which the
DnD machinery mistakes as a signal to cancel the operation.

https://bugzilla.gnome.org/show_bug.cgi?id=766442
2016-05-18 12:54:40 +02:00
Carlos Garnacho
783c302198 wayland: Avoid spurious crossing events from master touch device
Only generate crossing events on wl_touch.down for the virtual master
device used for touch events, and only whenever this virtual device
actually moves across surfaces. This behavior resembles better what is
expected in X11, where the pointer is warped to the touch position
on XITouchBegin.

This avoids the double emission of leave events when the pointer
emulating touch is lifted, that crossing event will be instead
generated when/if the focus surface changes.

https://bugzilla.gnome.org/show_bug.cgi?id=766314
2016-05-18 12:50:08 +02:00
Matthew Waters
2893526a48 gdk/wayland: use the multi-thread safe wayland API
This is required for proper integration with any other library/application that
may perform wayland API calls and poll() the wayland fd from multiple threads.
Using wl_display_dispatch{_queue}() is thread-safe if not mixed with custom
poll() usage, which GSource/GMainContext does.

Essentially, the problem is that multiple threads polling and reading
the same fd is extremely racy.  Use the wayland provided API for allowing
concurrent access to the wayland display fd.

See the wayland man pages for wl_display_prepare_read(),
wl_display_cancel_read() and wl_display_read_events() for more details.

https://bugzilla.gnome.org/show_bug.cgi?id=763852
2016-05-17 22:58:03 -04:00
Debarshi Ray
096bea3f0e scrolledwindow: Better size requisition for GTK_SCROLL_NATURAL children
GtkScrolledWindow leans towards using the minimum size of its child
widget, unless the scrollbar policy is GTK_POLICY_NEVER. This is
probably fine for most GtkScrollable implementations out there.
Especially when using GTK_SCROLL_MINIMUM, which is the default for all
implementations inside gtk+.

However, this is not good for GTK_SCROLL_NATURAL children. eg.,
VteTerminal's minimum size is 1x1 and natural size is the number of
visible rows and columns requested by the user. We really want to use
the natural size unless the user has resized the window to change that.

https://bugzilla.gnome.org/show_bug.cgi?id=766569
2016-05-17 15:03:51 -04:00
Matthias Clasen
0d18a429aa Update cursor docs
Include new images for context-menu and for no-drop.
2016-05-17 14:16:39 -04:00
Matthias Clasen
4b8dfd8825 gtk-demo: Update no-drop cursor image
Adwaita is using a different cursor for this now.
2016-05-17 13:40:52 -04:00
Matthias Clasen
3078f182b0 gtk3-demo: Add context-menu cursor
The Adwaita cursor theme covers this one now.
2016-05-17 13:39:18 -04:00
Debarshi Ray
c81cd94b8f scrolledwindow: Remove redundant use of MAX
This code tries to add the minimum content size, if one is set, to the
GtkScrolledWindow's size requisition. This is obvious from the check
for non-negative values of min-content-height and min-content-width.
Using MAX needlessly makes the code harder to read by implying that
there is more to it when there actually isn't.

Fall out from 0d9ebb501d

https://bugzilla.gnome.org/show_bug.cgi?id=766569
2016-05-17 17:04:26 +02:00
Baurzhan Muftakhidinov
2b628e9e38 Updated Kazakh translation
(cherry picked from commit d1585a7a60)
2016-05-17 10:19:11 +00:00
Debarshi Ray
df98140e8e scrolledwindow: Fix typo in get_preferred_height calculation
When we are beginning to calculate the height, if the vscrollbar_policy
is not GTK_POLICY_NEVER, and there is no min-content-height, then we
need some small non-zero value to get started. The idea is to always
ask for at least enough to fit the horizontal scrollbar.

Simply put, this should be the mirror image of the corresponding width
calculation code.

Those who got used to the buggy behaviour might notice that their
GtkScrolledWindows are not as tall as they used to be.

Fall out from 55196a705f

https://bugzilla.gnome.org/show_bug.cgi?id=766530
2016-05-17 07:39:24 +02:00
Matt Watson
175cf7e32d stack: always update window position at transition start
Sometimes on wayland we're seeing a frame draw before the first tick
callback, where the window position has not yet been updated.

With this change, the window is properly positioned as soon as
gtk_stack_start_transition returns.

https://bugzilla.gnome.org/show_bug.cgi?id=766405
2016-05-16 13:53:26 -07:00
Javier Jardón
101da71ee3 Use upstream gettext
https://bugzilla.gnome.org/show_bug.cgi?id=373745
2016-05-16 20:46:19 +01:00
Daniel Mustieles
0dfd6a7b08 Updated Spanish translation 2016-05-16 17:13:24 +02:00
Tiago Santos
a4c93d12ea Updated Portuguese translation 2016-05-15 21:40:45 +00:00
Tiago Santos
0bc7520651 Updated Portuguese translation 2016-05-15 21:22:46 +00:00
Matthias Clasen
38f71172f8 scale: Avoid a crash
gtk_scale_get_layout was not careful enough, leading to a crash
when opening the inspector on a scale.
2016-05-15 14:18:09 -04:00
Alban Browaeys
cd305c1970 widget: fix GtkLabelAccessible NULL links.
Fix testsuite/a11y/about.ui GtkAboutDialog :
"CRITICAL **: atk_hyperlink_get_start_index: assertion 'ATK_IS_HYPERLINK (link)' failed"
That is set widget->priv->accessible as soon as accessible object is generated.

When accessible object is created accessible->priv->widget is set,
if widget->priv->accessible is not , then _gtk_label_accessible_update_links
exits early, thus without creating the links on the accessible side.
(This as it checks for the widget to have the accessible set before proceeding).

https://bugzilla.gnome.org/show_bug.cgi?id=766458
2016-05-15 10:24:34 -04:00
Benjamin Otte
ddcf47026d widget: No longer postpone style-updated on unrealized widgets
GTK used to not emit GtkWidget::style-updated on widgets that weren't
realized. This sped up construction of complex widgetry in the early
days of GTK3 where we instantly invalidated on every change.
We don't do that anymore, so in theory (and in my limited testing with
widget-factory) this shouldn't be a prolem anymore.

What is a problem though is that postponing style-updated leads to 2
problems:
(1) Unrealized widgets will not emit style-updated which may cause them
    to not properly update their state and return wrong values from
    get_preferred_width/height() etc
(2) Emitting style-updated during realize can happen too late.
    When a widget is not made child-visible by its parent (common
    examples: notebook, paned) it will also not be realized when the
    parent is initially shown. However, when they get realized later
    (after a resize of the parent), they will emit style-updated (and
    potentially queue a resize) during size-allocate.

https://bugzilla.gnome.org/show_bug.cgi?id=765700
2016-05-14 18:48:22 +02:00
Benjamin Otte
30d2dc49a8 scrolledwindow: destroy children in destroy()
If we don't do that, testsuite/gtk/templates starts failing.
2016-05-14 17:13:52 +02:00
Timm Bäder
f0f8d6d6b0 gdkwindow: Use GList less 2016-05-12 20:40:22 +02:00
Timm Bäder
d4f0c9877d query-settings: Indicate deprecated settings 2016-05-12 20:40:13 +02:00
Timm Bäder
0d8993fb24 stack: Don't underallocate the last_child 2016-05-12 20:40:06 +02:00
Timm Bäder
292e0c2663 stack: Remove some code duplication 2016-05-12 20:40:00 +02:00
Timm Bäder
301652de1f Remove useless casts from gdk_event_triggers_context_menu calls 2016-05-12 20:39:51 +02:00
Timm Bäder
c34bb3b994 query-settings: Don't compare int to uint 2016-05-12 20:39:45 +02:00
Timm Bäder
a99213100d listbox: Don't compare int to uint 2016-05-12 20:39:39 +02:00
Timm Bäder
4cce90d1e2 colorbutton: Stop using state-changed 2016-05-12 18:27:14 +02:00
Timm Bäder
63be0deb0f toolbar: Limit item position to number of contained elements
Greater values don't make much sense.

https://bugzilla.gnome.org/show_bug.cgi?id=682080
2016-05-12 18:27:08 +02:00
Matthias Clasen
e463e09577 wayland: Avoid unitialized memory reads
I didn't pay attention when I replaced g_new0 with g_newa. Oops.
2016-05-12 11:38:46 -04:00
Lapo Calamandrei
46b789b0f4 Adwaita: brighter pushed button background
providing more contrast with the text color.
2016-05-12 11:50:13 +02:00
Lapo Calamandrei
16afc59f04 Adwaita: bold size label on font button
looks more consistent with other special buttons with icons.
2016-05-12 11:45:34 +02:00
Lapo Calamandrei
b5146317bb Adwaita: hide separator on button.font and button.file
we used to do that, got missed at some point during 3.20 cycle.
2016-05-12 11:40:28 +02:00
Matthias Clasen
c891ceb31d Docs: Clarify life cycle issue
gtk_gesture_get_last_event() wasn't very clear about how long
it is safe to use the returned pointer.
2016-05-11 13:25:15 -04:00
Matthias Clasen
358eec2972 DND: Avoid a use-after-free
Cancelling the gesture causes the last_event pointer to become
invalid. Make a copy of the event so we can keep using it
regardless of the gesture state.
2016-05-11 13:24:04 -04:00
Matthias Clasen
7c21a32b28 places sidebar: Avoid markup confusion in tooltips
At one point, the sidebar was using gtk_treeview_set_tooltip_column,
which expects tooltips to be markup. With the listbox-based sidebar,
we don't do that anymore. So don't escape the tooltip text.

https://bugzilla.gnome.org/show_bug.cgi?id=766175
2016-05-10 21:47:20 -04:00
Matthias Clasen
7e7d7991cc x11: Trap possible X error
XIGetClientPointer can generate X errors (e.g. when the X server
does not support XI2. Trap them and carry on.

https://bugzilla.gnome.org/show_bug.cgi?id=766233
2016-05-10 21:29:10 -04:00
Matthias Clasen
f8bc35b9a6 Fix scale length
The vertical scales should really be of the same length, so
add an empty value to be drawn by the other scale.
2016-05-10 15:41:03 -04:00
Matthias Clasen
49d5c9ed14 Forgotten rename 2016-05-10 15:32:25 -04:00
Timm Bäder
327777a291 Scale: Set the correct value alignment
We're measuring both the width of the minimal and the maximal value for
the value gadget, but only give the value the minimal width for its
current value, resultnig in an always left-aligned value.

Fix this by assigning the width of the value gadget to the value layout
and letting pango align the text inside the layout.

https://bugzilla.gnome.org/show_bug.cgi?id=766120
2016-05-10 21:24:50 +02:00
Timm Bäder
7b81b56f7b widget-factory: Let one of the scales draw a value
https://bugzilla.gnome.org/show_bug.cgi?id=766120
2016-05-10 21:24:50 +02:00
Matthias Clasen
4add8f3b63 Document new api 2016-05-10 15:22:35 -04:00
Matthias Clasen
0f476590fb Make gdk_event_get_pointer_emulated public
There is not strong reason to keep the getter private.
At the same time, strip _-prefixes from a few other GdkEvent
APIs. Update all callers.
2016-05-10 15:16:45 -04:00
Olivier Fourdan
126156e820 gtkmenu: ignore left/right scroll events
Menus are placed vertically by definition, it does not make much sense
to support horizontal axis for scrolling.

Use GDK_EVENT_STOP/GDK_EVENT_PROPAGATE instead of TRUE/FALSE and add a
default case to return GDK_EVENT_PROPAGATE for unhandled events.

https://bugzilla.gnome.org/show_bug.cgi?id=765939
2016-05-10 15:58:02 +02:00
Olivier Fourdan
c134d52dd7 gtkmenu: ignore emulated scroll events
On X11, we get both smooth and emulated scroll events, whereas other
backends such as wayland will give smooth events only with touchpad
scrolling.

Discard emulated scroll events so that we get consistent behaviours
between backends.

Allow for both horizontal and vertical smooth events for scrolling so
that horizontal scrolling still works without emulated scroll events as
well, again for consistency between gdk backends.

https://bugzilla.gnome.org/show_bug.cgi?id=765939
2016-05-10 15:58:02 +02:00
Olivier Fourdan
e405c27eee gdkevent: make _gdk_event_get_pointer_emulated() private
And not just internal to gdk, so we can use it in gtk as well, to
differentiate emulated scroll events from others.

https://bugzilla.gnome.org/show_bug.cgi?id=765939
2016-05-10 15:58:02 +02:00
Timm Bäder
20592a7935 scale: Remove double nullable annotation
Being both (allow-none) and (nullable) at the same time is a bit much.
Was from 591e7f5ef8.
2016-05-10 12:53:42 +02:00
Timm Bäder
7116988bcb widget: Add Since annotation to gtk_widget_queue_allocate 2016-05-10 12:53:42 +02:00
Chun-wei Fan
092cb9e202 GTK: Fix build for pre-C99 compilers
Some compilers we support, such as pre-2013 Visual Studio, does not support
for INIFINITY, log2() and exp2(), so check for exp2() and log2() during
configure, and use fallbacks for them and INIFINTY if they are not found.

https://bugzilla.gnome.org/show_bug.cgi?id=766207
2016-05-10 17:14:07 +08:00
Chun-wei Fan
7a0941c090 Visual Studio builds: Refine "installation" process
Split out the part where we generate/update the caches for the GSchemas
and the icons, so that it is easier to ensure that things continue to
function correctly when we have GlibEtcInstallRoot != CopyDir.
2016-05-10 13:18:23 +08:00
Benjamin Otte
732316aca2 scrolledwindow: Remove child before destroying self
Children tend to call back into the scrolled window while being removed
and that doesn't work too well if the scrolled window is destroyed
already as Christian Hergert found out.
2016-05-10 01:00:41 +02:00
Benjamin Otte
0c37b05716 cssimage: Make it possible to shrink builtin check/optionmarks
... below 7px of size.
2016-05-10 01:00:41 +02:00
Cédric Valmary
effd40c39c Updated Occitan translation 2016-05-09 20:49:18 +00:00
Emmanuele Bassi
6e2b9a1413 docs: Update examples of matching key bindings
The selector for matching GtkEntry has changed to `entry` after 3.20.

https://bugzilla.gnome.org/show_bug.cgi?id=766166
2016-05-09 12:45:34 +01:00
Chun-wei Fan
ce0a7fa560 gdk/Makefile.am: Dist gdkmonitorprivate.h
This file needs to be distributed with the tarball as well...
2016-05-09 15:42:37 +08:00
Chun-wei Fan
8cda93d389 Visual Studio builds: Clean up projects a bit
Consolidate the .lib's that we need to link to for GDK and GTK+ into the
property sheets, and also link to setupapi.lib as that is needed by
the port to the new GdkMonitor API.
2016-05-09 15:35:26 +08:00
Chun-wei Fan
e24530d03b gdk/win32/gdkmonitor-win32.c: Fix build on non-GCC
WINBOOL is MinGW-specific, so change it to BOOL, which is universally
available.

Also, Visua Studio is more picky on where __stdcall (WINAPI) is placed, so
fix that to be in-sync with what is done in the other sources.
2016-05-09 13:14:01 +08:00
Georges Basile Stavracas Neto
534ab9a9f0 placesview: update guiding list of protocols
The previous list of protocols in the guidance popover
was suboptimal and needed adjustments.

This commit updates this list to match the latest mockups [1].

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/4847c79ea1aaf75046b3ec5bb1b167ac604d86ed/nautilus/nautilus-next/connect-to-server-wire.png

https://bugzilla.gnome.org/show_bug.cgi?id=756570
2016-05-08 17:38:49 -03:00
Timm Bäder
1b84d75d10 dialogs: remove 2px border width again 2016-05-08 21:33:53 +02:00
Aurimas Černius
840faeada1 Updated Lithuanian translation 2016-05-08 18:30:49 +03:00
Rafael Fontenelle
d1d06bc47c Updated Brazilian Portuguese translation
(cherry picked from commit 207b793316)
2016-05-08 14:25:43 +00:00
Timm Bäder
fd81e801ab tooltip: Include gtkwidgetprivate.h
That's where gtk_widget_query_tooltip is defined.
2016-05-08 15:52:56 +02:00
Timm Bäder
640c1b5a33 gdk: Fix parameter name mismatch 2016-05-08 15:34:28 +02:00
Timm Bäder
af49609b8f infobar: Fix typo
Style class names are prefixed with a '.'
2016-05-08 13:58:18 +02:00
Matthias Clasen
ac5b48e40c gtk-demo: Fix revealer demo
This only used by luck before. We are changing a property from the
::notify handler for that property. Now that GtkRevealer is notifying
the property when it stops animations on unmap, we end up in a life
lock situation where we never make it out of the notify queue.

Fix this by not restarting the animation if the widget is unmapped.
2016-05-07 16:22:13 -04:00
Ray Strode
3cba63b2f8 widget: add missing detail to ::query-tooltip emission
This was an oversight in commit dfb368e29bb58b4313b578f0ce75cfc8ead9a1.
2016-05-06 22:31:45 -04:00
Matthias Clasen
ed147c88e1 tooltip: Add a missing *
This was an oversight in the previous commit.
2016-05-06 20:51:25 -04:00
Matthias Clasen
c1d1042892 gtk3-demo: Add a close button to the markup window 2016-05-06 20:50:38 -04:00
Matthias Clasen
de3dabc865 gtk-demo: Don't duplicate text in markup example
I forgot to clear the buffer before inserting the new markup. Oops.
2016-05-06 20:47:49 -04:00
Matthieu Gautier
82aa83b0f6 revealer: emit notify::child-revealed when animation stops
Depending of float rounding during target calculation, the size of the
GtkRevealer can be set to zero will the animation is not finished.
If the GtkRevealer is in a GtkPaned, it will be hidden and so the animation
will be stopped before it is finished.

In this case, force the emission of the child-revealed signal to let
client code know the animation is finished.

https://bugzilla.gnome.org/show_bug.cgi?id=765973
2016-05-06 16:09:12 -04:00
Matthias Clasen
cd581c9e81 Simplify our templates
This is applying the new property name simplification.
2016-05-06 16:09:12 -04:00
Matthias Clasen
3c09783005 Clean up builder parser data after parsing
No need to have these linger around in qdata.
2016-05-06 16:09:12 -04:00
Matthias Clasen
f16e58e9a7 builder tool: Canonicalize property names
When simplifying, convert property names to canonical form,
so we don't waste time while looking them up later.
2016-05-06 16:09:12 -04:00
Cédric Valmary
8ead17ee76 Updated Occitan translation 2016-05-06 18:31:42 +00:00
Lapo Calamandrei
1b8c9de09a Adwaita: darken treeview exapanders 2016-05-06 19:34:12 +02:00
Lapo Calamandrei
55a76cbc31 Adwaita: cosmetic change 2016-05-06 19:01:19 +02:00
Lapo Calamandrei
5f5a02f3e5 Adwaita: relocate a selector
relocate treview acceleditor > label in the treeview section and
add a comment for a testcase.
2016-05-06 19:00:12 +02:00
Matthias Clasen
0f116135f4 Avoid emitting ::style-set by name
GtkStyle is deprecated, but we still emit ::style-set quite
a bit, so lets at least not be slow while doing it.
2016-05-06 10:14:07 -04:00
Matthias Clasen
12dfb368e2 Don't emit ::query-tooltip by name
This signal is emitted quite a bit, and we can easily avoid it.
2016-05-06 10:14:07 -04:00
Matthias Clasen
64710def82 Stop storing has-tooltip in qdata
This is queried quite a bit, and we have room for an extra
bit in GtkWidgetPrivate.
2016-05-06 10:14:07 -04:00
Matthias Clasen
9fac83783c Don't use qdata for getting the default css style
There's no point in using qdata for looking this up, since
we only ever set it on the default screen anyway.
2016-05-06 10:14:07 -04:00
Lapo Calamandrei
1de2f21994 Adwaita: tidy treeview style properties...
...removing a double definition in the process.
2016-05-06 15:36:26 +02:00
Matthias Clasen
b938cfe5be settings: Fix font names *again*
This is the last time, I hope.
2016-05-06 07:08:56 -04:00
Matthias Clasen
ff3264b4c5 widget: Store accessible in GtkWidgetPrivate
Every widget may have one of these, and they are accessed somewhat
frequently.
2016-05-06 06:44:28 -04:00
Matthias Clasen
cb8817f710 Ensure we initialize a quark first
The style function here can also be called before the corresponding
class_init had a chance to create the quark. Fix this.
2016-05-06 06:44:28 -04:00
Matthias Clasen
d91b8c91d3 tooltip: Ensure our quark is not 0
Many of the tooltip functions can be called before a tooltip
object is created, and thus initializing the quark in class_init
is not good enough.
2016-05-06 06:44:28 -04:00
Matthias Clasen
360a3c1690 Use a cheaper way to store settings per display
This was another very frequent use of qdata. Since we typically
have only one or two display objects, storing the display-settings
association in a simple array is faster than using object data
or a hash table.
2016-05-06 06:44:28 -04:00
Matthias Clasen
cca894b912 Use a cheaper way to store debug flags
This was the most frequent use of qdata *by far*.
2016-05-06 06:44:28 -04:00
Matthias Clasen
46edfaa89c Fix indentation mishap 2016-05-06 06:44:28 -04:00
Matthias Clasen
c50e774b29 Fix a typo 2016-05-06 06:44:28 -04:00
Christian Hergert
ebb894cd64 wayland: use g_signal_handler_disconnect()
Use of g_signal_handlers_disconnect_by_func() needs to do more work than
necessary to find all the matching handlers. Instead, just hold on to the
signal identifier and remove it directly so we hit the fast path.

Not terribly ground breaking in terms of performance gains, but its done
enough to be worthwhile.

https://bugzilla.gnome.org/show_bug.cgi?id=766049
2016-05-06 11:33:12 +03:00
Matthias Clasen
c27b8b48ab Update color name css style test
Verify rebeccapurple too.
2016-05-05 15:37:42 -04:00
Matthias Clasen
27210f523b scale: Fix mark positioning at the left/top edge
We were failing to take the widget allocation.x/y into account
when deciding whether we need to push in the mark.

https://bugzilla.gnome.org/show_bug.cgi?id=765922
2016-05-05 15:17:56 -04:00
Matthias Clasen
6b64c31f6d Generalize the previous commit
Update all xsettings when we get a screen, to prevent similar
problems from occurring in the future.
2016-05-05 14:13:03 -04:00
Matthias Clasen
fe7be14db8 settings: Avoid a crash
Christian Hergert reported seeing webkit crashes with recent
GTK+. The stacktrace points at the CSS machinery calling into
GtkSettings to get the font name, and then getting surprised
by a property notification that triggers style validation.

To avoid this, query the font name xsetting right away when
we get set a screen.
2016-05-05 13:32:58 -04:00
Carlos Garnacho
c14572fdae x11: Rely on passive keyboard grabs with XI2 for DnD
The active keyboard grab can be spared then. This way the passive
key grabs allow other key combinations (eg. alt-tab) that are not
mandatory to grab here.
2016-05-05 19:16:25 +02:00
Lapo Calamandrei
870a674283 Adwaita: more flexible headerbar_fill mixin
add an additional background layer as a parameter.
2016-05-05 18:36:03 +02:00
Carlos Garnacho
27c1cce726 searchenginetracker: Quote fts match so it's seen as a single phrase
FTS5 has a complex enough syntax that it makes not much sense to wrap
in simple search boxes.

https://bugzilla.gnome.org/show_bug.cgi?id=765981
2016-05-05 16:40:33 +02:00
Timm Bäder
df38db70a0 label: Also initialize text
So gtk_label_get_text returns the default value of "". Broke the
GtkModelButton default value test.
2016-05-05 11:31:41 +02:00
Timm Bäder
c1d1d46d34 cssgadget: Remove unused function 2016-05-05 11:31:41 +02:00
Timm Bäder
f7e6385506 gtkrender: Remove superfluous cairo_save/restore calls
These were all surrounding functions that either call
cairo_save/cairo_restore themselves or don't need to.
2016-05-05 11:02:06 +02:00
Matthias Clasen
1c4e609750 css node: Stop extraneous change notification
The ::name and ::widget-type properties are entirely independent,
no need to notify both when either changes.
2016-05-04 16:05:40 -04:00
Matthias Clasen
bf66cd1e94 box: Only emit ::child-notify when necessary
We can easily check if the values for expand, padding and so forth
actually changed, so lets do it.
2016-05-04 15:05:08 -04:00
Matthias Clasen
5b19747ef8 Revert "When creating a widget path, use the widget type"
This reverts commit 0d78b67bca.

As Benjamin points out: that'll break all widgets that query style
properties in their init function.
2016-05-04 13:52:22 -04:00
Matthias Clasen
0d78b67bca When creating a widget path, use the widget type
No need to pull the type out of the css node - its our own type.
This will let us stop setting the type on the css node later on.
2016-05-04 13:42:54 -04:00
Matthias Clasen
3ca9a218ec Set the proper state on the css node
This will almost certainly overwritten before the widget gets
to the screen, but while we are doing this, we might as well
use the same state that we initialize the widgets state to.
2016-05-04 13:42:54 -04:00
Matthias Clasen
7df668f2ac css names are always set
No need to check for it, we set the css name on GtkWidgetClass
ourselves.
2016-05-04 13:42:54 -04:00
Timm Bäder
0efe186d95 switch: Remove .slider from slider gadget
As the documentation states, neither the switch nor the slider gadget
should be using any style classes.
2016-05-04 18:55:33 +02:00
Timm Bäder
4ba1f19b03 switch: Create less pango layouts
Instead of creating 2 pango layouts in every draw() and on in
_get_content_size (and calling into gettext twice in both cases), just
keep the layouts around and create them in only one place.
2016-05-04 18:35:30 +02:00
Matthias Clasen
1da048d19a settings: Fix xsettings handling
I was somehow under the misconception that we'd get GdkEventSettings
events for all the xsettings at startup. That is not in general true,
so we need to make sure that we check for the xsettings value before
we use them, or derived fields. Update all the private getters to
do so; and fix settings_update_font_values() to cope with font
descriptions that might miss the family or size.
2016-05-04 11:19:03 -04:00
Matthias Clasen
1d0ba98d5d settings: Ensure derived fields are initialized
I mistakenly assumed that gtk_settings_init was already doing
something to trigger a notify for all properties. It doesn't,
so we have to ensure that settings_update_font_values() is
called at least once.

https://bugzilla.gnome.org/show_bug.cgi?id=765966
2016-05-04 06:28:59 -04:00
Matthias Clasen
adc90b9e9d wayland: Small improvements to update_direction
Avoid memory allocation if possible, and use the proper
min/max keycodes.
2016-05-03 23:14:05 -04:00
Matthias Clasen
09aa48b748 wayland: Don't emit direction-changed unless it did
We can easily check this, so lets do it.
2016-05-03 22:52:38 -04:00
Matthias Clasen
3b75cadc41 trivial formatting fixes 2016-05-03 22:36:20 -04:00
Matthias Clasen
449fd4a350 Use g_set_object in one more place 2016-05-03 22:15:17 -04:00
Timm Bäder
944f9d4f28 label: don't use set_text in gtk_label_new
It would just set up lots of things with the default values, but a
common case is that a few gtk_label_set_* calls follow.
2016-05-03 19:26:43 -04:00
Kjartan Maraas
e0ab19a8f0 Updated Norwegian bokmål translation. 2016-05-03 23:23:11 +02:00
Timm Bäder
4ae6f10ae9 label: minimum/natural size parameters are not nullable
Stop comparing them to NULL.
2016-05-03 16:25:57 -04:00
Timm Bäder
e75894da13 label: Don't set out parameters twice
We set them later again when we calculate the vertical size, so just
move the general assignment to -1 into the horizontal branch.
2016-05-03 16:25:57 -04:00
Timm Bäder
cb419794f8 widget: Remove useless NULL check
We are checking for allocation != NULL at the beginning of the function
already. This also means that the allocation parameter is not nullable.
2016-05-03 18:21:33 +02:00
Timm Bäder
71b360cc8e roundedbox: Initialize the hashtable key before using it
In mem_hash, we are iterating over the individual bytes of the key, so
make sure all of it is initialized.
2016-05-03 10:58:02 -04:00
Benjamin Otte
a72c4576b2 cssimagebuiltin: Remove icons that don't draw anything anymore 2016-05-03 12:59:13 +02:00
Benjamin Otte
b049b3de25 cssimagebuiltin: Remove unused variables 2016-05-03 12:59:13 +02:00
Benjamin Otte
2c2c60827e widget: Remove useless comment 2016-05-03 12:59:13 +02:00
Olivier Fourdan
e74ecfe22e wayland: fix up/down mix up in discrete events
The wayland specification for discrete step information for scroll and
other axes reads:

| The discrete value carries the directional information. e.g. a
| value of -2 is two steps towards the negative direction of this axis.

mutter sets a value of 1 for SCROLL_DOWN events and -1 for SCROLL_UP
events.

gdkdevice Wayland backend does the opposite, it translates a positive
discrete value as SCROLL_UP and a negative value as SCROLL_DOWN, which
ends up inverting the scrolling direction.

Fix the logic in gdkdevice Wayland to use a positive value as
SCROLL_DOWN and a negative value as SCROLL_UP so that it matches mutter
and weston logic.

https://bugzilla.gnome.org/show_bug.cgi?id=765907
2016-05-03 11:38:06 +02:00
Matthias Clasen
be201a5b71 css: Stop drawing double borders for builtins
The fallback code for rendering builtin checks, radios
and expanders was using border parameters. With the generic
gadget borders using the same parameters, this was giving
double borders.
2016-05-02 13:31:59 -04:00
Timm Bäder
38181bc3d2 shadowsvalue: Don't draw invisible box shadows 2016-05-02 19:28:33 +02:00
Matthias Clasen
ef7ccab188 defaultvalue test: Skip GdkMonitor::geometry
We never return NULL for ::geometry and ::workarea. Just skip
these properties.
2016-05-02 12:42:13 -04:00
Matthias Clasen
8dd8c4a9de GdkMonitor: Fix refresh-rate property
We were using g_value_set_boolean for an integer property.
2016-05-02 12:42:13 -04:00
Руслан Ижбулатов
b579fa82fe Use default VFS, not a local one (it has no network) 2016-05-02 14:45:44 +00:00
Matthias Clasen
9a03fc906a Fix gtk_paned_set_position to set position_set consistently
As pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=765676,
we were failing to set position_set if the position did not change.
2016-05-02 07:42:06 -04:00
Carlos Soriano
264b2b78cd testnotebookdnd: add one GtkListBox as tab content
To make sure we test regressions on widgets that bubble up motion
handling and can trigger the motion handling code path on GtkNotebook.

https://bugzilla.gnome.org/show_bug.cgi?id=764395
2016-05-02 13:17:48 +02:00
Carlos Soriano
ddb0740a21 gtknotebook: avoid tab dnd from content
Before commit 6c1bee2377 we were setting an attribute of GtkNotebook
to track the pressed button if the pressed button happened on the
tab itself.
Later in the motion handling code we were checking whether the private
pressed button attribute was set or not in order to handle a tab dnd
or not.

In commit 6c1bee2377 the code changed and set the pressed button
variable unconditionally, which means, a motion event from within the
tab content triggered a tab reordering.

This happened only if the children hierarchy have a widget that bubbles
up both button press event, which sets the private pressed button
attribute; and motion events, which started the tab dnd checking the
private pressed button attribute.
A widget that experienced the regression was GtkListBox.

In order to fix it, set the button pressed variable only when it press
the tab itself, not the content.

https://bugzilla.gnome.org/show_bug.cgi?id=764395
2016-05-02 13:17:48 +02:00
Руслан Ижбулатов
bab628beb2 GtkPlacesView: check for network:// URI support before using it
Specifically, this URI is not supported on Windows, but GFile will
do its "best" and turn it into GLocalFile("$pwd/network"), with
spectacularly bad results.

https://bugzilla.gnome.org/show_bug.cgi?id=765858
2016-05-01 19:04:18 +00:00
Carlos Garnacho
cb6b5e4017 gdkevents: Free motion events discarded by motion compression
Those should be freed together with their list link.
2016-05-01 20:05:56 +02:00
Matthias Clasen
73e799474a dnd: Make sure to free a stashed event
I am not sure if this happens in practice, but better to be safe.
2016-05-01 13:26:35 -04:00
Matthias Clasen
0fe0ee897d gesture: Don't leak stashed events
These events were never freed.
2016-05-01 13:26:35 -04:00
Matthias Clasen
a047269428 Avoid copying an event
Not a big deal, but we can be a bit more efficient when generating
grab-broken events.
2016-05-01 13:26:35 -04:00
Matthias Clasen
a7ee3a6d80 Small docs improvement
Cross reference from gdk_event_get_keycode to
gdk_event_get_scancode.
2016-05-01 13:26:35 -04:00
Matthias Clasen
8041c012fe Drop unused macros
These have been sitting here forever, unused. Time to drop them
2016-05-01 13:26:35 -04:00
Matthias Clasen
6baac526b9 x11: drop a useless list
We were keeping all the event sources in a list, only to remove
them at the end of their life. Not useful.
2016-05-01 13:26:35 -04:00
Matthias Clasen
75e44c50ed wayland: drop a useless list
We were keeping all the event sources in a list, only to remove
them at the end of their life. Not useful.
2016-05-01 13:26:35 -04:00
Matthias Clasen
de894f38b5 Fix the build
I forgot to add an include here.
2016-05-01 13:26:35 -04:00
Matthias Clasen
a829b26de1 wayland: Tag the event source with the acutal display name 2016-05-01 10:52:31 -04:00
Matthias Clasen
55ea6e4dcc wayland: Make gdk_display_get_name work
It should just return the same as gdk_screen_make_display_name.
2016-05-01 10:51:41 -04:00
Matthias Clasen
309c6dfaf8 css: Use setters for font size and family
This avoid creating pango font descriptions all the time, when
the gtk-font-name setting hasn't actually changed.
2016-05-01 01:10:59 -04:00
Matthias Clasen
71d6816817 settings: Add setters for font family and size 2016-05-01 01:10:33 -04:00
Matthias Clasen
449732446b treeview: Use getter for gtk-enable-animations 2016-05-01 00:40:23 -04:00
Matthias Clasen
8457dff08a switch: Use getter for gtk-enable-animations 2016-05-01 00:40:08 -04:00
Matthias Clasen
df72478375 stack: Use getter for gtk-enable-animations 2016-05-01 00:39:55 -04:00
Matthias Clasen
5ee745dfee scrolled window: Use getter for gtk-enable-animations 2016-05-01 00:39:34 -04:00
Matthias Clasen
ff0107a4ac Use getter for gtk-enable-animations 2016-05-01 00:39:18 -04:00
Matthias Clasen
9d038df7de popover: Use getter for gtk-enable-animations 2016-05-01 00:39:03 -04:00
Matthias Clasen
e502702dd4 Use a variable consistently 2016-04-30 23:15:20 -04:00
Matthias Clasen
417eb0ad9c Use a better hash for arcs 2016-04-30 22:39:58 -04:00
Matthias Clasen
e5de6dd8b1 css: Use a getter for the enable-animations setting 2016-04-30 22:39:58 -04:00
Matthias Clasen
28625c16c0 dnd: Use a getter for the drag threshold 2016-04-30 22:39:58 -04:00
Matthias Clasen
8e62cee075 Add a few settings getters 2016-04-30 22:39:58 -04:00
Matthias Clasen
4151b6715c Trivial whitespace fix 2016-04-30 21:06:38 -04:00
Matthias Clasen
98f16fdf7a Use the new getter
This avoids the use of generic api in the per-event code path.
2016-04-30 20:59:16 -04:00
Matthias Clasen
7f4b575fc3 gdk: Add a private getter for GdkDevice::input-mode 2016-04-30 20:52:23 -04:00
Matthias Clasen
172093db8c Add a forgotten deprecation
gdk_display_get_screen is marked as deprecated in the docs.
2016-04-30 16:46:11 -04:00
Руслан Ижбулатов
3a095ad454 W32: support cairo library in non-standard locations
When checking for cairo_win32_surface_create_with_format in -lcairo,
temporarily put CAIRO_LIBS into LIBS so that AC_CHECK_LIB() can
find it in weird places like /usr/local/lib, where gcc would not look
on its own.

https://bugzilla.gnome.org/show_bug.cgi?id=765793
2016-04-29 15:56:54 +00:00
GNOME Translation Robot
15dbf35fd8 Updated Scottish Gaelic translation 2016-04-29 08:41:50 +00:00
Руслан Ижбулатов
2655d929fe W32: reword the error about required cairo version
1.14.x series does not contain the functionality needed by GTK+.
Advise to use 1.15.x (1.15.2 is available) or 1.16.x (yet to be released).

https://bugzilla.gnome.org/show_bug.cgi?id=765790
2016-04-29 07:06:02 +00:00
Matthias Clasen
7afc6b1fd5 settings: Cache xsettings
Instead of calling out to gdk every time an XSetting is requested,
cache the value (we already have the property_values array
anyway).

https://bugzilla.gnome.org/show_bug.cgi?id=765579
2016-04-28 23:29:43 -04:00
Matthias Clasen
2148708917 box gadget: Redo expand flag handling
We only keep one align flag per child, so it seems odd to
keep separate h/v expand flags. Just keep one expand flag
and interpret it according to orientation. Allow setting
the expand flag for child widgets too, though, so we can
make widget expand without interfering with the recursive
widget expand flag.

Update all callers.

Use the new possibility of expanding child widgets to make
the label of check and radio buttons expand. This fixes
unexpected behavior of these widgets in RTL in some places.

https://bugzilla.gnome.org/show_bug.cgi?id=765742
2016-04-28 21:59:34 -04:00
Matthias Clasen
8a308dd072 expander: Reverse alignments in RTL
Flip alignments of the title gadget children.
2016-04-28 21:59:34 -04:00
Matthias Clasen
8bf148b006 check button: Reverse alignments in RTL
Flip alignments for the box gadget children.
2016-04-28 21:59:34 -04:00
Matthias Clasen
2919e344ca box gadget: allow reversing alignments
In RTL, we want to interpret GTK_ALIGN_START and _END
in the opposite way. Since we don't give gadgets a text
direction, just allow setting an align_reverse flag
to the box gadget.
2016-04-28 21:59:34 -04:00
Lapo Calamandrei
71c1e86e62 Adwaita: refactor levelbar styling. 2016-04-28 15:45:12 +02:00
Rico Tzschichholz
0f1e42cd80 broadway: Fix include rules in gdkbroadwaymonitor.h
Fixes 044109c8c7
2016-04-28 10:20:15 +02:00
Daniel Mustieles
394fe0e675 Updated Spanish translation 2016-04-28 08:06:10 +00:00
Matthias Clasen
952d0fd23f window: Stop using gdk_screen_get_n_monitors 2016-04-27 23:18:16 -04:00
Matthias Clasen
03d70f1636 settings: Stop comparing screen numbers
There is only one screen.
2016-04-27 23:18:16 -04:00
Matthias Clasen
f5d6688d3e window: Stop using screen width/height 2016-04-27 23:18:16 -04:00
Matthias Clasen
6ae2c24bde treeview: Stop using screen width/height
Popups should always be placed relative to a monitor.
2016-04-27 23:18:16 -04:00
Matthias Clasen
29396a1e5e label: Stop using screen width/height
Popups should always be placed relative to a monitor.
2016-04-27 23:18:16 -04:00
Matthias Clasen
e9a58190af combobox: Stop using screen width/height
Popups should always be placed relative to a monitor.
2016-04-27 23:18:16 -04:00
Matthias Clasen
b5fb9ae3b7 gtk: Port to new monitor api
Use the GdkDisplay monitor api instead of the GdkScreen one.
2016-04-27 23:18:16 -04:00
Matthias Clasen
1b7d7c857f menu: Add new monitor api
This will work better with the new monitor api in gdk.
2016-04-27 23:18:16 -04:00
Matthias Clasen
3952bd60a5 inspector: Port to new monitor api
Adapt to new monitor apis, and show more information.
2016-04-27 23:18:16 -04:00
Руслан Ижбулатов
026cb53875 win32: Port to new monitor api 2016-04-27 23:18:16 -04:00
Matthias Clasen
5c1d0915af x11: Bring back fullscreen-on-all-monitors support
It is unfortunate the EWMH requires Xinerama here - lets do this
without the caching that was previously there, I don't think it is
needed.
2016-04-27 23:18:16 -04:00
Matthias Clasen
d92fda2103 x11: Port to new monitor api 2016-04-27 23:18:16 -04:00
Matthias Clasen
79a0286ab1 x11: Drop Xinerama
It may come back after the monitor conversion.
2016-04-27 23:18:16 -04:00
Matthias Clasen
044109c8c7 broadway: Port to new monitor api 2016-04-27 23:18:16 -04:00
Matthias Clasen
9026289381 wayland: Port to new monitor api 2016-04-27 23:18:16 -04:00
Matthias Clasen
a2f02f1ca8 integrate docs 2016-04-27 23:18:16 -04:00
Matthias Clasen
0611cb4823 screen: Implement old monitor apis generically
Implement all the monitor-related GdkScreen apis based on GdkMonitor.
2016-04-27 23:18:16 -04:00
Matthias Clasen
b6c4ba0e2a Add a fallback for unconverted backends
If the monitor vfuncs are not implemented in a display class,
fall back to providing a single monitor object representing
the entire screen. This is not meant to be 'good enough', it
is just to provide some implementation until all backends
implement the monitor vfuncs. When that is the case, the
fallback should be removed.
2016-04-27 23:18:16 -04:00
Matthias Clasen
9d719b9989 display: Add new monitor apis
This follows our general direction of moving functionality
from GdkScreen to GdkDisplay.
2016-04-27 23:18:16 -04:00
Matthias Clasen
837244809e Add GdkMonitor
Add a simple object representing a monitor.
2016-04-27 23:18:16 -04:00
Christian Hergert
8fc11ef2a5 Revert "iconhelper: check if surface was invalidated"
This reverts commit 88d0258397.
2016-04-27 19:02:25 -07:00
Руслан Ижбулатов
96c18db0da GtkTreeView: change child repositioning to preserve locality
If there was a piece of text in the cell, then when the edit
entry is shown for that cell, it should have a piece of text
in it roughly at the same location.

Therefore, when child widget is enlarged (child preferred
size exceeds cell size), extra width should be added by
extending either left or right edge depending on text direction.

If after that the child sticks outside of the treeivew visible region,
try to push it back inside (breaking its alignment with the
cell), again, giving preference (i.e. adjusting it last)
to either left or right edge depending on text direction.

https://bugzilla.gnome.org/show_bug.cgi?id=765471
2016-04-28 01:35:46 +00:00
Christian Hergert
88d0258397 iconhelper: check if surface was invalidated
Fetching the style may cause the surface to be invalidated.
2016-04-27 17:45:01 -07:00
Balázs Meskó
055ce9f095 Updated Hungarian translation 2016-04-27 19:32:14 +00:00
Daniel Mustieles
25c38df30e Updated Spanish translation 2016-04-27 21:07:11 +02:00
Lapo Calamandrei
0d55542359 Adwaita: add a background to cellrendertext 2016-04-27 20:05:44 +02:00
Matthias Clasen
d0c4747bd3 3.21.1 2016-04-27 13:36:26 -04:00
Matthias Clasen
46abbfebe2 Updates 2016-04-27 13:36:26 -04:00
Daniel Stone
210a747ff0 wayland: Ignore NoSymbol keys
NoSymbol is not a valid GDK symbol (it only has the concept of
VoidSymbol, for some reason, which is neither the same thing nor
produced by any sane keymap). Passing NoSymbol events through to GTK+
apps is unlikely to produce anything useful.

In particular, this meant VTE would scroll to the end of the buffer when
pressing Fn (required for Page Up/Down on Macs), as it was receiving a
keypress that wasn't a modifeir. This does not happen on X11, as the
KEY_FN keycode is above 255, so does not get sent to clients.

https://bugzilla.gnome.org/show_bug.cgi?id=764825
2016-04-27 14:00:30 +01:00
Georges Basile Stavracas Neto
605e205584 placesview: update a leftover function name
This should've been part of the previous commit.
2016-04-27 09:06:46 -03:00
Georges Basile Stavracas Neto
bb8b459407 placesview: follow up fixes
This patch unmarks the addresses' prefixes as translatable,
and updates the callback name to reflect what it really does
now.

This is a follow up fix from commit 7449add82.

https://bugzilla.gnome.org/show_bug.cgi?id=756570
2016-04-27 08:40:19 -03:00
Carlos Garnacho
14967d8d7d wayland: Perform seat grab focus checks on native windows
We don't care about the specific (possibly client-side) window that
requested the focus here, only the toplevel. Fixes mistakenly sent
focus events when the grab happens inside the current focus window.

https://bugzilla.gnome.org/show_bug.cgi?id=762756
2016-04-27 13:29:19 +02:00
Christian Hergert
0763a027c7 pixelcache: reuse existing timeout source when possible
This avoids the g_source_remove(), g_source_destroy(),
g_timer_source_new(), and g_source_set_name_by_id() in the common case.

Instead, we reuse our previous source and update the ready time to our
new deadline. We lose the coalescing with g_timeout_add_seconds(), but
that is not going to help in the common case anyway (unless you have
three hands and can scroll multiple pixelcached backed widgets at once).

https://bugzilla.gnome.org/show_bug.cgi?id=765640
2016-04-27 06:26:42 -04:00
Daniel Mustieles
060c7d5c18 Updated Spanish translation 2016-04-27 07:47:56 +00:00
Matthias Clasen
1d35f273d6 dnd: Fix some issues with drag icons
In non-composited environments, we were ending up with all-black
drag icons, because nothing was drawing the background of our new
toplevel. Fix this by drawing background when we are not composited.
We don't do this when composited, since we want to allow transparent
icons.
2016-04-26 22:02:34 -04:00
Matthias Clasen
012904097a Fix indentation 2016-04-26 21:25:02 -04:00
Matthias Clasen
23df86e923 dnd: Set attributes from all widgets for text drag icons
There is nothing textview-specific here.
2016-04-26 21:23:45 -04:00
Georges Basile Stavracas Neto
7449add82b placesview: provide guidance on server addresses
GtkPlacesView currently provides no example of
server addresses, which may confuse users.

To fix that, add a helper popover with some
guidance on server addresses.

https://bugzilla.gnome.org/show_bug.cgi?id=756570
2016-04-26 20:50:45 -04:00
Matthias Clasen
dfdc7c3e0d progressbar: Enforce invariants
When measuring gadgets, minimum must come out <= natural.
Make sure we don't fail this when measuring progressbar text.

https://bugzilla.gnome.org/show_bug.cgi?id=765644
2016-04-26 20:44:07 -04:00
Matthias Clasen
c27c4e2048 dnd: Fix lifecycle issues with widgets as drag icons
The documentation clearly says that the widget is not destroyed,
but we were in fact failing to keep it alive, since it was still
a child or the icon_window when we destroy that. Fix this by
reparenting the icon_widget out before. Also, deal with the
possibility that the application might destroy the widget
halfway through, for whatever reason.
2016-04-26 20:35:25 -04:00
Matthias Clasen
e0e114fddb testdnd2: Actually test gtk_drag_set_icon_widget
I added a new test function, but didn't actually use it.
No wonder I couldn't reproduce the lifecycle issues with
drag widgets that firefox is experiencing.
2016-04-26 20:34:24 -04:00
Bernhard Reutner-Fischer
5a04edc57b docs: typo in GTK_STYLE_CLASS_LIST_ROW docs
Fix typo in documentation of GTK_STYLE_CLASS_LIST_ROW: s/rowss/rows/g

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=765632
2016-04-26 16:41:52 -04:00
Jonas Ådahl
1a4f000f3b gdk/dnd: Don't use default display when getting cursor
Always associate a drag context with a GdkDisplay and use that when
getting a cursor for a given action.

If we don't do this, dragging on a window that doesn't use the default
display will make us use cursors from the wrong display.

https://bugzilla.gnome.org/show_bug.cgi?id=765565
2016-04-26 23:03:24 +08:00
Christian Hergert
f27dd21426 frametimings: reuse previous frame timing in common case
Typically, there won't be any references on old frame timings except for
the most recent timing. So instead of discarding these and re-entering
gslice twice, just steal the old frame timing and reuse it.

https://bugzilla.gnome.org/show_bug.cgi?id=765592
2016-04-26 09:06:07 -04:00
Jonas Ådahl
8f64e4a8e3 gdk/dnd: Add missing signal parameter documentation
The cancel reason parameter was missing.

https://bugzilla.gnome.org/show_bug.cgi?id=765577
2016-04-26 20:40:47 +08:00
Jonas Ådahl
145b626c2f wayland: Track orphaned dialogs per display
Don't track all orphaned dialogs globally, as mixing them up with each
other would in most cases trigger errors when we try to pass bogus
values to Wayland requests.

https://bugzilla.gnome.org/show_bug.cgi?id=765474
2016-04-26 08:38:18 -04:00
Jonas Ådahl
cb73becfb4 wayland: Clean up naming of GdkWaylandDisplay pointers
The naming of pointers to GdkWaylandDisplay's were inconsistent.
Running the following commands in gtk+/gdk/wayland illustrate the
inconsistency:

$ grep -r '\<display_wayland\>' *.[ch] | wc -l
195
$ grep -r '\<wayland_display\>' *.[ch] | wc -l
81

This patch renames all occurrences of "wayland_display" to
"display_wayland". This is also consistent with naming in the X11
backend. A couple of whitespace changes were done as well in places
where the rename was already done, that added line breaks to long lines
that stood out.

https://bugzilla.gnome.org/show_bug.cgi?id=765474
2016-04-26 08:38:18 -04:00
Chun-wei Fan
7700243bd4 gdk/gdkglcontext.c: Avoid a GCCism
Pointer arithmetic on GLvoid* (a void*) is a GCCism, so cast it to an
unsigned char*, which is the type cairo_image_surface_get_data() returns.
2016-04-26 20:29:23 +08:00
Chun-wei Fan
71bb1bebc0 Visual Studio builds: Generate .pc files
Generate .pc files for the package, so that it would be easier for
building introspection for packages that depend on GTK+.  Also split
PythonPath into PythonPath and PythonPathX64 to facilitate the build of
introspection files, which need to have Python that is built with the
same ac=rchitecture where GTK+ is built.

Clean up the formatting and spacing a bit.
2016-04-26 20:15:45 +08:00
Gábor Kelemen
75df7c163d Updated Hungarian translation 2016-04-26 09:43:45 +00:00
Emmanuele Bassi
0e14456f15 gdk: Ensure resources registration happens once
Like GTK does it.

https://bugzilla.gnome.org/show_bug.cgi?id=765576
2016-04-26 10:36:37 +01:00
Matthias Clasen
4fe336930e Expand the drag widget testcase
This adds a testcase which reuses the drag widget for multiple
drags.
2016-04-26 00:19:02 -04:00
Matthias Clasen
9a3e97d6f0 Updates 2016-04-26 00:07:45 -04:00
Matthias Clasen
a91fc65291 label css style test: fix font syntax 2016-04-26 00:07:01 -04:00
Matthias Clasen
2968098f74 Remove debug spew 2016-04-26 00:07:00 -04:00
Matthias Clasen
7855294594 Fix css parser tests
These tests were affected by the font and linear-gradient parsing
changes.
2016-04-26 00:03:09 -04:00
Matthias Clasen
3fd9bda06f css: Fix printing of images
When there is only a call in a fallback image, we were errnoneously
printing out a comma before it.
2016-04-26 00:03:09 -04:00
Matthias Clasen
0eefe81f37 Raleigh: Fix font syntax 2016-04-25 23:25:55 -04:00
Matthias Clasen
db1a39a817 notify test: Skip GtkFontButton::font-name
This is not freely settable.
2016-04-25 23:09:19 -04:00
Matthias Clasen
43312bb8c2 font button: Fix translation of font-name default
The default value should come out of regular translations, not
property translations.
2016-04-25 23:09:19 -04:00
Christian Hergert
724d3be794 wayland: avoid jitter in keyboard repeat
When synthesizing keyboard repeat, we can potentially drift further from
the mark depending on the timing of the frame callback and how long it
took to deliver the event.

This patch attempts to reduce this by tracking from a stable epoch the
time of our next keyboard repeat.

https://bugzilla.gnome.org/show_bug.cgi?id=765567
2016-04-25 18:15:24 -07:00
Timm Bäder
1951642c0e GtkLabel: Use g_clear_object
https://bugzilla.gnome.org/show_bug.cgi?id=765496
2016-04-25 20:37:56 -04:00
Timm Bäder
be5a105f2e GtkLabel: Don't manually iterate over link list
There are various functions to access links based on their index for
a11y. We can spare quite a few lines of code by just using
g_list_nth_data instead of iterating over the list ourselves.

https://bugzilla.gnome.org/show_bug.cgi?id=765496
2016-04-25 20:37:56 -04:00
Christian Hergert
f165bbda57 builtinicon: avoid calculating font-metrics in vast majority of cases
We perform lots of gadget allocations that require allocating a
GtkBuiltinIcon. One notable example is the scrollbar for a scrolled
window.

In the process of doing this, we often calculate baseline information that
isn't necessary. With how much this code path gets exercised, its worth
catching the result for the common case, which is that the font-description
has not changed and we are using the default language the application
was started with.

This simply caches the previous result and verifies that we can reuse it
with pango_font_description_hash() and a simple language check.

Numbers below are scrolling through a textview with GDK_KEY_Down.

Before:
      SELF CUMULATIVE    FUNCTION
[   0.08%] [   9.26%]    gtk_builtin_icon_get_preferred_size
[   0.01%] [   8.82%]      pango_context_get_metrics
[   0.02%] [   0.16%]      gtk_widget_get_pango_context
[   0.06%] [   0.06%]      pango_context_get_language
[   0.01%] [   0.02%]      g_type_check_instance_cast
[   0.02%] [   0.02%]      strlen
[   0.02%] [   0.02%]      pango_context_get_font_description
[   0.02%] [   0.02%]      g_list_foreach
[   0.01%] [   0.01%]      gtk_css_style_get_value
[   0.01%] [   0.01%]      itemize_with_font
[   0.01%] [   0.01%]      pango_context_get_type
[   0.01%] [   0.01%]      get_base_metrics
[   0.00%] [   0.01%]      pango_font_metrics_unref
[   0.01%] [   0.01%]      g_list_free
[   0.01%] [   0.01%]      gtk_builtin_icon_get_type

After:
      SELF CUMULATIVE    FUNCTION
[   0.08%] [   0.18%]    gtk_builtin_icon_get_preferred_size
[   0.02%] [   0.02%]      pango_font_description_hash
[   0.00%] [   0.02%]      gtk_widget_get_pango_context
[   0.00%] [   0.02%]        g_object_get_qdata
[   0.00%] [   0.02%]          g_datalist_id_get_data
[   0.02%] [   0.02%]      gtk_builtin_icon_get_type
[   0.01%] [   0.01%]      pango_context_get_font_description
[   0.00%] [   0.01%]      - - kernel - -
[   0.01%] [   0.01%]      pango_context_get_language
[   0.00%] [   0.01%]      gtk_css_style_get_value
[   0.00%] [   0.01%]      gtk_css_gadget_get_style

https://bugzilla.gnome.org/show_bug.cgi?id=765486
2016-04-25 16:13:06 -04:00
Emmanuele Bassi
414e86fb95 docs: Add new GtkGLArea symbols 2016-04-25 14:35:03 +01:00
Emmanuele Bassi
044b5aa3d2 docs: Add new GdkGLContext symbols 2016-04-25 14:35:03 +01:00
Emmanuele Bassi
79a7e881b1 docs: Clarify the platform-dependency of GdkGLContext:use-es
Not all platforms allow creating an OpenGL ES context.
2016-04-25 14:35:02 +01:00
Emmanuele Bassi
b45c7b508b glarea: Use the appropriate texture format for GLES
The core OpenGL ES spec does not have GL_BGRA, so we need to make do
with GL_RGBA and live with the format conversion.
2016-04-25 14:35:02 +01:00
Emanuele Aina
971998de34 glarea: Relay the use-es flag to context creation
https://bugzilla.gnome.org/show_bug.cgi?id=743746
2016-04-25 14:35:02 +01:00
Emmanuele Bassi
872b5115ea demo: Add GLES support to the GtkGLArea demo
We need new shaders, and we need to select the correct shader when
building the program we use to render the triangle.
2016-04-25 14:35:02 +01:00
Emmanuele Bassi
b993c7db63 tests: Add GLES support to GtkGears
Use the appropriate GLSL shaders when running under an OpenGL ES
context.
2016-04-25 14:35:02 +01:00
Emmanuele Bassi
a92ba06383 tests: Add GLES shaders to testglarea
Check if the GdkGLContext is using ES, and load the appropriate shaders
in that case.
2016-04-25 14:35:02 +01:00
Emmanuele Bassi
f848450a70 gl: Use a uniform to flip R and B colors on GLES
This allows us to decide when the R and B color channels should be
flipped with a much better granularity.

For instance, when using GLX_EXT_texture_from_pixmap to create a GL
texture from a surface we don't need to swap the R and B channels, as
the internal representation of the texture data will already have the
appropriate colors.

We also don't need to flip color channels when blitting from a texture.
2016-04-25 14:33:36 +01:00
Emmanuele Bassi
1379b4b175 gl: Add fallback for missing subimage unpacking
For GLES 2.0 platforms with the subimage unpacking extension we need to
upload one row of the image surface at a time.
2016-04-25 14:33:35 +01:00
Emmanuele Bassi
88fed84d45 x11: Allow creating GLES contexts
We need to check for the GLX_EXT_create_context_es2_profile extension,
which allows us to create a GLES context while using the GLX API.
2016-04-25 12:29:37 +01:00
Emmanuele Bassi
74f4e6e046 wayland: Bind the appropriate OpenGL API
If we want to use OpenGL ES with EGL then we need to bind the API before
creating the EGL context.
2016-04-25 12:29:37 +01:00
Emmanuele Bassi
7d1da94455 wayland: Add debugging notes for EGL context creation 2016-04-25 12:29:37 +01:00
Emmanuele Bassi
d40778f728 wayland: Honour GDK_GL=gles on context creation 2016-04-25 12:29:37 +01:00
Emmanuele Bassi
2849f2fc9a wayland: Implement asking for a GLES context
Wayland uses EGL, which allows us to ask for a GLES context.

https://bugzilla.gnome.org/show_bug.cgi?id=743746
2016-04-25 12:29:37 +01:00
Emmanuele Bassi
fe25ba3c5f gl: Tweak the swizzle for GLES texture fragments
Cairo surfaces are in BGRA format, but we upload them as RGBA buffers on
GLES; this means that the R and B channels are flipped in the texture
data.

Instead of doing a costly channel flip before putting them on the GPU,
we can flip the values inside the GLSL shader we use specifically for
GLES.
2016-04-25 12:29:37 +01:00
Emmanuele Bassi
a942e96c8f gl: Use the appropriate formats when reading buffers on GLES
We cannot use GL_BGRA and GL_UNSIGNED_INT_8_8_8_8_REV when reading back
from the frame buffer in the software fallback path, as they do not
exist on OpenGL ES.

This will make the slow path a bit slower, because of the implicit
format conversion.
2016-04-25 12:29:37 +01:00
Emmanuele Bassi
5b03cf175a gl: Use the appropriate format on GLES
When uploading a Cairo image surface to a GL texture we cannot use
GL_BGRA and GL_UNSIGNED_INT_8_8_8_8_REV on OpenGL ES, as they do not
exist in the core spec.
2016-04-25 12:29:36 +01:00
Emmanuele Bassi
1620b7bda7 gl: Add more OpenGL ES checks
Check for the appropriate extensions depending on which type of API
we're using.
2016-04-25 12:29:36 +01:00
Emmanuele Bassi
8bb4eb5544 gdk: Add GLES shaders
We cannot use GL shaders with GLES.
2016-04-25 12:29:36 +01:00
Emmanuele Bassi
3da73371b9 gdk: Add 'GDK_GL=gles' flag
Allows forcing the selection of a GLES context.
2016-04-25 12:29:36 +01:00
Emmanuele Bassi
55537cccbd gdk: Move GLSL shaders into GResource
Having the shaders inlined as C strings makes them harder to edit and
maintain.
2016-04-25 12:29:36 +01:00
Emmanuele Bassi
d7b5ea89eb gl: Relay use-es from context to paint data
This way we can select the appropriate API or the appropriate shaders.

https://bugzilla.gnome.org/show_bug.cgi?id=743746
2016-04-25 12:29:36 +01:00
Emmanuele Bassi
e1cecd243a gl: Add 'use-es' flag
On some platforms we can ask the GL context machinery to create a GLES
context, instead of a GL one.

In order to ask for a GLES context at GdkGLContext realization time, we
use a bit field like we do for forward compatible, or debug contexts.

The 'use-es' bit also changes the way we select a default version,
because OpenGL and OpenGLES versions differ.

https://bugzilla.gnome.org/show_bug.cgi?id=743746
2016-04-25 12:29:36 +01:00
Paolo Borelli
6225d435e6 inspector: do not leak seat capabilities descriprion
Factor out an utility function for readability and free the string
with the list of capabilities
2016-04-24 17:49:26 +02:00
Christian Hergert
0b88d7976c quartz: fix quartz build
The quartz backend has its own implementation of these that
collide since the gtkdragdest.c extraction.

https://bugzilla.gnome.org/show_bug.cgi?id=764712
2016-04-24 03:50:22 -07:00
Christian Hergert
4f63d83955 kineticscrolling: avoid stutter at tail of kinetic deceleration
When decelerating the kinetic scroll, we can get into a position where it
looks like we are stuttering. This happens because the amount we move is
so little that it takes multiple frames to make forward progress by one
pixel.

This prevents that by detecting when we have reached the slow stutter of
the deceleration and simply stops the deceleration phase immediately.

https://bugzilla.gnome.org/show_bug.cgi?id=765493
2016-04-24 03:49:20 -07:00
Lapo Calamandrei
aa99c64fdd Adwaita: color tweaks
use a slightly cold and slightly darker gray for the dark variant,
use the same hue for the osd bg color, make it bit darker and
transparent.
2016-04-22 14:44:59 +02:00
GNOME Translation Robot
61a454ffbe Updated Scottish Gaelic translation 2016-04-22 12:09:51 +00:00
Sébastien Wilmet
554de0be2a app: replace private accels functions by get_application_accels()
It's like gtk_application_get_action_muxer().

https://bugzilla.gnome.org/show_bug.cgi?id=764879
2016-04-22 12:43:27 +02:00
Sébastien Wilmet
3b988ce523 app: share function to normalise detailed action name
Put the function in gtkactionmuxer.c, where
gtk_print_action_and_target() is implemented.

https://bugzilla.gnome.org/show_bug.cgi?id=764879
2016-04-22 12:40:08 +02:00
Sébastien Wilmet
3d182160bb app-accels: rename static functions
Remove the "accels_" prefix from the remaining static functions. The
prefix no longer makes sense since the whole file is devoted to accels.

https://bugzilla.gnome.org/show_bug.cgi?id=764879
2016-04-22 12:39:44 +02:00
Sébastien Wilmet
bce4a0abde app: extract GtkApplicationAccels private class
This has several benefits:
- Less code in GtkApplication. The accels handling is something
  self-contained, and GtkApplication now delegates the work.
- For the accels functions, there is now a distinction between static
  functions and functions in the gtkapplicationaccelsprivate.h header,
  which makes the code easier to understand, because we have a good
  overview just by reading the header.
- The struct _GtkApplicationPrivate is now easier to find instead of
  being in the middle of the file.

https://bugzilla.gnome.org/show_bug.cgi?id=764879
2016-04-22 12:39:18 +02:00
Sébastien Wilmet
e0c34fd028 app: write higher-level gtk_application_accels static functions
These will become the functions present in the
gtkapplicationaccelsprivate.h header.

The gtk_application_accels functions deal with detailed_action_name's
instead of action_and_target's. action_and_target is an implementation
detail of Accels.

The added function prototype is temporary, it'll be removed in a later
commit.

https://bugzilla.gnome.org/show_bug.cgi?id=764879
2016-04-22 12:38:56 +02:00
Paolo Borelli
c574ef0954 textiter: add unit test for forward_to_line_end
Surprisingly we had no unit test for this method
2016-04-22 08:54:25 +02:00
Matthias Clasen
73c91c285e Fix formatting
The previous change was not quite using the right coding style.
2016-04-21 23:24:13 -04:00
Timm Bäder
0815b21ad4 listbox: Make sure page down/up move at least one row
When the current cursor_row is taller than the page_size we get from the
GtkAdjustment, the previous code would not actually cause any scrolling,
so make sure we just take the row after or before the cursor_row in that
case.

https://bugzilla.gnome.org/show_bug.cgi?id=765261
2016-04-21 23:11:38 -04:00
Matthias Clasen
7a7e3fc0e3 Ad d new API to the docs 2016-04-21 22:55:57 -04:00
Frediano Ziglio
cf14fea5a8 Save scancode inside GdkEventPrivate
Windows save in hardware_keycode an information which is not so low
level and some application require the hardware scancode.
As Windows provides this information save it in GdkEventPrivate
and provide a function to get this information.
For no Windows system the function return the hardware_keycode instead.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=765259
2016-04-21 22:35:47 -04:00
Benjamin Otte
c081ca2d4c cssshadowsvalue: Avoid allocating new value if not needed 2016-04-21 23:01:31 +02:00
Benjamin Otte
f93eca5604 cssbordervalue: Avoid allocating new value if not needed 2016-04-21 23:01:31 +02:00
Benjamin Otte
2fc0d6a91a cssbgsizevalue: Avoid allocating new value if not needed 2016-04-21 23:01:31 +02:00
Matthias Clasen
6d953cb08e Add a dnd test using a window as icon
This case is causing problems in firefox. Lets at least make
sure that it doesn't crash in GTK+.
2016-04-21 14:23:00 -04:00
Lapo Calamandrei
3ed8ac034d Adwaita: backdrop active button color tweaks 2016-04-21 17:01:45 +02:00
Lapo Calamandrei
d857ba3faf Adwaita: cosmetics 2016-04-21 16:51:24 +02:00
Lapo Calamandrei
874d4ede67 Adwaita: solid bg for disabled pushed button 2016-04-21 16:43:35 +02:00
Lapo Calamandrei
517f33b1a6 Adwaita: spinbutton fixes
reset background-color on backdrop disable buttons and entry node.
2016-04-21 16:25:05 +02:00
Jonathan Matthew
22cd8e9d4f gtkmenusectionbox: remove submenus when the parent item is removed
https://bugzilla.gnome.org/show_bug.cgi?id=749405
2016-04-20 17:28:19 -04:00
Matthias Clasen
d6ac55102e widget: Don't show widget resizes in the inspector
Avoiding this sort of visual debugging in the inspector
is the main reason we have per-display debug flags now.
2016-04-19 23:32:26 -04:00
Matthias Clasen
d58885c9b9 css gadget: Fix baseline debug
We were not using the baseline that we're computing.
2016-04-19 23:26:57 -04:00
Matthias Clasen
37b70a9733 Use qdata for debug flags
This avoids some overhead.
2016-04-19 23:26:57 -04:00
Matthias Clasen
c01befe5cc css gadget: Don't get display flags twice
This got more expensive now that we store them per-display,
so don't get them twice in the same function.
2016-04-19 23:26:57 -04:00
Christian Hergert
3df2e0b26a debug: remove open-coded debug checks in gtktextsegment
These runtime checks were being performed whether or not we were in a
debug build. Using GTK_DEBUG_CHECK() will compile out of production
builds, as it will result in something like:

  if (G_UNLIKELY(0))

which the optimizer can prune.

https://bugzilla.gnome.org/show_bug.cgi?id=765284
2016-04-19 19:56:17 -07:00
Matthias Clasen
f3e6d930a8 text tag: Add a va marshaller to ::event 2016-04-19 21:10:31 -04:00
Matthias Clasen
c7bac91494 text buffer: Add va marshallers for signals 2016-04-19 21:10:31 -04:00
Matthias Clasen
3c3aa478f9 menushell: Add a va marshaller for ::insert 2016-04-19 21:10:31 -04:00
Lapo Calamandrei
1b22039649 Adwaita: use an image for backdrop button background
which doesn't make the sliders flash during background transition.
2016-04-19 23:00:54 +02:00
Lapo Calamandrei
5fc18c7167 Adwaita: link button style fix
ensure the label color doesn't get overridden, fixes link button
label being gray in backdrop.
2016-04-19 22:58:33 +02:00
Lapo Calamandrei
c16c9e7c3f Adwaita: scale with marks style fix
reset background-color on the slider.
2016-04-19 22:58:33 +02:00
Lapo Calamandrei
5199b66682 Adwaita: fix switch styling
ensure the last button has rounded corners and adapt to button
mixin changes.
2016-04-19 22:58:33 +02:00
Lapo Calamandrei
24c3906d5f Adwaita: fix insensitive switch styling
misplaced backdrop disabled selector was overriding the disabled
one.
2016-04-19 22:58:33 +02:00
Matthias Clasen
51d58108f9 Add some va marshallers to frequent signals
This makes us take the fast path in signal emission.
2016-04-19 16:12:33 -04:00
Lapo Calamandrei
b596fcada7 Adwaita: stop using images for solid backgrounds...
...unless it's needed.
2016-04-19 21:59:37 +02:00
Matthias Clasen
5efb574055 magnifier: Only connect to ::draw when needed
This making us take the slow path in ::draw handling, so we
want to avoid it if we can.

https://bugzilla.gnome.org/show_bug.cgi?id=765238
2016-04-19 15:29:04 -04:00
Lapo Calamandrei
7397fe0eab Adwaita: add shadows back...
...correctly inizializing a sass var.
2016-04-19 21:25:27 +02:00
Rui Matos
deaf664ed2 wayland: Leave existing mods on map_virtual_modifiers
map_virtual_modifiers() is supposed to add the necessary virtual mods
but otherwise leave the mods that are passed in.

https://bugzilla.gnome.org/show_bug.cgi?id=765270
2016-04-19 21:14:20 +02:00
Matthias Clasen
b8a86e6ca4 wayland: Some more debug spew
Print the modifiers and their mapping out as well. This
information is contained in the keymap, but this is a bit
easier to digest.
2016-04-19 12:43:03 -04:00
Matthias Clasen
e7d84898ee wayland: Add debug output for keymaps
Use GDK_DEBUG=input to see your keymap sent over and over again.
Efficiency!
2016-04-19 12:23:51 -04:00
Timm Bäder
36fead28e0 gtkcssimagebuiltin: Save/restore around cairo_clip
This was previously causing trouble in checkbuttons where the check node
didn't have an icon shadow set, e.g. in Raleigh.
2016-04-19 15:31:26 +02:00
Matthias Clasen
d1b07bc386 Add a comment to explain numbers here
This explains the change in the previous commit.
2016-04-19 07:34:44 -04:00
Piotr Drąg
3fe08b3b28 cups: Fix duplicate string
https://bugzilla.gnome.org/show_bug.cgi?id=765122
2016-04-19 07:25:17 -04:00
Chun-wei Fan
9a87b6be2b MSVC builds: Update how introspection builds are done
This first adds a common autotools module that can be included by
the Makefile.am's to generate the file lists and the g-ir-scanner/
g-ir-compiler command lines to build the introspection files.

The autotools files for gdk/ and gtk/ are then updated to generate
the full file lists needed to build the introspection files, with
the full command lines for g-ir-scanner and g-ir-compiler as NMake
Makefile modules that can be used to build the introspection files
for Visual Studio builds.

https://bugzilla.gnome.org/show_bug.cgi?id=765195
2016-04-19 14:50:25 +08:00
Lapo Calamandrei
f0c2d3a7a8 Adwaita: better shadow stacking mixin 2016-04-19 01:19:07 +02:00
Christian Hergert
b584b3d12a frame-clock: avoid g_signal_emit_by_name()
These were showing up higher in Sysprof profiles.

The simple fix is to avoid the emit_by_name() and let the interface emit
the signals directly. No function preconditions are provided since these
are internal API.
2016-04-18 15:33:53 -07:00
Lapo Calamandrei
bdb451ad86 Adwaita: fix infobar text color in backdrop windows
see https://bugzilla.gnome.org/show_bug.cgi?id=765213
2016-04-19 00:15:54 +02:00
Matthias Clasen
99c2423043 font button: Convert from pango to css properly
This utility function should probably find a home somewhere else.
For now, this makes the deprecation warning go away.
2016-04-18 15:05:24 -04:00
Benjamin Otte
519af3f91d cssimage: Warn if gradients only have 1 color stop
GTK <= 3.20 allowed that but the CSS spec and borwsers do not.
We might want to just remove that feature, but for now, we just warn.
2016-04-18 20:52:35 +02:00
Benjamin Otte
fd373162b5 theme: linear-gradient() needs 2 color-stops
So make sure our _solid() function gives it two.
2016-04-18 20:52:35 +02:00
Benjamin Otte
f51b15808a theme: Split out _solid() function
The function creates a solid color image. Currently this is done with
linear-gradient().
2016-04-18 20:52:34 +02:00
Benjamin Otte
de76139fea win32 theme: Fix functions to not have spaces
CSS doesn't allow that (although GTK's CSS parser did so far not
complain).
2016-04-18 20:52:34 +02:00
Matthias Clasen
5ab6ff6b5e Expand css style font tests
Test more of the syntax of the font: shorthand.
2016-04-18 14:38:53 -04:00
Matthias Clasen
2603011ea0 Fix a typo
We don't want to parse a weight twice, but a weight and a stretch.
2016-04-18 14:38:12 -04:00
Matthias Clasen
492a406bbd HighContrast: Fix font: usage 2016-04-18 14:17:55 -04:00
Matthias Clasen
68ce676498 Add backwards compat back
Apparently, there's lots of font: "pango font description" out there,
so keep parsing this, with a deprecation warning.
2016-04-18 14:09:41 -04:00
Matthias Clasen
df22f3017b Adwaita: Fix use of font: shorthand 2016-04-18 11:46:58 -04:00
Matthias Clasen
dcd20e17e5 Fix parsing of the font: shorthand
Our code here was just throwing it at PangoFontDescription.
Fix this by parsing the various components ourselves.
2016-04-18 11:46:58 -04:00
Matthias Clasen
7b9b661aea Export some font parsing functions
These will be used for parsing the font: shorthand too.
2016-04-18 11:46:58 -04:00
Matthias Clasen
5993875d38 Fix the css style font test
Setting the font: shorthand to something like smaller is not
in line with the css spec. Just set the font-size: property
for this.

Also fix the other font: shorthand to specify size and family
according to the css spec.
2016-04-18 11:46:58 -04:00
Matthias Clasen
31a12c6a23 css style: Rename some static functions
Make the font property functions follow the general naming
scheme, and remove pango from the names.
2016-04-18 11:46:58 -04:00
Matthias Clasen
bbb45a2b2d Add docs for new API 2016-04-18 11:46:58 -04:00
Carlos Garnacho
f7108d4d43 wayland: Improve checks when flushing scroll events
If we get gdk_wayland_seat_flush_frame_event() with no previous event to be
flushed, we fallback into the scroll event checks. However, there's no check
performed there as to whether it really scrolled, so it'd always send a smooth
scroll event with 0/0 deltas in this case.

This should be mostly harmless, but still, we should only end up emitting scroll
events if those really happened.
2016-04-18 14:14:33 +01:00
Carlos Garnacho
bfcd9a2193 wayland: Do not check the pointer focus when receiving wl_pointer.frame
The frame event is also meant to compress wl_pointer.leave events, at this
point the focus surface will be definitely NULL. In the end, wl_pointer.frame
should flush the last composed event despite the pointer focus.

https://bugzilla.gnome.org/show_bug.cgi?id=765065
2016-04-18 14:14:33 +01:00
Carlos Garnacho
358d15ae5e gdk: Make GDK_TOUCH_CANCEL be dealt with similarly to GDK_TOUCH_END
We must emit the cancel event with the same semantics, and towards the GdkWindow
that is currently under the touchpoint, so make proxy_button_event() deal with
GDK_TOUCH_CANCEL.

Fixes the GDK_TOUCH_CANCEL event being emitted only on the toplevel, which is
usually non-sufficient.
2016-04-18 14:14:33 +01:00
Matthias Clasen
921c154e38 widget: Use gdk_pango_get_for_display 2016-04-18 07:04:44 -04:00
Matthias Clasen
117c0c0aea Add gdk_pango_context_get_for_display
This is the obvious 1 line equivalent of the for_screen function.
2016-04-18 07:04:44 -04:00
Piotr Drąg
07f124e92d Updated Polish translation 2016-04-18 02:36:20 +02:00
Lapo Calamandrei
fe74c81a70 Adwaita: cosmetics 2016-04-17 23:40:29 +02:00
Lapo Calamandrei
86ba132ded Adwaita: colorbutton colorswatch shadow fix
reset colorswatch box-shadow on active and checked state as well
following latest style changes.
2016-04-17 23:14:02 +02:00
Lapo Calamandrei
a763bd7df1 Adwaita: increase opacity on scale label and marks
using the same opacity as dim-label.
2016-04-17 22:46:48 +02:00
Piotr Drąg
5a2eacfd04 Updated POTFILES.in and POTFILES.skip 2016-04-17 20:22:47 +02:00
Matthias Clasen
4aa257b663 bloatpad: Make shortcuts window update
This tests the just added functionality to make shortcuts
track changes in their actions accelerators.
2016-04-17 13:42:14 -04:00
Matthias Clasen
50f041bc57 shortcuts: Follow changes of accels
Add a way to associate a detailed action name with a shortcut.
If the action name is set, update the accelerator whenever
accels change on the window that the shortcuts window is
associated with.

https://bugzilla.gnome.org/show_bug.cgi?id=764975
2016-04-17 13:42:14 -04:00
Matthias Clasen
268243834a Add a help overlay to bloatpad
This will let us explore the (non-)interaction between
help overlays and editing shortcuts.
2016-04-17 13:42:14 -04:00
Lapo Calamandrei
cf144ea26f Adwaita: clean up pushed button mixin 2016-04-17 18:39:07 +02:00
Lapo Calamandrei
bad15d410e Adwaita: fix scale slider border color
using the darker border color.
2016-04-17 18:19:38 +02:00
Lapo Calamandrei
a89d03d6b8 Adwaita: flatten colorswatches 2016-04-17 18:17:07 +02:00
Lapo Calamandrei
d77dc25b8d Adwaita: more borders color tweaks 2016-04-17 18:07:58 +02:00
Lapo Calamandrei
b34c3dce2a Adwaita: cosmetics 2016-04-17 15:26:22 +02:00
Lapo Calamandrei
6ee670b697 Adwaita: dark variant borders color tweaks 2016-04-17 15:24:57 +02:00
Lapo Calamandrei
32674cb1d3 Adwaita: pushed button style tweak
use a solid background.
2016-04-17 15:21:31 +02:00
Lapo Calamandrei
f10971eefd Adwaita: button style tweak
add a darker bottom border to buttons to add some depth.
2016-04-17 15:06:13 +02:00
Matthias Clasen
4a9cf8527e Add some more accelerator / modifier tests 2016-04-17 01:54:43 -04:00
Matthias Clasen
6664008815 wayland: Make virtual modifier mapping more similar to X
Ignore virtual modifiers that are mapped to Mod1 (as Meta
often is), to avoid interfering with our fix interpretation
of Mod1 as Alt.
2016-04-17 01:50:23 -04:00
Matthias Clasen
96f0ed9ec5 menuitem: Fix some possible problems with arrow_gadget
https://bugzilla.gnome.org/show_bug.cgi?id=765134 shows
a stacktrace where we end up with arrow_gadget being NULL
despite the conditions for its presence being satisfied.

This commit makes sure we call update_arrow_gadget() whenever
any of the conditions changes. This should fix the reported
crash.
2016-04-17 01:09:32 -04:00
Matthias Clasen
5ba8a25d29 wayland: Fix the map_virtual_modifiers implementation
We were not stripping real modifiers out, and thus always
thought there's a conflict when the passed in modifiers
included any real modifiers.
2016-04-16 23:16:12 -04:00
Bastien Nocera
97d27ca2f8 cups: Fix gettext usage
The previous patches didn't mark some strings as to be translated, and
tried to translate strings with a variable part already inside the
string, which isn't going to work.

Mark the strings as translatable with context, and also make sure to
translate static strings when getting them out of their structure.

https://bugzilla.gnome.org/show_bug.cgi?id=764585
2016-04-16 18:43:12 +02:00
Lapo Calamandrei
5b7c06118c Adwaita: ensure dialogs titlebar rounded corners
broken from my previous commit about rounded corners, dialogs
doesn't use the "window" node, but the "dialog" node, so use the
.background styleclass in the selectors which is more generic.
2016-04-16 14:42:13 +02:00
Lapo Calamandrei
b64816ed8d Adwaita: more border color tweaking 2016-04-16 14:32:04 +02:00
Lapo Calamandrei
d5b26eb034 Adwaita: lighten border color a bit 2016-04-16 14:28:29 +02:00
Lapo Calamandrei
8394317cc2 Adwaita: flatten the switch base 2016-04-16 13:41:32 +02:00
Lapo Calamandrei
b744c07b44 Adwaita: flatten entries and similar widgets 2016-04-16 13:35:48 +02:00
Lapo Calamandrei
2184c910eb Adwaita: delete unused mixin 2016-04-16 13:21:39 +02:00
Lapo Calamandrei
940c77ad43 Adwaita: flatten scale and progressbar trough 2016-04-16 13:19:41 +02:00
Lapo Calamandrei
8ee4e45f8a Adwaita: ensure titlebar corners are not rounded...
...when the window is maximized or tiled, by using more specific
selectors, since there were cases of erroneusly rounded corners.
See https://bugzilla.gnome.org/show_bug.cgi?id=765038
2016-04-16 12:04:02 +02:00
Matthias Clasen
64c2a65cc0 wayland: Implement virtual modifiers
Since Wayland is using libxkbcommon, it inherits X unfortunate
real/virtual modifier distinction, so we have to do the same
gymnastics we do for X to map between the two.

This should fix matching of accelerators using virtual modifiers
(modulo gnome-shell bugs regarding the handling of Super).

https://bugzilla.gnome.org/show_bug.cgi?id=764424
2016-04-15 22:22:48 -04:00
Matthias Clasen
101cecf724 Clarify docs a bit
The wording here was just awkward: TRUE is returned if... Note that
FALSE is also returned if...
2016-04-15 22:22:48 -04:00
Руслан Ижбулатов
3ed9cb2488 gtk-builder-tool: use g_printf() instead of g_print()
1) g_print() can be redirected
2) g_print() does some extra processing, such as character set conversion.
   Specifically, on W32 it will detect system codepage via GetACP(),
   and will convert UTF-8 output into that codepage, even though
   the output should stay unchanged (whether gtk-builder-tool interprets
   strings from ui files as UTF-8 is a separate matter).

https://bugzilla.gnome.org/show_bug.cgi?id=765118
2016-04-15 17:45:27 +00:00
Lapo Calamandrei
159c65dcb8 Adwaita: really fix solid-csd
add a specificity bump hack in the titlebar solid-csd styling to
avoid being overridden by the split titlebar theme logic.
2016-04-15 18:28:26 +02:00
Lapo Calamandrei
de78627494 Adwaita: fix backdrop solid-csd
titlebar rounded corners were not overridden for backdrop state.
2016-04-15 18:00:37 +02:00
Lapo Calamandrei
266ae74afc Adwaita: better solid-csd styling 2016-04-15 16:51:29 +02:00
Jeremy Tan
8ebb6969cb GDK W32: Fix positioning of reparented window
MoveWindow should not be used over the pre-existing move/resize
functions, which already correctly position a window with respect
to its parent, while also taking into account the size of window
decorations.

https://bugzilla.gnome.org/show_bug.cgi?id=765100
2016-04-15 13:21:11 +00:00
Matthias Clasen
8a2061f581 inspector: Don't lie with statistics
If we don't have statistics, despite GOBJECT_DEBUG being set,
explain how to fix this.
2016-04-14 22:52:59 -04:00
Matthias Clasen
7552b7fca8 GtkBuilder: Mention how GVariant properties are parsed 2016-04-14 15:30:59 -04:00
Benjamin Otte
3bc58d01e3 iconhelper: Invalidate on clear()
When clearing the icon helper, we need to invalidate it. Otherwise the
previous icon keeps lingering along.
This is not relevant inside gtkiconhelper.c where other code causes the
invalidation, but happens when external code calls
_gtk_icon_helper_clear().

https://bugzilla.gnome.org/show_bug.cgi?id=765066
2016-04-14 15:17:02 -04:00
Matt Watson
7200ac8e56 Fix label css test
The default font size of 10pt will now properly render as 13.33px,
but we shouldn't use the default anyway as that can be controlled
by user settings
2016-04-14 11:52:11 -07:00
Felipe Borges
b0b1bf2f58 cups: make string non-literals translatable again
Notice that C_ just takes string literals as arguments.

https://bugzilla.gnome.org/show_bug.cgi?id=764585
2016-04-14 18:55:21 +02:00
Sebastien Bacher
e92eaaa049 gtkplacessidebar: don't margins in the code
those should rather be defined by the theme
https://bugzilla.gnome.org/show_bug.cgi?id=763768
2016-04-14 11:46:34 +02:00
Carlos Garnacho
46cdb44fdd GtkWindow: Ensure the toplevel is realized before realizing popovers
Otherwise those get a NULL parent window, which is toplevel-y enough
to disembody the popover.

https://bugzilla.gnome.org/show_bug.cgi?id=764060
2016-04-14 11:39:48 +02:00
Jeremy Tan
260d521dd7 GDK W32: Fix bounding rect calculation on window creation The bounding rect specifies the top left and bottom right corners - the bottom right corner must account for the current window position.
https://bugzilla.gnome.org/show_bug.cgi?id=764996
2016-04-13 14:15:36 +00:00
Piotr Drąg
5cf4de8f27 Updated POTFILES.skip 2016-04-13 15:29:48 +02:00
Felipe Borges
027702e453 cups: Fix more "format not a string literal" error
https://bugzilla.gnome.org/show_bug.cgi?id=764585
2016-04-13 14:17:24 +02:00
YunQiang Su
31c5f0dc7f update zh_CN translation 2016-04-13 20:16:00 +08:00
YunQiang Su
4dcd33f2d5 update zh_CN translation 2016-04-13 16:42:20 +08:00
Matt Watson
871b19f9dd reftests: test rem size 2016-04-12 16:59:40 -07:00
Matt Watson
92a496fdec reftests: test em size 2016-04-12 16:59:40 -07:00
Matt Watson
df08fc91bd css: always get default font size in pixels
Fixes a couple bugs...

 - Pixel font sizes in css would render as point sizes.

 - For em font sizes, where the parent size was set and not default, we would
   incorrectly convert a pixel value from points to pixels.

We'll always grab the default font size in pixels so we don't keep confusing
things.

Worth noting that gtk css font-size will still behave differently than the
web. Pango interprets font-size differently.
2016-04-12 16:58:55 -07:00
Sébastien Wilmet
f9ba55eaad app: add missing g_returns
And have the g_returns in the same order as the function parameters.

https://bugzilla.gnome.org/show_bug.cgi?id=764846
2016-04-12 20:32:49 +02:00
Руслан Ижбулатов
c2aa7d0749 GDK W32: Deduplicate reparenting
gdk_window_reparent() already changes children list for old and new parent.
Doing so twice results in a circular reference in the list, which can hang
the application later, for example in gtk_window_show().

https://bugzilla.gnome.org/show_bug.cgi?id=764845
2016-04-12 12:56:11 +00:00
Rico Tzschichholz
c8d1108574 gtk: Annotate GtkFlowBoxCreateWidgetFunc as "transfer full" 2016-04-12 13:30:04 +02:00
Balló György
413d27508f GtkTrayIcon: fix uninitialised variable
https://bugzilla.gnome.org/show_bug.cgi?id=764863
2016-04-11 22:03:48 -04:00
Mohammed Sadik
3f8313c735 documentation: trivial typo fixes in GtkWidget
https://bugzilla.gnome.org/show_bug.cgi?id=764925
2016-04-11 22:03:48 -04:00
Ignacio Casal Quinteiro
a3bff7d41e win32: rollback change and use _gdk_display
This makes usage of _gdk_display again when creating a window.
This is needed because there is a window created when the display
is being initialized, so it becomes a chicken and egg problem.
For now we roll back this to fix the wintab crash but we might
want to fix this again in the future by improving the wintab
initialization.

https://bugzilla.gnome.org/show_bug.cgi?id=764664
2016-04-11 22:25:41 +02:00
Ignacio Casal Quinteiro
c9add3161f win32: add missing empty lines 2016-04-11 22:25:41 +02:00
Arash Mousavi
2f875129f1 Update Persian translations 2016-04-11 23:09:25 +04:30
Matthias Clasen
6e47dad33d gdkdevice: Expose tool as property
This may occasionally be useful.
2016-04-11 12:08:21 -04:00
Matthias Clasen
28042ef336 listbox: Fix css node ordering
When inserting a child at the top, we were not inserting its
css node properly.

https://bugzilla.gnome.org/show_bug.cgi?id=764710
2016-04-11 07:52:39 -04:00
Mohammed Sadik
646492ceea broadway: fix documentation
broadway backend has 0 as the default display port,
which maps to tcp port 8080.

https://bugzilla.gnome.org/show_bug.cgi?id=764835
2016-04-11 07:34:34 -04:00
Emmanuele Bassi
9610675faf recent-manager: Always ensure that size is reset on creation
Whenever we create a new GBookmarkFile, we need to set the size to 0.

https://bugzilla.gnome.org/show_bug.cgi?id=620065
2016-04-10 18:41:23 +01:00
Emmanuele Bassi
cc08a965be recent-manager: Fix the error domain and message on move_item()
Using NOT_FOUND when moving is wrong and unhelpful.

https://bugzilla.gnome.org/show_bug.cgi?id=620065
2016-04-10 18:39:33 +01:00
Emmanuele Bassi
bccef4e41a recent-manager: Emit ::changed on file deletion
This will clear out the list of recently used files, and will allow GVFS
to handle this case.

https://bugzilla.gnome.org/show_bug.cgi?id=693077
2016-04-10 18:35:38 +01:00
Emmanuele Bassi
90d28d6bbf Assign a recent manager if one is set
The GtkRecentAction implementation ignored a GtkRecentManager passed to
its :manager property.

https://bugzilla.gnome.org/show_bug.cgi?id=620065
2016-04-10 18:35:38 +01:00
Sébastien Wilmet
ee58a52a61 app: minor code improvements
- use GDK_EVENT_PROPAGATE
- pass better zero-values to gtk_init(), since the parameters are
  pointers.

https://bugzilla.gnome.org/show_bug.cgi?id=764846
2016-04-10 16:54:07 +02:00
Sébastien Wilmet
1f87c1cc0b app: improve code of extract_accels_from_menu()
sub_model is clearer than "m". And we don't use the key, so we can pass
NULL instead.

https://bugzilla.gnome.org/show_bug.cgi?id=764846
2016-04-10 16:54:07 +02:00
Sébastien Wilmet
687d3eb48f app: use g_set_object()
https://bugzilla.gnome.org/show_bug.cgi?id=764846
2016-04-10 16:54:07 +02:00
Sébastien Wilmet
29971b0cc9 app: don't use deprecated function
gtk_application_add_accelerator() is deprecated, but was still used
inside IGNORE_DEPRECATIONS's.

https://bugzilla.gnome.org/show_bug.cgi?id=764846
2016-04-10 16:54:07 +02:00
Sébastien Wilmet
399e8db336 app: improve doc of gtk_application_get_window_by_id()
https://bugzilla.gnome.org/show_bug.cgi?id=764846
2016-04-10 16:54:07 +02:00
Sébastien Wilmet
40e40b7ffc app: improve doc of gtk_application_set_accels_for_action()
When reading the API for the first time I didn't know what was the
"detailed" action name.

https://bugzilla.gnome.org/show_bug.cgi?id=764846
2016-04-10 16:54:07 +02:00
Sébastien Wilmet
48afd8a5f0 app: avoid code duplication for setting accels
The implementation of the deprecated functions is now based on the
non-deprecated gtk_application_set_accels_for_action().

https://bugzilla.gnome.org/show_bug.cgi?id=764846
2016-04-10 16:54:06 +02:00
Lukas K
8fc1ca1ef2 Fix gtk_scrollable_get_border annotation
https://bugzilla.gnome.org/show_bug.cgi?id=764540
2016-04-10 15:56:29 +02:00
Zahari Yurukov
99e92a60f2 Updated Bulgarian translation 2016-04-10 16:49:27 +03:00
Friedrich Beckmann
fe80230985 quartz: zoom/rotate change compile/runtime check from 10.7 to 10.8
The zoom/rotate change for quartz does not build on 10.7. This change
adds zoom/rotate support in quartz only for 10.8 and following. The
problems is described here:
https://bugzilla.gnome.org/show_bug.cgi?id=760276 and here
https://trac.macports.org/ticket/51052
NSEventPhaseMayBegin was only introduced in 10.8 although documentation
says it is introduced in 10.7. Tests on 10.7 indicate that the phase
property for the Magnify event is not supported at all on 10.7
2016-04-09 18:05:59 -04:00
Matthias Clasen
7dc588c4d3 Add a note about GDK_AXIS_X/Y
These axes mmay or may not be present, best to ignore them.
2016-04-09 17:38:03 -04:00
Matthias Clasen
0d64582688 wayland: Keyboard don't have x/y
These axes are not very useful in the first place, but on a
keyboard they just don't make any sense at all.
2016-04-09 17:31:39 -04:00
Matthias Clasen
1b0c6e4aa1 Mention geometry handling changes in release notes 2016-04-09 17:04:57 -04:00
Matthias Clasen
abff6e23c0 inspector: simplify some code 2016-04-09 15:48:34 -04:00
Matthias Clasen
9044f78751 Move GdkDeviceTool into its own files 2016-04-09 15:48:34 -04:00
Sébastien Wilmet
6db7de3f7b app: fix indentation
And add missing curly braces.
2016-04-09 18:54:42 +02:00
Matthias Clasen
af1c873bca inspector: Use GdkAxes instead of GdkAxisUse 2016-04-09 12:14:33 -04:00
Matthias Clasen
d83ad00f9e inspector: Add an origin mark to the slowdown scale
Makes it easier to get back to the original speed.
2016-04-09 11:56:08 -04:00
Matthias Clasen
e6c408c08a inspector: Give the font scale an entry
This matches what Matt did for the slowdown.
2016-04-09 11:56:08 -04:00
Sébastien Wilmet
b3dc473057 docs: trivial fixes in GtkApplication-related documentation 2016-04-09 09:45:33 +02:00
Matt Watson
a970ba5ef6 animatedstyle: don't share styleanimations
Because of our port of css animation and css transition to
progress tracker, we should not think of animated styles as
immutable objects that can map any timestamp to css values.
Rather, timestamps can correspond to different values depending
on the value of GTK_SLOWDOWN over the course of the animation.

To keep animated styles and style animations totally immutable,
we will not share styleanimations between animatedstyles, and
make a new copy of a styleanimation for each timestamp.
2016-04-08 16:09:30 -07:00
Matt Watson
7b68bdb831 animatedstyle: just ref current style if timestamp the same 2016-04-08 16:09:30 -07:00
Matt Watson
6a88ac3b4c animatedstyle: fail to create new style if timestamp goes backwards
With slowdown factor, we will only we be able to handle timestamps
that monotonically increase.
2016-04-08 16:09:30 -07:00
Matt Watson
2800b00e1d cssanimation: port to progress tracker 2016-04-08 16:09:30 -07:00
Matt Watson
50e057e025 csstransition: port to progress tracker 2016-04-08 16:09:30 -07:00
Matt Watson
511f138328 entry: port to progress tracker 2016-04-08 16:09:30 -07:00
Matt Watson
d57ebe2de7 progressbar: port to progress tracker 2016-04-08 16:09:30 -07:00
Matt Watson
5237b7a6b0 scrolledwindow: port indicator fade to progress tracker 2016-04-08 16:09:30 -07:00
Matt Watson
dc8b80cd32 popover: port to progress tracker 2016-04-08 16:09:30 -07:00
Matt Watson
7ad64a20aa switch: port to progress tracker 2016-04-08 16:09:30 -07:00
Matt Watson
2ff62595ed revealer: port to progress tracker 2016-04-08 16:09:30 -07:00
Matt Watson
62b224a8df stack: skip first frame for animations
Not the ideal solution for this problem, but in practice leads to
much better performance on lower end hardware.

Stack does a double draw on the first frame of its animation, of
both the old contents (into a cairo surface) and the new contents.
Homogeneous stacks only need to reallocate contents on the first
frame.

On lower powered hardware where our frames will be a good deal
slower than the refresh rate anyway, we can assure a smother
experience by waiting a frame to start tweening where frame duration
will be more consistent.
2016-04-08 16:09:30 -07:00
Matt Watson
3909f818c4 stack: port to progress tracker 2016-04-08 16:09:30 -07:00
Matt Watson
46b120b35e inspector: add slider to control slowdown factor 2016-04-08 16:09:29 -07:00
Matt Watson
f2979323bf progresstracker: add GTK_SLOWDOWN environment variable
As we consolidate widgets to use progress tracker, this will allow
us to control the speed of all animations in a centralized place
2016-04-08 16:09:29 -07:00
Matt Watson
e71d09e9cb progresstracker: simple struct to track animation progress 2016-04-08 16:09:29 -07:00
Carlos Garnacho
f1cbd9ca13 demos: Show slider/rotation axes in "Event axes" demo 2016-04-08 17:34:29 +02:00
Carlos Garnacho
057ae4ace0 wayland: Propagate slider/rotation axes from tools to devices 2016-04-08 17:34:29 +02:00
Olivier Fourdan
b3ca11a6cb test: do not remove files on distclean
bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=764686
2016-04-08 17:00:12 +02:00
Olivier Fourdan
83e775147f wayland: do not update shadows for child windows
glade-previewer places a gtkwindow inside another toplevel gtkwindow,
updating the shadow width for the client induces a busy loop where the
parent will grow continuously until it crashes gnome-shell/mutter.

To avoid the loop, do not update the shadow width if not dealing with a
toplevel window.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=761651
2016-04-08 16:59:36 +02:00
Carlos Garnacho
d3a3d0673f gdkevents: Fix GDK_AVAILABLE_IN annotation
These functions have just been added. An oversight prior to merging
wayland tablet.
2016-04-08 15:09:36 +02:00
Carlos Garnacho
6628ffd686 wayland: Check the tablet manager before creating a wp_tablet_seat
This makes things non-crashy if the compositor doesn't provide wp_tablet_manager
2016-04-06 17:29:11 +02:00
Carlos Garnacho
48239ad720 gtk3-demo: Add tool information to "Event axes" demo
Print tool type and serial, if found.
2016-04-06 16:12:13 +02:00
Carlos Garnacho
cd1604ae1c wayland: Hook tablets to GdkSeat
Those are now also grabbed togetther with other master pointers,
so everything is able to interoperate on eg. popups triggered by
other devices.
2016-04-06 16:12:13 +02:00
Carlos Garnacho
fb32f11e3d wayland: Translate pen buttons into button events
up/down already take GDK_BUTTON_PRIMARY, we translate BTN_STYLUS(2)
into GDK_BUTTON_MIDDLE/SECONDARY.
2016-04-06 16:12:12 +02:00
Stephen Chandler Paul
4f6bc82052 Wayland: Translate wl_tablet.down/up into button events
These are sent with button=GDK_BUTTON_PRIMARY, axes must be also
included in these events, in addition to motion ones.
2016-04-06 16:12:12 +02:00
Stephen Chandler Paul
0f6be24e28 Wayland: Translate tool axes in motion events
On wayland, such axes are per-tool, we must update device capabilities
on the fly as new tools enter proximity, first the slave device so
it matches the current tool, and then the master device so it looks
the same than the current slave device.
2016-04-06 16:12:12 +02:00
Stephen Chandler Paul
72884a274c Wayland: Implement proximity/crossing/motion event emission on tablets
Each tablet will update its own GdkWaylandPointerData separately. This
commit only adds plain motion event emission so far, no axes are managed
yet.
2016-04-06 16:12:12 +02:00
Stephen Chandler Paul
7cc0850a5a Wayland: Add initial support for drawing tablets
Only the management of tablets and tools is added so far. No tablet events
are yet interpreted.

As it's been the tradition in GTK+, erasers are split into their own device,
whereas the rest of the tools are meant to be routed through the
GDK_SOURCE_PEN device. Both pen/eraser devices are slaves to a master
pointer device, separate to wl_pointer's. This is so each tablet can
maintain its own cursor/positioning accounting.

Signed-off-by: Stephen Chandler Paul <thatslyude@gmail.com>
2016-04-06 16:12:12 +02:00
Carlos Garnacho
d4d032795d build: Bump wayland-protocols dependency to 1.3
Needed for tablet support
2016-04-06 16:12:12 +02:00
Carlos Garnacho
45b4d765c0 wayland: Refactor master pointer data into a separate struct
This will enable multiple "pointers" to have separate data here.
Will come out useful when adding support for tablets, as they
will have a separate cursor for all purposes.
2016-04-06 16:12:12 +02:00
Stephen Chandler Paul
af894af386 gdkcursor-wayland.c: Minor indentation fix
Changed the tabs to spaces

Signed-off-by: Stephen Chandler Paul <thatslyude@gmail.com>
2016-04-06 16:12:12 +02:00
Carlos Garnacho
6febc22918 x11: Use XInternAtom directly on poking device hardware IDs
This way we don't cache the property if it wasn't previously there,
added by the driver itself. Bailing out is due there.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
8e917093df demos: Enable multidevice behavior on event-axes demo
On wayland we get separate master/slaves for each tablet, we will
need to receive crossing events for each master pointer if there's
more than one around.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
b465ede53b demos: Set crossing events mask explicitly on event-axes demo. 2016-04-06 15:43:29 +02:00
Carlos Garnacho
89b7f859a4 gtk3-demo: Show multiple master devices on the "Event axes" demo 2016-04-06 15:43:29 +02:00
Stephen Chandler Paul
505dac94be gtk-demo: Add support for distance in event_axes
Signed-off-by: Stephen Chandler Paul <thatslyude@gmail.com>
2016-04-06 15:43:29 +02:00
Stephen Chandler Paul
6c2a078bf2 gtk-demo: Use GdkAxisUse instead of axis labels
Axis labels are very X specific, and are not really possible to port to other
backends such as Wayland. As such, it makes more sense to use GdkAxisUse and
GdkAxisUseFlag in order to determine the axis capabilities of a device and draw
their axes.

Signed-off-by: Stephen Chandler Paul <thatslyude@gmail.com>
2016-04-06 15:43:29 +02:00
Stephen Chandler Paul
9e72d24b23 GdkDeviceTool: Add GdkAxisFlags info to tablet tools
Different tools may have different sets of axes, we should store that
info somewhere.
2016-04-06 15:43:29 +02:00
Stephen Chandler Paul
8b2fd3ed1b GdkDeviceTool: Add GdkDeviceToolType to identify the physical tool type
Because there are multiple different types of styluses that can be used with
tablets, we have to have some sort of identifier for them attached to the
GdkDeviceTool, especially since knowing the actual tool type for a GdkDeviceTool
is necessary for matching up a GdkDeviceTool with it's appropriate
GdkInputSource in Wayland (eg. matching up a GdkDeviceTool eraser with the
GDK_SOURCE_ERASER GdkInputSource of a wayland tablet).

Signed-off-by: Stephen Chandler Paul <thatslyude@gmail.com>
2016-04-06 15:43:29 +02:00
Carlos Garnacho
9a81b65959 x11: Set GdkDeviceTool on motion/button events
The last known tool from the device is used here. If no tool is known,
the event will just have a NULL pointer there.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
0287ec7e89 x11: Update GdkDevices on "Wacom Serial IDs" property changes
This takes care of the emission of GdkDevice::tool-changed, plus the
updating of the internal device accounting.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
6286883e8d gdk: Forward tools in client-side windows event translation 2016-04-06 15:43:29 +02:00
Carlos Garnacho
6d73e75153 events: Add gdk_event_[gs]et_device_tool()
This getter/setter will manage the tool pointer in GdkEventPrivate. The
setter should be most notably used by backends.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
5a25c5a9f2 GdkSeatDefault: Add functions to add/remove tools
This may be used by any backend using GdkSeatDefault as its seat
implementation.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
6824dd7b8a gdk: Add GdkSeat::tool-added/removed signals
And a helper function to lookup a tool from the seat. Those are
tracker per-seat, and may be shared across devices.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
d5f141a9b7 gdkdevice: Add GdkDevice::tool-changed signal
On the devices and backends that support it, this signal will be emitted
on slave/floating devices whenever the tool they are interacting with
changes. These notifications may also work as a sort of proximity events,
as the tool will be unset when the pen moves too far.

For backends, gdk_device_update_tool() has been included, all that should
be done on their side is just calling this whenever any tool might have
changed.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
4ba95b09ba gdkdevice: Add GdkDeviceTool to identify device tools
GdkDeviceTool is an opaque object that can be used to identify a given
tool (eg. pens on tablets) during the app/device lifetime. Tools are only
set on non-master devices, and are owned by these.

The accounting functions are made private, the only public call on
GdkDeviceTool so far is gdk_device_tool_get_serial(), useful to identify
the tool across runs.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
0f962f1075 device: Add gdk_device_get_axes(), and ::axes property
This returns a GdkAxisFlags, holding the axes currently available
through this device.
2016-04-06 15:43:29 +02:00
Carlos Garnacho
32d7ba76b3 device: Add distance/rotation/slider GdkAxisUse values
These are possible to handle in tablets, so add a value for these in the
axis enum.
2016-04-06 15:43:29 +02:00
Руслан Ижбулатов
adff59843b GDK W32: Don't move windows into top-left corner on style change
This fixes a bug that was introduced by db1b24233e.
The reason why 0:0 coordinates were passed was that SWP_NOREPOSITION was
misinterpreted as SWP_NOMOVE. That is not the case - SWP_NOREPOSITION
prevents owner Z-order change, not the window position change.
2016-04-06 10:22:15 +00:00
Olivier Fourdan
be6784c7ea wayland: Do not resize with the same size
gnome-control-center is calling gtk_window_resize() on configure-event
signals which leads to a busy loop.

Avoids such a busy loop by not re-configuring a window with the same
size, unless this is coming from and xdg-shell configure.

bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=764374
2016-04-05 18:22:40 +02:00
Wouter Verhelst
28fc4de6aa Clarify that one cannot use the same variable
A naive way to perform an action on all parent nodes of a given node
could be to do:

while(gtk_tree_model_iter_parent(model, &iter, &iter)) {
	/* perform some action on iter here */
}

However, since gtk_tree_model_iter_parent() will initialize the iterator
pointed to by the second parameter before performing the lookup, this
will not work.

Explicitly document this behaviour.

Signed-off-by: Wouter Verhelst <w@uter.be>

https://bugzilla.gnome.org/show_bug.cgi?id=573380
2016-04-05 11:01:53 -04:00
Bastien Nocera
93363551d7 cups: Fix "format not a string literal" error
https://bugzilla.gnome.org/show_bug.cgi?id=764585
2016-04-05 12:58:58 +02:00
Bastien Nocera
becc0d45b6 recent-manager: Fix "format not a string literal" error
https://bugzilla.gnome.org/show_bug.cgi?id=764585
2016-04-05 12:58:58 +02:00
Bastien Nocera
6a5224ffcb file-chooser-widget: Fix "format not a string literal" error
https://bugzilla.gnome.org/show_bug.cgi?id=764585
2016-04-05 12:58:58 +02:00
Bastien Nocera
a8c59543cf about-dialog: Fix "format not a string literal" errors
A non-intrusive fix.

https://bugzilla.gnome.org/show_bug.cgi?id=764585
2016-04-05 12:58:58 +02:00
Bastien Nocera
bf8653c2e1 ui-manager: Fix "format not a string literal" errors
Quite a bit of code movement, but necessary to build with the
default format errors produced by newer versions of GCC.

https://bugzilla.gnome.org/show_bug.cgi?id=764585
2016-04-05 12:58:58 +02:00
Lapo Calamandrei
85e37925f0 Adwaita: transparent textview border border
So it will play nicely with gedit color combinations.
See https://bugzilla.gnome.org/show_bug.cgi?id=764203
2016-04-04 12:03:11 +02:00
Tom Tryfonidis
d5b78d474a Updated Greek translation
(cherry picked from commit 40afffb9fd)
2016-04-04 09:28:33 +00:00
Matthias Clasen
2f0354fcf9 Move GdkDeviceManager to deprecated section
It has been superseded by GdkSeat.
2016-04-03 23:41:20 -04:00
Matthias Clasen
8ef12fda83 Add an index for 3.22 api additions 2016-04-03 23:33:57 -04:00
Matthias Clasen
9bfc8371fe wayland: Remove an unused vfunc 2016-04-03 18:18:17 -04:00
Matthias Clasen
59e40f3d6f wayland: Remove unused field 2016-04-03 18:18:17 -04:00
Kristjan SCHMIDT
62a7447c5f Updated Esperanto translation 2016-04-03 02:20:00 +02:00
Kristjan SCHMIDT
f052f1554b Updated Esperanto translation 2016-04-03 00:46:18 +02:00
Timm Bäder
58891c1fe5 headerbar: Don't underallocate the label box
We use a label_sizing_box to make sure the headerbar can always contain
both a title and a subtitle without resizing when showing/hiding either
of them, but we should only do that for the height; the min width of the
label_box can be larger than that of the label_sizing_box.
2016-04-02 17:03:52 +02:00
Lapo Calamandrei
d23c6c6246 Adwaita: style textview border
see https://bugzilla.gnome.org/show_bug.cgi?id=764203
2016-04-02 16:24:52 +02:00
Lapo Calamandrei
f2f1725b40 Adwaita: cosmetic fixes 2016-04-02 16:03:02 +02:00
Carlos Garnacho
2784eacf00 wayland: Avoid NULL slave devices in GdkSeat::get_slaves
Just because we're asked for a capability, it doesn't mean we have
it.
2016-04-01 19:10:36 +02:00
Lapo Calamandrei
b1205a9c96 Adwaita: set secondary caret color to selection blue
see https://bugzilla.gnome.org/show_bug.cgi?id=764204
2016-04-01 16:48:13 +02:00
Rui Matos
4bfa6c30bf gtkwindow: Don't allow unresizable windows to be smaller than required
Commit cdc580463e made it so that
unresizable windows can't be smaller than a set default size but it
lost the logic to ensure these windows remain at least big enough to
comply with their requisition.

https://bugzilla.gnome.org/show_bug.cgi?id=764174
2016-04-01 15:30:03 +02:00
Timm Bäder
84dfda1a2b widget: Always warn when underallocating widgets 2016-04-01 10:04:25 +02:00
Matthias Clasen
4c698bc824 wayland: Print out more debug info
Print out the subpixel layout and frame rates that the compositor
sends us.
2016-03-31 20:31:00 -04:00
Alexander Larsson
4c10800bcc gdkwindow: Remove O(n-children) code in gdk_window_invalidate
When we invalidate a window we need to also invalidate all child windows
that are native (non-native are automatically invalidated as we track
invalidation once per native window only). This was done in a pretty
inefficient way, recursing over the entire tree.

This makes the invalidation much faster by only looking at the native
children of the native window we're in, filtering out those that
are not a descendant of the client side window we're interested in.
Given that there are very few native subwindows this is much faster.
2016-03-31 18:56:18 +02:00
Matthias Clasen
d1acb786a7 icon theme: Make the builtin hicolor index match reality
We were missing all of the status directories, and a few sizes.
This was causing us to not find image-missing on systems without
hicolor icon theme (this basically only happens on Windows).

https://bugzilla.gnome.org/show_bug.cgi?id=764378
2016-03-31 07:12:50 -04:00
Theppitak Karoonboonyanan
a93e477a4d Updated Thai translation. 2016-03-31 09:13:42 +07:00
Matthias Clasen
6faafbff6e Use AM_DISTCHECK_CONFIGURE_FLAGS
This is preferred over DISTCHECK_CONFIGURE_FLAGS in modern automake.
2016-03-30 21:54:04 -04:00
Matthias Clasen
d8da5879aa Adwaita: theme acceleditor > label
We need to have an opaque background here, otherwise the underlying
cell shines through.

https://bugzilla.gnome.org/show_bug.cgi?id=764376
2016-03-30 19:50:22 -04:00
Matthias Clasen
72178fd0c9 Accel cell renderer: Set a css name
Give the event box we use here the distinctive name "acceleditor".
2016-03-30 19:50:22 -04:00
Benjamin Otte
71a5f07620 widget: queue a redraw only if resize highlighting is enabled
e8aa9b0440 introduced a new debug mode
that highlights resizes. Unfortunately it has the side effect of
always queueing redraws even when the debug mode is not enabled.
Make the redraw conditional.
2016-03-30 21:44:58 +02:00
Debarshi Ray
fd143a2b38 window: Make the sample code obey the party line on geometry widgets
The geometry_widget parameter is deprecated [1]. If one is passed, we
remove GDK_HINT_BASE_SIZE and GDK_HINT_RESIZE_INC from the mask [2].

[1] commit 08974a1e9a
[2] commit f7cc4abbad

https://bugzilla.gnome.org/show_bug.cgi?id=764321
2016-03-30 13:21:50 +02:00
Руслан Ижбулатов
bde5281ae8 GDK W32: Use a dumb window class for decorative windows
Currently only one kind of decorative window is in use - the shape
indicator that is shown when snapping windows to the edge of the screen.

When normal toplevel class is used, its window procedure expects certain
motions from GDK (passing user data to CreateWindowEx(), registering
handle in a hash map etc), and might crash if that is not done.

Dumb window doesn't require anything, it can just be.

https://bugzilla.gnome.org/show_bug.cgi?id=763013
2016-03-30 09:04:46 +00:00
Руслан Ижбулатов
cfbb8c5252 GDK W32: Add/subtract shadow when (un)snapping
Now halfleft/halfright/fullup snaps do hug screen edges as intended.

Documents AeroSnap behaviour when snapped windows are drag-resized
(currently this implementation handles this in a very simplistic way).

Don't believe GTK when it tells us that window shadow is 0, preserve
previous values (but do remember that GTK wants no shadow, in case
we need that).

Fixes a couple of bugs in unsnapping (check offset against the half
of the window; don't put pointer in the middle of the window vertically
if it still fits in the top half).

https://bugzilla.gnome.org/show_bug.cgi?id=763013
2016-03-30 09:04:37 +00:00
Руслан Ижбулатов
f853283d7b GDK W32: Add/subtract shadow when drag-resizing
Implements gdk_win32_window_set_shadow_width().
Uses shadow width/height to adjust max tracking size, allowing
windows to be drag-resized to cover the whole desktop.

Also uses SM_C*VIRTUALSCREEN instead of SM_C*MAXTRACK.

https://bugzilla.gnome.org/show_bug.cgi?id=763013
2016-03-30 09:03:56 +00:00
Руслан Ижбулатов
b0131616b2 GDK W32: Draw snap indicators for AeroSnap
Indicator is a bare layered click-through native window,
painted completely by GDK, including animation.

This commit also isolates some of the more spam-ish debug logging
under ifdef.

This commit also changes the system metric used for maximal window
height for the snapping purposes. Turns out, SM_CYMAXTRACK is way
too large, use SM_CYVIRTUALSCREEN instead.

https://bugzilla.gnome.org/show_bug.cgi?id=763013
2016-03-30 09:03:41 +00:00
Руслан Ижбулатов
b420c53773 GDK W32: Add drag-to-snap feature to AeroSnap
This implements the part of AeroSnap that snaps windows when you
drag them (while moving or resizing) to the edge of the screen.

It also fixes drag behaviour for snapped and maximized windows
(if such windows are dragged, first they must be unmaximized/unsnapped).

Note that this code does not take into account the shadow width, and
because of that the under-pointer-position-preserving window moves
might not look as such for maximized windows, which lack the shadow
when maximized, but do have the shadow when unmaximized.

This commit also doesn't cover some corner-cases the same way AeroSnap does.

Also, the snapping indicator (which is supposed to be a window shape that
shows where the window will be if the drag op is stopped at its current
point) is not being drawn, all routines responsible for its creation,
moving and drawing are stubs.

https://bugzilla.gnome.org/show_bug.cgi?id=763013
2016-03-30 09:00:07 +00:00
Руслан Ижбулатов
2ea96cf946 GDK W32: Improve AeroSnap - don't resize windows that fit
This is what AeroSnap does. If a window is being unsnapped on
a new monitor, check if the work area is large enough for the
window to fit in its normal size. If the window fits, just
reposition it so that the ratio of
left-window-edge-to-screen-edge / right-window-edge-to-screen-edge
remains the same, without scaling the window.

https://bugzilla.gnome.org/show_bug.cgi?id=763013
2016-03-30 09:00:02 +00:00
Руслан Ижбулатов
0ce217cf94 GDK W32: Re-implement AeroSnap for CSD windows
It works exactly like AeroSnap.
Except for shift+win+left/right, which is left for AeroSnap
to handle (AeroSnap takes action before we get the message,
so there's no way for us to override it).
The only thing that doesn't work is shift+win+left/right on
a maximized window, for reasons unknown at the moment.

This only implements winkey+stuff behaviour of AeroSnap,
not the drag-to-the-edge-and-something-funny-happens one.

https://bugzilla.gnome.org/show_bug.cgi?id=763013
2016-03-30 08:59:56 +00:00
Debarshi Ray
27a1b50bc6 window: Fix gtk_window_set_geometry_hints documentation
The geometry_widget parameter is ignored from 3.20 onwards [1], not
3.18 as mentioned in the documentation.

[1] commit 08974a1e9a

https://bugzilla.gnome.org/show_bug.cgi?id=764321
2016-03-29 19:31:59 +02:00
Emmanuele Bassi
6267b6b6eb Bump to 3.21.0
Otherwise newly added API will start warning.
2016-03-29 16:24:14 +01:00
Руслан Ижбулатов
77eebbda5c GDK W32: Erase hidden layered windows before showing them
If a layered window was hidden and is made visible, erase its
contents before showing it. GDK will schedule a redraw, but until
then we generally don't want to show old contents.

https://bugzilla.gnome.org/show_bug.cgi?id=763783
2016-03-29 14:30:19 +00:00
Руслан Ижбулатов
cea8c29a26 GDK W32: Implement show_window_menu()
This is achieved by sending undocumented message WM_SYSMENU
to the window.
Before doing that, the window is given WS_SYSMENU style
(to enable window menu) and some combination of
WS_MAXIMIZEBOX (for "Mazimize" item)
WS_MINIMIZEBOX (for "Minimize" item)
WS_SIZEBOX (for "Size" item)
depending on which operations are currently permissible.

WM_SYSMENU is processed by DefWindowProc(), which results
in showing the window menu. We remove extra styles
at the first opportunity (WM_INITMENU message), as they
alter the way our window is rendered.

https://bugzilla.gnome.org/show_bug.cgi?id=763851
2016-03-29 13:47:49 +00:00
Lapo Calamandrei
38f94194a6 Adwaita: set caret-color for drop targets 2016-03-29 15:06:11 +02:00
Lapo Calamandrei
e7cd3dddd8 Adwaita: cosmetic fix 2016-03-29 15:01:57 +02:00
Matthias Clasen
43a568395b Add some tests for GdkRectangle
In particular, we're testing corner cases with empty rectangles
here.
2016-03-28 19:54:55 -04:00
Matthias Clasen
669336cf95 Expand visual tests a bit 2016-03-28 19:28:57 -04:00
Matthias Clasen
785a425516 Add tests for seat apis
These are just some basic sanity tests.
2016-03-28 19:22:36 -04:00
Matthias Clasen
6f2d5a6290 Move autotestkeywords to testsuite
All the 'make check' and installed tests are now in testsuite/,
and tests/ is just a collection manual test programs.
2016-03-28 17:56:13 -04:00
Benjamin Otte
a91237d65e window: Remove suspicious branch
While this commit was found to make emacs windows shrink (and it was
reverted in the gtk-3-20 branch for that reason), that was the only
observed breakage, while the reversal broke several of our unit tests.

Closer study of the emacs sources revealed that it does some really
unsupportable things like doing its own X event handling behind GTK+'s
back and freely mixing sizes of GtkWindows and GdkWindows obtained in
various ways. I've filed a bug against emacs with suggestions for how
to avoid the shrinking window, regardless of this commit.

Original commit message:

It seems this branch is not needed anymore. It was originally added in
1999 to support gtk_widget_realize(), but all those reasons seem
obsolete today.
Instead just call gtk_widget_realize().

If you end up at this commit when bisecting:
There is no bug that made me remove this code, it was purely meant to be
cleanup / dead code removal. I seem to have introduced a new bug or
bisecting wouldn't have let you here. So it seems we should just revert
this commit.
2016-03-28 17:05:09 -04:00
Timm Bäder
aeed695e26 gtkapplication: _get_app_menu can return NULL 2016-03-28 18:18:20 +02:00
Aurimas Černius
a9f94ba67f Updated Lithuanian translation 2016-03-28 17:48:10 +03:00
Matthias Clasen
568feffa69 Use dngettext instead of ngettext
Since we are a library, we have to pass the domain explicitly.

https://bugzilla.gnome.org/show_bug.cgi?id=764261
2016-03-27 19:00:31 -04:00
Matthias Clasen
5dabfa7b39 places sidebar: Plug a small memory leak
_gtk_trash_moniotr_get_icon is transfer full, so we have
to unref the icon.
2016-03-27 18:42:25 -04:00
Cosimo Cecchi
b6b53fc19c GtkClipboard: fix a typo 2016-03-27 08:39:44 -07:00
Cosimo Cecchi
efea673c31 GtkCssSection: remove duplicated documentation
Fixes a build time warning.
2016-03-27 08:35:13 -07:00
Cosimo Cecchi
26f9dc6508 scale: fix marks node position for scales with value
We should only count the value node as the first/last one if its
position matches.
2016-03-26 22:43:53 -07:00
Cosimo Cecchi
9f48b6b07a range: use gadget pointers for grab/mouse locations
Simplify code and remove the mouse location indirection.
2016-03-26 22:43:53 -07:00
Cosimo Cecchi
6efc06ef5c scale: remove impossible case
We only create the gadget when the markup is not empty, so we don't
need to check again here.
2016-03-26 22:43:53 -07:00
Cosimo Cecchi
b989910293 scale: cache pango layouts for mark labels
Constantly creating pango layouts while drawing means that animations
will be slow. Instead, cache the pango layout in the mark structure.
2016-03-26 22:43:53 -07:00
Matthias Clasen
7e15ac8927 Add an index for 3.22 api additions 2016-03-26 23:32:45 -04:00
Matthias Clasen
100cf2442e Add a function to get the selection of a clipboard
This was requested in
http://bugzilla.gnome.org/show_bug.cgi?id=730821
2016-03-26 23:30:21 -04:00
Matthias Clasen
cb738bc201 Remove private clipboard api from public headers 2016-03-26 23:17:53 -04:00
Matthias Clasen
0d0980f30e filter model: Mark property nicks and blurbs for translation
Better descriptions are not going to happen... might as well
admit it.
2016-03-26 18:59:02 -04:00
Matthias Clasen
b1b271ab09 Drop some more code
This ifdefed out function was only used in the code I just nuked,
so it can go as well.
2016-03-26 18:53:55 -04:00
Matthias Clasen
543ad3aabb file chooser: Drop unused code
We've never restored filechooser positions, and we aren't going to.
2016-03-26 18:52:04 -04:00
Matthias Clasen
59d8cba482 wayland: Get min/max keycode from xkb keymap
Instead of hardcoding 8/255 here.
2016-03-26 18:48:27 -04:00
Matthias Clasen
7249897dc8 Drop irritating FIXMEs in docs
There is nothing to fix here, so don't make gnome-builder pick
these lines up for its todo list.
2016-03-26 18:39:39 -04:00
Matthias Clasen
8d874cf0f8 Stop using pango_split_file_list
Add a copy of this deprecated utility in gtkutils.c and use
it instead of the pango API.
2016-03-26 18:19:37 -04:00
Matthias Clasen
6994fe03ee Split off copied pango utils in their own source
This will make it easier to use them in more than one place.
2016-03-26 18:12:16 -04:00
Matthias Clasen
e2d89b9931 Revert "window: Remove suspicious branch"
This reverts commit 67ab00e01e.

Bisection showed that this commit caused emacs windows to shrink
to a small size when first shown.
2016-03-26 17:38:40 -04:00
Matthias Clasen
1057f249bd wayland: Add debug output for pixel formats
Use GDK_DEBUG=misc to see information about wl_shm pixel formats
supported by the compositor.
2016-03-26 16:08:01 -04:00
Matthias Clasen
f06fc8d378 Deprecate gdk_visual_get_colormap_size
Since we don't have API for colormaps anymore, this is not
a useful function.
2016-03-26 15:15:28 -04:00
Matthias Clasen
ce0074b034 Deprecate gdk_visual_get_byte_order
This function is only useful when working with XImages,
and is not meaningfully implemented in other backends.
2016-03-26 15:07:09 -04:00
Matthias Clasen
c6cdddd68d wayland: Fix up visual implementation
Don't return visuals that don't match the requested depth
and/or visual type.
2016-03-26 14:58:48 -04:00
Matthias Clasen
89973118f3 Add some more visual tests
These are just basic tests to ensure that the visual implementation
of a backend is sound.
2016-03-26 14:56:36 -04:00
Matthias Clasen
aa4c5459b7 Deprecate gdk_visual_get_bits_per_rgb
This function is pretty useless, since the Wayland backend returns
0 for this, and the Windows backend 42 (!).
2016-03-26 14:20:23 -04:00
Matthias Clasen
c448061d49 Add version macros for 3.22 2016-03-26 14:08:10 -04:00
Matthias Clasen
7fe1037e84 range: Simplify highlight allocation
Since we are really only interested in the center point of the
slider allocation, the pre-computed slider geometry is perfectly
fine, just use it always. This avoids the complication with
gadget visibility.
2016-03-26 13:50:42 -04:00
Matthias Clasen
e33188ad41 range: Avoid miscalculating highlight allocation
The slider gadget may be turned invisible as side-effect of
gtk_range_calc_slider(). If that happens,
gtk_css_gadget_get_content_allocation() returns { 0, 0, 0, 0},
which leads us to calculate a negative allocation for the highlight
node. Avoid this, by just reusing our already calculated slider
allocation in this case (it is not technically the same as the
content, allocation, but the difference hardly matter here.

https://bugzilla.gnome.org/show_bug.cgi?id=764022
2016-03-26 10:50:00 -04:00
Matthias Clasen
2374e2aa3b Add a test for the system rgba visual
The main point of this test is to ensure that the pixel_details
getters work as expected.
2016-03-26 10:10:57 -04:00
Matthias Clasen
e48e29db3b wayland: Fully initialize the visual
The pixel details (mask, shift and precision) are supposed to
be filled in for TrueColor visuals.
2016-03-26 10:10:57 -04:00
Matthias Clasen
8206b824fa Make gdk_visual_get_*_pixel_details work again
These functions are supposed to return the numbers of consecutive
1 bits in each components mask as precision. However, due to a
copy-paste mistake when this code was moved around in
commit 70d689cddd, the precision
was always reported as zero. This affects only a few applications
that directly set window background on X11 windows, such as emacs.

https://bugzilla.gnome.org/show_bug.cgi?id=764210
2016-03-26 09:35:53 -04:00
Jordi Mas
120c296ff6 Update Catalan translation 2016-03-26 08:10:28 +01:00
Matthias Clasen
82bde5b84d HighContrastInverse: Fix suggested-action colors
Choose a suitable foreground color instead of hardcoding white.

https://bugzilla.gnome.org/show_bug.cgi?id=764170
2016-03-25 22:45:55 -04:00
Matthias Clasen
fab9c17b89 gtk3-demo: Show more button styles
Add examples for suggested-action and destructive-action
buttons in the style classes example.
2016-03-25 22:45:55 -04:00
Matthias Clasen
258ba6c8a4 gtk3-demo: Rename "CSS Theming" group
Call it just "Themeing" to avoid the repetition of CSS.
2016-03-25 22:45:55 -04:00
Balázs Úr
12bc02db94 Updated Hungarian translation 2016-03-26 00:47:32 +00:00
Руслан Ижбулатов
b9b67e05e1 GDK W32: Optimize clipboard handling a bit
Delay as long as possible before calling OpenClipboard(),
call CloseClipboard() as quickly as possible after that.
Don't call OpenClipboard() when we don't need to (for example,
we don't need to open clipboard to call GetClipboardOwner()).

Also, print out actual W32 error code in some cases where it
was not printed before.

https://bugzilla.gnome.org/show_bug.cgi?id=763907
2016-03-26 00:03:50 +00:00
Руслан Ижбулатов
692c3b11ff GDK W32: Print error code along with the error message
Error codes can be easily looked up in an error code list
and/or googled up. Error messages, while descriptive, often
describe the wrong thing, and the messages themselves are not
part of the documentation of a function, unlike error codes.
It would be preferable to have the code, or both.

https://bugzilla.gnome.org/show_bug.cgi?id=763913
2016-03-25 22:04:58 +00:00
Руслан Ижбулатов
c4c00299b2 GDK W32: Print more debug info about events
1) Print timestamps for events
2) Print wParam and lParam (in hex form) for messages

https://bugzilla.gnome.org/show_bug.cgi?id=763913
2016-03-25 22:04:57 +00:00
Piotr Drąg
24d2f85b23 Updated POTFILES.in 2016-03-25 21:27:21 +01:00
Christoph Reiter
72346cb209 inspector: add slider for adjusting the font scale
https://bugzilla.gnome.org/show_bug.cgi?id=761435
2016-03-25 16:10:28 -04:00
Matthias Clasen
826f729b6f stack switcher: Add a missing include 2016-03-25 15:52:33 -04:00
Matthias Clasen
6ac7b54378 dnd: Move GtkDragDest to a separate file
This follows what was done for GtkDragSource in
415030d25f and shaves another
500 lines off gtkdnd.c.
2016-03-25 15:37:20 -04:00
Wolfgang Stöggl
db93386f23 Updated German translation
(cherry picked from commit 5e5372ce74)
2016-03-25 18:20:37 +00:00
Wolfgang Stöggl
ea21ee3039 Updated German translation
(cherry picked from commit c08f4bd2a9)
2016-03-25 18:17:52 +00:00
Mohammed Sadik
d47c7f7ba0 gtkaboutdialog: don't break ABI in GtkLicense enum
As the elements in the enum are not explicitly numbered, inserting an
element between some other elements shall change the values of elements
after the insertion. So append the new element at the end.

Anyway, no code should rely on the position of an element in an enum.

https://bugzilla.gnome.org/show_bug.cgi?id=763850
2016-03-25 18:38:46 +01:00
Matthias Clasen
4c8557fa35 Add a css node test for scales 2016-03-25 13:22:11 -04:00
Olivier Fourdan
5d34cf64a2 popover: raise when showing
Some other widget might have mapped and raised another child window of
the toplevel in the meantime, causing the popover window to be covered.

Raise the popover window to avoid the issue.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=763627
2016-03-25 17:23:34 +01:00
Jordi Mas
19034a2352 Fix Catalan translation 2016-03-25 14:27:16 +01:00
Milo Casagrande
fae1effec9 Updated Italian translation
(cherry picked from commit be624e71f4)
2016-03-25 10:58:40 +00:00
Razvan Chitu
65687ba392 trashmonitor: change trash monitoring process
The trash is monitored for state changes - going from empty to non-empty and the
other way round. Monitoring is done by handling change signals from a regular
file monitor. On each signal, an enumeration of the trash contents is started in
order to see if it is empty or not. This causes issues when many files are
trashed, because the gvfs trash backend is flooded with enumeration requests,
resulting in CPU usage spikes. In order to fix this, the "item-count" attribute
of the trash should be queried instead.

Replace asynchronous enumeration with asynchronous information query and update
the trash state based on the "item-count" attribute. Emit state change signal
only when the state actually changes.

https://bugzilla.gnome.org/show_bug.cgi?id=763600
2016-03-24 23:20:14 -04:00
Mohammed Sadik
40e777ae30 gtkaboutdialog: Add support for GNU Affero GPLv3+
Add support for GNU Affero GPLv3 (or later) to GtkLicense enum

https://bugzilla.gnome.org/show_bug.cgi?id=763850
2016-03-24 23:18:40 -04:00
Matthias Clasen
caa804613d add a css style test for font: smaller 2016-03-24 22:58:43 -04:00
Matthias Clasen
447325b1e4 3.20.1 2016-03-24 22:43:27 -04:00
Matthias Clasen
24f54d50c4 Update css node test for GtkSwitch changes 2016-03-24 22:43:27 -04:00
Matthias Clasen
1716e0b038 Revert "add a css style test for font: smaller"
This reverts commit a4ed154b03.

The misparsing that is tested here will not be fixed in 3.20,
so keep this test out of the stable branch.
2016-03-24 22:43:27 -04:00
Mario Blättermann
b3ad4af969 Updated German translation 2016-03-25 00:41:41 +00:00
Benjamin Otte
cd78fa15ed menu: Clip children to view window
Don't overdraw the arrow allocations.

https://bugzilla.gnome.org/show_bug.cgi?id=764118
2016-03-24 20:25:49 +01:00
Inaki Larranaga Murgoitio
31a032e042 Updated Basque language 2016-03-24 20:17:19 +01:00
Inaki Larranaga Murgoitio
b08ba9def0 Updated Basque language 2016-03-24 20:15:34 +01:00
Inaki Larranaga Murgoitio
5875101a34 Updated Basque language 2016-03-24 20:14:02 +01:00
Inaki Larranaga Murgoitio
1f16eb4344 Updated Basque language 2016-03-24 19:59:24 +01:00
Jakub Steiner
ac62bc0df9 High Contrast Inverse: switches
- make sure both non active and active states are contrasty

https://bugzilla.gnome.org/show_bug.cgi?id=763802
2016-03-24 16:43:20 +01:00
Jakub Steiner
7ac7b523d8 High Contrast Inverse: set contrasty selected items
- selected bg was set lighter without appropriate fg color

https://bugzilla.gnome.org/show_bug.cgi?id=763804
2016-03-24 16:35:19 +01:00
Jakub Steiner
adb2b5c758 High Contrast Inverse: scale trough fix
- make the trough more visible for HCI

https://bugzilla.gnome.org/show_bug.cgi?id=763805
2016-03-24 16:32:01 +01:00
Piotr Drąg
7e72f42483 Updated POTFILES.skip 2016-03-24 15:35:11 +01:00
Matthias Clasen
a4ed154b03 add a css style test for font: smaller 2016-03-24 08:25:11 -04:00
Lapo Calamandrei
16dc164292 Adwaita: avoid sizing transition on the scale...
... since it ends up jumpy.
2016-03-24 13:15:23 +01:00
Lapo Calamandrei
f5b6ab4557 Adwaita: placesview connect to server label padding
adds some padding to the "connect to server" label
2016-03-24 11:33:33 +01:00
Lapo Calamandrei
aa821429b1 Adwaita: fix menu scroll arrows positioning
adresses the style part of
https://bugzilla.gnome.org/show_bug.cgi?id=764118
2016-03-24 11:25:52 +01:00
Dušan Kazik
dc2e5fdf9c Updated Slovak translation 2016-03-24 06:51:38 +00:00
Benjamin Otte
41195f6300 switch: An active switch is :checked
Fix an oversight that should have happened in the gadget refactoring:
An active switch should be :checked, just like togglebuttons,
checkbuttons, etc.
2016-03-23 18:14:57 +01:00
Christoph Reiter
3f077ec36f quartz: fix pixelated image surfaces in retina/hidpi mode
gtk+ currently depends on the scaling factor and the cairo device scale
of both the backend surfaces and image surfaces to be equal.

Until now we didn't apply a cairo device scale at all and depended on the
automatic scaling of CGContexts. This works when drawing with cairo but
fails in case of image surfaces, which get requested at a too small size.

To make the quartz backend behave more like the X11 one, set the cairo device
scale on the surface in gdk_quartz_ref_cairo_surface(). As this conflicts
with the default scaling done by CGContext (we would get double scaling)
undo the CGContext scaling using CGContextScaleCTM().

This patch is based on the following patches by Brion Vibber:
    https://bugzilla.gnome.org/show_bug.cgi?id=740199#c4
    https://bugs.freedesktop.org/show_bug.cgi?id=69796#c4

https://bugzilla.gnome.org/show_bug.cgi?id=763779
2016-03-23 16:27:10 +01:00
Stas Solovey
3a5848820c Updated Russian translation 2016-03-23 15:23:08 +00:00
Fran Dieguez
1355f00825 Updated Galician translation 2016-03-23 11:20:59 +00:00
Matej Urbančič
0ab7be8d57 Updated Slovenian translation 2016-03-22 22:28:03 +01:00
Stas Solovey
aac8b0120f Updated Russian translation 2016-03-22 20:19:44 +00:00
Matthias Clasen
d6ca66b712 Run a11y tests with csd for make check
I've made this change for installed tests a while ago. It doesn't
make sense for distcheck to do it differently.
2016-03-22 14:55:55 -04:00
Matthias Clasen
65927caf84 inspector: Look for themes in system data dirs
This matches what GTK+ does now.
2016-03-22 08:22:48 -04:00
Matthias Clasen
052e82db04 Fix an accidentally deleted line
Not sure when this went missing, just fix the formatting.
2016-03-22 08:22:48 -04:00
Daniel Mustieles
f46aad3a32 Updated Spanish translation 2016-03-22 11:28:57 +00:00
Dušan Kazik
4173360bb3 Updated Slovak translation 2016-03-22 06:35:00 +00:00
Zahari Yurukov
3e375a6c81 Added Bulgarian translation 2016-03-22 07:19:04 +02:00
Matthias Clasen
7cb36aba40 Load theme settings from the right location
When loading a per-theme settings.ini file, look for it in
the same directory where we found the gtk.css file for the
theme. Previously, we were always looking in
$prefix/share/themes/THEME/gtk-3.0/, even if the css was
loaded from somewhere else.

https://bugzilla.gnome.org/show_bug.cgi?id=641354
2016-03-21 22:19:19 -04:00
Matthias Clasen
475d916eb9 Also look in system data dirs for themes
With this change, we now look in
$XDG_DATA_HOME/themes/THEME/gtk-3.x
$HOME/.themes/THEME/gtk-3.x
$XDG_DATA_DIRS/themes/THEME/gtk-3.x
GTK_DATA_PREFIX/themes/THEME/gtk-3.x

https://bugzilla.gnome.org/show_bug.cgi?id=641354
2016-03-21 22:19:19 -04:00
Christian Hergert
c48bc48dda wayland: avoid dropping surfaces when possible
If the configure-event gives us the same size as we had before,
which is common for animation resizes, then try to keep the
existing buffer around. This saves us a memfd_create() syscall
on every frame.

https://bugzilla.gnome.org/show_bug.cgi?id=763350
2016-03-21 22:03:20 -04:00
Ask Hjorth Larsen
7c2f81bcd9 Updated Danish translation 2016-03-21 22:20:26 +01:00
Lapo Calamandrei
ee94f9ff89 Adwaita: simplify treeview:drop(active) code 2016-03-21 19:42:54 +01:00
Matthias Clasen
73fe852be0 gtk-demo: Improve markup demo
Add squiggly underlines and background, and make the markup editable.

https://bugzilla.gnome.org/show_bug.cgi?id=763741
2016-03-21 13:32:40 -04:00
Benjamin Otte
45dfdbce3f textview: Track differences between ink and logical rects
This way, we can ensure that we queue redraws on the full ink rect. This
is particularly visible for squiggly underlines in spell checking.

https://bugzilla.gnome.org/show_bug.cgi?id=763741
2016-03-21 13:26:57 -04:00
Tom Tryfonidis
031978cb6b Updated Greek translation 2016-03-21 17:21:09 +00:00
Anders Jonsson
ce822c5bd4 Updated Swedish translation 2016-03-21 16:25:41 +00:00
Carlos Garnacho
219eedd7c8 wayland: Rename internal functions with misleading naming
Now that GdkWaylandDeviceData is gone, the functions prefixed
"gdk_wayland_device_" and taking a GdkWaylandSeat as first
parameter feel out of place. Renaming those makes it more obvious
that it's seat functions.

https://bugzilla.gnome.org/show_bug.cgi?id=763859
2016-03-21 17:15:59 +01:00
Carlos Garnacho
1597f31eba wayland: Remove GdkWaylandDataDevice typedef
It's no longer used.

https://bugzilla.gnome.org/show_bug.cgi?id=763859
2016-03-21 17:15:59 +01:00
Carlos Garnacho
81f0d23744 wayland: Replace all remaining uses of GdkWaylandDeviceData
And use GdkWaylandSeat in all of those. The variable names have also
been updated.

https://bugzilla.gnome.org/show_bug.cgi?id=763859
2016-03-21 17:15:59 +01:00
Carlos Garnacho
c9f9163544 wayland: Remove GdkWaylandDeviceData pointer in GdkWaylandDevice
It's the same than gdk_device_get_seat() nowadays. Also, rename the
usages of GdkWaylandDeviceData to GdkWaylandSeat in the functions
affected by the removal.

https://bugzilla.gnome.org/show_bug.cgi?id=763859
2016-03-21 17:15:59 +01:00
Matthias Clasen
08a0257893 Fix the build 2016-03-21 12:10:44 -04:00
Matthias Clasen
26617bb9b4 shortcutswindow: Make the search button square
Add the image-button style class to this button (this doesn't
work automatically here, since this is a toggle button).

https://bugzilla.gnome.org/show_bug.cgi?id=763604
2016-03-21 12:00:02 -04:00
Matthias Clasen
4ae057f07b Adwaita: Update treeview drop target styling
This reinstates the between-the-rows highlight that was lost
at some point.

https://bugzilla.gnome.org/show_bug.cgi?id=763808
2016-03-21 11:56:17 -04:00
Matthias Clasen
12c5ca5c01 treeview: Update drop target highlighting
Stop using the .dnd style class, and instead use the
:drop(active) pseudo state, together with .before and .after
classes.

https://bugzilla.gnome.org/show_bug.cgi?id=763808
2016-03-21 11:56:17 -04:00
Matthias Clasen
a5a51e325d quartz: Fix up dnd code
Copy changes to drag highlight drawing from gtkdnd.c to gtkdnd-quartz.c.

https://bugzilla.gnome.org/show_bug.cgi?id=763808
2016-03-21 11:56:17 -04:00
Christian Hergert
ca63330b19 stack: query preferred size for last_visible_child
When animating, we might be changing the size allocation of the previous
stack child. However, we were not querying the size in the process
meaning you would often see warnings about allocating the size without
knowing what it should be.

This simply adds an innocuous size request, since responding to last_child
sizing requests is not all that critical in the transition.

https://bugzilla.gnome.org/show_bug.cgi?id=763900
2016-03-21 11:50:27 -04:00
Carlos Garcia Campos
5107c4a75f gtk-demo: Rework foreigndrawing to use sizes from the theme
Instead of hardcoding the size of the widgets. This makes the output
closer to real widgets and fixes the blurry icons. I've also added a
scale.

https://bugzilla.gnome.org/show_bug.cgi?id=763758
2016-03-21 11:45:48 -04:00
Matthias Clasen
068d382689 dnd: Hide the drag window when we're done
We were just relying on the drag context finalize() to destroy
the window. But with garbage-collected bindings, that might
not happen as soon as we like, so explicitly hide the window
when the drag ends successfully.

https://bugzilla.gnome.org/show_bug.cgi?id=763659
2016-03-21 11:26:24 -04:00
Debarshi Ray
2407f157c7 print-operation: Be more robust in the error path
This isn't an issue at the moment. Only exporting to a file can fail
by setting by setting an error and it happens to correctly return
GTK_PRINT_OPERATION_RESULT_ERROR regardless of this code.

Still, let's make this block of code more correct to prevent future
changes from introducing broken behaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=763731
2016-03-21 16:09:30 +01:00
Ask Hjorth Larsen
f988f1131b Updated Danish translation 2016-03-21 13:10:54 +00:00
Matthias Clasen
06062028e2 3.20.0 2016-03-21 07:54:42 -04:00
Jiri Grönroos
a449cc80de Updated Finnish translation 2016-03-21 11:28:44 +00:00
Marek Černocký
9025ceabde Updated Czech translation 2016-03-21 11:49:01 +01:00
Artur Morais
7a1b82828e Updated Brazilian Portuguese translation 2016-03-21 10:28:50 +00:00
Milo Casagrande
8f5471f1df Updated Italian translation 2016-03-21 08:55:26 +00:00
Balázs Úr
5c6979e520 Updated Hungarian translation 2016-03-21 06:30:55 +00:00
Ask Hjorth Larsen
69cb072cd6 Updated Danish translation 2016-03-21 04:42:41 +01:00
Piotr Drąg
615f55d6d1 Updated Polish translation 2016-03-21 04:04:03 +01:00
Matthias Clasen
de4cb363c2 Document gdk_wayland_seat_get_wl_seat 2016-03-20 22:49:33 -04:00
Matthias Clasen
09ea0c9110 Add gk_gl_context_is_legacy to the docs 2016-03-20 22:47:22 -04:00
Matthias Clasen
e4d3987b17 gdk: Add a missing Since tag
gdk_drag_context_manage_dnd was introduced this cycle.
2016-03-20 22:45:06 -04:00
Matthias Clasen
105f9acfdf Add gdk_drag_context_manage_dnd to the docs 2016-03-20 22:44:29 -04:00
Matthias Clasen
3409ec56ca Clean up gdk docs build a bit
Ignore more headers.
2016-03-20 22:44:03 -04:00
Matthias Clasen
1c692c64fe gdk: Reword some docs 2016-03-20 22:29:37 -04:00
Руслан Ижбулатов
404a7185be Improve window title context popup menu fallback
Add "Minimize", "Maximize", "Restore", "Move", "Resize" and "Always on Top"
items to the menu.
This pertially reverts commit 0ea1a526f9.

https://bugzilla.gnome.org/show_bug.cgi?id=763806
2016-03-20 22:02:23 -04:00
Matthias Clasen
f732fa6883 Reword release notes 2016-03-20 21:48:05 -04:00
Matthias Clasen
bee669ee66 Updates for 3.20.0 2016-03-20 21:40:05 -04:00
Matthias Clasen
5c63ab26da style context: Don't use g_warning for API misuse
We've changed our API here; what these applications are doing
used to be fine. Don't make users suffer for this by spamming their
logs in a stable release. We'll keep the warning in master.

https://bugzilla.gnome.org/show_bug.cgi?id=763796
2016-03-20 20:53:34 -04:00
Lapo Calamandrei
1dcd88961e Adwaita: more evident colorswatch drag hilight 2016-03-21 01:19:12 +01:00
Lapo Calamandrei
4973b55ad9 Adwaita: titlebutton fix
use a better selector and fix the styling on selection-mode.
2016-03-21 01:02:30 +01:00
Lapo Calamandrei
44e225e50b Adwaita: add a transition to the scale slider 2016-03-21 00:46:44 +01:00
Lapo Calamandrei
eacd632e5e Adwaita: add a transition to the switch slider 2016-03-21 00:44:47 +01:00
Lapo Calamandrei
6598dca783 Adwaita: sligthly dim backdrop selected fg color 2016-03-21 00:25:44 +01:00
Lapo Calamandrei
2e2c423c78 Adwaita: clean up 2016-03-21 00:22:24 +01:00
Ask Hjorth Larsen
33247293ee Updated Danish translation 2016-03-20 23:57:57 +01:00
Lapo Calamandrei
de466e7b28 Adwaita: rework places sidebar styling
set colors on rows istead of images.
2016-03-20 23:38:49 +01:00
Lapo Calamandrei
524ca3c2d5 Adwaita: fix treeview spinbutton style 2016-03-20 23:33:51 +01:00
Ask Hjorth Larsen
7da594e7b7 Updated Danish translation 2016-03-20 23:26:10 +01:00
Ask Hjorth Larsen
f64612ca56 Updated Danish translation 2016-03-20 23:25:14 +01:00
Lapo Calamandrei
c867b17cc8 Adwaita: fix treeview entry style
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=763955
2016-03-20 23:18:49 +01:00
Jakub Steiner
7224dd76db High Contrast: sidebar round buttons
https://bugzilla.gnome.org/show_bug.cgi?id=763774
2016-03-20 22:07:03 +01:00
Rūdolfs Mazurs
4e6f9660c0 Update Latvian translation 2016-03-20 21:16:28 +02:00
Paolo Borelli
d457b4f4a5 css: use "disabled" instead of the "insensitivie"
Not only there is a typo, but it is also deprecated.
2016-03-20 17:49:15 +01:00
Benjamin Otte
710285104b styleproperties: Really don't use 'i' in inner loop
I apparently was too tired when doing
8cebc125da and forgot to replace one
instance of 'i' with 'j'.

Thanks Timm for finding that one.
2016-03-20 13:43:46 +01:00
Милош Поповић
e397468964 Updated Serbian Latin translation 2016-03-20 09:00:50 +00:00
Марко Костић
5091bc9d16 Updated Serbian translation 2016-03-20 08:59:39 +00:00
Benjamin Otte
9782a2b729 broadway: Use explicit sizes for payload length
The previous greater than comparisons would never trigger the 2nd case.

http://www.viva64.com/en/b/0383/
2016-03-20 05:51:42 +01:00
Benjamin Otte
318a9c4634 x11: Use g_error_matches()
Fixes accidentally assigning values.

http://www.viva64.com/en/b/0383/
2016-03-20 05:43:02 +01:00
Benjamin Otte
8cebc125da styleproperties: Don't use the same loop variable in nested loops
http://www.viva64.com/en/b/0383/
2016-03-20 05:37:23 +01:00
Benjamin Otte
d42ba8a82a tests: Add missing break statements
http://www.viva64.com/en/b/0383/
2016-03-20 05:36:17 +01:00
Benjamin Otte
07a69b7247 gtk-demo: Fix copy/paste error
http://www.viva64.com/en/b/0383/
2016-03-20 05:32:35 +01:00
Benjamin Otte
471cdee97f broadway: Remove duplicate initialization
http://www.viva64.com/en/b/0383/
2016-03-20 05:31:20 +01:00
Benjamin Otte
5db1c987ee x11: Remove duplicate variable setting
http://www.viva64.com/en/b/0383/
2016-03-20 05:30:51 +01:00
Benjamin Otte
ca3607c219 menubar: Remove duplicate flags value
http://www.viva64.com/en/b/0383/
2016-03-20 05:30:43 +01:00
Benjamin Otte
c76424a842 calendar: Remove duplicate flags value
http://www.viva64.com/en/b/0383/
2016-03-20 05:27:19 +01:00
Benjamin Otte
58b7512b53 cssshadowvalue: Fix copy/paste issue
http://www.viva64.com/en/b/0383/
2016-03-20 05:26:39 +01:00
Benjamin Otte
3308122c32 placesview: Simplify
http://www.viva64.com/en/b/0383/
2016-03-20 05:18:38 +01:00
Benjamin Otte
c6834a002f pathbar: Order button CSS nodes right
The previous code ordered them the wrong way, so the first button (from
a CSS pov) was the last visible one.
2016-03-20 05:18:04 +01:00
Lapo Calamandrei
397bacee6e Adwaita: fix places sidebar icons style
the color wasn't changing in backdrop.
2016-03-19 20:13:06 +01:00
Lapo Calamandrei
0174803149 Adwaita: added a transition to the backdrop state to most widgets 2016-03-19 19:56:15 +01:00
Lapo Calamandrei
38211ff800 Adwaita: clean up checkbutton and radiobutton styling
some superfluous selectors there since generic label styling was
broken.
2016-03-19 18:59:29 +01:00
Lapo Calamandrei
ec50042228 Revert "Adwaita: checkbutton and radiobutton backdrop color fix"
This reverts commit 43937c6aa0.
Which was needed since the label styling was broken.
2016-03-19 18:57:33 +01:00
Lapo Calamandrei
e079b92a55 Adwaita: fix label styling
backdrop wasn't in the mix, added and adjusted other widgets
styling not to be overridden by it when not needed.
Spotted a typo making the backdrop base color white in the process.
2016-03-19 18:56:41 +01:00
Lapo Calamandrei
20a8ac5542 Adwaita: reset entry props on horizontal spinbuttons
the spinbutton node is where the styling is applied, the leftover
properties on the entry node make a backdrop transition bad.
2016-03-19 18:09:22 +01:00
Lapo Calamandrei
8f2213836c Adwaita: remove commented out code 2016-03-19 17:53:36 +01:00
Lapo Calamandrei
43937c6aa0 Adwaita: checkbutton and radiobutton backdrop color fix
this sets the right backdrop color to the label insider the
aformentined widgets.
2016-03-19 17:46:49 +01:00
Lapo Calamandrei
99e2f91dfe Adwaita: simplify headerbar style 2016-03-19 17:23:39 +01:00
Lapo Calamandrei
5a0aeec3f4 Adwaita: correctly order backdrop decoration node shadows
... otherwise setting a transition to the backdrop state will make
the window resize, since the shadows size gets interpolated.
2016-03-19 17:08:17 +01:00
Ask Hjorth Larsen
80732a951c Updated Danish translation by scootergrisen 2016-03-19 03:43:32 +01:00
Lapo Calamandrei
50b5820669 High Contrast: switch style fix 2016-03-18 19:25:09 +01:00
Lapo Calamandrei
48fb37f341 High Contrast: don't hardcode a font-size on the switch 2016-03-18 19:10:36 +01:00
Lapo Calamandrei
a46058451e High Contrast: stronger entry focus indication 2016-03-18 19:05:20 +01:00
Lapo Calamandrei
7d27fd087e High Contrast: fix a typo 2016-03-18 19:03:19 +01:00
Lapo Calamandrei
3b1484f57c Adwaita: fix colorscale shrinking when disabled 2016-03-18 18:38:48 +01:00
Jakub Steiner
ad9865126a High Contrast: fix drop states
https://bugzilla.gnome.org/show_bug.cgi?id=763823
2016-03-18 15:48:52 +01:00
Daniel Korostil
fe31c5f4fd Updated Ukrainian translation 2016-03-18 16:47:10 +02:00
Jakub Steiner
3a529614e5 High Contrast: spinbutton active state
- more contrast for the active state
- osd active state
2016-03-18 15:44:27 +01:00
Jakub Steiner
4fc5832cfd High Contrast: osd spinbutton fixes
- don't jump around for :backdrop
- only shade focused widgets
2016-03-18 15:30:46 +01:00
Jakub Steiner
c94afa01c4 High Contrast: osd spinbuttons
https://bugzilla.gnome.org/show_bug.cgi?id=763846
2016-03-18 15:22:16 +01:00
Jakub Steiner
a076df852b Hight Contrast: scrollbars
https://bugzilla.gnome.org/show_bug.cgi?id=763797
2016-03-18 13:53:30 +01:00
Anders Jonsson
b88020ec92 Updated Swedish translation 2016-03-18 10:14:33 +00:00
Anders Jonsson
71eac292bb Updated Swedish translation 2016-03-18 10:13:42 +00:00
Milo Casagrande
0e171dd45c Updated Italian translation 2016-03-18 08:28:19 +00:00
Руслан Ижбулатов
7d2a7a5626 GDK W32: Don't move iconic windows
Using UpdateLayeredWindow() on iconic windows brings them *back* from
their iconic (minimized) state. That is bad.
As a precaution, also don't use SetWindowPos() on iconic windows.
This means that iconic windows can't be moved. That is fixable
by using SetWindowPlacement(), but there is no pressing need to do so,
as there are very few cases when windows need to be moved while minimized.

https://bugzilla.gnome.org/show_bug.cgi?id=763835
2016-03-18 07:49:39 +00:00
Rafael Fontenelle
54d36efa61 Updated Brazilian Portuguese translation 2016-03-18 05:05:10 +00:00
Christian Hergert
1bd5be6b7c quartz: fix quartz build
More fallout from recent refactoring.

See also b3860e407d.
2016-03-17 21:18:58 -07:00
Olivier Fourdan
3e3d29f7b7 gtkwindow: ignore default size if there is a size request
Some applications set both a default size on their gtk window and a size
request on the corresponding gtk widget.

Until now, the default size was ignored for fixed size windows, so this
had no effect and remained unnoticed, but with the recent change for
client-side decorations, the default size is now used even for fixed size
windows, which can cause the resulting fixed size window to be much
smaller than expected with the size request.

For fixed size windows, if we have both a size request and a default
size set, prefer the size request as before.

https://bugzilla.gnome.org/show_bug.cgi?id=763749
2016-03-17 22:40:42 -04:00
Milo Casagrande
4ddd29d8c0 Updated Italian translation 2016-03-17 20:08:07 +00:00
Milo Casagrande
450704b28a Updated Italian translation 2016-03-17 20:03:44 +00:00
Jakub Steiner
1bf3f40cc5 High Contrast: disabled flat buttons
- disabled flat buttons and backdrop state
2016-03-17 14:57:09 +01:00
Jakub Steiner
09168806a2 High Contrast: fix app-notifications
- get rid of the internal frame

https://bugzilla.gnome.org/show_bug.cgi?id=763781
2016-03-17 13:07:04 +01:00
Jakub Steiner
e942aee13d High Contrast: menubar separator
- set menubar apart form the window content

https://bugzilla.gnome.org/show_bug.cgi?id=763777
2016-03-17 13:00:32 +01:00
Lapo Calamandrei
52c362721c High Contrast: fix titlebuttons sizing
... simplifying the scss in the process.
2016-03-17 12:54:10 +01:00
Lapo Calamandrei
b0a25b3aa9 High Contrast: add undecorated button mixin
... which is used in _common.scss, this fixes flat button not
being, well, flat.
2016-03-17 12:54:10 +01:00
Lapo Calamandrei
981985ee50 High Contrast: remove an adwaita leftover
... a missing mixin which makes no sense in HC actually.
2016-03-17 12:54:10 +01:00
Lapo Calamandrei
4a58e751fb Adwaita: fix wide separators 2016-03-17 10:32:35 +01:00
Baurzhan Muftakhidinov
4455ef1c90 Updated Kazakh translation 2016-03-17 03:33:59 +00:00
Baurzhan Muftakhidinov
9b4eff6ed9 Updated Kazakh translation 2016-03-17 03:33:32 +00:00
Matthias Clasen
e9de5f1083 HighContrast: Fix actionbar borders
Make the selector more specific so that it doesn't affect contained
boxes. Copied from Adwaita.

https://bugzilla.gnome.org/show_bug.cgi?id=763775
2016-03-16 21:57:49 -04:00
Changwoo Ryu
51f34f4b90 Updated Korean translation 2016-03-16 19:49:50 +00:00
Changwoo Ryu
b0b06ffbf2 Updated Korean translation 2016-03-16 19:49:22 +00:00
Lapo Calamandrei
1ae5643f59 Adwaita: shrink back big standalone osd buttons 2016-03-16 18:06:56 +01:00
Jakub Steiner
3e6eca537b High Contrast: button metrics
- sync with Adwaita for button definitions

https://bugzilla.gnome.org/show_bug.cgi?id=763706
2016-03-16 15:25:28 +01:00
Jakub Steiner
5e629bc26b High Contrast: spinbuttons
- sync with Adwaita

https://bugzilla.gnome.org/show_bug.cgi?id=763696
2016-03-16 15:15:20 +01:00
Jakub Steiner
b73f428a86 High Contrast: circular buttons
- make sure they are visible on selected rows

https://bugzilla.gnome.org/show_bug.cgi?id=763612
2016-03-16 14:53:47 +01:00
Jakub Steiner
e4f6c76cf8 High Contrast: fix entry and button metrics
- sync with Adwaita

https://bugzilla.gnome.org/show_bug.cgi?id=763610
2016-03-16 14:32:14 +01:00
Lapo Calamandrei
6228233a9e Adwaita: remove a nonsensical comment 2016-03-16 13:42:38 +01:00
Lapo Calamandrei
6ccaa8e3ca High Contrast: keycap styling
sync with Adwaita with some styling tweaks.
2016-03-16 13:34:00 +01:00
Lapo Calamandrei
ef8ef299c4 Adwaita: simplify treeview check and radio scss 2016-03-16 13:11:46 +01:00
Jakub Steiner
286437000b High Contrast: fix metrics for popover menus
- ripped the appropriate bits from Adwaita.

https://bugzilla.gnome.org/show_bug.cgi?id=763609
2016-03-16 12:57:14 +01:00
Jakub Steiner
e5e8ffa3f7 High Contrast: reimplement check and radio
Use a similar structure as Adwaita - using buttons for
radios and checkboxes.

https://bugzilla.gnome.org/show_bug.cgi?id=763707
2016-03-16 12:30:12 +01:00
Timm Bäder
985121813e scale: Fix value height calculation
if (orientation) doesn't make a lot of sense but C doesn't complain and
instead evaluates orientation to TRUE for GTK_ORIENTATION_VERTICAL
(since that's 1), thus inverting the value sizes.
2016-03-16 10:20:17 +01:00
Lapo Calamandrei
6f3a3ea7f3 Adwaita: notebook better header spacing
added some padding to the header and margins to the tabs node when
it's not the only child.
2016-03-15 19:04:21 +01:00
Jakub Steiner
3e567b4900 High Contrast: disabled scales more subtle
Make even the tough border subtle to make it distinct from
normal state.

https://bugzilla.gnome.org/show_bug.cgi?id=763613
2016-03-15 18:28:40 +01:00
Lapo Calamandrei
abfdad3c3d Adwaita: fix progressbar in treeviews styling 2016-03-15 17:02:01 +01:00
Lapo Calamandrei
c6dcc6ee62 Adwaita: add some comments in the GtkScale related scss 2016-03-15 16:13:49 +01:00
Jakub Steiner
87c410d420 High Contrast: checkboxes and radios inside treeviews
- fixes hover state of checkboxes and radios inside treeviews
2016-03-15 15:49:25 +01:00
Jakub Steiner
e44617b351 High Contrast: reimplement gtk scale
- sync with Adwaita to the new box model

https://bugzilla.gnome.org/show_bug.cgi?id=763613
2016-03-15 14:23:56 +01:00
Matthias Clasen
7018a41ce9 Correct a deprecation note
The CSS equivalent for focus-padding is outline-offset.
2016-03-15 09:22:23 -04:00
Jakub Steiner
186ecdf0fa High Contrast: distinct insensitive button
Tone down insensitive buttons.

https://bugzilla.gnome.org/show_bug.cgi?id=746490
2016-03-15 13:25:11 +01:00
Matthias Clasen
873f6ae36d 3.19.12 2016-03-14 19:14:31 -04:00
Cosimo Cecchi
d61c2b4cce window: stop stomping on resize-mode set by external API
commit c3dc0d80f1 fixed the behavior of
GtkContainer widgets requesting an IMMEDIATE resize-mode.

However, GtkWindow has been stomping on resize-mode during realize()
since commit addcc64b9c. The combination
of factors that led to this not being a visible problem during all this
while is uncertain, but this now causes the Shell to continuously try to
relayout its ShellEmbeddedWindow (a GtkWindow subclass).

This commit separates the resize-mode as set internally by GtkWindow
from the one set with the external API, so that GtkWindow only changes
it when it had not been set before by the subclass.

https://bugzilla.gnome.org/show_bug.cgi?id=763650
2016-03-14 16:10:15 -07:00
Tom Tryfonidis
4f2cbd1856 Updated Greek translation 2016-03-14 21:03:53 +00:00
Matthias Clasen
aec0ffebcc Updates 2016-03-14 15:55:30 -04:00
Lapo Calamandrei
183276aa65 Adwaita: fix vertical linked spinbuttons
which I broke in a previous commit...
2016-03-14 19:36:12 +01:00
Lapo Calamandrei
32b410c77b Adwaita: more drag hilight fixes 2016-03-14 19:20:15 +01:00
Carlos Garnacho
0b840a04a2 GtkScrolledWindow: Do not hover one scrollbar if grabbing on the other
Makes no sense since we're not going to interact with it. It'll be
hovered eventually if the button is released.
2016-03-14 19:18:14 +01:00
Carlos Garnacho
2173b6d483 GtkScrolledWindow: Check proximity on both indicators on grab-end leave events
The implicit grab may be finished so the pointer lies on top of the other
scrollbar, in this case one scrollbar should lose the hovering state, and
the other should gain it. So we must check for proximity in both indicators.
2016-03-14 19:18:14 +01:00
Lapo Calamandrei
baab1ebcc1 Adwaita: use a green (Tango Chameleon 3) for drag hilight 2016-03-14 18:46:56 +01:00
Lapo Calamandrei
8b505d570e Adwaita: placessidebar dnd fixes 2016-03-14 18:40:31 +01:00
Руслан Ижбулатов
5ac848d229 GDK W32: Fix shown window position calculation for dialogs and splashes
Two errors here:
1) A typo in splashscreen rectangle calculation - sets right twice
   instead of setting top
2) Centering for dialogs is off because it doesn't convert
   GDK virtual desktop coordinates to Windows WM virtual desktop
   coordinates by adding _gdk_offset_*

https://bugzilla.gnome.org/show_bug.cgi?id=763628
2016-03-14 16:31:14 +00:00
Lapo Calamandrei
bbced9a0cf Adwaita: places sidebar selected button fix and refactor 2016-03-14 17:23:35 +01:00
Carlos Garnacho
2923f69d3c gdkdnd: Add private means to commit the drag status
The way gdk_drag_status() may be called multiple times during the
processing of drag and drop events throughout the widget hierarchy
brings some superfluous messaging going in, esp. when it's the last
request the one we want to honor, yet we emit messaging requests on
all.

This is barely appreciable in the X11 backend, but due to the design
of the wayland protocol, quick series of changes like this it have
some self-amplificating consequences which may end up flooding the
connection.

We can delegate this to a late "commit" call, performed within GDK
event management. This way gdk_drag_status() calls may be cached
and only result in windowing messaging once per ::drag-motion or
::drag-data-received event. Emitting the final status will also
avoid spurious action changes on the compositor and the other peer.

https://bugzilla.gnome.org/show_bug.cgi?id=763298
2016-03-14 16:50:36 +01:00
Carlos Garnacho
160a4fe5ac GtkNotebook: Make tab DnD use application/x-rootwindow-drop again
Besides the ::drag-failed handling in order to trigger the window creation
hook, add some handling of the application/x-rootwindow-drop mimetype, so
the same effect is achieved if the tab could be dropped in a destination
accepting this mimetype.

https://bugzilla.gnome.org/show_bug.cgi?id=763387
2016-03-14 16:16:32 +01:00
Carlos Garnacho
83cc7f76d7 GtkWindow: Make it an application/x-rootwindow-drop destination
This makes toplevels pseudo-transparent wrt this mimetype, so if
the drag source offers this mimetype and not another that was
managed by the destination-side widget hierarchy, the window will
be an acceptable target for this mimetype, allowing it to trigger
whatever is meant to in the source side.

https://bugzilla.gnome.org/show_bug.cgi?id=763387
2016-03-14 16:16:32 +01:00
Руслан Ижбулатов
ab16b19a0a GDK W32: Fix pointer-under-window code for custom resize
This code:
>  gdk_window_get_root_origin (window, &x, &y);
>  x -= root_x;
>  y -= root_y;
>  pointer_window = gdk_device_get_window_at_position (device, &x, &y);
was meant to find the child gdk window at coordinates root_x and root_y.

These 4 lines had 2 bugs:
1) x = x - root_x (same for y) is wrong, it should be x = root_x - x
2) gdk_device_get_window_at_position() does not give you the window
   at position x and y. It gives you the window under the device
   (mouse pointer) and the returns the device coordinates in x and y.

https://bugzilla.gnome.org/show_bug.cgi?id=763533
2016-03-14 15:06:51 +00:00
Jiro Matsuzawa
ade1ac16a8 Updated Japanese translation 2016-03-14 14:42:48 +00:00
Carlos Garnacho
6fd05dfe53 gtk-demo: Handle GDK_TOUCH_CANCEL in event-axes demo
It is a thing in wayland, which means we leave traces from older
touches when the compositor takes over touch sequences in order
to handle a gesture.
2016-03-14 15:30:27 +01:00
Stas Solovey
c5a8be8fc6 Updated Russian translation 2016-03-14 12:24:40 +00:00
Lapo Calamandrei
2e39df7713 Adwaita: more scss refactoring 2016-03-14 11:26:32 +01:00
Lapo Calamandrei
0696c848ba Adwaita: refactor entry scss 2016-03-14 10:19:05 +01:00
Balázs Meskó
4525f8628f Updated Hungarian translation 2016-03-14 07:57:26 +00:00
Matthias Clasen
4f45353a19 pathbar: Style slider buttons
Set a style class on the pathbar slider buttons, and have the
theme handle the separately from other image buttons.
2016-03-13 23:09:47 -04:00
Matthias Clasen
8a3c25ca66 path bar: Stop mishandling slider buttons
We must call get_preferred_width/height on the slider buttons
before allocating them, otherwise the layout machinery spews
warnings.
2016-03-13 23:09:41 -04:00
Stas Solovey
302b830649 Updated Russian translation 2016-03-13 21:04:56 +00:00
Aurimas Černius
140f51c590 Updated Lithuanian translation 2016-03-13 21:15:07 +02:00
Piotr Drąg
d9a6d2ca80 Updated POTFILES.skip 2016-03-13 19:51:57 +01:00
Jiri Grönroos
b7ae717465 Updated Finnish translation 2016-03-13 14:47:41 +00:00
Matthias Clasen
9a21ff3cd2 stack switcher: Support switching during DND
GtkNotebook will switch pages if you hover over a tab
during DND. The same makes sense in GtkStackSwitcher,
so implement it here.
2016-03-13 00:11:52 -05:00
Matej Urbančič
fff323df09 Updated Slovenian translation 2016-03-12 22:06:02 +01:00
Lapo Calamandrei
d00e19a3cd Adwaita: some more selector housekeeping 2016-03-12 19:35:56 +01:00
Lapo Calamandrei
ff05ccf18e Adwaita: smarter scss extentions for titlebuttons 2016-03-12 19:32:42 +01:00
Lapo Calamandrei
dfc41b34f7 Adwaita: smarter scss extentions on the notebook
avoiding spawning unneeded selectors.
2016-03-12 19:26:52 +01:00
Lapo Calamandrei
2885f1b3a2 Adwaita: fix notebook overflow arrows styling
which correctly go :active now, istead of :checked as in the past.
2016-03-12 19:02:48 +01:00
Lapo Calamandrei
e44ea315d5 Adwaita: set back drag hilight color to black
...I erroneusly pushed a test green there, this will probably
change again, but that green wasn't right.
2016-03-12 15:27:53 +01:00
Lapo Calamandrei
8003937a68 Adwaita: textview drag hilight 2016-03-12 15:22:35 +01:00
Lapo Calamandrei
b46f7223ac Adwaita: scss cosmetic fixed 2016-03-12 15:03:07 +01:00
Lapo Calamandrei
39c8ad53b5 Adwaita: reset filechooserbutton:drop(active) 2016-03-12 14:21:21 +01:00
Fran Dieguez
634abd1476 Updated Galician translation 2016-03-12 12:57:00 +00:00
Fran Dieguez
2ee7d103a3 Updated Galician translation 2016-03-12 12:55:28 +00:00
Marek Černocký
0e124c19af Updated Czech translation 2016-03-12 13:33:35 +01:00
Руслан Ижбулатов
a97e8fd078 GDK W32: Fix a typo 2016-03-12 12:14:04 +00:00
Matthias Clasen
d345a7a60e color editor: Improve popup positioning
Don't make the popup follow the slider while it is open; that
makes interaction with it unnecessarily hard. Also move all the
popups inwards a little bit, so they are not flush with the
scales, which looks untidy.

https://bugzilla.gnome.org/show_bug.cgi?id=763380
2016-03-11 22:44:17 -05:00
Matthias Clasen
5f00a9b4ec scrolled window: Fix scrollbar size allocation
We were not taking the scrollable borders into account when
requesting size for the scrolled window, which could lead
to underallocating the scrollbars at size allocation time
when we *did* take the borders into account.

This is most notable with treeviews, where we have the
headers as borders, and was causing the treeview-crash-too-wide
reftest to fail.
2016-03-11 21:42:33 -05:00
Matthias Clasen
07e6eae3e5 file chooser button: Set a CSS name
This lets us differentiate the main node from regular boxes.
2016-03-11 21:42:33 -05:00
Matthias Clasen
4d84e7a8f7 Trivial formatting fix 2016-03-11 21:42:33 -05:00
Marek Černocký
4f3af94e57 Updated Czech translation 2016-03-11 23:08:07 +01:00
Matthias Clasen
e44a87fe94 Fix the textview-margins reftest
This test has a word that wouldn't fit in the room we have with
a window width of 100, and then we get clipped in the one case
but not the other. Make the window a little wider, so it fits.
2016-03-11 16:46:52 -05:00
Matthias Clasen
2f4f164078 Fix a typo
We don't want to get the padding twice.
2016-03-11 16:38:41 -05:00
Matthias Clasen
5e68c4e62d inspector: Reset the treewalk when required
The tree walk holds a tree iter, which will become invalid
when we either remove the row that it points to or remove
all rows.

Reset the tree walk in those cases to avoid a crash that
was pointed out by Bastien Nocera.
2016-03-11 13:53:57 -05:00
Matthias Clasen
2e34ce8f7c inspector: Add api to get the current tree walk position
This will be used in the next commit.
2016-03-11 13:53:57 -05:00
Matthias Clasen
a6d575ed61 typo fix 2016-03-11 13:53:57 -05:00
Jordi Mas
30217908d8 Update Catalan translation 2016-03-11 19:44:06 +01:00
Timm Bäder
4b0abc13e3 range: Fix a few typos
Depreacated -> Deprecated
through -> trough
2016-03-11 19:18:07 +01:00
Sebastien Lafargue
09b837183e textview: Fix drag highlight problems 2016-03-11 19:14:16 +01:00
Piotr Drąg
a84926f03a Updated Polish translation 2016-03-11 18:30:18 +01:00
Matthias Clasen
63b03ce836 Better debug messages for actions
Unify the debug messages between actionhelper and menutracker,
and add some more context to some of them.
2016-03-11 12:20:33 -05:00
Dušan Kazik
baaa0637bf Updated Slovak translation 2016-03-11 17:09:01 +00:00
Lapo Calamandrei
3c89c11328 Adwaita: set a min-width on horizontal spinbutton entry
to accomodate at least 3 chars, before overflowing.
2016-03-11 18:02:37 +01:00
Lapo Calamandrei
5085e1c70d Adwaita: rounded corners for colorscale popup 2016-03-11 18:01:36 +01:00
Benjamin Otte
eeb945e4c1 inspector: Widgets update automatically when CSS changes
There's no need to force-invalidate their CSS.
2016-03-11 17:00:41 +01:00
Benjamin Otte
b7285592f9 cssanimation: Compute progress correctly
We were computing the wrong progress, in particular when the iteration
count was non-integer.

Test included.
2016-03-11 16:39:34 +01:00
Benjamin Otte
fc7335bdb4 colorscale: Draw a trough
Make sure the color info is actually drawn inside the trough.
2016-03-11 16:39:34 +01:00
Lapo Calamandrei
8351a6e4d6 Adwaita: .osd check|radio style 2016-03-11 16:35:16 +01:00
Daniel Mustieles
f81635ed81 Updated Spanish translation 2016-03-11 15:31:32 +00:00
Friedrich Beckmann
8879052887 added NSEventTypeMagnify and NSEventTypeRotate for ZOOM and ROTATE gestures
MacOS provides the NSEventTypeMagnify which is very similar to the
Gtk ZOOM gesture and NSEventTypeRotate which is very similar to the
Gtk Rotate gesture. Those two event sequences are translated to a
sequence of GDK_TOUCHPAD_PINCH events. This sequence is then detected
in the upper gtk layers as Gtk Zoom/Rotate Gestures.

https://bugzilla.gnome.org/show_bug.cgi?id=760276
2016-03-11 09:59:01 -05:00
Lapo Calamandrei
b37e4ff805 Adwaita: simplify vertically linked entries scss code 2016-03-11 14:57:03 +01:00
Matthias Clasen
4c3e4d3ea1 filechooserbutton: Fix drag highlight problems
This widget is a bit unusual in that it is a box that acts as
the drop target, while the visible content is a child of the box.
Propagate :drop(active) to the child to make the highlight visible.
2016-03-11 08:51:50 -05:00
Lapo Calamandrei
e8c5db0425 Adwaita: drop active style fixes
taking care of:
* entries
* buttons (misses some linking logic still)
* comboboxes (untested)
* spinbuttons
2016-03-11 14:44:58 +01:00
Matthias Clasen
ab5ebf6199 calendar: Fix drag highlight problems
Don't propagate :drop(active) to components.
2016-03-11 08:34:01 -05:00
Matthias Clasen
3064e4e406 spinbutton: Fix drag highlight problems
Don't propagate :drop(active) to the buttons.
2016-03-11 08:07:30 -05:00
Matthias Clasen
2fee5fbda7 entry: Fix drag highlight problems
We don't want drag highlights around icons or progress, so don't
propagate the :drop(active) state to them.
2016-03-11 08:02:10 -05:00
Yosef Or Boczko
b7577b2f3b Updated Hebrew translation 2016-03-11 14:48:25 +02:00
Jonas Ådahl
f8bbbbf684 gdk: Don't leak discarded window state event
When compressing window state events, we didn't free the discarded
event after removing it from the queue, causing us to leak it. This
commit makes sure to free the discarded event after unqueuing it.

https://bugzilla.gnome.org/show_bug.cgi?id=762468
2016-03-11 07:11:34 -05:00
Matthias Clasen
1d19065979 range: Fix trough clickability
We previously considered any click inside the trough if it
hit an area that the slider might cover. Bring this behavior
back; the trough of scales is otherwise just too narrow to
hit easily with a click.
2016-03-11 01:27:21 -05:00
Matthias Clasen
1a5cb41bd9 Use per-display debug flags for visual debugging 2016-03-11 00:22:36 -05:00
Matthias Clasen
02742d5332 Make debug flags per-display
Tihs lets us toggle debug flags in the inspector without affecting
the inspector itself.
2016-03-11 00:22:36 -05:00
Matthias Clasen
f82e4ff362 Trivial formatting fix 2016-03-11 00:22:36 -05:00
Matthias Clasen
97250ea5e6 inspector: Add a switch for the layout debug flag 2016-03-11 00:22:36 -05:00
Matthias Clasen
ad54697594 gadget: Show layout
When the layout debug key is set, overlay boxes for the content
and border area of each gadget.
2016-03-10 23:21:22 -05:00
Matthias Clasen
33d7196dc8 Add a layout debug option
This will be used to show box model borders.
2016-03-10 23:21:22 -05:00
Matthias Clasen
04e59719b5 Docs: Trivial consistency fix 2016-03-10 23:21:22 -05:00
Matthias Clasen
804d330195 Typo fixes
Fix s/occurence/occurrence in many places.
2016-03-10 22:46:02 -05:00
Мирослав Николић
f87da278ad Updated Serbian translation 2016-03-11 03:42:36 +01:00
Piotr Drąg
41ee906764 Updated Polish translation 2016-03-11 02:17:05 +01:00
Federico Mena Quintero
edacd5d6ee GtkFileChooserEntry: move the cursor after the user chooses a completion from the list
https://bugzilla.gnome.org/show_bug.cgi?id=756450
2016-03-10 16:03:52 -06:00
Federico Mena Quintero
81059c35d5 GtkFileChooserEntry: regenerate the completions if the dir_part changes
Consider this bug:

1. Open a file chooser; switch it to $HOME

2. Start typing "~/Dow" with some file that *does* exist in your $HOME

3. Delete the inline-completion selection (e.g. the "nloads" after "~/Down").

4. While you are at "~/Dow_" hit Tab.  No completion will occur.

This happens because of the following.

Say the GtkFileChooserEntry is in the process of loading $HOME,
because _set_base_folder() was called.  If the entry contains no text,
then the FULL_PATH_COLUMN of the file system model will be set to
unprefixed filenames from $HOME, like

  .ssh/
  Documents/
  Downloads/
  somefile.txt

Later we avoid reloading the folder if g_file_equal(old_folder, new_folder).

However, the FULL_PATH_COLUMN gets populated in completion_store_set()
out of the actual filenames that GIO returned, plus the chooser_entry->dir_part.

If the user starts typing "~/Dow" then dir_part changes to "~/", *but*
the folder won't be reloaded since it is also $HOME.  However, the completion
machinery assumes that FULL_PATH_COLUMN will contain prefixed entries like

  ~/.ssh/
  ~/Documents/
  ~/Downloads/
  ~/somefile.txt

So, we add an invariant that chooser_entry->dir_part and
chooser_entry->current_folder_file must change at the same time, and
must not get out of sync:  If any of them changes, then the
completions are regenerated.
2016-03-10 15:37:00 -06:00
Matthias Clasen
2b773e07e3 inspector: Show the frame clock in misc
There is no convenient way to get a handle on the frame clock,
otherwise, and the frame clock object is where we show the frame
rate...
2016-03-10 16:21:35 -05:00
Mario Blättermann
ec0111ce05 Updated German translation 2016-03-10 19:58:33 +01:00
Daniel Mustieles
c87eb5854a Updated Spanish translation 2016-03-10 17:23:24 +00:00
Piotr Drąg
556940c3c6 Updated Polish translation 2016-03-10 17:30:11 +01:00
Carlos Soriano
25b036ae93 configure.ac: bump version
So nautilus and other consumers of the sidebar can use the non
API-broken API of the sidebar.
2016-03-10 16:30:16 +01:00
Artur Morais
8038139067 Updated Brazilian Portuguese translation 2016-03-10 14:33:41 +00:00
Balázs Meskó
3c26fecef9 Updated Hungarian translation 2016-03-10 13:59:55 +00:00
Руслан Ижбулатов
65ea6f8736 GDK W32: Partially rollback the custom resize for GL windows
If a window is being drawn by OpenGL, we need to apply any
pending resizes to it *before* we paint.

https://bugzilla.gnome.org/show_bug.cgi?id=763287
2016-03-10 13:09:32 +00:00
Lapo Calamandrei
85d0220800 Adwaita: gtkcolorscale styling. 2016-03-10 13:35:46 +01:00
Мирослав Николић
40a2d7f14a Updated Serbian translation 2016-03-10 11:54:39 +01:00
Мирослав Николић
b9e3d2033c Updated Serbian translation 2016-03-10 11:39:44 +01:00
Marek Černocký
a09d552f33 Updated Czech translation 2016-03-10 10:47:04 +01:00
Philip Chimento
b3860e407d quartz: Get core pointer from device manager
Some spots missed in the earlier refactor removing core_pointer from
the GdkDisplay struct.

https://bugzilla.gnome.org/show_bug.cgi?id=762820
2016-03-09 22:11:07 -08:00
Jonas Ådahl
8fb7f50028 wayland: Add request focus support via gtk_shell
A gtk_surface.present request was added to gtk_surface which takes
timestamp from some input event, and uses that timestamp to figure out
whether the window can be presented or not. If we don't have a
timestamp, we should just give up instead of making up our own,
otherwise we might steal someones focus.

https://bugzilla.gnome.org/show_bug.cgi?id=763037
2016-03-10 12:31:15 +08:00
Jonas Ådahl
ed430dc00a wayland: Add system bell support via gtk_shell
Invoke the system bell by calling the request added to the gtk_shell
protocol.

https://bugzilla.gnome.org/show_bug.cgi?id=763001
2016-03-10 12:31:15 +08:00
Jonas Ådahl
f68cf698fc wayland: Don't invent our own unstable protocol semantics
The gtk_shell protocol used some half baked unstable protocol semantics
that worked by only allowing binding the exact version of the
interface. This hack is a bit too confusing and it makes it impossible
to do any compatible changes without breaking things.

So, instead rename it to include a number in the interface names. This
way we can add requests and events without causing compatibility issues,
and we can later remove requests and events by bumping the number in
the interface names.

https://bugzilla.gnome.org/show_bug.cgi?id=763001
2016-03-10 12:31:15 +08:00
Matthias Clasen
30faa9a2a9 inspector: Refine strv editor
Put some spacing between the rows, and link the buttons to
the entries they belong to.
2016-03-09 21:59:43 -05:00
Matthias Clasen
6e9fd6832a inspector: Do a better job with readonly properties
Say if they are non-writable or construct-only, and also
gray out construct-only properties in the list.
2016-03-09 21:59:43 -05:00
Matthias Clasen
a28e76f09c GtkActionable: Improve property names
These names show up as title in the property editor
in the inspector, so we want them to look consistent
with the rest.
2016-03-09 21:59:43 -05:00
Matthias Clasen
c24cc63523 inspector: Minor refactoring
Break out some functions in prop-editor.c
2016-03-09 21:59:43 -05:00
Matthias Clasen
c1c8a861aa inspector: Redo property lists a bit
Break out value types as a separate column, to make the
value column more readable.
2016-03-09 21:59:43 -05:00
Matthias Clasen
0c929b7124 inspector: Avoid overflow when editing doubles
The adjustment double properties allow values from -G_MAXDOUBLE
to G_MAXDOUBLE, which leads to overflow when calculating
max - min / 10. To avoid that, simply use a fixed page_size of 1.0.
2016-03-09 21:59:43 -05:00
Piotr Drąg
747962ece2 Updated Polish translation 2016-03-10 03:43:27 +01:00
Matthias Clasen
6af8e9f3cc inspector: Wording changes
Align the property nicks of GtkCssNode with the column names
in the inspector node tree.
2016-03-09 19:29:58 -05:00
Matthias Clasen
f23c77b14b inspector: Some more cleanup
The last commit left some unused functions behind.
2016-03-09 19:29:58 -05:00
Matthias Clasen
e5a5f0a59a inspector: Remove an unncessary context menu
Now that we have the style properties on the same page again,
we don't need the context menu anymore.
2016-03-09 19:29:58 -05:00
Claude Paroz
0479969f3f Updated French translation 2016-03-09 23:09:12 +01:00
Matthias Clasen
fa48dbf1a5 range: Fix gadget state propagation
The contents node was not getting state updates at all, and the
trough node was missing some state updates as well, because we
were not calling update_trough_state() in all the places where
it is needed.
2016-03-09 14:15:40 -05:00
Carlos Garnacho
aaa467679d wayland: Make data_source_target() an empty stub
This request actually means nothing to the upper GDK layers,
we used to preempt a GDK_SELECTION_REQUEST event, but this is too
eager, and not like things work in X11.

Originally in wayland, this event may be used for feedback purposes.
We however don't perform any mimetype-based feedback, so we can
safely ignored.

This makes data_source_send() the only place where we actually
trigger GDK_SELECTION_REQUEST, this one is conceptually the same
than the X11 selection request event.
2016-03-09 18:39:16 +01:00
Carlos Garnacho
f61965233b wayland: Allow 0-size writes in selection/dnd
It's not something we should be forbidding explicitly, definitely
no-op is not the best option.
2016-03-09 18:39:15 +01:00
Carlos Garnacho
3da4b81427 wayland: Clear more thoroughly the source-side data on dnd_finished
The targets should also be unset.
2016-03-09 18:39:15 +01:00
Carlos Garnacho
ec2257e53c wayland: Unset the source-side DnD fd after passing it to the stream
The ownership is given to the stream, so unset it here.
2016-03-09 18:39:15 +01:00
Lapo Calamandrei
1879de1f17 Adwaita: radiobutton and checkbutton style fixes
padding and margins tweaks and treat the hover when placed in
popovers.
2016-03-09 17:29:46 +01:00
Timm Bäder
25b67af340 textview: Ensure the borders fit into the allocation
https://bugzilla.gnome.org/show_bug.cgi?id=763216
2016-03-09 16:46:00 +01:00
Lapo Calamandrei
473e346203 Adwaita: added a border to sidebars...
...hopefully when needed.
By default I assume a left hand side placement on ltr languages
and the opposite in rtl, for other placements left/right style
classes can be used.
2016-03-09 15:38:03 +01:00
Matthias Clasen
ed5468e81c window: Avoid excessive resizing with popovers
Under Wayland, popovers use subsurfaces, and we end up getting
configure events for these delivered to the toplevel they're in.
To avoid triggering resize loops, ignore configure events that
are not for the toplevel window itself.

https://bugzilla.gnome.org/show_bug.cgi?id=763351
2016-03-09 08:58:23 -05:00
Lapo Calamandrei
9ab920164a Adwaita: regenerate css
since a bit was missing from the previous commit
2016-03-08 20:39:24 +01:00
Lapo Calamandrei
8508ea1554 Adwaita: add a top border to actionbars 2016-03-08 20:09:18 +01:00
Lapo Calamandrei
5923b73fc1 Adwaita: make links on infobars visible 2016-03-08 19:56:33 +01:00
Marek Černocký
c62862f552 Updated Czech translation 2016-03-08 18:58:13 +01:00
Marek Černocký
c0ac2b849d Updated Czech translation 2016-03-08 18:46:11 +01:00
Stas Solovey
bd581bebed Updated Russian translation 2016-03-08 17:39:22 +00:00
Takao Fujiwara
7822f59a86 Set VirtualBox USB Tablet to GDK_SOURCE_MOUSE
The virtual host assigns the name of the mouse device to
"VirtualBox USB Tablet" in VirtualBox and we'd use that device as mouse.
If not, GtkTooltip is not enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=763017
2016-03-08 11:11:51 -05:00
Lapo Calamandrei
6fdf1e4462 Adwaita: path-bar style fixes
what we used to do here doesn't really work anymore, so this adapt
to gtk+ and theme changes.
2016-03-08 16:08:24 +01:00
Matthias Clasen
b7fd0147f7 gtk-demo: Fix a typo 2016-03-08 08:55:59 -05:00
Matthias Clasen
4357c22a89 gtk-demo: Update foreigndrawing example some more
The scrollbar changes need to take the theme's negative margins
into account.
2016-03-08 08:55:59 -05:00
Lapo Calamandrei
01ad22df1f Adwaita: vertical paddings on menu
mostly to fix combobox menu positioning, looks nice anyway.
2016-03-08 14:27:24 +01:00
Matthias Clasen
fdd3c912a0 gtk-demo: Try to fix foreigndrawing scrollbars
The node hierarchy and sizing has changed with the gadgetization
of range widgets.
2016-03-08 08:14:36 -05:00
Lapo Calamandrei
1f3c93583a Adwaita: fix a typo 2016-03-08 14:00:01 +01:00
Мирослав Николић
db485305e4 Updated Serbian translation 2016-03-08 09:50:33 +01:00
Мирослав Николић
6e17ed2dca Updated Serbian translation 2016-03-08 09:48:24 +01:00
Мирослав Николић
450287fc9f Updated Serbian translation 2016-03-08 09:46:13 +01:00
Balázs Úr
24535e2484 Updated Hungarian translation 2016-03-08 07:42:18 +00:00
Chun-wei Fan
15c9b3e692 GDK-Win32: Make update_stye_bits() available within the backend
Other portions of the GDK-Win32 backend make use of this function as
layered windows need to be disabled for GL windows and possibly other
parts, so make this function a private function that is available within
the backend.

https://bugzilla.gnome.org/show_bug.cgi?id=763285
2016-03-08 13:26:59 +08:00
Chun-wei Fan
3f190e0fa6 Win32: Disable layered windows for GL
Layered windows and GL do not work well together, so disable layered
windows when initiating a GdkGLContext, so that GtkGLArea programs can run
properly.

Also based on patch by LRN to address the issue.

https://bugzilla.gnome.org/show_bug.cgi?id=763080
2016-03-08 12:16:37 +08:00
Dušan Kazik
18f81d5da8 Updated Slovak translation 2016-03-07 20:32:48 +00:00
Piotr Drąg
d173b69740 Updated Polish translation 2016-03-07 19:54:44 +01:00
Piotr Drąg
717e88282b Updated POTFILES.in 2016-03-07 19:35:35 +01:00
Matthias Clasen
3015f46170 Fix another installed test typo
This one was causing us to install invalid .test files and thereby
breaking all continuous tests :-(
2016-03-07 10:50:43 -05:00
Matthias Clasen
13a94b66b6 Sync default double-click time with GNOME
The default value for the double-click key in the
org.gnome.settings-daemon.peripherals.mouse schema is 400.
Use the same value as the declared default for the
gtk-double-click-time GTK+ setting, to avoid pointless
differences in corner cases.

https://bugzilla.gnome.org/show_bug.cgi?id=720950
2016-03-07 07:50:29 -05:00
Matthias Clasen
1388b111a8 wayland: Implement gtk-keynav-use-caret setting
This is anticipating the gsetting that will be introduced in
https://bugzilla.gnome.org/show_bug.cgi?id=763123
2016-03-07 07:35:36 -05:00
Matthias Clasen
8a1da56393 Fix a typo
This was causing the tools tests to not be installed and,
consequently, never run on continuous.
2016-03-07 07:30:00 -05:00
Daniel Mustieles
f4551bddf5 Updated Spanish translation 2016-03-07 10:55:19 +00:00
Daniel Mustieles
0f5a95e712 Updated Spanish translation 2016-03-07 10:54:56 +00:00
Марко М. Костић
2589e50898 Updated Serbian translation 2016-03-07 11:43:07 +01:00
Rafael Fontenelle
02dd97fcd0 Updated Brazilian Portuguese translation 2016-03-07 05:43:39 +00:00
Matthias Clasen
aa193ce4a4 inspector: UI refresh
The sidebar in the object page was using up more space than it deserves.
Replace it with a combo box in the subheader. Now that we have more space,
put the CSS node tree and the style properties in the same page again.
2016-03-07 00:24:15 -05:00
Matthias Clasen
4b5bcdeaa5 inspector: Drop the per-object CSS editor
The global editor is good enough for all uses.
2016-03-06 21:41:46 -05:00
Cosimo Cecchi
9509bbb4a1 range: remove unneeded gtk_widget_queue_draw() 2016-03-06 11:10:44 -08:00
Cosimo Cecchi
c4615eff7b range: rename function
The function queues an allocation now, not a draw.
2016-03-06 11:10:44 -08:00
Cosimo Cecchi
de1c4bad6f range: remove duplicated code
This is already called by range_grab_add().
2016-03-06 11:10:44 -08:00
Cosimo Cecchi
d9db329496 scale: trivial code cleanup 2016-03-06 11:10:44 -08:00
Cosimo Cecchi
f294bdc803 scale: deprecate value-spacing style property
Nothing uses it now.
2016-03-06 11:10:44 -08:00
Cosimo Cecchi
a9b50b6f69 scale: port scale values to gadgets
And add a default color like it was before.
This also fixes other issues with scale values interacting with scale
mark labels, which were buggy at least since 3.18.
2016-03-06 11:09:46 -08:00
Balázs Úr
27b53b58c3 Updated Hungarian translation 2016-03-06 18:27:26 +00:00
Matthias Clasen
94f0cef6fc Minor documentation improvement
https://bugzilla.gnome.org/show_bug.cgi?id=583780
2016-03-06 10:23:49 -05:00
Matthias Clasen
4ab91f09cf spin button: Limit the entry width to reasonable values
When opening the value editor for any GtkAdjustment properties
in the inspector, the popover stretches out for miles, since
it reserves enough space to draw MAXDOUBLE. This is not useful.
Limit the space we reserve to 8 digits.
2016-03-05 23:45:35 -05:00
Matthias Clasen
6d1cdaff7e gtk-demo: Use <accelerator>
Add an example of <accelerator> use in the builder example.
2016-03-05 23:44:03 -05:00
Matthias Clasen
9c0e4c174a builder: Allow 'primary' as a modifier value
Support aliases for flags values in GtkBuilder, and use this
to support the special value 'primary' for GdkModifierType
values.

https://bugzilla.gnome.org/show_bug.cgi?id=699891
2016-03-05 23:44:03 -05:00
Cosimo Cecchi
27a6183b98 range: simplify calculation 2016-03-05 19:09:18 -08:00
Cosimo Cecchi
8242182404 range: move declarations to inner block
Where they're needed.
2016-03-05 19:09:18 -08:00
Cosimo Cecchi
990bd03c35 range: use a fixed offset for mark "snap" size
Instead of making it dependent on the slider size.
2016-03-05 19:09:18 -08:00
Cosimo Cecchi
6efe1f411a Revert "range: use border box for slider area"
Since it causes problems with event coordinates.

This reverts commit 0883ff5eed.
2016-03-05 19:09:18 -08:00
Anders Jonsson
d866f364d1 Updated Swedish translation 2016-03-05 23:03:05 +00:00
Matej Urbančič
6338c5ee7c Updated Slovenian translation 2016-03-05 22:37:17 +01:00
Matej Urbančič
4f76a89de0 Updated Slovenian translation 2016-03-05 22:33:50 +01:00
Matthias Clasen
5c248bbd79 Make the settings test fail
Small thinko: We only get to see the test artifacts in
continuous if the test fails. So make it fail, temporarily.
2016-03-05 15:49:34 -05:00
Cosimo Cecchi
31fd41e547 Adwaita: fix glitch in fine-tune scrollbar theming
The fine-tune mode should not change the overall dimensions of the
scrollbar.
2016-03-05 12:05:26 -08:00
Stas Solovey
3608d042e0 Updated Russian translation 2016-03-05 19:56:37 +00:00
Matej Urbančič
bdeff73bec Updated Slovenian translation 2016-03-05 20:56:06 +01:00
Matej Urbančič
f77407e19a Updated Slovenian translation 2016-03-05 20:49:05 +01:00
Aurimas Černius
c1b8aee5c2 Updated Lithuanian translation 2016-03-05 21:37:17 +02:00
Paolo Borelli
8f25481406 win32: use a struct for the event source
This removes the event_poll_fd global variable and the (ab)use of
get_default_display. It is also more consistent with other backends.

Also store display
2016-03-05 20:31:10 +01:00
Paolo Borelli
58a49c1a4b win32: fix "unused variable" warning 2016-03-05 20:31:10 +01:00
Rafael Fontenelle
6066519e73 Updated Brazilian Portuguese translation 2016-03-05 19:05:56 +00:00
Matthias Clasen
d69100547c testsuite: Remove a test that isn't valid with csd
With csd, the allocation of the window will be larger than the
default size, since it includes borders and decorations. Just
remove this check.
2016-03-05 13:47:41 -05:00
Matthias Clasen
b2e6ad640d Add a test that dumps settings
This is not much of a test, tbh. But it will give us a convenient
dump of all GTK+ settings in continuous, which helps with tracking
down test failures that might depend on settings.
2016-03-05 13:41:47 -05:00
Matthias Clasen
434b08fe24 status icon: Prevent size dithering
We're seeing loops where the size of some status icons constantly
dithers between 24 and 25. Since I couldn't track down exactly
where the one extra pixel comes from, just stop reacting
to single-pixel size changes.

https://bugzilla.gnome.org/show_bug.cgi?id=758893
2016-03-05 12:15:42 -05:00
Matthias Clasen
213108b64f Minor cleanup
The GtkStatusIcon::size-changed signal expects a boolean return.
2016-03-05 12:11:05 -05:00
Matthias Clasen
8a62a36d2e Update a11y test output
These tests can now assume that the csd header bar will be there.
2016-03-05 10:40:06 -05:00
Matthias Clasen
6ce3c78b7a Run accessibility tests always with CSD
This avoids differences in the output that are caused
by the presence or absence of the header bar.
2016-03-05 10:40:06 -05:00
Piotr Drąg
499c20d85f Updated Polish translation 2016-03-05 14:47:17 +01:00
Rūdolfs Mazurs
154d48ef1a Update Latvian translation 2016-03-05 12:36:09 +02:00
Matthias Clasen
251810ff40 inspector: Avoid pointless selections
The CSS selector and the class hierarchy are purely
informative, no need to select anything here.
2016-03-05 00:35:08 -05:00
Matthias Clasen
e69c1c5a9b inspector: More grid lines
I had forgotten the css property list.
2016-03-05 00:34:39 -05:00
Matthias Clasen
360bad6865 inspector: Some ui refinements
Remove pointless expanders from lists, add grid lines and,
in some places, tree lines.
2016-03-05 00:29:06 -05:00
Matthias Clasen
fa36f34fcf Update expected output of a11y tests
The window type attribute shows up here now.
The caret mode changes also affect some tests.
2016-03-04 23:51:39 -05:00
Matthias Clasen
2b1fc6166c a11y: Expose window type hint as attribute
This was an old request, maybe still useful.

https://bugzilla.gnome.org/show_bug.cgi?id=468122
2016-03-04 23:50:50 -05:00
Matthias Clasen
92662828ba messagedialog: Respect the gtk-keynav-use-caret setting
We used to always make the labels in message dialogs selectable,
which is a bit problematic wrt. to keynav - the label can
unexpectedly 'turn blue', which irritates some people.

With the new gtk-keynav-use-caret setting, we can now only
make the labels selectable when it is required for accessibilty
reasons.
2016-03-04 22:44:30 -05:00
Matthias Clasen
d8dee2952a gdk: Add an X setting for gtk-keynav-use-caret
This will let us toggle the use-caret setting session-wide.
2016-03-04 22:44:29 -05:00
Matthias Clasen
5c0b589acd text view: Respect gtk-keynav-use-caret
When the gtk-keynav-use-caret setting is TRUE, make the cursor
visible regardless of the cursor-visible property.
2016-03-04 22:44:29 -05:00
Matthias Clasen
c9371f6a18 Add a gtk-keynav-use-caret mode setting
For accessibility reasons, it is useful to have a global setting
that makes carets visible in all text.

https://bugzilla.gnome.org/show_bug.cgi?id=602526
https://bugzilla.gnome.org/show_bug.cgi?id=762799
2016-03-04 22:43:24 -05:00
Cosimo Cecchi
f3e068bb31 range: avoid setting slider coordinates to negative numbers
This can happen if the theme sets a negative margin, but the coordinate
should never be negative.
2016-03-04 18:13:53 -08:00
Cosimo Cecchi
fce344d31f range: factor out a function
We're going to modify this in the next commit.
2016-03-04 18:13:53 -08:00
Matthias Clasen
7f9223b0c8 gtk-demo: Fix up the inline-toolbar example
The inline toolbar in the style classes demo should use
the icons toolbar-style to ensure that the buttons are square.
2016-03-04 20:50:21 -05:00
Matthias Clasen
b84cf5f349 tool button: Update style classes
When changing tool button contents according to the toolbar-style
property, we need to update the style classes to ensure that the
visual style matches.

https://bugzilla.gnome.org/show_bug.cgi?id=760560
2016-03-04 20:50:21 -05:00
Cosimo Cecchi
5a42c2e478 range: fix warning for gadget slider
The slider is not HFW/WFH - just pass -1 to get rid of the warnings.
2016-03-04 17:28:53 -08:00
Olivier Fourdan
cdc580463e gtkwindow: default size with fixed size windows
Allow fixed size windows with a default size to grow or shrink as the
content requires, but not smaller than the given default size.

https://bugzilla.gnome.org/show_bug.cgi?id=762974
2016-03-04 20:17:50 -05:00
Ray Strode
046a4a6e0f gtkapplication-dbus: use application id instead of prgname for SM
gnome-session takes an "app id" for client and inhibitor registration,
This app id is supposed to be a desktop file id (complete with the
.desktop extension), but gtk+ currently uses g_get_prgname ().

This commit changes gtkapplication to use the application id instead,
which is a much more natural fit.  gnome-session is going to be updated
to stop using the .desktop extension, too, so everything is consistent.

https://bugzilla.gnome.org/show_bug.cgi?id=763106
2016-03-04 20:17:26 -05:00
Carlos Soriano
fdde27ea9c gtkplacessidebar: add new other locations with flags signal
We weren't using the open flags on the other locations signal, which
makes impossible for applications like nautilus to act in the same
way that for any other location where the user can choose between
opening in the current view, in a new window or in a new tab.

Add a new signal with an open flags parameter and deprecate
the other-location signal.

https://bugzilla.gnome.org/show_bug.cgi?id=754743
2016-03-04 20:15:52 -05:00
Carlos Soriano
fec0c4c201 Revert "gtkplacessidebar: add open flags to other locations"
This reverts commit 63a204e1c5 since it broke the API.
We will add a new signal instead in an upcomming patch.

https://bugzilla.gnome.org/show_bug.cgi?id=754743
2016-03-04 20:15:52 -05:00
Lapo Calamandrei
303fdfbe8b Adwaita: treeview column header scrollbar top border
add a top border in vertical scrollbars in treeviews.
2016-03-05 02:10:24 +01:00
Matthias Clasen
aadbabf998 wayland: Don't crash with offscreen windows
Use gdk_window_get_effective_toplevel when looking for
a suitable transient parent, to skip over offscreen windows
that we might encounter in the window tree. This fixes
a crash in glade.

https://bugzilla.gnome.org/show_bug.cgi?id=763110
2016-03-04 20:04:43 -05:00
Lapo Calamandrei
eef3153265 Adwaita: shrink scroolbars
erroneusly pushed 15px scrollbars with the previous commit, back
to 13px now.
2016-03-05 02:01:16 +01:00
Lapo Calamandrei
035ce8f18d Adwaita: fix a typo 2016-03-05 01:50:18 +01:00
Lapo Calamandrei
0c987f94c8 Adwaita: scrollbar style rewrite
works correctly with the new gadgettified GtkRange Cosimo nicelly
delivered, as a bonus steppers are styled for overlay indicator
usage as well.
2016-03-05 01:39:13 +01:00
Stas Solovey
756ca38442 Updated Russian translation 2016-03-04 21:41:52 +00:00
Cosimo Cecchi
7ff2f451ce range: add positional style classes to fill/highlight
Requested by Lapo.
2016-03-04 11:57:31 -08:00
Matthias Clasen
832742e1f3 x11: Trap errors around an XRandr call
Apparently, we can get X errors here. Ignore them.
https://bugzilla.gnome.org/show_bug.cgi?id=762907
2016-03-04 14:35:23 -05:00
Olivier Fourdan
adcd1ce2d3 gtkwindow: windows with a fixed size can shrink
One important aspect of non-resizable windows that we need to preserve
is that they shrink when their content requires less size.

Previous changes to allow the default size to be applied to fixed size
windows would have prevented all fixed size windows from shrinking when
their content requires less size.

Allow shrinking for fixed-size windows unless a default size was
specified.

https://bugzilla.gnome.org/show_bug.cgi?id=762974
2016-03-04 14:35:23 -05:00
Balázs Úr
f24ac2f5ab Updated Hungarian translation 2016-03-04 19:15:05 +00:00
Lapo Calamandrei
59badc320e Adwaita: shrink back scale trough
like it was before the GtkRange gadgettification.
2016-03-04 20:09:16 +01:00
Matthias Clasen
69479ceaef wayland: Clean up key repeat timeout
When returning G_SOURCE_REMOVE from a callback, we need
to reset the source id as well.
2016-03-04 13:56:26 -05:00
Matthias Clasen
4d2e7a0314 gadget: Add more details to warning
All the other warnings in this file include the css node name
and the gadget owners type. Be consistent about this.
2016-03-04 13:56:26 -05:00
Matthias Clasen
51b83c4389 gadget: Warn if for_size is too small
It does not make sense to pass a for_size into the size allocation
machinery that is smaller than the min-size in that direction.
Warn if it happens, so we can track it down when it occurs.
2016-03-04 13:43:19 -05:00
Lapo Calamandrei
54858574a3 Adwaita: really fix scale with marks
added a min-height/width compensation too when in fine-tune mode,
so scale with marks and no labels doesn't make the scale node grow
when in fine-tune.
2016-03-04 19:18:43 +01:00
Ray Strode
50598ee08f gtk-launch: add hack to close up dbus-daemon race
If gtk-launch exits before the program it starts fully activates,
then the dbus-daemon may avoid doing the activating method call.

This commit works around the problem by pinging the activated
application, and waiting for a reply.

This is similar to the gvfs-open bug here:

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

https://bugzilla.gnome.org/show_bug.cgi?id=763103
2016-03-04 12:42:37 -05:00
Lapo Calamandrei
88d51a8604 Adwaita: fix a thinko wrt fine-tune scales
added a scale node padding compensation for the trough growth in
fine-tune mode, so now the scale node doesn't grow anymore when
mark labels are present.
2016-03-04 18:36:36 +01:00
Matthias Clasen
7382f3c347 icon helper: Properly update on style change
A GtkCssChange of NULL means 'everything changed!'.
2016-03-04 08:50:52 -05:00
Matthias Clasen
6b2cde94b4 entry: Make progress node invisible when appropriate
We were failing to do that, leading to progress not disappearing
anymore after it was initially shown, in the gtk3-widget-factory
entry progress example.
2016-03-04 08:04:45 -05:00
Cosimo Cecchi
7ccd91c9eb testscale: change example to use upwards labels
There's no example of that in testscale.
2016-03-03 22:06:16 -08:00
Cosimo Cecchi
757b74bed9 Adwaita: fix thinko in fine-tune scale selector
Marks always get class top/bottom, regardless of the scale orientation.
2016-03-03 22:06:16 -08:00
Baurzhan Muftakhidinov
bc49954b3e Updated Kazakh translation 2016-03-04 04:48:34 +00:00
Baurzhan Muftakhidinov
f03efbe2c9 Updated Kazakh translation 2016-03-04 04:09:51 +00:00
fiddlerwoaroof
f3f998efd7 Check if XRRGetOutputInfo returned a null pointer.
Fixes bug 763023: in certain circumstances, XRRGetOutputInfo will return
a null pointer.  This commit adds a check to detect and handle this
return value.
2016-03-03 21:31:26 -05:00
Matthias Clasen
763daf4420 expander: Reinstate rtl allocation behavior
In rtl mode, we must not just reverse the children,
but also allocate from the right. Use the newly introduced
box gadget api to achieve this.

https://bugzilla.gnome.org/show_bug.cgi?id=762945
2016-03-03 21:28:51 -05:00
Matthias Clasen
c48f0d6f8b check button: Reinstate rtl allocation behavior
In rtl mode, we must not just reverse the children,
but also allocate from the right. Use the newly introduced
box gadget api to achieve this.

https://bugzilla.gnome.org/show_bug.cgi?id=762945
2016-03-03 21:28:51 -05:00
Matthias Clasen
c581259e06 box gadget: Add a way to allocate in reverse
This is needed to preserve expected allocation behavior
in rtl mode.
2016-03-03 21:28:51 -05:00
Piotr Drąg
d34161145f Updated POTFILES.skip 2016-03-04 01:52:47 +01:00
Matt Watson
d46d50b761 reftests: add a test for animated box shadow updating clip
This was just fixed by 3e06942847
2016-03-03 16:14:39 -08:00
Matt Watson
35d9702173 reftests: rename util file frame-inhibitor
We'll use the label-text-shadow-changes-modify-clip utils
more generically, lets name the file after its function.
2016-03-03 16:09:13 -08:00
Timm Bäder
8b70115d5e revealer-size: Fix animation setting
Turn animations off before testing, for all test functions containing
"no_animations".
2016-03-03 21:05:37 +01:00
Evangelos Skarmoutsos
00069e2997 Updated Greek translation 2016-03-03 19:02:18 +00:00
Руслан Ижбулатов
a55f1113f5 Remove unused variable 2016-03-03 18:00:44 +00:00
Руслан Ижбулатов
95fe3ec0c9 GDK W32: Fix redrawing during drag-move with no composition 2016-03-03 18:00:43 +00:00
Timm Bäder
e2e330db1a revealer: Don't use TRANSITION_NONE for disabled animations
If animations are disabled, the only difference we need to make is that
we don't have to start the transition. Size requests should remain the
same.

https://bugzilla.gnome.org/show_bug.cgi?id=762996
2016-03-03 18:54:09 +01:00
Timm Bäder
1c544e4237 Add GtkRevealer sizing tests
https://bugzilla.gnome.org/show_bug.cgi?id=762996
2016-03-03 18:54:08 +01:00
Lapo Calamandrei
8b6603bbd6 Adwaita: fix a thinko about toolbar items spacing with margins 2016-03-03 18:02:43 +01:00
Olivier Fourdan
4a729dc233 gtkwindow: Fix regression with fixed size windows
Previous commit to address the default size introduced a regression
with fixed size windows if no default size was given, the resulting
window would end up much smaller than its actual content.
2016-03-03 17:50:19 +01:00
Changwoo Ryu
a37ea5dafd Updated Korean translation 2016-03-03 16:32:06 +00:00
Changwoo Ryu
ae2bf880a9 Updated Korean translation 2016-03-03 16:12:06 +00:00
Lapo Calamandrei
08613dce92 Adwaita: uniform paddings on image-buttons
fixes https://bugzilla.gnome.org/show_bug.cgi?id=762811
2016-03-03 16:12:20 +01:00
Lapo Calamandrei
3549490aa8 Adwaita: use margin for spacing widgets on toolbars
kind of a workaround, this approach is pretty unmaintainable, I
hope we'll get a CSS property for spacing directly on the parent
container (a toolbar in this particular case).
See https://bugzilla.gnome.org/show_bug.cgi?id=762397
2016-03-03 16:01:46 +01:00
Olivier Fourdan
0f95472581 gtkwindow: Use default size even if not resizable
If a window is not resizable (with gtk_window_set_resizable ()),
the size given with gtk_window_set_default_size() is ignored.

The solution to this would be to use gtk_widget_set_size_request() but
that's a GtkWidget API and therefore does not take into account the
client side decorations when in use with GtkWindow.

Refactor the code so that gtk_window_set_default_size() (which is a
GtkWindow API) gives the expected result on non-resizable windows as
well.

bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=762974
2016-03-03 09:13:32 +01:00
Руслан Ижбулатов
7eb9f5f8ef W32: Prefer CSD by default
Will make GTK+ more willing to use CSD for all normal windows without
being asked to. Lack of desktop composition will, of course, prevent
it from using CSD (in theory).

GTK_CSD=0 will force CSD to NOT to be used whenever
possible (i.e. in cases where CSD is not specifically requested
by a window, by design).

https://bugzilla.gnome.org/show_bug.cgi?id=759899
2016-03-03 07:41:06 +00:00
Руслан Ижбулатов
ba89fbd72d GDK W32: Set default cursor from our own theme right away
Otherwise WM-dependent default cursor is used, which does not
match our theme. Worse, later GDK will realize that we have
our own left_ptr cursor and will apply it after all, making
the discrepancy even more noticeable.

https://bugzilla.gnome.org/show_bug.cgi?id=762902
2016-03-03 07:20:02 +00:00
Руслан Ижбулатов
84ddc6aab1 GDK W32: Force correct mouse cursor for custom resize/move
* Explicitly grab the device, setting appropriate cursor on it.
* Fix gdk_device_virtual_set_window_cursor() to just set the
  cursor, without trying to check that mouse is over the given
  window. Also prevent it from immediately resetting cursor.
* Alse take into account things that happen in other parts of
  GDK - don't look for replacement cursor, GDK already did that,
  and don't create a default arrow cursor instead of NULL,
  GDK-W32 already did that up the stack as well.
  Warn about inappropriate cursor == NULL argument instead.

https://bugzilla.gnome.org/show_bug.cgi?id=762711
2016-03-03 07:17:46 +00:00
Cosimo Cecchi
8ebc03a1d1 range: use border allocation for gadget hit test
The border is typically part of the reactive part of the widget. This
matches the pre-gadget behavior.
2016-03-02 22:23:11 -08:00
Руслан Ижбулатов
f9ed3fdd7b GDK W32: Implement gdk_win32_screen_get_monitor_workarea()
https://bugzilla.gnome.org/show_bug.cgi?id=763012
2016-03-03 05:29:12 +00:00
Matthias Clasen
0b156ea096 Document the .circular style class 2016-03-02 19:12:10 -05:00
Cosimo Cecchi
1395f3a838 scrolledwindow: fix left/right thinko for scrollbar style classes
"left" and "right" were inverted, preumably because the position type
parameter refers to the scrolled window position, and not the scrollbar
itself.
2016-03-02 16:08:19 -08:00
Benjamin Otte
3e06942847 widget: Add brute force method to propagate clip
When a gtk_widget_queue_allocate() on some widget increases the clip,
widget->parent's clip was not updated. This appraoch naively just
unions widget's new clip with widget->parent's clip.

This of course only works if widget and parent share the same GDK
window. In the cases where they don't we can't do anything and need a
better fix.

Fixes label-text-shadow-changes-modify-clip.ui reftest.
2016-03-03 00:43:59 +01:00
Stas Solovey
05d1437e62 Updated Russian translation 2016-03-02 23:21:51 +00:00
Lapo Calamandrei
76ea3a15cb Adwaita: more scale style fixes 2016-03-02 23:10:26 +01:00
Руслан Ижбулатов
c05f254a6e GDK W32: Use layered windows
Toplevels are now true layered windows that are moved,
resized and repainted via UpdateLayeredWindow() API call.
This achieves transparency without any extra effort,
and prevents window size and window contents desychronization
(bug 761629).

This also changes the way CSD windows are detected. We now
use window decorations to detect CSDiness of a window,
and to decide whether a window should be layered (CSD windows should
be) or not.

Decorations are now stored in the window implementation,
not as a quark-based property of the window-as-gobject.

https://bugzilla.gnome.org/show_bug.cgi?id=748872
2016-03-02 21:42:50 +00:00
Руслан Ижбулатов
e03946bd28 GDK W32: custom (non-WM) drag-move and drag-resize code
Normally works only on CSD windows, non-CSD windows continue
to use WM modal loop for drag-resizing and drag-moving. However,
if it is activated on non-CSD windows, it does work.

Has the advantage of being completely immune to AeroSnap.
AeroSnap only worked partially on CSD windows, with the only part
that worked being "don't let users drag window titlebar outside of
the desktop". Now AeroSnap doesn't work on windows moved by
this code at all, which is good, since they currently don't work
well with it due to the way shadows are drawn.

It's possible to also re-implement AeroSnap (or something similar),
but that is a story for another commit.

This code was originally intended to fix the problem of window
size and window contents desynchronization, but failed to achieve
that result in the end. Nevertheless, it serves as a foundation for
other changes to the way window resizing works.

https://bugzilla.gnome.org/show_bug.cgi?id=761629
2016-03-02 21:39:32 +00:00
Lapo Calamandrei
597151c736 Adwaita: fix scale with marks size 2016-03-02 21:54:19 +01:00
Daniel Mustieles
d4cda10830 Updated Spanish translation 2016-03-02 21:36:59 +01:00
Lapo Calamandrei
fde1aac57a Adwaita: scale with marks style fixes
after GtkRange gadgettification the theme needs some adjustments
for the new widget structure.
2016-03-02 21:35:38 +01:00
Matthias Clasen
4a5801b902 combobox: Correct the CSS node docs
The box was somehow overlooked in the diagrams.
2016-03-02 15:20:47 -05:00
Matthias Clasen
8205a304e8 Add a css node test for comboboxes 2016-03-02 15:20:31 -05:00
Lapo Calamandrei
d3ca8aaf83 Adwaita: fix combos styling
since now the combobox childrens are in a box.
2016-03-02 20:55:19 +01:00
Cosimo Cecchi
b1144a73de scale: don't add scale label for empty markup
This is a regression from the gadget port.
2016-03-02 11:17:08 -08:00
Aurimas Černius
a87e18ca6f Updated Lithuanian translation 2016-03-02 20:42:40 +02:00
Ray Strode
b5281837d6 wayland: synchronize key repeat with server
key repeat is handled client side, which means stalls in the compositor
dispatching key release events can lead to fictious repeat events.

This commit ties key repeat to a server roundtrip to ensure the client
and server are in sync.

https://bugzilla.gnome.org/show_bug.cgi?id=757942
2016-03-02 13:07:12 -05:00
Ray Strode
551f1742f5 wayland: handle key up events earlier in deliver_key_event
We don't need the key repeat rate or anything like that when
handling key up events, so do key up events first before querying
for that information.

https://bugzilla.gnome.org/show_bug.cgi?id=757942
2016-03-02 13:07:12 -05:00
Ray Strode
619799ba3b wayland: make deliver_key_event return void
deliver_key_event is sometimes called from a timeout handler and
sometimes called directly.  We currently erroneously return TRUE
(G_SOURCE_CONTINUE) in the case where it's called directly, but to
no ill effect, since we ignore that return value. In the future,
we're going to need to call it directly in other parts of the code
where the return value would be relevant and handling TRUE, would
require adding redundant code.

Instead, this commit just changes the code to always reset the timer
manually, and never rely on glib's ability to automatically reset
the timer by returning TRUE.  This makes the code smaller, too, since
there's less special casing required.

https://bugzilla.gnome.org/show_bug.cgi?id=757942
2016-03-02 13:07:12 -05:00
Benjamin Otte
89121e058a win32 theme: Add a naive switch implementation
I couldn't come up with anything better than a button on a button.
But the Windows theme sucks...
2016-03-02 14:49:37 +01:00
Benjamin Otte
8e3bc96d78 win32 theme: Implement horizontal spinbuttons 2016-03-02 14:49:37 +01:00
Benjamin Otte
222c43fc60 combobox: Put child into box
Put the combobox child into the box we added for this purpose. That way,
we don't have to maintain the child's position ourselves anymore.
2016-03-02 13:54:39 +01:00
Benjamin Otte
a380533336 container: Remove check
The check is not working for many containers anymore as they are not the
direct parents of their children. We want to allow this behavior in more
places.
2016-03-02 13:54:39 +01:00
Benjamin Otte
c3d3bf61e4 combobox: Put the button in a box
This is so we can put the entry into the box in the next commit.
2016-03-02 13:54:39 +01:00
Benjamin Otte
04d9577cb7 combobox: Make sure the cellview expands
Windows theme needs the expansion for correct drawing of the focus
outline.
2016-03-02 13:54:39 +01:00
Benjamin Otte
13b320ecb2 combobox: Ensure an entry gets created for has_entry combos
Previously add/remove on the combobox would result in a cellview being
created.
2016-03-02 13:54:39 +01:00
Fran Dieguez
77d624a8f7 Updated Galician translation 2016-03-02 09:46:21 +00:00
Rico Tzschichholz
1e27fe83ea mir: display->list_devices vfunc was dropped
See 4a6f8a065a

https://bugzilla.gnome.org/show_bug.cgi?id=762891
2016-03-02 10:24:44 +01:00
Chun-wei Fan
5e00f5fdce Fix last commit
We need to drop the reference to it in configure.ac as well...
2016-03-02 16:53:27 +08:00
Chun-wei Fan
ea8873da55 MSVC build: Drop crypt implementation for MSVC
We are actually not using the crypt() in GDK-Broadway for quite a while,
so the code implementation for MSVC is actually not used.  So, it's time
to get rid of this.
2016-03-02 16:52:30 +08:00
Yosef Or Boczko
5d8fd8ab3c Updated Hebrew translation 2016-03-02 09:39:24 +02:00
Yosef Or Boczko
72d766445d Updated Hebrew translation 2016-03-02 09:37:20 +02:00
Chun-wei Fan
e15ab84e35 MSVC builds: Re-arrange include paths
Search also for the headers in include/gio-win32-2.0, as gio.h will
include those headers at some point, and arrange the include paths in a
dependency hierarchy style, top-to-down.
2016-03-02 13:02:30 +08:00
Matthias Clasen
2a8355f679 3.19.11 2016-03-01 23:25:56 -05:00
Matthias Clasen
444703f2bb css node tests: Update notebook results
This is fallout from changing the tab states.
2016-03-01 23:25:56 -05:00
Olivier Fourdan
de383809f6 wayland: Check actual impl type in transient loop
If the parent of a transient is not a native Wayland window (e.g.
offscreen window), the transient loop check will crash.

Check for the actual type in the transient loop check and do not assume
the parent is necessarily Wayland native.

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

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
2016-03-01 22:18:32 -05:00
Jonas Ådahl
9e2207b2b0 gdk: Compress window state events
If there are already a window state event for a given window queued
when the window state is changed, drop that event and queue a new event
with a changed_mask based on the state before last event that was queue
without compression.

https://bugzilla.gnome.org/show_bug.cgi?id=762468
2016-03-02 10:22:17 +08:00
Matthias Clasen
956b2ff998 progressbar: Don't leave css nodes behind
We create and destroy gadgets inside the hierarchy here,
and if we don't explicitly remove their CSS nodes from the parent,
they stick around.
2016-03-01 16:00:54 -05:00
Matthias Clasen
577783a19d scale: Don't leave css nodes behind
We create and destroy gadgets inside the scale hierarchy here,
and if we don't explicitly remove their CSS nodes from the parent,
they stick around.
2016-03-01 15:58:21 -05:00
Cosimo Cecchi
5889d2520f Adwaita: fix outline for scale trough 2016-03-01 12:54:01 -08:00
Matthias Clasen
cb614cc838 range: Don't leave css nodes behind
We create and destroy gadgets inside the range hierarchy here,
and if we don't explicitly remove their CSS nodes from the parent,
they stick around.
2016-03-01 15:48:01 -05:00
Matthias Clasen
37007c47a5 level bar: Don't leave css nodes behind
We create and destroy gadgets inside the levelbar hierarchy here,
and if we don't explicitly remove their CSS nodes from the parent,
they stick around.
2016-03-01 15:35:32 -05:00
Matthias Clasen
87e71afd50 cell renderer: Strip out :drop(active) state
It does not make sense to render every cell in a treeview as
drop target, even when the treeview itself is set as a drop destination.

https://bugzilla.gnome.org/show_bug.cgi?id=761686
2016-03-01 15:18:34 -05:00
Matthias Clasen
6230319dba Updates 2016-03-01 15:09:10 -05:00
Matthias Clasen
eff97fd55f Take a reference on the im context for async ops
This might fix the crash in yelp that some people continue
to see.

https://bugzilla.gnome.org/show_bug.cgi?id=762887
2016-03-01 07:59:15 -05:00
Olivier Fourdan
3607b9aa2e wayland: Restore size when configure size is 0x0
According to xdg_shell, an xdg_surface.configure with size 0x0 should
be interpreted as that it is up to the client to set a size.

When transitioning from maximize or fullscreen state, this means the
client should configure its size back to what it was before being
maximize or fullscreen.

This problem currently only occurs on weston because weston sends a
configure with size 0x0 when transitioning back from maximize or
fullscreen.

bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=762713
2016-03-01 13:15:02 +01:00
Anders Jonsson
9f08029966 Updated Swedish translation 2016-03-01 09:13:42 +00:00
Benjamin Otte
61f5562f9f notebook: Tell everyone we reordered stuff
Fixes keybindings for reordering actually emitting signals and properly
updating CSS/the screen.
2016-02-29 23:17:00 +01:00
Benjamin Otte
a74bb0dec4 notebook: Reallocate tab gadgets when we reorder them
Otherwise they stay in their position and don't cause a redraw. Which
really confuses Epiphany users apparently.

https://bugzilla.gnome.org/show_bug.cgi?id=762720
2016-02-29 22:00:03 +01:00
Paolo Borelli
fa43edd244 gdk: implement gdk_display_list_devices using GdkSeat
Now that the function is factored out in a single place, we can
refactor it to not use deprecated API.
2016-02-29 21:54:01 +01:00
Paolo Borelli
4a6f8a065a gdk: remove the display->list_devices vfunc
gdk_display_list_devices is deprecated and all the backends
implement the same fallback by delegating to the device manager
and caching the list (caching it is needed since the method does
not transfer ownership of the container).
The compat code can be shared among all backends and we can
initialize the list lazily only in the case someone calls the
deprecated method.

https://bugzilla.gnome.org/show_bug.cgi?id=762891
2016-02-29 21:53:58 +01:00
Cosimo Cecchi
d000b212c6 range: fix fill level for vertical inverted scales 2016-02-29 12:53:08 -08:00
Cosimo Cecchi
5a83787dc0 Update CSS nodes documentation 2016-02-29 10:45:14 -08:00
Cosimo Cecchi
bb55a1a958 scale: add gadgets for indicator/label in scale marks
This will allow us to theme them indepdendently, and specify a size for
the indicator from the theme.
2016-02-29 10:45:14 -08:00
Cosimo Cecchi
7bd3d87eeb scale: add a gadget for every mark
We want to add another gadget for the mark indicator. This will allow us
to do so.
2016-02-29 10:45:14 -08:00
Cosimo Cecchi
74a8bbfd38 Adwaita: add minimum size for marks
It's still suboptimal, because there's no way to control the size of the
indicator alone, but this does the job for now.
2016-02-29 10:45:14 -08:00
Cosimo Cecchi
0fb50dc9a8 gadget: improve debug message 2016-02-29 10:45:14 -08:00
Cosimo Cecchi
0c8dbf07ce range: draw slider on top of all contents
This is so that e.g. the focus ring is drawn under the slider.
2016-02-29 10:45:14 -08:00
Cosimo Cecchi
cdd7a7bdcd scale: implement rendering for marks gadgets
This completes the conversion of scale marks to gadgets.
2016-02-29 10:45:14 -08:00
Cosimo Cecchi
1a8eb9fefa scale: implement size allocate for mark gadgets
This allows to move the mark sections around with e.g. margins.
2016-02-29 10:45:14 -08:00
Cosimo Cecchi
562a501f3b scale: port marks size request to gadgets 2016-02-29 10:45:14 -08:00
Cosimo Cecchi
2f420d0e14 scale: use gadgets instead of nodes for mark containers
The gadget is not yet allocated though.
2016-02-29 10:45:14 -08:00
Cosimo Cecchi
b73d274d55 scale: rename function arguments
To make them clearer. No functional change here.
2016-02-29 10:45:14 -08:00
Cosimo Cecchi
8d5d16ae56 scale: remove unused argument
It's always GTK_POS_TOP.
2016-02-29 10:45:13 -08:00
Cosimo Cecchi
bc41ff8af4 range: better hack for GtkColorScale
Just draw the slider, since that is the only thing GtkColorScale cares
about.
2016-02-29 10:45:13 -08:00
Cosimo Cecchi
887b6d65a1 range: deprecate gtk_range_get/set_min_slider_size()
Nothing uses these functions inside GTK anymore.
2016-02-29 10:45:13 -08:00
Cosimo Cecchi
424f17c0fb range: don't use gtk_range_set_min_slider_size()
The way this method is used from the GtkRange subclasses doesn't really
work well when the slider properties change as a consequence of e.g. a
style class being applied (e.g. the fine-tune style class).

In fact, there's no need to read the minimum slider size out of band,
and we can obtain the same result in a way that always work by setting a
private property on GtkRange.
2016-02-29 10:45:13 -08:00
Lapo Calamandrei
0468ff1545 Adwaita: some more WIP theme work for the new scale 2016-02-29 10:45:13 -08:00
Cosimo Cecchi
3ff66edb6b gadget: simplify code 2016-02-29 10:45:13 -08:00
Cosimo Cecchi
0883ff5eed range: use border box for slider area
Since we can use negative margins, we should not use the margin box
for the slider area. Use the border box instead, since that's what is
typically mapped to the visible area.
2016-02-29 10:45:13 -08:00
Cosimo Cecchi
6ecab5ee6b range: use new GtkCssGadget API instead of rolling our own 2016-02-29 10:45:13 -08:00
Cosimo Cecchi
44178c0541 gadget: add API to get various area boxes
Compared to the function returning the allocation, these will return the
box in gadget coordinates.
2016-02-29 10:45:13 -08:00
Cosimo Cecchi
2d2a81682d range: simplify code
Instead of directly accessing the widget allocation, we can use the
gadget API to test whether the coordinates are in the main gadget.
2016-02-29 10:45:13 -08:00
Lapo Calamandrei
622f5aef4e Adwaita: WIP for new range theme 2016-02-29 10:45:13 -08:00
Cosimo Cecchi
d1433c25f3 range: add a gadget for the whole widget area
This commit introduces another node, called "contents", that holds the
main contents of the range. This allows for the main gadget itself to
span across the whole surface of the widget now.
2016-02-29 10:45:13 -08:00
Cosimo Cecchi
a9ea544f3d scale: always add marks at the beginning or the end
Marks are always either the first or the last child of the scale.
2016-02-29 10:45:13 -08:00
Cosimo Cecchi
1d047f0097 range: use new GtkBoxGadget API instead of counting children 2016-02-29 10:45:13 -08:00
Cosimo Cecchi
6370d6cb27 boxgadget: add APIs to insert gadgets next to siblings 2016-02-29 10:45:13 -08:00
Cosimo Cecchi
6401e2405e range: use new GtkBoxGadget API instead of removing/inserting 2016-02-29 10:45:13 -08:00
Cosimo Cecchi
06776d3d2f boxgadget: add API to set expand/align flags for gadget child 2016-02-29 10:45:13 -08:00
Cosimo Cecchi
6827bd5e04 range: move slider drawing where it belongs
The slider gadget is a child of the trough gadget, so draw it from
there.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
f0d9afd300 scrollbar: deprecate min-slider-length style property
In favor of min-height/min-width, like we did for other similar
properties.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
0974b0d843 range: whitespace fix 2016-02-29 10:45:12 -08:00
Cosimo Cecchi
fb11cc1baf range: remove border allocation hack
We can achieve the same result with a negative margin.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
1a116b9a95 colorscale: don't use style properties to determine slider size 2016-02-29 10:45:12 -08:00
Cosimo Cecchi
8b87eca11e Revert "range: move GtkColorScale special case to GtkColorScale"
This reverts commit d93d266ed9e3e26e382a4f6d4b5d4ea19eff3bcf.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
b927fc0874 Revert "range: simplify code"
This reverts commit a74f7dcaf8a02c96c6bfecab6969e1d33ecb9332.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
a7099d1468 range: simplify code
Now that everything is in the main gadget, we can just let it propagate
drawing to its children.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
b6f0b6be87 range: move GtkColorScale special case to GtkColorScale
Now we can just tweak the node visibility for it.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
cbbe237c18 range: remove special case that's not needed
We already set the gadget not to be visible in that case.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
ddb863e523 range: move slider inside the trough
This will require a rewrite of most of the theme, but it's the right
thing to do.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
d1c5ecfaef scale: deprecate slider-length style property
This can be achieved using min-height/min-width CSS properties now.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
c1eff2cce5 range: deprecate more style properties
These are never read now.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
413b9d5b3c range: continue porting to GtkGadgets
This commit rewrites a lot of the GtkRange internals to make full use
of the gadget structure.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
e9fe46ea5f gadget: add hit test functions
These will be useful in later commits.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
8c43b3ee60 range: remove unused code 2016-02-29 10:45:12 -08:00
Cosimo Cecchi
6c19947859 range: remove call that is not needed
gtk_range_calc_slider() already calls the same function when needed.
2016-02-29 10:45:12 -08:00
Cosimo Cecchi
83a6471c4e range: simplify code a bit 2016-02-29 10:45:11 -08:00
Cosimo Cecchi
d19215015e range: don't call gtk_range_calc_layout() in realize()
This should not be needed, and we want to get rid of
gtk_range_calc_layout().
2016-02-29 10:45:11 -08:00
Cosimo Cecchi
1f9de3cfec range: deprecate arrow-scaling style property
This can be done with CSS now.
2016-02-29 10:45:11 -08:00
Cosimo Cecchi
3b37f2a42a range: use newer GtkCssGadget API 2016-02-29 10:45:11 -08:00
Cosimo Cecchi
d0c671ddfe range: deprecate trough-under-steppers
It's not clear what this would do in a CSS world, and all the themes set
it to TRUE anyway...
2016-02-29 10:45:11 -08:00
Cosimo Cecchi
4bb0a8db47 range: first pass at porting to gadgets
There's still a lot to be done, but this is functional and we'll improve
the loose ends in the next commits.
2016-02-29 10:45:11 -08:00
Matthias Clasen
10e24b8e19 Move the level bar release note to the right section 2016-02-29 13:17:39 -05:00
Paolo Borelli
33ac51ea72 win32: init wintab when the device manager is constructed
No need to call a method explicitely after creating the object
2016-02-29 18:25:01 +01:00
Paolo Borelli
e9d2a622e2 win32: actually call _gdk_win32_screen_on_displaychange_event
41a371c435 factored out a method
but I forgot to actually amend the commit to call the new function
2016-02-29 18:25:01 +01:00
Ray Strode
316fe1dbbd wayland: deal with staging buffer getting allocated prematurely
The staging buffer gets allocated any time begin_paint is called
on the window. This can happen even with an empty paint region,
so we should cope with that situation. At the moment we crash
trying to post a runtime warning.

https://bugzilla.gnome.org/show_bug.cgi?id=762755
2016-02-29 10:52:00 -05:00
Jordi Mas
6ad67451f4 Fixes to Catalan translation 2016-02-29 16:34:30 +01:00
Timm Bäder
41119057dd frame: Fix horizontal size request
We were adding the border gadget size and the label widget size in any
case, but when calculating the width, we want the maximum of those two,
not the sum.

https://bugzilla.gnome.org/show_bug.cgi?id=760482
2016-02-29 14:19:38 +01:00
Paolo Borelli
38ad57948c gdk: remove the core_pointer field from GdkDisplay
It is not used anymore, so no need to set it

https://bugzilla.gnome.org/show_bug.cgi?id=762820
2016-02-29 14:15:04 +01:00
Paolo Borelli
502744be85 quartz: get the core pointer from the device manager
https://bugzilla.gnome.org/show_bug.cgi?id=762820
2016-02-29 14:15:04 +01:00
Paolo Borelli
539b1083de broadway: get the core pointer from the device manager
https://bugzilla.gnome.org/show_bug.cgi?id=762820
2016-02-29 14:15:04 +01:00
Paolo Borelli
363f9c9571 gdkdisplay: get the pointer device from the default seat
https://bugzilla.gnome.org/show_bug.cgi?id=762820
2016-02-29 14:05:00 +01:00
Paolo Borelli
807c0c0a56 gdkwindow: get the pointer device from the default seat
https://bugzilla.gnome.org/show_bug.cgi?id=762820
2016-02-29 14:05:00 +01:00
Matthias Clasen
ee217dc823 Add and use GDK_CHECK_DEBUG macro
This is following what we've already done in GTK+. It avoids
direct access to _gdk_debug_flags all over the place.
2016-02-28 21:40:30 -05:00
Matthias Clasen
2ad19c70ce x11: Don't use g_print for debug output
The g_print documentation explicitly says not to do this, since
g_print is meant to be redirected by applications. Instead use
g_message for logging that can be triggered via GTK_DEBUG.
2016-02-28 21:40:24 -05:00
Matthias Clasen
29c1263c4b wayland: Don't use g_print for debug output
The g_print documentation explicitly says not to do this, since
g_print is meant to be redirected by applications. Instead use
g_message for logging that can be triggered via GTK_DEBUG.
2016-02-28 21:40:23 -05:00
Matthias Clasen
2a2d254a8b quartz: Don't use g_print for debug output
The g_print documentation explicitly says not to do this, since
g_print is meant to be redirected by applications. Instead use
g_message for logging that can be triggered via GTK_DEBUG.
2016-02-28 21:40:23 -05:00
Matthias Clasen
2801f3c843 gdk: Don't use g_print for debug output
The g_print documentation explicitly says not to do this, since
g_print is meant to be redirected by applications. Instead use
g_message for logging that can be triggered via GTK_DEBUG.
2016-02-28 21:40:23 -05:00
Matthias Clasen
b1d691dbfd testsuite: Fix up icontheme test
This test was relying on GtkIconTheme using g_print for
debug spew. Adapt it to use g_logv instead.
2016-02-28 21:40:23 -05:00
Matthias Clasen
2ee7fb1818 Don't use g_print for debug output
The g_print documentation explicitly says not to do this, since
g_print is meant to be redirected by applications. Instead use
g_message for logging that can be triggered via GTK_DEBUG.
2016-02-28 21:40:23 -05:00
Matthias Clasen
0ac71e81cf Drop some unused debug printfs
Remove some debug spew that has been ifdef'ed out for years
and does not look useful enough to keep.
2016-02-28 21:40:23 -05:00
Cosimo Cecchi
8e1368e6de widget: make sure to check all children for allocation needs
GtkWidget uses gtk_container_foreach() to iterate over children and
check whether they need their allocation reset.
However, that leaves out internal children, such as scrollbars of a
GtkScrolledWindow. Use gtk_container_forall() instead.
2016-02-28 12:30:16 -08:00
Paolo Borelli
187027942c gdk: remove _gdk_event_queue_prepend
It is never used
2016-02-28 19:05:53 +01:00
Matthias Clasen
e0caafbcdf display: Don't change default seat in flight
gdk_display_add_seat was prepending new seats to the list, which
was effectively making the added seat the new default. Since that
is probably not intended, append to the list.
2016-02-28 12:31:20 -05:00
Matthias Clasen
9dad9a4b59 testsuite: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
7bd1012e51 tests: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
664b166838 wayland: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
4f422d1f5b quartz: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
1c887b2287 gdk: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
697efcd4bc x11: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
94342300a8 broadway: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
492ea59698 examples: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
435c8c9f0d gtk-demo: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Matthias Clasen
bbd94b5a9f gtk: Strip newlines from g_warning and g_error
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Paolo Borelli
72b40266bd gdkwindow: cleanup, avoid direct access to display members 2016-02-28 18:22:42 +01:00
Piotr Drąg
450b39f4e4 Updated POTFILES.skip 2016-02-28 17:11:05 +01:00
Paolo Borelli
aaed73671c win32: close the screen when disposing the display 2016-02-28 15:53:52 +01:00
Matthias Clasen
54ebe5d3c5 Add a release note about subclassing
This is showing up in bug reports like
https://bugzilla.gnome.org/show_bug.cgi?id=762754
so better add a note that gives a hint at the solution.
2016-02-28 09:38:31 -05:00
Timm Bäder
870a5b424f frame: Don't move border gadget and child down
Setting label-yalign should affect the border gadget, but we need to
compensate for its position by moving the child down or up, depending on
the border gadget's position, so the child never moves.

https://bugzilla.gnome.org/show_bug.cgi?id=762123
2016-02-28 09:24:21 -05:00
Emmanuele Bassi
d59c796a9d Fix builddir != srcdir
The gdkprivate-wayland.h header file is included from the top-level gdk
directory; this means that all included files referenced in the header
must be relative to the `gdk` directory, otherwise the build will fail
when the build directory is not equal to the source directory.

This commit fixes a build failure under continuous:

In file included from ../../gdk/gdkdisplaymanager.c:60:0:
../../gdk/wayland/gdkprivate-wayland.h:40:51: fatal error:
gtk-primary-selection-client-protocol.h: No such file or directory
 #include "gtk-primary-selection-client-protocol.h"
                                                   ^
compilation terminated.
Makefile:1155: recipe for target 'libgdk_3_la-gdkdisplaymanager.lo' failed
make[4]: *** [libgdk_3_la-gdkdisplaymanager.lo] Error 1
2016-02-28 12:21:26 +00:00
Paolo Borelli
41a371c435 win32: factor out on_displaychange_event method for the screen
This allows us to make more initialization methods private to the
screen object.
2016-02-28 12:19:08 +01:00
Paolo Borelli
48d693ea80 win32: make init_root_window private to the screen object
It can be called during the screen object initilization
2016-02-28 12:18:58 +01:00
Paolo Borelli
b20f80e65a win32: move function
Just reorder code in preparation to calling functions defined
before this one
2016-02-28 11:53:10 +01:00
Paolo Borelli
00f396dea9 win32: rename initialization function for clarity 2016-02-28 11:50:07 +01:00
Paolo Borelli
58e169c04c win32: do not confuse gtk-doc 2016-02-28 11:37:38 +01:00
Paolo Borelli
e48bd2e00b win32: move gdkvisual code in gdkscreen
Except for the init function, all the visual related code is made
of gdkscreen vfuncs, so let's move it to gdkscreen-win32. This way
we avoid keeping other static variables and instead store the info
inside the screen struct.
2016-02-28 11:37:38 +01:00
Matthias Clasen
0f3a211d35 gtk-demo: Simplify ui files a bit
Strip unneeded IDs.
2016-02-28 00:00:03 -05:00
Matthias Clasen
492fec6294 gtk-demo: Put hte app menu in a separate file
No need to cram it in the same file as the main window.
2016-02-27 23:43:06 -05:00
Matthias Clasen
9d5ad67c91 gtk-demo: Add some padding in sidebar
Add some padding on the right, to avoid the scrollbar and make
the sidebar appear balanced.
2016-02-27 23:35:33 -05:00
Matthias Clasen
213f74fe82 tutorial: Drop excessive margin from headerbar
It is no longer necessary to add extra margins around the
center child in a headerbar.
2016-02-27 23:28:17 -05:00
Matthias Clasen
87554eb57a widget-factory: Make the sliding opt-in
The sliding is a little disorienting, so turn it off by default
and add a checkbutton for it in the gear menu.
2016-02-27 23:12:15 -05:00
Matthias Clasen
98a36955fe file chooser: Don't ellipsize "Other Locations"
It just looks wrong if the file chooser comes up with
"Other Locations" ellipsized. Treat it like the other
fixed entries. We only want to ellipsize bookmarks, because
their length is unpredictable.
2016-02-27 23:03:55 -05:00
Matthias Clasen
a7a934a60c gtk3-demo: Update css
Clean up any deprecation warnings from the css examples in
gtk3-demo.
2016-02-27 22:39:09 -05:00
Jordi Mas
9b71a9b4ae Update Catalan translation 2016-02-27 20:22:55 +01:00
Benjamin Otte
3463031929 win32 theme: Implement GtkFrame 2016-02-27 17:23:44 +01:00
Benjamin Otte
39bfac0876 win32 theme: Remove special case for notebooks
The special case is coded into Wine, but it makes notebooks
disappear wrong. So remove it.
2016-02-27 17:03:49 +01:00
Benjamin Otte
5d34ee729d win32: Implement fallback code for tabs
This is naive code in that it doesn't do the rounded edges for the
tab items yet. We can fix that later I guess.
2016-02-27 14:34:33 +01:00
Benjamin Otte
b18e64e6c6 win32: Add fallback drawing code for window frames 2016-02-27 14:34:33 +01:00
Benjamin Otte
879333d226 win32: Finish button drawing code
We now draw real Windows 95 buttons.

Also split out a draw_edge() function that is supposed to emulate
Windows' DrawEdge() function. I guess we'll need it in other places,
too.
2016-02-27 14:34:33 +01:00
Paolo Borelli
70d689cddd gdk: calculate pixel color shift and precision lazily
This gets rid of the decompose_mask utility entirely and simplifies
backend code.
2016-02-27 12:27:54 +01:00
Paolo Borelli
f73e7680ed gdk: factor out utility shared among backends
Removes duplicated code and makes sure we use the version which
is safe against infinite loops
2016-02-27 10:46:59 +01:00
Benjamin Otte
053e549dbc notebook: Redo notebook implementation
So far, this only reworks the tabs at top implementation.
Windows doesn't have support for theming tabs at left/right/bottom
so we need to figure out what to do there. Wine falls back to
unthemed code.
2016-02-27 05:15:57 +01:00
Benjamin Otte
245d217e06 boxgadget: Add ability to draw children in reverse
This is necessary for GtkNotebook so that the stack is always drawn
before the header.
And that is necessary so that the active tab can use negative
margins to overdraw the border of the stack to create a gap and
simulate old GTK2-style visuals for notebooks.
2016-02-27 03:59:20 +01:00
Benjamin Otte
a2fa647199 cssimagewin32: IMplement printing
Caveat: over() and margins() arent' printed, but they are soon gonna
be removed anyway.
2016-02-27 03:59:20 +01:00
Benjamin Otte
e45cb3340c window: Include decoration border and padding in resize area
This is relevant for the Windows theme, which is the only theme that
uses padding on decorations. All other themes are unaffected.
2016-02-27 03:59:20 +01:00
Benjamin Otte
cdb1cda68b notebook: The active tab is now :checked
:active is reserved for "mouse button down on node", so we have to use
something else. And stack switcher and radio buttons use :checked for
the active widget, so it makes sense to use :checked for the active tab,
too.

Themes have been adapted.

TODO: Implement :active for tabs.
2016-02-27 03:48:46 +01:00
Benjamin Otte
6b4788c3ea textview: Support borders in text node 2016-02-27 03:39:51 +01:00
Benjamin Otte
d7bc0fd24c textview: Fix coordinates when background drawing of text node
Fixes black areas in source view of gtk-demo.
2016-02-27 03:27:39 +01:00
Matthias Clasen
914f7bd6e4 wayland: Survive without primary selection
I am testing GTK+ master against mutter 3.19.90, so I'd
like GTK+ to survive even when the compositor does not
support the primary selection interface.
2016-02-26 19:48:05 -05:00
Cédric Valmary
b72996cde4 Updated Occitan translation 2016-02-26 20:56:32 +00:00
Matthias Clasen
ca3d87ce70 Avoid an out-of-bounds access
When the offset gets smaller than min_offset, we can't
access the array at that position.
2016-02-26 15:52:19 -05:00
Matthias Clasen
8ff40b5d14 Plug a small memory leak 2016-02-26 15:52:19 -05:00
Matthias Clasen
88e372cd09 infobar: Avoid a memory leak in an error case
Parsing <action-widgets> could sometimes fail to free
some of the data, if a nonexisting widget is referenced.
Found by gcc's leak sanitizer.
2016-02-26 15:52:19 -05:00
Matthias Clasen
c784d5d700 levelbar: Avoid a use-after-free
We were freeing the old offset before using its name to
recreate a new one. Don't do that.
Found by gcc's undefined behavior sanitizer.
2016-02-26 15:52:19 -05:00
Matthias Clasen
5ca860dcaf dialog: Avoid a memory leak in an error case
Parsing <action-widgets> could sometimes fail to free
some of the data, if a nonexisting widget is referenced.
Found by gcc's leak sanitizer.
2016-02-26 15:52:19 -05:00
Matthias Clasen
6108c646c5 cssselector: Don't invoke undefined behavior
Avoid undefined behavior in the calculation of some
hash values. Found by gcc's undefined behavior sanitizer.
2016-02-26 15:52:19 -05:00
Matthias Clasen
2cabfcc801 Avoid an a crash with GTK_DEBUG=builder
We might cast objects to GtkBuildable even if they aren't,
to print their names. Don't do that.

Found by gcc's address sanitizer.
2016-02-26 15:52:19 -05:00
Matthias Clasen
9f37557ffc Fix an memory overrun
This was detected by gccs address sanitizer.
2016-02-26 15:52:19 -05:00
Cédric Valmary
3084eca14b Updated Occitan translation 2016-02-26 20:35:37 +00:00
Carlos Garnacho
a2c575e34e wayland: Use the page size as the selection buffer size
And ensure we don't attempt to read EOF twice, once is enough.
2016-02-26 19:59:17 +01:00
Carlos Garnacho
ed3c87df7a wayland: Implement the (so far internal) primary selection protocol
Implement it using the internal copy of the protocol. Otherwise,
we just deal with it the same than clipboard selection, just mapping
it to the PRIMARY atom instead of the CLIPBOARD one.

https://bugzilla.gnome.org/show_bug.cgi?id=762561
2016-02-26 19:59:17 +01:00
Carlos Garnacho
f9f5586714 wayland: Make the function to get the last serial a seat one
This will be useful for primary selection.

https://bugzilla.gnome.org/show_bug.cgi?id=762561
2016-02-26 19:59:17 +01:00
Carlos Garnacho
787e1d7113 wayland: Add gtk-primary-selection protocol
This protocol is an internal mirror of the primary selection drafts
being proposed for wayland-protocols. No changes besides prefix/suffix
changes.

https://bugzilla.gnome.org/show_bug.cgi?id=762561
2016-02-26 19:59:17 +01:00
Lapo Calamandrei
4fd5ad2f07 Adwaita: notebook tab sizing fix 2016-02-26 19:01:55 +01:00
Fredy Paquet
0a6ee5e2cf W32: Fix for commit 1f74f12d9, re-enabling decimal separator key
1f74f12d9 rendered entry of keypad decimal mark unuseable for
several national keyboard layouts, this commit amends that, at
least for W32, and makes GTK+ behave more or less the same way
W32 behaves.

The patch works like this:
- When typing the first character at the keyboard or when switching
  keyboard layouts, the decimal mark character will be cached in the
  static variable "decimal_mark" within gdkkeys-win32.c

- in case of WIN32, gdk_keyval_to_unicode() asks gdkkeys-win32.c for the
  current decimal_mark when converting GDK_KEY_KP_Decimal.

https://bugzilla.gnome.org/show_bug.cgi?id=756751
2016-02-26 17:24:32 +00:00
Lapo Calamandrei
9f606b8270 Adwaita: stricter selector for split headerbar separator
with a descendant select was erroneusly catching normal headerbar
separators in paned split headerabar case, see gedit. Using a child
selector fixes.
2016-02-26 13:15:37 +01:00
Lapo Calamandrei
296a7c24f9 Adwaita: simplify mixed buttons styling 2016-02-26 13:07:09 +01:00
Lapo Calamandrei
1a0b6568fa Adwaita: fix separator in non paned using split headerbar
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=762593
2016-02-26 12:53:02 +01:00
Carlos Soriano
ea9e8221b1 gtkplacessidebar: use gpointers in trash row
It's the right casting. Forgot to push it with the previous patch.
2016-02-26 11:55:05 +01:00
Carlos Soriano
377ac909b7 gtkplacessidebar: clean up trash row on destroy
Track with a weak ref the trash row, so we can clean up the data in the
private struct.

Spotted and reviewed by Christian Hergert.
2016-02-26 11:52:50 +01:00
Gábor Kelemen
c3e56d3d83 Updated Hungarian translation 2016-02-26 09:14:53 +00:00
Руслан Ижбулатов
c61764b0f9 GDK W32: Fix the filling of MINMAXINFO
1) MSDN says that the coordinates of the maximized window
   must be specified as if the window was on the primary display,
   even if nearest display where it ends up is not the primary display.
   So instead of using nearest display work area verbatim,
   use it only to account for taskbar size, while using
   primary display top-left corner (0:0) as the reference point.
2) MSDN says that max tracking size is a system property, we
   should just call GetSystemMetrics() and use that.

https://bugzilla.gnome.org/show_bug.cgi?id=762629
2016-02-26 08:02:03 +00:00
Matthias Clasen
d3f713529a Document CSS win32 size support 2016-02-26 00:13:34 -05:00
Benjamin Otte
34e204952e win32 theme: Make titlebuttons look like they're the right size
This is a hack because we can't really rtesize the buttons.

Instead, we draw the background only over the area that they would
be drawn if they were drawn by Windows. The button is still selectable
outside of this area, but what can you do...
2016-02-26 03:20:42 +01:00
Benjamin Otte
ad204c88ca win32 theme: Fix decorations
... and draw them properly.
2016-02-26 03:20:42 +01:00
Matthias Clasen
5522ce9649 xi2: Add some more debug spew
Log the valuators we use or ignore.
2016-02-25 21:19:31 -05:00
Matthias Clasen
8b93c013c3 inspector: Simplify general tab setup
Factor out the code to create a listbox row with two labels,
and use it throughout.
2016-02-25 20:49:09 -05:00
Matthias Clasen
4f5f299266 inspector: React to device changes
Recreate the device section in the general tab when
devices come or go.
2016-02-25 20:28:23 -05:00
Matthias Clasen
5b2e883161 Remove redundant words from docs
An either without an or doesn't add anything.
2016-02-25 20:16:21 -05:00
Matthias Clasen
f749152efe Fix a copy-paste error 2016-02-25 20:12:53 -05:00
Matt Watson
a051e5677e widget-factory: transition pages
https://bugzilla.gnome.org/show_bug.cgi?id=762642
2016-02-25 19:49:45 -05:00
Benjamin Otte
5df1e98b2a window: Draw decorations in the right place
When we draw our own shadows, we need to offset the calls to render the
background to the border rectangle.
2016-02-25 23:21:29 +01:00
Matthias Clasen
09b1571093 Better baseline adjustment
The way we were adjusting baselines if min-height forces
a size increase was not quite working as intended. Redo
it in a simpler way: just split up the excess and count
half of it for above the baseline and half below.

This fixes button labels in dialogs appearing too low.
2016-02-25 16:36:13 -05:00
Matthias Clasen
a975e733dc fix a typo 2016-02-25 16:17:55 -05:00
Timm Bäder
0213815d2f Move .keycap docs from GtkFrame to GtkLabel
That's where .keycap is used nowadays.
2016-02-25 20:45:33 +01:00
Timm Bäder
77594be976 frame: Measure border gadget separately
https://bugzilla.gnome.org/show_bug.cgi?id=760482
2016-02-25 20:45:33 +01:00
Timm Bäder
3431451463 frame: Let GtkContainer handle border-width
https://bugzilla.gnome.org/show_bug.cgi?id=760482
2016-02-25 20:45:33 +01:00
Matthias Clasen
abd781a2c9 icon helper: Don't set baseline to 0
It is clearly not the intention that the baseline of icons is at
the very top. The visible effect of this was that spin buttons were
higher than expeted, because the box gadget was trying to line up
the baseline of the text with the top of the buttons, forcing extra
height to be requested.

Just don't set a baseline at all for now.
2016-02-25 13:18:02 -05:00
Artur de Aquino Morais
8920b6a650 Updated Brazilian Portuguese translation 2016-02-25 16:30:11 +00:00
Piotr Drąg
40269f4e5d Updated Polish translation 2016-02-25 17:26:45 +01:00
Benjamin Otte
3a9ceffe12 win32 theme: Make entries and textview work 2016-02-25 16:53:22 +01:00
Benjamin Otte
4e8fb33f56 pixelcache: Don't have a style context argument
That would imply the pixelcache monitors the style context for changes
and it doesn't do that.

Its only use case was opacity checks, so add
gtk_pixel_cache_se_is_opaque() instead.
2016-02-25 16:52:58 +01:00
Benjamin Otte
71a9fd9d83 stylecontext: Move background_is_opaque() function
The new way, it no longer depends on the style context, but on the
CssStyle. This will become relevant in the next commit.
2016-02-25 16:52:58 +01:00
Fran Dieguez
374494b928 Updated Galician translation 2016-02-25 15:34:16 +00:00
Ignacio Casal Quinteiro
53fe9c2b0c inspector: use guint to fix the windows build 2016-02-25 15:25:19 +01:00
Carlos Soriano
20cf42c9ea gtkplacessidebar: avoid unresponsive UI while trashing
We were updating the whole places sidebar when the trash changed.
This effectively removes all rows and create new ones for every trash
state change.

Although when using GtkTreeView it was somehow ok, with the new
implementation with GtkListBox this effectively locks the UI while the
trash operations are being performed.

When performing operations for i.e. 100 files, the UI can be locked
for more than 1 minute since gvfs-trash usually takes time.

To fix this just update the icon of the trash when the state of the
trash change instead of the whole sidebar.

https://bugzilla.gnome.org/show_bug.cgi?id=762677
2016-02-25 14:44:40 +01:00
Matthias Clasen
fe4602acc5 inspector: Show ::num-touches for touch devices
This can be useful information.
2016-02-25 08:27:08 -05:00
Matthias Clasen
a4a7740b2f xi2: Set ::num-touches for touch devices
XI2 has this information, so pass it on.
2016-02-25 08:27:08 -05:00
Matthias Clasen
f468f0fbb2 device: Add a num-touches property
Some backends can provide this information for touch devices,
and it can be useful to have, so add this property.
2016-02-25 08:27:08 -05:00
Carlos Soriano
1977994128 gtkplacesview: clean up mount server callback
And fix a warning of unused variable.

Reviewed by Nacho on IRC
2016-02-25 13:45:20 +01:00
Matthias Clasen
e12663378c x11: Update seat capabilities
The default seat implementation was never returning capabilities,
which is broken. It is visible too, since the inspector shows seat
information now.
2016-02-25 06:18:41 -05:00
Matthias Clasen
84ba01d713 inspector: Update for screen config changes
Repopulate the display section whenever the monitor configuration
changes.
2016-02-25 01:22:01 -05:00
Matthias Clasen
15ccdcd25b inspector: Don't show numeric ids
The vendor and product ids for input devices aren't useful
as-is; need to figure out how to translate them to names.
2016-02-25 01:10:23 -05:00
Matthias Clasen
455935a06a inspector: Show more device information
This adds vendor and product id and axes. This reveals that
the GDK backends have quite different quality when it comes
to returning meaningful information here.
2016-02-25 00:49:50 -05:00
Matthias Clasen
03db14c2d6 inspector: Show some basic device information
Add information about seats and their associated devices
in the General tab.
2016-02-25 00:17:09 -05:00
Matthias Clasen
dde33623ca gadget: Warn about missing size allocation
When size_allocate is overridden in widgets, but draw is not,
we can end up drawing a gadget that has not been given a size.

Warn about this, and limp along by drawing the gadget over the
full allocation of its owner widget.

https://bugzilla.gnome.org/show_bug.cgi?id=762614
2016-02-24 22:22:11 -05:00
Matthias Clasen
c75a833633 x11: More fake tablet blacklisting
Sigh.

Now that we've neutered the QEMU USB tablet, I'm finding that
spice is doing just the same nonsense. It has a fake "spice vdagent
tablet". Blacklist that as well.
2016-02-24 22:22:11 -05:00
Benjamin Otte
760b540c8c treeview: Don't make things way too high
If the size-request is larger than the dedicated size, don't increase
the dedicated size by the size request, only increase it to the
size request.
2016-02-25 04:03:41 +01:00
Benjamin Otte
8ed804f1b4 textview: Draw the background properly
The background is *not* drawn relative to the clipping area.
2016-02-25 04:03:41 +01:00
Benjamin Otte
9016a00edd treeview: Fix positioning of editing widgets
This looks like a thinko.
2016-02-25 04:03:41 +01:00
Claude Paroz
18abf86510 Updated French translation 2016-02-24 20:56:49 +01:00
Ben Iofel
e390e3b8e3 GtkIMContext: remove broken anchors in documentation 2016-02-24 14:37:35 -05:00
William Hua
acbb0c4bdd mir: fix warnings 2016-02-24 13:24:14 -05:00
William Hua
594ba3071b mir: fix GdkSeat-related deprecations 2016-02-24 13:23:18 -05:00
Carlos Garnacho
60d7f4376e GtkTextHandle: Look up for the first child of a scrolled window found
Text handles use to connect to the first GtkScrollable up the hierarchy
so they can be repositioned when scrolling. It makes more sense to look
up the first child of a GtkScrolledWindow, it must be an scrollable too,
and will be the scrollable that can actually change the position of the
text handles.

https://bugzilla.gnome.org/show_bug.cgi?id=761676
2016-02-24 17:58:19 +01:00
Fabrício Godoy
ffea7a267d Updated Brazilian Portuguese translation 2016-02-24 15:32:33 +00:00
Jordi Mas
bf0ef08e50 Update Catalan translation 2016-02-24 16:32:23 +01:00
Matthias Clasen
97c1803c74 3.19.10 2016-02-24 07:26:45 -05:00
Matthias Clasen
b8183fb334 Add a release note about theme changes 2016-02-24 07:26:45 -05:00
Fran Dieguez
3cff1efea5 Update Galician translations 2016-02-24 11:07:33 +01:00
Anders Jonsson
fad0c275b9 Updated Swedish translation 2016-02-24 09:21:02 +00:00
Fabrício Godoy
d7fc1ea921 Updated Brazilian Portuguese translation 2016-02-24 06:58:33 +00:00
Jean-François Fortin Tam
cf6c0b09a5 spin button: Use the Ctrl modifier for Home and End key bindings
https://bugzilla.gnome.org/show_bug.cgi?id=309300
2016-02-23 21:20:00 -05:00
Matthias Clasen
566010e91d Add a testcase for revealer size allocation
This was taken from https://bugzilla.gnome.org/show_bug.cgi?id=761760
2016-02-23 20:53:23 -05:00
Timm Bäder
0c25c5d43d revealer: Don't report >0 preferred width...
... if the child is concealed and the transition type is set to NONE.
In this case, both preferred width and preferred height should be 0, but
we still can't use that to allocate a size for the child, so care about
the minimum size of the child in gtk_revealer_get_child_allocation.

https://bugzilla.gnome.org/show_bug.cgi?id=761760
2016-02-23 20:45:45 -05:00
Carlos Soriano
17a4bd51bb gtkplacesview: use location instead of the enclosing one
We were using the enclosing location when connecting to a server, so
for instance if  we were connecting to ftp://test/test it would actually
open ftp://test/ instead of the full path.

To fix it, use the full location when emitting the open location signal.

https://bugzilla.gnome.org/show_bug.cgi?id=756659
2016-02-23 20:42:01 -05:00
Carlos Garnacho
4ff3d5b7a6 gdk: Avoid 2/3BUTTON event generation if the source device changes
Remember the last source device we're generating multiple clicks for,
just so we can bail out if the device changed. That will just reset
the counting.

https://bugzilla.gnome.org/show_bug.cgi?id=723659
2016-02-23 20:35:01 -05:00
Carlos Garnacho
3d700515e1 GtkGestureMultiPress: reset multi-press sequence if the source device changes
This prevents multipress sequences to possibly come from different mice.
Now the accumulated number of presses will be reset if the device changes
in the mean time.

https://bugzilla.gnome.org/show_bug.cgi?id=723659
2016-02-23 20:35:01 -05:00
Carlos Soriano
63a204e1c5 gtkplacessidebar: add open flags to other locations
We weren't using the open flags on the other locations signal, which
makes impossible for applications like nautilus to act in the same
way that for any other location where the user can choose between
opening in the current view, in a new window or in a new tab.

Add the signal missing parameter in order to allow it.

https://bugzilla.gnome.org/show_bug.cgi?id=754743
2016-02-23 20:29:03 -05:00
Fran Dieguez
98fb6f6988 Updated Galician translations 2016-02-23 20:50:22 +01:00
Мирослав Николић
5ee0a7105b Updated Serbian translation 2016-02-23 10:17:24 +01:00
Мирослав Николић
cab307f3d2 Updated Serbian translation 2016-02-23 10:16:47 +01:00
Мирослав Николић
a2b4acb3b6 Updated Serbian translation 2016-02-23 09:37:19 +01:00
Theppitak Karoonboonyanan
2b03bbb359 Updated Thai translation 2016-02-23 14:47:03 +07:00
Benjamin Otte
cf71d98b05 entry: Make the get_text_area() vfunc relative to top left of entry
This fixes GdTaggedEntry. I hope.
2016-02-23 04:22:19 +01:00
Benjamin Otte
3056d793a4 cssparser: Make _gtk_css_parser_has_number() a bit smarter
Previously we just checked the first character. And if that was a "-" as
in "-gtk-some-special-value", we assumed it was a number. Which it
clearly wasn't.

Test included
2016-02-23 04:22:19 +01:00
Benjamin Otte
437dec6295 csscolorvalue: Print a comma for win32 values 2016-02-23 04:22:19 +01:00
Benjamin Otte
c3dc0d80f1 container: Request layout again depending on layout mode
Containers with RESIZE_MODE_PARENT should never request layout and those
with RESIZE_MODE_IMMEDIATE should only request it for updating CSS.

Fixes clutter embeds (like the tray icon embed in gnome-shell)
continuously requesting relayout when all they want to do is relegate
relayout to Clutter.

https://bugzilla.gnome.org/show_bug.cgi?id=758893
2016-02-23 04:22:19 +01:00
Chao-Hsiung Liao
70b9ea2c4b Updated Chinese (Taiwan) translation 2016-02-23 02:51:35 +00:00
Paolo Borelli
c643d8b402 Win32: fix warning 2016-02-22 21:45:08 +01:00
Paolo Borelli
bc3c855e35 wip _gdk_display 2016-02-22 21:45:08 +01:00
Paolo Borelli
7047099fd8 Win32: fold the gdkinput.c file in gdkdisplay-win32.c
This is similar to what is done in the X11 and wayland backends.
It also gets rid of the _gdk_input_devices global variable
2016-02-22 21:45:08 +01:00
Paolo Borelli
b3a80180c7 Win32: remove leftover function
gdk_devices_list was removed from the API in 3.0 and it is not
in the headers. The win32 implementation lingered on by mistake.
2016-02-22 21:45:08 +01:00
Jordi Mas
ff9e73d71e Update Catalan translation 2016-02-22 20:43:27 +01:00
Piotr Drąg
ca050e10c1 Updated POTFILES.skip 2016-02-22 20:36:28 +01:00
Chun-wei Fan
07d32687d8 MSVC 2008 builds: Fix previous commit
The previous commit had the MSVC 2008 property sheet in the wrong place.
Fix that.
2016-02-22 22:23:26 +08:00
Lapo Calamandrei
5906b15c5e Adwaita: avoids up pointing scale slider to jump down on hover
and comment back sass debugging stuff in the process...
2016-02-22 11:29:43 +01:00
Lapo Calamandrei
9fb9d208fd Adwaita: fix scale with marks sliders
looks like sass was confused by the way I structured the loops,
this works that around.
2016-02-22 11:16:32 +01:00
Lapo Calamandrei
7f89856b29 Adwaita: color scale slider fixes
use the pointy slider on colorscales, this way it picks the
correct slider on rtl.
2016-02-22 10:55:58 +01:00
Chun-wei Fan
5962daef4f Windows: Update how gtk-win32.rc is generated
On Visual Studio, unlike MinGW, manifest files are embedded via
including the manifest file as a resource file in the projects, not
via the .rc file.  This means that the line in the .rc file that
specifies the manifest file would cause trouble, so that line gets
removed when the full gtk3-win32.rc is generated on Visual Studio builds,
otherwise 2010+ Visual Studio will complain when compiling the .rc file.
Also, the inclusion of winuser.h will cause warnings during the
compilation of the .rc file.

Fix this by isolating the Win32 resource portions of gtk-win32.rc.in to
gtk-win32.rc.body.in and:
-On MinGW, construct the full gtk-win32.rc by doing the winver.h and
 winuser.h inclusion first, then append the contents of gtk-win32.rc.body,
 and then appending the line to embed the manifest file.
-On Visual Studio, simply copy the gtk-win32.rc.body to gtk-win32.rc,
 and generate the full libgtk3.manifest file.

https://bugzilla.gnome.org/show_bug.cgi?id=762311
2016-02-22 17:40:17 +08:00
Benjamin Otte
6c0270bbcb win32 theme: Make tooltips look right
Includes adding fallback support
2016-02-22 04:37:57 +01:00
Benjamin Otte
808017d1d0 win32 theme: Size titlebar icons correctly.
Sizing according to
http://web.archive.org/web/20070301202835/http://shellrevealed.com/photos/blog_images/images/4538/original.aspx
2016-02-22 04:37:57 +01:00
Benjamin Otte
414657100f win32draw: Use the right checks
The first check was the wrong way around.

The second check made the function look wrong. Invalid ID is actually
the special case that should be handled first, so write the function
like that.
2016-02-22 04:37:57 +01:00
Benjamin Otte
cdb12fec9e win32 theme: Replace metric ids with metric names
Makes it more obvious what's actually happening.
2016-02-22 04:37:57 +01:00
Benjamin Otte
dc1e191df5 csssizevalue: Allow using the name for a win32 metric
... instead of just the ID.
2016-02-22 04:37:56 +01:00
Benjamin Otte
98216867d1 win32: Allow querying names for metrics 2016-02-22 04:37:56 +01:00
Benjamin Otte
63934ba36c win32 theme: Replace color ids with color names
Makes it more obvious what's actually happening.
2016-02-22 02:36:11 +01:00
Benjamin Otte
37a4e1cda9 csscolor: Allow using the name for a win32 color
... instead of just the ID.
2016-02-22 02:36:11 +01:00
Benjamin Otte
ecaca073f1 win32: Allow querying names for colors 2016-02-22 02:36:11 +01:00
Allin Cottrell
46d3611052 Fix Quartz Full Screen Crash. 2016-02-21 16:22:27 -08:00
John Ralls
3cf98a4353 Fix typo. 2016-02-21 16:17:46 -08:00
Benjamin Otte
e935993d96 win32 fallback: Draw window title button images
Taken from Wine's Marlett font.
2016-02-21 20:44:37 +01:00
Benjamin Otte
828f2e1801 win32 theme: Sanitize a few colors 2016-02-21 20:44:36 +01:00
Benjamin Otte
2e709fde82 win32 fallback: Add code to draw titlebars 2016-02-21 20:44:36 +01:00
Benjamin Otte
3c5c748cd4 win32 fallback: Warn if we don't know how to draw a part 2016-02-21 20:44:36 +01:00
Benjamin Otte
c73db50aed win32: Implement GetSystemMetric() fallbacks
Default values taken from Wine.
2016-02-21 20:44:36 +01:00
Benjamin Otte
c2dd3c0d89 win32: Move variable definition to not cause gcc warning
It's only used on win32, so only define it there.
2016-02-21 20:44:36 +01:00
A S Alam
00559e1b86 updated Punjabi Translation 2016-02-21 09:31:14 -06:00
A S Alam
908bcf3c15 updated Punjabi Translation 2016-02-21 09:31:06 -06:00
Matthias Clasen
0c91584532 Adwaita: Drop decoration.ssd selector
We've settled on window.ssd decoration instead.

https://bugzilla.gnome.org/show_bug.cgi?id=760714
2016-02-21 00:55:41 -05:00
Matthias Clasen
cee39bfd46 Add a release note about drawingarea background 2016-02-21 00:48:56 -05:00
Matthias Clasen
5a80a35757 drawingarea: Update docs around background handling
The behavior changed this cycle. Update the docs to recommend
an explicit gtk_render_background call.
2016-02-21 00:46:54 -05:00
Matthias Clasen
52e0ab53dc print dialog: More baseline alignment
Some places were missing the right valign setting to make
baselines line up properly.
2016-02-21 00:09:32 -05:00
Matthias Clasen
e9300e2f79 dnd: Avoid a crash
gtk_image_definition_new_icon_name ("") returns NULL. Bail
out early in this case to avoid unreffing NULL later.

https://bugzilla.gnome.org/show_bug.cgi?id=762392
2016-02-20 22:43:43 -05:00
Matthias Clasen
a754579e44 css gadget: Adjust baselines for min-height
We were forcing the size to be at least min-height, but we left the
baselines as they were, which had the effect of making text e.g
in entries 'stick to the top'.

With this change, we adjust the baseline to keep the ratio of
baseline to height unchanged.
2016-02-20 22:31:39 -05:00
Benjamin Otte
f3d67cc2ac win32 theme: Add rudimentary titlebar support 2016-02-21 03:02:36 +01:00
Benjamin Otte
eda348d2b5 win32: Handle size queries for all values
Fall back to GetSystemMetrics() whenever GetThemeSysSize() didn't work.
2016-02-21 03:02:36 +01:00
Benjamin Otte
63eb15b730 win32: Add missing break in switch statement
Oops.
2016-02-21 03:02:36 +01:00
Benjamin Otte
1548b680fc css: Make outline-offset animatable
CSS claims it should be, so we make it.
2016-02-21 01:02:51 +01:00
Benjamin Otte
e4a485dca2 renderborder: Add API to query the outline clip
And use it in implementation of gadgets.
2016-02-21 01:02:51 +01:00
Benjamin Otte
23b3774e6b css: Mark outline properties as affecting clip when they do 2016-02-21 01:02:51 +01:00
Matthias Clasen
966dd56e45 entry: Fix baseline allocation
Position the text on the baseline again.
2016-02-20 18:55:17 -05:00
Matthias Clasen
6b53138a01 box: Fix rtl allocation with center widget
The code for adjusting the center widget allocation in case
of uneven sides never worked right in RTL. This was finally
noticed for tabs with close button, which commonly use a
centered label.
2016-02-20 16:45:26 -05:00
Lapo Calamandrei
7698ac447a Adwaita: remove unused selector in _common.scss 2016-02-20 19:52:46 +01:00
Lapo Calamandrei
effee1f35e Revert "Adwaita: resurrect scale-has-marks-above/below classes"
This reverts commit edcc0c2783.
Since the colorscale styling is wrong in rtl, need to do things
differntly.
2016-02-20 19:50:49 +01:00
Lapo Calamandrei
44f6fcfbd3 Adwaita: move 1px up the check asset 2016-02-20 19:37:21 +01:00
Lapo Calamandrei
b23300c89d Adwaita: fix entry progressbar
it now moves using the whole entry lenght, in the process the
style was tweaked to not need a special case for focused entries.
2016-02-20 19:31:58 +01:00
Matthias Clasen
7c577ddf4f assistant: Add margin to action area
We are no longer setting a margin on the content area, so put
one on the action area itself to prevent the buttons from touching
the edge.

https://bugzilla.gnome.org/show_bug.cgi?id=762315
2016-02-20 11:27:56 -05:00
Lapo Calamandrei
edcc0c2783 Adwaita: resurrect scale-has-marks-above/below classes
the colorscales use said classes.
2016-02-20 17:25:51 +01:00
Matthias Clasen
d2454000f6 expander: Draw focus again
This was lost when GtkExpander was ported to use box gadgets.
2016-02-20 11:17:12 -05:00
Matthias Clasen
7ed1225296 check button: Draw focus again
The box gadget now has API for this; use it.
2016-02-20 10:54:48 -05:00
Matthias Clasen
ebff86d6f6 box gadget: Make it possible to draw focus
There are widgets which use a box gadget and take focus,
like GtkCheckButton.
2016-02-20 10:54:48 -05:00
Matthias Clasen
e837aa69b6 x11: Some cleanups to the multihead initialization
The significant change here is a memory leak fix in init_xrandr15.
The rest of the changes makes init_xrandr13 and init_xrandr15 more
parallel, and simplifies init_multihead.
2016-02-20 10:54:48 -05:00
Marco Trevisan (Treviño)
1dda932109 X11, GdkScreen: properly implement init_randr15 including output name
https://bugzilla.gnome.org/show_bug.cgi?id=762319
2016-02-20 10:45:44 -05:00
Lapo Calamandrei
079e90b780 Adwaita: scale slider assets refresh
...and update the theme accordingly.
2016-02-20 16:07:00 +01:00
Benjamin Otte
d2fb069426 entry: Make get_text_area_size() vfunc work again
GdTaggedEntry needs that. Though there's probably a bunch of work left
inside GdTaggedEntry to make it look cute again (like storing the area
it reserves for itself to allocate tags in).
2016-02-20 03:25:39 +01:00
Lapo Calamandrei
a979cff748 Adwaita: check/radio/slider gradient tweaks 2016-02-19 18:03:38 +01:00
Carlos Garnacho
ebb175021e wayland: Implement gtk_shell.set_startup_id
Fetch the DESKTOP_STARTUP_ID envvar at the same point it's done
for the X11 backend, and notify the startup ID gotten on
notify_startup_complete().
2016-02-19 17:45:42 +01:00
Carlos Garnacho
ce62f0513d wayland: Update gtk-shell protocol to v3
Add a gtk_shell.set_startup_id request, so the application can communicate
to the compositor the startup id that it received through the
DESKTOP_STARTUP_ID envvar, or other means.
2016-02-19 17:45:42 +01:00
Paolo Borelli
7505d49741 Win32: free the monitors array 2016-02-19 15:49:29 +01:00
Paolo Borelli
3aec838313 Win32: chain up screen finalize
Add the proper chain up (in preparation to actually freeing stuff) and
remove the empty dispose implementation
2016-02-19 15:49:29 +01:00
Paolo Borelli
577016126e Win32: remove the _gdk_monitors global variable
Make it a field of GdkWin32Screen since that is the object exposing
all the the getters.
2016-02-19 15:28:38 +01:00
Paolo Borelli
2e7f98a683 Win32: remove the _is_win8_or_above global variable 2016-02-19 15:28:38 +01:00
Lapo Calamandrei
09cd17a001 Revert "Adwaita: restrict button transition"
Shouldn't be needed with recent Benjamin work.
This reverts commit 79ca3f03a8.
2016-02-19 14:39:47 +01:00
Lapo Calamandrei
826913135b Revert "Adwaita: only needed properties on entry transition"
Shouldn't be needed with recent Benjamin work.
This reverts commit d57f4a781c.
2016-02-19 14:38:22 +01:00
Matthias Clasen
9c2110122b gdk: Add a way to show included backends
Set GDK_BACKEND=help to see a list of all inluded GDK backends.
2016-02-18 22:03:12 -05:00
Benjamin Otte
a3ba7f0a20 css: Don't start transitions when the value didn't change
This stops us from starting a lot of useless transitions. And it's even
conformant with the CSS spec!
2016-02-18 23:57:39 +01:00
Carlos Soriano
11b3efbdda gtkcsscalcvalue: avoid unitialized boolean
Since we do an OR afterwards, initializing to FALSE is correct.
2016-02-18 15:32:54 +01:00
Carlos Soriano
40c0a6aa87 gtkplacessidebar: remove unneeded condition
We check for it before anyway, and in this case make sense to show the
eject button in both cases.
2016-02-18 15:32:54 +01:00
Olivier Fourdan
5a253c546a wayland: check for support of xdg_shell interface
When running with a Wayland compositor which doesn't support the
xdg_shell interface, gtk+ will segfault while trying to access the
corresponding wl proxy.

Check for xdg_shell support and do not use Wayland if not present, so
that it can fallback to X11, hoping that Xwayland is usable.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=762258
2016-02-18 15:29:01 +01:00
Daniel Mustieles
d1cf970d7a Updated Spanish translation 2016-02-18 14:15:57 +00:00
Phillip Wood
934b3f6865 Document that GtkApplication loads gtk/menus-common.ui
Add a comment about the resource gtk/menus-common.ui to the
documentation of the other resources loaded by GtkApplication.

https://bugzilla.gnome.org/show_bug.cgi?id=761432
2016-02-18 14:11:14 +00:00
Phillip Wood
c38c3361ca Document help overlay action name in GtkApplication
This means all the information needed to automatically load a
shortcuts window and create a menu item to show it is in one place.

https://bugzilla.gnome.org/show_bug.cgi?id=761431
2016-02-18 14:11:14 +00:00
Lapo Calamandrei
d57f4a781c Adwaita: only needed properties on entry transition
made things properly in the process creating a sass function to
handle transition properties stacking.
2016-02-18 14:30:23 +01:00
Lapo Calamandrei
79ca3f03a8 Adwaita: restrict button transition
we use to animate "all" in the transition, this seems to trigger
some weird gtk sizing issue, restricting the transition to just
the needed properties fixes.
2016-02-18 13:24:42 +01:00
Lapo Calamandrei
a93fdd8201 Adwaita: housekeeping
cleaned up unneded selectors and leftovers from previous versions.
2016-02-18 12:26:19 +01:00
Mario Blättermann
71c36bb875 Updated German translation 2016-02-18 10:08:00 +01:00
Piotr Drąg
0298d500d2 Updated Polish translation 2016-02-17 22:02:32 +01:00
Dušan Kazik
d976bbd7cb Updated Slovak translation 2016-02-17 20:56:02 +00:00
Lapo Calamandrei
56c54a20d1 Adwaita: reset the shadow on disabled scales 2016-02-17 20:00:57 +01:00
Lapo Calamandrei
9bb139c6aa Adwaita: unused assets cleanup 2016-02-17 15:22:36 +01:00
Lapo Calamandrei
d3c247ed21 Adwaita: added a new mixin for check/radio/sliders
some clean up in the process. The gradient still need some love.
2016-02-17 15:18:59 +01:00
Lapo Calamandrei
6bf33ac30c Adwaita: _drawing cleanup 2016-02-17 14:36:10 +01:00
Benjamin Otte
2782a14fc4 win32 theme: Add checkbutton spacing
The number is taken right from Wine source code.
2016-02-17 04:49:27 +01:00
Benjamin Otte
01bcda8a8c win32 theme: Query theme borders when rendering buttons
If someone figures out where the remaining pixel comes from: Tell me!
2016-02-17 04:49:27 +01:00
Benjamin Otte
67b893c5f8 win32 theme: Add a way to query border of theme parts 2016-02-17 04:49:26 +01:00
Benjamin Otte
a3998bce9d win32 theme: Add a hack that selects the right font on Windows 8
Someone needs to figure out why the default font is wrong.
2016-02-17 04:36:30 +01:00
Benjamin Otte
c98007f9fd win32: Add fallback code to draw theme parts 2016-02-17 04:36:18 +01:00
Benjamin Otte
37e3ccb2f6 win32: Split out fallback code into separate file
(1) Actual Windows users don't care about it
(2) It's easier to get rid of
2016-02-17 04:36:18 +01:00
Benjamin Otte
3e5be58991 win32 theme: Require comma between part and state ID 2016-02-17 04:36:18 +01:00
Matthias Clasen
1b36fbfc5e 3.19.9 2016-02-16 19:35:19 -05:00
Matthias Clasen
da47ceb4c0 places sidebar: Use the right marshallers
We are passing the mount operation as argument, so use
a marshaller that expects an object argument.
2016-02-16 19:20:22 -05:00
Carlos Soriano
b8e2ebb840 gtkplacessidebar: remove notification handling
We were notifying when an unmount operation was performed. However,
creating notifications from the gtk+ library is not that expected, and
makes notification handling difficult to do from the application point
of view since we cannot dismiss those notifications.

This cause issues like notifications of unmount drives stay there after
a system reboot, which confuses the user.

Instead of that, remove the notification handling for mount operations
on gtk+ and instead create a new signal on the gtkplacessidebar in order
to inform applications using it about an operation about to start.

Only drawback about this is that the GtkFileChooser loses its
notifications when unmounting, that although we could use the new signal
to do it, we actually don't want to notify from any part of gtk+ for
now.

https://bugzilla.gnome.org/show_bug.cgi?id=753351
2016-02-16 18:36:59 -05:00
Matthias Clasen
13e5e83798 Add message contexts to translated strings
The string "None" is used in multiple contexts; add message contexts
to give translators a chance to translate them accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=762165
2016-02-16 18:33:16 -05:00
Matthias Clasen
a64dd9ccf3 printing: Add message contexts
Some of the translated strings in the cups printbackend are short
and generic and might occur in other contexts. Give them disambiguating
message contexts to avoid translation problems.
2016-02-16 18:32:43 -05:00
Jonas Ådahl
38b1f15f12 wayland: Only attach the buffer if there was damage
There is no point in attaching and then committing the same buffer if
there was no damage. This will also make us do less unnecessary backfill
read backs, for the cases where we paint with an empty paint region.

https://bugzilla.gnome.org/show_bug.cgi?id=762120
2016-02-16 16:22:51 -05:00
Jonas Ådahl
64c9ec14fe wayland: Handle after-paint invocations when nothing was painted
If a after-paint was scheduled but nothing was painted, for example when
the it was scheduled by a subsurface wanting to update its position,
we'd still try to read back from the backfill cairo surface and update
the committed cairo surface reference even though no buffer was
attached.

Fix this by adding a new state, 'pending_buffer_attached', which is only
true if a buffer was attached during frame. Only when this is true will
the backfill be read back and the committed cairo surface reference be
updated.

https://bugzilla.gnome.org/show_bug.cgi?id=762120
2016-02-16 16:22:51 -05:00
Lapo Calamandrei
f945fb6ec4 Adwaita: add a top border to the filechooser bottom bar 2016-02-16 20:49:05 +01:00
Lapo Calamandrei
5de7a5fdea Adwaita: use Matthias provided ID for the previous commit style 2016-02-16 20:44:16 +01:00
Lapo Calamandrei
bdee6b11ac Adwaita: add back a bottom border on the pathbar/entry box 2016-02-16 20:40:19 +01:00
Matthias Clasen
3a4922a76f file chooser: Add an ID to the box around the pathbar
Having an ID makes it easier to style this appropriately.
2016-02-16 14:37:54 -05:00
Lapo Calamandrei
03ec21d612 Adwaita: make tab child not cover the active tab indication
in the process make the focus outline clearer.
2016-02-16 20:27:06 +01:00
Lapo Calamandrei
af2cc8140a Adwaita: places sidebar eject button sizing 2016-02-16 20:17:43 +01:00
Lapo Calamandrei
d3a153a45e Adwaita: places sidebar sizing with min-height...
...more to come.
2016-02-16 18:23:09 +01:00
Lapo Calamandrei
7c799bbc65 Adwaita: make tab buttons square once again 2016-02-16 17:54:31 +01:00
Lapo Calamandrei
6085bba0a5 Adwaita: be more specific about menu items height
setting a 16px min-height (same as a check/radio) and resetting
margins on check/radio to workaround a sizing issues there.
2016-02-16 17:42:52 +01:00
Christoph Reiter
3a15aa2a95 Add -gtk-image-effect alias for -gtk-icon-effect
The property name was changed in 2396265523. This makes sure
apps using it don't break and get a helpful warning instead.
2016-02-16 15:54:13 +01:00
Matthias Clasen
c2cfbc8df1 Updates 2016-02-15 23:05:06 -05:00
Matthias Clasen
e32da776ce Add a release note about level bar changes 2016-02-15 22:43:56 -05:00
Matthias Clasen
b9a1472fc5 Add a release note about window size saving 2016-02-15 22:17:41 -05:00
Matthias Clasen
8f71060ef9 file chooser: Reload current dir when switching from search mode
The need for this was pointed out by Evangelos Foutras in
https://bugzilla.gnome.org/show_bug.cgi?id=761757
2016-02-15 22:06:17 -05:00
Benjamin Otte
ab1906952e cellrenderertoggle: Change "indicator-size" handling
The following changes were done to (hopefully) achieve backwards
compatibility while allowing themes to change the size of the indicator.

(1) Deprecate the property.
(2) Change the default value of the property to 0. If it is not 0,
    use the property's value for the indicator size. This should make
    all programs that actually set it keep the size they set it to.
(3) If set to other values than 0, use min-width/min-height of the
    check/radio node to size the indicator. This allows themes to change
    the size.
(4) Fall back to the previous default size of 16px. This way themes that
    do not set the size keep the same behavior.
2016-02-16 02:53:34 +01:00
Benjamin Otte
3c0cd8aea4 win32 theme: Include the default win32 colors 2016-02-16 02:53:33 +01:00
Benjamin Otte
92fca23244 win32 theme: Always include the win32 theme
It's not very useful outside of Windows so far, but that will hopefully
change.
2016-02-16 02:53:33 +01:00
Lapo Calamandrei
a1cbcc18b3 Adwaita: stop using assets for treeview check/radio...
...the sizing is still off, waiting for Benjamin to add the magic,
probably the icon shadow is missing, not sure since it's blurry.
This needs to be reverted in case the sizing won't get fixed.
2016-02-16 02:14:02 +01:00
Matthias Clasen
c30d542a17 Some more CSS node tests for notebooks 2016-02-15 14:20:48 -05:00
Carlos Garnacho
38d0d0a687 gdkdnd: Stick to the first gdk_drag_drop_done() result
That way we can let ::cancel callers to override the visual
result of the operation (eg. when detaching notebook tabs on
NO_TARGET).

Also, document gdk_drag_drop_done() so it is mentioned that
this is a one-shot call.

https://bugzilla.gnome.org/show_bug.cgi?id=761954
2016-02-15 19:04:22 +01:00
Lapo Calamandrei
d26801c923 Adwaita: correctly style arrows wrt tab position 2016-02-15 18:42:12 +01:00
Anders Jonsson
bc3b399809 Updated Swedish translation 2016-02-15 17:39:17 +00:00
Anders Jonsson
9bd15e001a Updated Swedish translation 2016-02-15 17:38:07 +00:00
Carlos Garnacho
4636552a76 gdkdnd: Make GtkDragContext::cancel RUN_LAST
The default implementation code should act as a catch-all fallback,
we let the connected handlers to run first then.

https://bugzilla.gnome.org/show_bug.cgi?id=761954
2016-02-15 18:35:51 +01:00
Carlos Garnacho
aad3135e4c gdk: Add GdkDragCancelReason enum as argument to GdkDragContext::cancel
We should conform to a minimal set of reasons for the gtk side to emit
a better GtkDragResult than GTK_DRAG_RESULT_ERROR. This fixes the notebook
tab DnD feature, where we rely on GTK_DRAG_RESULT_NO_TARGET.

In the wayland side, unfortunately we can't honor either NO_TARGET nor
USER_CANCELLED, we don't know of the latter, so we could return false
positives on the former.

https://bugzilla.gnome.org/show_bug.cgi?id=761954
2016-02-15 18:35:51 +01:00
Benjamin Otte
1ee3df5161 cellrendertoggle: Draw background + frame for mark
Also compute padding and borders properly for the marks.
2016-02-15 18:17:11 +01:00
Benjamin Otte
46f46ed36e cellrenderertoggle: Split out a function 2016-02-15 18:17:11 +01:00
Benjamin Otte
d10bd41e43 widget-factory: Add myself
Actually, I wanted to have a radio toggle cell renderer for testing. But
hey, the commit message is supposed to say the important things!
2016-02-15 18:17:11 +01:00
Lapo Calamandrei
1b1d6551c7 Adwaita: correct size for ssd titlebars
fixes https://bugzilla.gnome.org/show_bug.cgi?id=762032
2016-02-15 16:56:47 +01:00
Matthias Clasen
cb43af090b notebook: Fix a misplaced tab label
Sometimes default tab labels ("Page <n>") get created on-demand,
and in that case, we were forgetting to put them below the tab
node in the CSS node tree. The visible result of this is that the
heuristics for when to give notebooks background in Adwaita fail
in some cases. So, make sure to always place the label below the
tab node.
2016-02-15 10:38:13 -05:00
Caolán McNamara
1d65e8b601 gtk-demo: add menu separator demo
doesn't much look like the menu separator in a real menu though.

https://bugzilla.gnome.org/show_bug.cgi?id=762080
2016-02-15 10:19:49 -05:00
Caolán McNamara
ee9c1c1449 gtk-demo: add combobox demos
https://bugzilla.gnome.org/show_bug.cgi?id=762080
2016-02-15 08:41:22 -05:00
Caolán McNamara
1131ae27a0 gtk-demo: add menu check and radio examples
note that if the "menu" context has no parent then the GTK_STATE_FLAG_NORMAL
menu entries are invisible against the white background.

https://bugzilla.gnome.org/show_bug.cgi?id=762080
2016-02-15 08:41:22 -05:00
Lapo Calamandrei
1140a514ea Adwaita: notebook fixes
make the tab close button a tad bigger, use header 'paddings' in
place of 'tabs' margins for spacing.
2016-02-15 14:27:14 +01:00
Matthias Clasen
4e2674edbb Expand the docs for gtk_window_set_default_size()
Mention that this function should be used together with
gtk_window_get_size() when saving and restoring window sizes.
2016-02-15 08:23:12 -05:00
Matthias Clasen
e10f44e896 places sidebar: use a box
No need for a grid here. Patch by Timm Bäder.
2016-02-15 08:19:25 -05:00
Lapo Calamandrei
88c68f2eef Adwaita: sidebar background-color
it was covered by the contained list background, which is now
transparent.
2016-02-15 13:52:41 +01:00
Lapo Calamandrei
0b1aeceb6e Adwaita: no rounded corner for tiled backdrop windows
fixes https://bugzilla.gnome.org/show_bug.cgi?id=762067
2016-02-15 13:31:42 +01:00
Lapo Calamandrei
aed7ca1b3d Revert "Adwaita: no rounded corners for backdrop tiled windows"
This reverts commit aa4b385398.
Erroneusly pushed unfinished stuff...
2016-02-15 13:28:46 +01:00
Lapo Calamandrei
4d26640045 Adwaita: shortcutswindow fixes
use darker text and tweak the keycap vertical centering,
addresses https://bugzilla.gnome.org/show_bug.cgi?id=761778
2016-02-15 13:07:37 +01:00
Lapo Calamandrei
aa4b385398 Adwaita: no rounded corners for backdrop tiled windows
fixes https://bugzilla.gnome.org/show_bug.cgi?id=762067
2016-02-15 12:36:06 +01:00
Chun-wei Fan
0e9f24b5a4 gtk/gtkentry.c: Fix build on pre-C99
This file now uses nearbyint(), so include fallback-c89.c so that
compilers that don't provide the function will not get upset.
2016-02-15 17:22:00 +08:00
Chun-wei Fan
f3f3a1c750 Fix 'make dist' 2016-02-15 17:20:54 +08:00
Benjamin Otte
beb76936d9 cellrenderertoggle: Use "check" and "radio" names
... instead of just adding a style class.
2016-02-15 04:41:12 +01:00
Benjamin Otte
a4a158e885 win32 theme: Remove a bunch of workarounds that are no longer necessary 2016-02-15 04:41:12 +01:00
Benjamin Otte
b227d023f3 win32 theme: Draw checkmarks and radiomarks properly
Instead of drawing them as the background, use -gtk-icon-source.
Also size the marks properly.

Because Windows doesn't have indeterminate radio buttons, use a
cross-fade between checked and unchecked radiomark instead. But
unlike previously, use CSS cross-fade() syntax to draw it.
2016-02-15 04:41:12 +01:00
Benjamin Otte
de38435921 cssimagecrossfade: Fix order of images when parsing/printing
The syntax is cross-fade(<percentage> <end>, <start>), not the
other way around. That's because the percentage refers to the end image.
2016-02-15 04:41:12 +01:00
Benjamin Otte
f425b5549c win32: Add support for -gtk-win32-part-width/height to CSS
It's unused by now, but I want it for min-width of checks/radios.
2016-02-15 04:41:12 +01:00
Benjamin Otte
b43844f9f9 win32 theme: Don't set the color on *
Instead, set it on .background, so it gets inherited everywhere.
2016-02-15 04:41:12 +01:00
Benjamin Otte
6d909018f7 win32 theme: Use same spinner as Adwaita 2016-02-15 04:41:12 +01:00
Benjamin Otte
3597baf272 win32: Update color handling to recent GtkWin32Theme changes 2016-02-15 04:41:12 +01:00
Benjamin Otte
a1617c6d6d win32: Canonicalize theme-name before adding to hash table
This way, we get rid of du0plicates.
2016-02-15 04:41:12 +01:00
Benjamin Otte
d584e22e02 win32: Add gtk_win32_theme_parse()
So all places can use this function instead of parsing things themselves.
2016-02-15 04:41:12 +01:00
Benjamin Otte
3b19db425e css: Add a number value handling win32 sizes 2016-02-15 04:41:12 +01:00
Lapo Calamandrei
915fe87a62 Adwaita: fix treeview dnd column headers 2016-02-14 22:30:32 +01:00
Lapo Calamandrei
54b378b3df Adwaita: flatten up search bars and inline toolbars 2016-02-14 21:48:31 +01:00
Lapo Calamandrei
f1b34a719e Adwaita: image-button sizing fix 2016-02-14 21:07:11 +01:00
Matthias Clasen
3c9a63bcb1 Adwaita: Fix a padding problem in action bars
Padding adds up. A selector like "actionbar box" matches any box
inside an actionbar, so nested boxes accumulate more and more
padding. The intention clearly was to just give padding to the
topmost box that is the direct child of the actionbar's revealer.

https://bugzilla.gnome.org/show_bug.cgi?id=762036
2016-02-14 14:54:49 -05:00
Matthias Clasen
e0bf1289b9 gtk3-demo: Fontify all source files 2016-02-14 10:56:26 -05:00
Matthias Clasen
c0a61c2da3 gtk-demo: Streamline application
Avoid the odd #ifdef STANDALONE construction; we can show
multiple source files nowadays.
2016-02-14 10:56:26 -05:00
Matthias Clasen
fc90bd5e30 gtk-demo: Fix the size saving for CSD
We need to use gtk_window_get_size to get the correct size that
we can pass to gtk_window_set_default_size regardless of CSD
or not.
2016-02-14 10:56:26 -05:00
Lapo Calamandrei
601e762973 Adwaita: correct spacing for mixed buttons 2016-02-14 16:39:19 +01:00
Benjamin Otte
6edb420e51 paned: Fix drawing
Clip children to their window's size. That way no overdraw happens for
these widgets. But don't clip the handle.

We might in the future consider not clipping un-shrinkable children.

https://bugzilla.gnome.org/show_bug.cgi?id=762021
2016-02-14 16:10:07 +01:00
Benjamin Otte
88f0885638 paned: Use content allocation instead of widget allocation
We don't want to include padding and borders in our calculations
involving the handle.
2016-02-14 16:07:06 +01:00
Benjamin Otte
7e47418d0c paned: rtl-flip with the correct rectangle 2016-02-14 15:52:35 +01:00
Lapo Calamandrei
1bfbd23a0c Adwaita: don't set a border for drop targets
to avoid active drop targets to grow.
2016-02-14 14:44:57 +01:00
Lapo Calamandrei
bf45d06a79 Adwaita: scss cosmetic changes 2016-02-14 14:33:30 +01:00
Lapo Calamandrei
72db203672 Adwaita: fix scale popup button size 2016-02-14 14:21:01 +01:00
Michael Catanzaro
ea423318f1 Fix a typo 2016-02-13 22:15:07 -06:00
Matthias Clasen
3a499d61dc gtk-demo: Add window size saving example
Implement the recommendations from
https://wiki.gnome.org/HowDoI/SaveWindowState
in the Application Class example.
2016-02-13 23:03:18 -05:00
Matthias Clasen
7bca66e1ff gtk-demo: modernize the application demo
Subclass GtkApplication and GtkApplicationWindow
and use a template.
2016-02-13 23:03:18 -05:00
Lapo Calamandrei
7f2d4400ba Adwaita: try being smarter wrt extending buttons. 2016-02-14 02:35:28 +01:00
Lapo Calamandrei
adddd1a9eb Revert "Adwaita: remove an unneded selector."
This reverts commit 05dff4ccb0.
It was needed actually...
2016-02-14 01:20:02 +01:00
Lapo Calamandrei
05dff4ccb0 Adwaita: remove an unneded selector. 2016-02-14 00:34:29 +01:00
Lapo Calamandrei
12daac76d7 Adwaita: notebook arrow styling. 2016-02-14 00:25:04 +01:00
Matthias Clasen
29a7373802 widget-factory: Add an inline toolbar example
This pattern is still used in applications, so we should have it
represented here to keep it working well.
2016-02-13 17:11:59 -05:00
Matthias Clasen
35bed27b9d Docuemnt calc() support in CSS 2016-02-13 06:29:34 -05:00
Chao-Hsiung Liao
3f4f914fb4 Updated Chinese (Taiwan) translation 2016-02-13 06:19:31 +00:00
Chao-Hsiung Liao
ecdd420b55 Updated Chinese (Taiwan) translation 2016-02-13 06:17:15 +00:00
Benjamin Otte
d3e8cf87aa testsuite: Don't use deprecated APIs 2016-02-13 06:41:29 +01:00
Benjamin Otte
e7470be7bf tests: Port testlockbutton to GTask
Get rid of deprecations that way.
2016-02-13 06:26:42 +01:00
Benjamin Otte
93eec3e52f css: Implement transitions for numbers of different units
We now can transition from 10px to 100%.

Note that this requires a teensy tiny hack in
gtk_css_value_transition(), but so be it.
2016-02-13 04:49:08 +01:00
Benjamin Otte
0cda3ba3e8 calc: Allow subterms with '(' ')' bracketing
Some more tests included.
2016-02-13 04:49:08 +01:00
Benjamin Otte
63d1f80742 css: Add support for '*' and '/' to calc()
More tests are included.
2016-02-13 04:49:08 +01:00
Benjamin Otte
4a9fa1e750 css: Add API to handle order when printing calc()
Also, add some tests and update old ones to print calc() statements
correctly.
2016-02-13 04:49:08 +01:00
Benjamin Otte
65dd9da44a css: Add support for sums to calc()
This requires adding code to do math on number values:
  gtk_css_number_value_multiply()
and
  gtk_css_number_value_try_add()
were added to achieve that.

Some tests are included.
2016-02-13 04:49:08 +01:00
Benjamin Otte
cd6dc954f2 css: Add initial support for calc()
So far, calc() only supports literals, ie it's completely useless.
2016-02-13 04:49:08 +01:00
Benjamin Otte
a52ecd2be6 css: Add gtk_css_number_value_can_parse()
Use it instead of _gtk_css_parser_has_number().

We need that once we introduce calc() support.
2016-02-13 04:49:08 +01:00
Benjamin Otte
b246d55472 css: Turn number values into a virtual type
GtkCssNumberValue is now a base class for numbers.

Actual numbers are now implemented in GtkCssDimensionValue. The name is
borrowed from the CSS spec, so there.
2016-02-13 04:49:07 +01:00
Benjamin Otte
e2d966eda5 cssnumbervalue: Remove gtk_css_number_value_get_unit()
This is in preparation for calc(), as calc(50% - 5px) is valid CSS
but has 2 units. Instead, add a function to query a value's dimension
(so we can differentiate lengths from numbers) and add a function to
query if the value contains percentages.
2016-02-13 04:49:07 +01:00
Benjamin Otte
7b301fcece linear-gradient: Remove the hack using NUMBER
Instead, add a "side" member to the struct that keeps sides explicitly.
2016-02-13 04:49:07 +01:00
Benjamin Otte
0645425046 cssimageradial: Don't print 2 spaces 2016-02-13 04:49:07 +01:00
Matthias Clasen
51af70495a gadget: Be careful in geometry calculations
Margins can be negative, and if we are not careful, then
content+padding+margin can end up with negative dimensions,
which can upset pixman and others. This commit ensures
that a gadget will not request or draw boxes with negative
dimensions, and get_border_allocation and get_content_allocation
will not return boxes with negative dimensions.

This fixes a crash in the paned separator drawing code that
can be reproduced by setting separator padding to 0.

https://bugzilla.gnome.org/show_bug.cgi?id=759657
2016-02-12 22:26:04 -05:00
Matthias Clasen
71559c603e file chooser: Avoid nonworking search+save combinations
With the location entry up in the header bar in save mode, we can
end up with the search model being in use when the user types in
the location entry. In this case, we don't make the Save button
sensitive as we should.

Having two entries in the dialog is somewhat confusing anyway,
so just stop the search when the user starts typing in the location
entry.

https://bugzilla.gnome.org/show_bug.cgi?id=761757
2016-02-12 22:05:40 -05:00
Matthias Clasen
811a9b21c1 file chooser: Use the right model when getting the selection
We don't need to make assumptions about which model is currently
used since gtk_tree_selection_get_selection hands us the model.

https://bugzilla.gnome.org/show_bug.cgi?id=761757
2016-02-12 20:35:26 -05:00
Matthias Clasen
4c37719639 Adwaita: Insensitive notebook arrows
Just make insensitive notebook arrows gray until better
styling appears.

https://bugzilla.gnome.org/show_bug.cgi?id=761716
2016-02-12 18:24:20 -05:00
Matthias Clasen
102b3bfddf paned: Draw handle before children 2016-02-12 18:10:02 -05:00
Carlos Garnacho
d55b8151f2 x11: Avoid setting has_pointer_focus if a EWMH compliant WM is present
This is mostly useful to have focus behave sanely on lack of WM, so avoid
any check there if we're positive there is a WM handling focus.

https://bugzilla.gnome.org/show_bug.cgi?id=677329
2016-02-12 22:05:30 +01:00
Matthias Clasen
48d7219296 paned: Don't overdraw
When moving children 'off', we can't allow them to draw outside
the paned allocation, so clip when drawing.

https://bugzilla.gnome.org/show_bug.cgi?id=761903
2016-02-12 15:02:34 -05:00
Caolán McNamara
5562f4f273 gtk-demo: spinbutton and menubar examples
https://bugzilla.gnome.org/show_bug.cgi?id=761900
2016-02-12 10:02:31 -05:00
Jakub Steiner
eb90c4f9ed Adwaita: make popovers less 1995
- use regular bgcolor
2016-02-12 14:38:03 +01:00
Carlos Garcia Campos
170cb01675 Revert "Remove _gtk_box_get_children"
This reverts commit 572e9a0402.

_gtk_box_get_children was not doing exactly the same than
gtk_container_get_children does, because the latter uses the forall
implementation of GtkBox that takes into account the children pack mode while
the former just iterated the list of children. This broke the order of
the buttons in a GtkButtonBox when they were packaged with PACK_END.
2016-02-12 13:29:21 +01:00
Matthias Clasen
452d25b13d placessidebar: Increase padding
This should bring us back to the look of 3.18.

https://bugzilla.gnome.org/show_bug.cgi?id=761791
2016-02-11 22:51:35 -05:00
Colomban Wendling
a47d9a7b65 treeview: Make sure the editing widget's top left is always visible
https://bugzilla.gnome.org/show_bug.cgi?id=761838
2016-02-11 22:41:58 -05:00
Matthias Clasen
32804e098e Adwaita: Don't grow flat entries
Entries in treeviews and similar embedded situations don't really
work well if their height is forced to be big. Take out the min-height
for these.

https://bugzilla.gnome.org/show_bug.cgi?id=761686
2016-02-11 22:36:07 -05:00
Caolán McNamara
85b44a3e20 cannot not -> must
https://bugzilla.gnome.org/show_bug.cgi?id=761826
2016-02-11 22:18:26 -05:00
Matthias Clasen
56ba81530a placesview: Fix some minor issues
Make the button not grow too big, and ensure that the actionbar
has a background.

https://bugzilla.gnome.org/show_bug.cgi?id=761792
2016-02-11 22:16:33 -05:00
Matthias Clasen
23d2f2d0e1 Adwaita: tone down treeview separators 2016-02-11 22:03:47 -05:00
John Ralls
3bf1151051 Fix Quartz clipboard image retrieval.
It does no good to iterate through a series of mime types to call a
function when the eventually-called function,
_gtk_quartz_get_selection_data_from_pasteboard() in this case, gives the
wrong answer and stops the iteration on all but one especially if that
one isn't first.

The one is "image/tiff" and the quartz pasteboard function will return
any image type Quartz knows about for it, so lose the iteration and use
only "image/tiff".
2016-02-11 14:00:47 -08:00
Lapo Calamandrei
1bd0431ab2 Adwaita: fix bogus selector...
...ruining the indeterminate check animation
2016-02-11 18:38:31 +01:00
Lapo Calamandrei
460aa64c58 Adwaita: animate check and radios 2016-02-11 18:27:25 +01:00
Emmanuele Bassi
90d5c7f9e8 mir: Add C++ guards
Avoid missing symbols when compiling C++ including the GDK Mir backend
header.

https://bugzilla.gnome.org/show_bug.cgi?id=761829
2016-02-11 12:01:39 +00:00
Matthias Clasen
bb15c53966 notebook: fix arrow states
Some code was confusing 0 with ARROW_NONE, causing us to not properly
update the state of the arrow gadgets.
2016-02-11 06:47:28 -05:00
Benjamin Otte
f5d4fb1a0b inspector: Don't use unused variables
Windows-specific refactorings broke this.
2016-02-11 04:14:56 +01:00
Benjamin Otte
88b7dfdb1e win32: Move init code into windows-specific code
Avoids warnings about undefined functions on non-windows.
2016-02-11 04:14:28 +01:00
Benjamin Otte
4dfbaccd67 win32 theme: Add a GtkWin32Theme object
This object wraps a HTHEME and takes care of recreating it on theme changes.
2016-02-11 03:44:48 +01:00
Benjamin Otte
1519801878 win32: Capture WM_THEMECHANGED
We're not doing anything useful with it yet. This will follow in the coming commits.
2016-02-11 03:44:48 +01:00
Benjamin Otte
99153ed585 win32: Remove XP-specific code
We don't support XP anymore.
2016-02-11 03:44:48 +01:00
Benjamin Otte
a620a1d688 win32: Remove unused functions / header includes 2016-02-11 03:44:48 +01:00
Benjamin Otte
033fb5a879 win32: Always pass a window to the default event filters
This has to happen or the event filter cannot identify what type
of display the event is from (ie if it's an XEvent, a broadway
event or a win32 MSG.
2016-02-11 03:44:48 +01:00
Benjamin Otte
f9c2982ddc testsuite: No warnings on type conversions please
long is 32bit on win64, so it's int cast to pointer of different size, and gcc doesn't like that.
2016-02-11 03:44:47 +01:00
Benjamin Otte
9efb275a13 filechoosernativewin32: Remove unused variables 2016-02-11 03:44:47 +01:00
Benjamin Otte
dda959332f imcontextsimple: Remove unused variable on win32 2016-02-11 03:44:47 +01:00
Benjamin Otte
b561af25ec testgtk: Compile without warnings on win32 2016-02-11 03:44:47 +01:00
Benjamin Otte
34db80c28b tests: Remove unused variable 2016-02-11 03:44:47 +01:00
Benjamin Otte
ce8a98e21b win32 theme: Get rid of deprecated style properties
That's pretty easy, because we can just delete them. The theme is broken either way.
2016-02-11 03:44:47 +01:00
Benjamin Otte
9c700b2bc6 win32 theme: Replace pseudoclasses with undeprecated ones 2016-02-11 03:44:47 +01:00
Benjamin Otte
93ecb1d187 win32 theme: Do a quick'n'dirty search/replace
Try to replace the old style names with then new style names.

The theme is still entirely way too broken. But at least one can see something.
2016-02-11 03:44:47 +01:00
Benjamin Otte
ec3ce21beb win32: Remove _gdk_display usge from dnd code 2016-02-11 03:44:47 +01:00
Benjamin Otte
7f266e1a03 win32: Make cursor code work without _gdk_display 2016-02-11 03:44:47 +01:00
Benjamin Otte
76e56c5038 win32: Stop using _gdk_display global in device code
Use gdk_device_get_display() instead.
2016-02-11 03:44:47 +01:00
Benjamin Otte
ccbfa64d67 win32embedwidget: Mark deprecated sections 2016-02-11 03:44:47 +01:00
Benjamin Otte
ccc7e3058c filechoosernativewin32: Silence gcc 2016-02-11 03:44:47 +01:00
Benjamin Otte
068f8a3da1 filechoosernativewin32: Add missing return type
Looks like a line accidentally was deleted there.
2016-02-11 03:44:47 +01:00
Benjamin Otte
117e303b44 filechoosernativewin32: Define MSC_VER at top of file
The headers we include might include windows headers which define _MSC_VER already.
2016-02-11 03:44:47 +01:00
Benjamin Otte
0ea9131ff7 printoperation-win32: Silence gcc 2016-02-11 03:44:47 +01:00
Benjamin Otte
573f51cb29 mountoperation: Silence gcc
Also, printf()ing a GPid should be forbidden.
2016-02-11 03:44:47 +01:00
Benjamin Otte
1d980192fa immodule: Stop gcc from complaining 2016-02-11 03:44:47 +01:00
Benjamin Otte
766b1b9886 win32: Remove deprecation warnings in dnd code 2016-02-11 03:44:46 +01:00
Benjamin Otte
4ce6d10601 win32: Remove deprecation warnings in devicemanager code 2016-02-11 03:44:46 +01:00
Benjamin Otte
584931e94d win32: Use g_set_object()
... instead of a hand-rolled version that does the same thing.
2016-02-11 03:44:46 +01:00
Benjamin Otte
788951c543 win32: Fix empty body warning 2016-02-11 03:44:46 +01:00
Matthias Clasen
bfd254c932 gtk-demo: Add more foreign drawing examples
Add a notebook with an active tab.
Based on a patch by Caolan McNamara.
2016-02-10 21:20:34 -05:00
Caolán McNamara
671552043c gtk-demo: attempt at a notebook with active box-shadow in tab 2016-02-10 17:26:12 -05:00
Matthias Clasen
8e6cc260ca testgtk: Remove an unused variable 2016-02-10 16:10:23 -05:00
Caolán McNamara
701cdda3dc gtk-demo: Add a menu to foreigndrawing
and demo that the block arrows require GTK_STATE_FLAG_DIR_LTR or
GTK_STATE_FLAG_DIR_RTL set to appear

https://bugzilla.gnome.org/show_bug.cgi?id=761828
2016-02-10 16:07:51 -05:00
Rafael Fontenelle
751b69cbae Updated Brazilian Portuguese translation 2016-02-10 16:55:55 +00:00
Timm Bäder
becfd18b07 overlay: set css name 2016-02-10 14:03:56 +01:00
Timm Bäder
bdd182f38c frame: Set border gadget state after creating it 2016-02-10 14:03:39 +01:00
Timm Bäder
c44364f1d1 spinbutton: Free the gadget in finalize 2016-02-10 12:30:35 +01:00
Timm Bäder
8ea573b473 css node tree: Fix crash
This function would return "" whenever the state of the css node was
unset, causing a crash when selecting the css node tree from the
sidebar.
2016-02-10 12:28:32 +01:00
Matthias Clasen
7ad6043478 gtk-demo: Improve the tag implementation
Add margins and make it so that clicking on margins next to
links does not activate them.
2016-02-10 00:07:37 -05:00
Matthias Clasen
a3a5cf1087 text view: Improve tag pointer tracking
A problem that has been observed in polari is that links in tags
are clickable all the way into the margin. This problem is caused
by gtk_text_view_get_iter_at_position ignoring the return value
of pango_layout_xy_to_index. Instead, pass it back as a boolean
return value. This is technically an API break, but we've allowed
ourselves to change return types from void to gboolean before.
2016-02-10 00:01:54 -05:00
Rui Matos
019dab7c38 gtkmagnifier: Avoid a crash if the inspected widget is finalized
If the inspected widget is finalized and we then try to disconnect
from its signals we'll crash.

https://bugzilla.gnome.org/show_bug.cgi?id=761775
2016-02-09 15:35:17 +01:00
Timm Bäder
1331b60029 A few more documentation fixes 2016-02-09 08:05:16 +01:00
Timm Bäder
c5369356e8 Various documentation fixes
Always have Since: annotations at the very bottom, use the correct
ClassName::signal-name/ClassName:property-name syntax, fix a few typos
in type names, wrong function names, non-existing type names, etc.
2016-02-08 22:56:52 +01:00
Rico Tzschichholz
76fedc1882 gtk: Fix some return-values annotations (transfer none/full) 2016-02-08 14:03:55 +01:00
Ignacio Casal Quinteiro
eb555979db win32: properly handle show and focus
The first time a window is shown we should always call SW_SHOWNORMAL.
Understand whether to call SW_SHOW or SW_SHOWNORMAL and the specific
ones for the temporary windows depending on IsWindowVisible.
This also fixes the problem when calling gtk_window_present and
the window is snapped to the left or right of the screen.

This patch is based on the patches provided by Yevgen Muntyan
and Aleksander Morgado.

https://bugzilla.gnome.org/show_bug.cgi?id=698652
2016-02-08 13:25:01 +01:00
Yevgen Muntyan
07a994c89f win32: on focus restore the window if iconified
If the window is iconified we want to restore the window
to get the proper size instead of showing it normal which
would change the size of the window.

https://bugzilla.gnome.org/show_bug.cgi?id=698652
2016-02-08 12:58:58 +01:00
Baurzhan Muftakhidinov
76d0311ae3 Updated Kazakh translation 2016-02-08 08:54:59 +00:00
Matthias Clasen
dc407dbc8f inspector: Avoid crash in magnifier
We can't use gtk_widget_draw on widgets that are not allocated.
2016-02-08 09:34:24 +01:00
Matthias Clasen
e0f31ab7bb Add css node tests for box packing
More tests to ensure that CSS node order is always physical
left-to-right.
2016-02-08 09:34:19 +01:00
Timm Bäder
486a0a467d image: _get_style_context never returns NULL 2016-02-07 19:16:26 +01:00
Timm Bäder
ded745a4b9 Make gtk_icon_helper_invalidate private 2016-02-07 19:16:26 +01:00
Timm Bäder
0bd6c48315 Add and use gtk_icon_helper_invalidate_for_change 2016-02-07 19:16:26 +01:00
Timm Bäder
0c80210685 iconhelper: Save whether the surface is symbolic 2016-02-07 19:16:26 +01:00
Timm Bäder
0ec4c76d8f stylepropertyimpl: Use GTK_CSS_AFFECTS_SYMBOLIC_ICON
Things like color affect symbolic icons, but not colored icons, while
other css properties like -gtk-icon-effect affect colored icons, but not
symbolic ones.
2016-02-07 19:16:26 +01:00
Timm Bäder
2d8db26cbf csstypes: Add GTK_CSS_AFFECTS_SYMBOLIC_ICON 2016-02-07 19:16:26 +01:00
Timm Bäder
d3a0dfe81a cssstylechange: Add helper function to print change
So I don't have to print both styles to the console, paste them both
into a file and then run diff on the 2 files anymore.
2016-02-07 19:16:26 +01:00
Timm Bäder
2902063f24 iconhelper: Un-duplicate some code 2016-02-07 19:16:26 +01:00
Timm Bäder
c360b5fb49 Remove more unnecessary redraws
The call to gtk_widget_set_state_flags immediately before these already
queues a redraw/allocate/resize in case they have to be queued.
2016-02-07 19:16:26 +01:00
Matthias Clasen
667069cff2 Adwaita: No rounded corners for fullscreen
If the theme has rounded corners for fullscreen, we don't tell the
window manager that we are now fully opaque, which then makes things
less efficient than they should be.

https://bugzilla.gnome.org//show_bug.cgi?id=761571
2016-02-07 18:00:29 +01:00
Matthias Clasen
af64a60466 box gadget: Fix allocation without baseline
When we don't get a baseline passed in, we want to basically
center the children inside the allocation. There was an attempt
in the code to do 'internal baseline alignment', but it had the
side effect of moving the contents to the top when we don't get
a baseline passed in. Remove it for now, this needs some more
infrastructure to do properly.

https://bugzilla.gnome.org/show_bug.cgi?id=761363
2016-02-07 15:08:56 +01:00
Matthias Clasen
5f01e6924f widget-factory: Update levelbar example
Set reasonable level offsets.
2016-02-07 15:05:57 +01:00
Daniel Mustieles
72a3f25a5e Updated Spanish translation 2016-02-07 13:18:58 +01:00
Daniel Mustieles
a1839a7a92 Updated Spanish translation 2016-02-07 13:18:49 +01:00
Matthias Clasen
4a465e6832 Fix levelbar css node tests
These were affected by the recent change to level offset handling.
At the same time, make the test files more realistic by updating
the level offsets when we set a custom range.
2016-02-07 11:43:13 +01:00
Matthias Clasen
c3c01d8cbc level bar: Document buildable syntax 2016-02-07 11:43:13 +01:00
Piotr Drąg
1a524f374c Updated Polish translation 2016-02-06 19:32:03 +01:00
Matthias Clasen
ccd8c76ff2 level bar: Fix offset behavior
We had some odd special-casing for the lowest and highest offset
that did not quite work. The new rule is simple: If the value
is between offset n-1 and n, it gets the style for offset n.

https://bugzilla.gnome.org/show_bug.cgi?id=761416
2016-02-06 16:43:45 +01:00
Matthias Clasen
1a71579b61 level bar: Improve documentation
The docs were not explaining at all what happens to existing
level offsets when the min- or max-value of a level bar are
changed.
2016-02-06 16:19:13 +01:00
Matthias Clasen
8776bb5324 level bar: Make the full offset official
We are adding 3 offsets, not just two. Add a define for the
third one, and mention it in the docs.
2016-02-06 16:11:17 +01:00
Dušan Kazik
7b668660a9 Updated Slovak translation 2016-02-06 14:16:02 +00:00
Ray Strode
2ebae407ca wayland: rework buffer management code (3 changes)
There are a couple of issues with the way that buffers are handled in
wayland in right.  These issues mean that:

 - buffers can get leaked at a fairly fast clip under the right
   conditions. This leads to the OOM killer kicking in and
   gnome-shell and gnome-terminal (for instance) showing memory
   usage in the high gigabytes range.

 - drawing can happen to a shared memory buffer at the same time
   the compositor is reading out the pixels.  This can lead to
   glitching in drawing and other undefined behavior by the compositor.

This changeset reworks how buffer management is done in the code to try
to address both problems.

The first change (commit 2c300081) addresses the leak by dropping code
that has an unchecked cairo_surface_reference call.  The code is dropped
rather than fixed, because it has a more serious issue: it's overarching
purpose is to deal with shared memory buffer contention with the
compositor, but it does it in a racy way and so fails at that mission.

The second change (commit 40e91195a) moves what layer of the code buffer
release events are handled. This is an organizational change in the
code, with no functional changes, but it's important for the last change
in the changeset.

The last change (commit c80dd549) adds back code for dealing with shared
member buffer contention in a race free way. The new code is careful to
never reuse a buffer that hasn't been explicitly released by the
compositor.
2016-02-06 08:42:55 -05:00
Ray Strode
c80dd54924 wayland: stage uncommitted changes to dedicated buffer
Right now we use one buffer for both staged changes (freshly painted
changes waiting for the frame clock to send to the compositor) and
committed changes (changes actively being read by the compositor
process). This creates a problem in the event we need to stage updates
at the same time the compositor is processing committed updates: we
can't change what the compositor is actively processing.

The current solution for handling this contention is to allocate a
temporary buffer on the spot at the time the updates are staged, and to
copy that buffer back to the shared buffer later.  The problem, though,
is that the copy to the shared buffer currently happens as soon as
the updates are finished being staged, not when the shared buffer is
done being processed by the compositor.

In order to address that problem, this commit changes the code to always
stage changes to a dedicated staging buffer.  The staging buffer is
used exclusively by the client until the client is done with it, and then
once that staging buffer is committed, the client never writes to that
buffer again.  If the client needs to stage new updates, it allocates a
brand new staging buffer, draws to it, and back fills the undrawn parts
of the buffer from a copy of the contents of the committed buffer.

As an optimization, the compositor has the option of releasing the
committed buffer back to the client.  If it does so before the client
needs to stage new updates, then the client will reuse the buffer
for staging future updates.  This optimization prevents having to allocate
a new staging buffer and the associated cost of back filling
that new buffer with a readback of the committed buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=761312
2016-02-06 08:02:57 -05:00
Ray Strode
40e91195ad wayland: don't handle buffer release centrally
Right now we handle buffer releases coming from the
compositor in a central place. We add a listener when
first creating the shared buffers.

This is problematic because a buffer can only have
one listener on it at once so users of the buffer
can't get notified when it's released.

This commit moves the buffer listener code from the
centrally managed display code to the cursor and window
code.

https://bugzilla.gnome.org/show_bug.cgi?id=761312
2016-02-06 08:02:57 -05:00
Ray Strode
2c300081c4 wayland: always return FALSE from begin_paint
The client and compositor share access to the window
pixel buffers. After the client hands off (commits)
the buffer to the compositor it's not supposed to write
to it again until it's released by the compositor.

The code tries to deal with this contention by allocating
a temporary buffer and using that in the mean time. This
temporary buffer is allocated by a higher layer of the code
when begin_paint returns TRUE. Unfortunately, that layer of
the code has no idea when the buffer is released, so it ends
up blitting the temporary buffer back to the shared buffer
prematurely.

This commit changes begin_paint to always return FALSE.

A future commit will address the contention problem in
a different way.

https://bugzilla.gnome.org/show_bug.cgi?id=761312
2016-02-06 08:02:57 -05:00
Ray Strode
1cfa2f4134 wayland: use g_clear_pointer when destroying cairo surfaces
There are a few places where we destroy a cairo surface and
then nullify it. This commit changes those to use
g_clear_pointer instead.

It also drops a cairo_surface_finish call that is unnecessary

https://bugzilla.gnome.org/show_bug.cgi?id=761312
2016-02-06 08:00:35 -05:00
Ray Strode
e6f92df57e wayland: rename cairo surface user data key to be more specific
This commit renames the key name to be more specific for clarity.

https://bugzilla.gnome.org/show_bug.cgi?id=761312
2016-02-06 07:59:25 -05:00
Ray Strode
3ac78ea0be wayland: move server proxy objects to substructure
This commit moves the server proxy objects to a substructure
for clarity.

https://bugzilla.gnome.org/show_bug.cgi?id=761312
2016-02-06 07:59:09 -05:00
Ray Strode
f90db30b9e wayland: rename window->surface to window->wl_surface
The name surface is really overloaded when dealing
with wayland windows.

To alleviate ambiguity, this commit changes the name
of the "surface" and "subsurface" members to have
a wl_ prefix.

https://bugzilla.gnome.org/show_bug.cgi?id=761312
2016-02-06 07:58:56 -05:00
Matthias Clasen
4d40bd4474 Fix stylecontext tests
This was broken by f7ec9c98ef,
since type names are no longer used at all in CSS matching.
2016-02-06 09:59:48 +01:00
Matthias Clasen
2d1f1f3b81 Update CSS docs regarding type names
We no longer use type names at all.
2016-02-06 09:28:51 +01:00
Benjamin Otte
d48d3b359c cssselector: Remove type references
We don't use types anymore.
2016-02-05 23:47:48 +01:00
Benjamin Otte
e8fca5bbbe cssmatcher: Remove type argument from name matcher
We no longer use types when matching names.
2016-02-05 23:43:05 +01:00
Benjamin Otte
fe6d4cbdf5 inspector: Drop type name from node list
It's not used anymore in the CSS, so people don't need to see it.
2016-02-05 19:31:47 +01:00
Benjamin Otte
0c12601208 cssimageradial: Only allow at "<position>" after other props
Don't allow syntax like
  at top left circle
but follow the spec about requiring the at <position> right before the
comma.

This is porbably because
  circle at 10px 10px
could be interpreted as
  circle 10px at 10px
with the now disallowed syntax, too.

Test included.
2016-02-05 19:31:47 +01:00
Benjamin Otte
982da040b2 cssimageradial: Only emit one error for wrong position
Test included.
2016-02-05 19:31:47 +01:00
Matthias Clasen
f2e08d3a9c css tests: Fix style tests
Commit d0fd7990c3 changed
the location of builtin themes, breaking the loading of
the empty theme in test-css-style.
2016-02-05 16:35:43 +01:00
Matthias Clasen
132abb8749 css tests: Fix expected output
This is fallout from f7ec9c98ef.
2016-02-05 16:35:43 +01:00
Benjamin Otte
5444442974 css: Convert numbers with GTK's dpi
Don't hardcode 96 for dpi, but instead use the value of the -gtk-dpi
property (that mirrors the GdkScreen's dpi if it wasn't set explicitly).

This makes these values scale when the large font setting in
control-center is enabled.
2016-02-05 14:52:09 +01:00
Benjamin Otte
e35e6abbb2 css: Properly convert em, ex and rem to pixels
The previous code converted to pt.
2016-02-05 14:52:09 +01:00
Lapo Calamandrei
56b1b08bb8 Adwaita: darker background for popovers 2016-02-05 14:11:30 +01:00
Matthias Clasen
61307deaf7 levelbar: Make discrete levelbars behave as before
During the gadget conversion, the drawing of discrete levelbars
was unintentionally changed to draw a wide trough but narrow
blocks, which does not look great. So go back to the previous
way of drawing things.

https://bugzilla.gnome.org/show_bug.cgi?id=761428
2016-02-05 11:53:50 +01:00
Matthias Clasen
339023dee5 Fix indentation
gcc 6 complains about this.
2016-02-05 11:42:28 +01:00
Matthias Clasen
f60e144038 Document rem as CSS unit 2016-02-05 06:53:11 +01:00
Timm Bäder
680ec087ab switch: Don't queue draws after setting state flags 2016-02-04 20:00:21 +01:00
Benjamin Otte
0e7691c12e css: Add rem unit
Good luck, Lapo.
2016-02-04 19:37:44 +01:00
Benjamin Otte
f7ec9c98ef widget: Set a css name
Now selecting a widget by class name no longer works.

This is probably most relevant for users outside of GTK that want to
style their own widgets. Those widgets should now either add their own
style classes (if they want to adjust existing CSS) or use
gtk_widget_class_set_css_name() themselves (if they want to get rid of
all "upstream" styling).
2016-02-04 17:27:03 +01:00
Timm Bäder
35cd0be468 Range: Group all three gestures
And reset the grab_location in the ::released handler of the multipress
gesture.

Previously, when leaving fine-tune mode, the ::released handler of the
multipress gesture would call stop_scrolling, which calls
range_grab_remove and resets the grab_location. The ::drag-end handler
is executed after that, and only unsets priv->in_drag if the
grab_location is MOUSE_OUTSIDE, which it never was, since the ::released
handler already reset it. This lead to priv->in_drag being set even
though no dragging was in progress anymore, which e.g. made shift
pressed after leaving the fine-tune mode entering it again.

https://bugzilla.gnome.org/show_bug.cgi?id=761402
2016-02-04 17:08:30 +01:00
William Hua
7b88e304c7 x11: don't apply scaling factor twice
The fallback behaviour of get_work_area () divides the
screen width and height by the window scaling factor, but
those values are already scaled down.

https://bugzilla.gnome.org/show_bug.cgi?id=761474
2016-02-04 11:02:09 -05:00
Руслан Ижбулатов
4a49d8d14f Don't do remote checks on NULL files
Calling _gtk_file_consider_as_remote() with a NULL argument
results in warnings being thrown.

Note that query->priv->location being NULL is a state that does
not seem to be invalid by itself.

This could happen if you do search-as-you-type in a filechooser,
which has a filter that does not match anything *and* the current
"place" selected is "Recent".

https://bugzilla.gnome.org/show_bug.cgi?id=761552
2016-02-04 15:57:35 +00:00
Matthias Clasen
3756d92367 Move private widget path functions away
We don't put private functions in public headers anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=761339
2016-02-04 15:19:51 +01:00
Benjamin Otte
8d515409c6 win32: Get rid of XP theme
XP is not supported anymore. And we can massively simplify the win32
theme if we don't have to support 2 versions.
2016-02-04 14:25:46 +01:00
Benjamin Otte
7d4bf49cff win32: Delete classic theme
Well, actually, stop adding an extra version of raleigh
2016-02-04 14:23:08 +01:00
Benjamin Otte
27901c7794 build: Don't break windows build
Hardcode the existing files instead of doing a for loop and attempting
string-fudging magic.
2016-02-04 14:19:51 +01:00
Lapo Calamandrei
6cdca1e124 Adwaita: removed some old cruft from _drawing.scss
resulting in a nice number of non working selectors ditched.
2016-02-04 14:14:59 +01:00
Benjamin Otte
b783670820 inspector: Don't hardcode builtin themes
Insteead, enumerate the resources that are available. Fixes windows
themes not being listed in the inspector.
2016-02-04 13:35:21 +01:00
Benjamin Otte
d0fd7990c3 cssprovider: Change location of builtin themes
Instead of
  /org/gtk/libgtk/theme/$THEME-$VARIANT.css
look at
  /org/gtk/libgtk/theme/$THEME/gtk-$VARIANT.css
and that way mirror the directory layout of real themes.
2016-02-04 13:35:21 +01:00
Timm Bäder
6bc096d748 actionbar: Remove unnecessary map/unmap implementations
These just do what the default implementations do anyway.
2016-02-04 13:32:34 +01:00
Timm Bäder
641e703882 statusbar: Remove unused include 2016-02-04 13:32:34 +01:00
Timm Bäder
572e9a0402 Remove _gtk_box_get_children
It's doing exactly the same thing as gtk_container_get_children.
2016-02-04 13:32:34 +01:00
Timm Bäder
2929621d05 colorswatch: Remove unused constant 2016-02-04 13:32:34 +01:00
Benjamin Otte
c95087c70a entry: queue an allocate when pulsing
We need to reposition the progress gadget and that's done during
allocation.
2016-02-04 12:25:13 +01:00
Alberts Muktupāvels
8eb2619888 gdkwindow-x11: always set _GTK_THEME_VARIANT property
Set _GTK_THEME_VARIANT to empty string when default theme variant
is used. This will allow to understand whether _GTK_THEME_VARIANT
is not supported or default variant is requested.

https://bugzilla.gnome.org/show_bug.cgi?id=761476
2016-02-04 11:52:07 +02:00
Alberts Muktupāvels
7ac337a9af gtksettings: fix critical warning
Commit 5186aeb90f introduced critical
warning - g_value_copy: assertion 'g_value_type_compatible (...)' failed.

https://bugzilla.gnome.org/show_bug.cgi?id=761381
2016-02-04 11:45:50 +02:00
Benjamin Otte
a2ac9524bc broadway: Define variables where they are used
Avoids gcc warnings about unused variables.
2016-02-03 23:07:05 +01:00
Benjamin Otte
9708ecdd5b composetable: Fix gcc warnings 2016-02-03 23:06:53 +01:00
Benjamin Otte
be6f65a08e immodule: Use correct sign for function prototype 2016-02-03 22:53:22 +01:00
Benjamin Otte
429bec54e5 entry: Turn progress node into a gadget 2016-02-03 22:53:22 +01:00
Benjamin Otte
3316d69abb entry: Simplify drawing code 2016-02-03 22:53:22 +01:00
Lapo Calamandrei
207a842bfd Adwaita: fix headerbar spinbutton size
fixes https://bugzilla.gnome.org/show_bug.cgi?id=761484
2016-02-03 18:32:51 +01:00
William Hua
9b08853537 gdkborder: remove unneeded definition
This reverts 54fa65f544,
5190d010d9, and
a6e4de2884.

https://bugzilla.gnome.org/show_bug.cgi?id=756579
2016-02-03 11:20:52 -05:00
Matthias Clasen
0bcd8603eb print dialog: Fix layout preview drawing
Use the CSS name paper for this as well, and make sure Adwaita
sets a color that makes the text visible in the dark theme as well.
2016-02-03 16:07:51 +01:00
Lapo Calamandrei
a0363e5f0a Adwaita: notebook with hidden header style fix
the stack styling is applied only when there is a header, hence
when the stack node is not the notebook only child, should cure
https://bugzilla.gnome.org/show_bug.cgi?id=760996
2016-02-03 15:23:17 +01:00
Lapo Calamandrei
f734db1604 Adwaita: fix vertical spinbutton style
correct sizing and workaround disabled entry text colors.
2016-02-03 15:03:39 +01:00
Carlos Garcia Campos
feabf35371 notebook: Do not reorder tabs after a grab notify if there isn't an ongoing reorder operation
This broke in f535251507 that removed
during_reorder in favor of using the current operation, but removed the
check from gtk_notebook_stop_reorder().
2016-02-02 19:02:53 +01:00
Alexandre Franke
cc88153130 Updated French translation
(cherry picked from commit 85fb4c1c0a)
2016-02-02 16:32:43 +00:00
Alberts Muktupāvels
5186aeb90f gtksettings: reset property to correct default value
https://bugzilla.gnome.org/show_bug.cgi?id=76138
2016-02-02 18:15:07 +02:00
Emmanuele Bassi
a85384135c Revert "Add missing (out) annotation to gdk_rgba_parse"
This reverts commit 695860958a.

The change introduced an introspection ABI break.

See also: https://bugzilla.gnome.org/show_bug.cgi?id=682125

If we want to move the parse() method to be a constructor or a class
method, we'll need to do more testing or add new API.

https://bugzilla.gnome.org/show_bug.cgi?id=754990
2016-02-02 15:08:10 +00:00
Benjamin Otte
bfb727d37e entry: Draw progress in the right place 2016-02-02 15:26:01 +01:00
Balázs Meskó
9d18539d36 Updated Hungarian translation 2016-02-02 13:22:12 +00:00
Mario Blättermann
44b060c83f Updated German translation 2016-02-01 19:51:46 +01:00
Matthias Clasen
3446760060 reftests: Make separator-size test pass in HighContrastInverse
After neutralizing the stack background, the notebook itself
was peeking through.
2016-01-31 16:54:48 -05:00
Daniel Mustieles
9f4b0b8ca5 Updated Spanish translation 2016-01-31 22:30:39 +01:00
Daniel Mustieles
5a095d5135 Updated Spanish translation 2016-01-31 22:30:29 +01:00
Matthias Clasen
6e2c74aaad Trivial formatting fix 2016-01-31 14:11:01 -05:00
Matthias Clasen
1e0ca71eca reftests: Make label-text-shadow-changes-modify-clip test more reliable
This test was failing in continuous, where the tests are running
in a VM with disabled animations. Make the test adapt to that
situation by changing the rui on the fly if we find that animations
are disabled.
2016-01-31 14:11:01 -05:00
Matthias Clasen
2423eb11e3 reftests: Add a message to the test output
Emit a message that ends up in the test output if we are modifying
the test on the fly.
2016-01-31 14:11:01 -05:00
Matthias Clasen
a898dc6e9f reftests: Rename a source file
Easier to keep track of things if the sources are names after
the test they are used in.
2016-01-31 14:11:01 -05:00
Timm Bäder
6e2c551896 entry: Fix icon areas
Do the same thing we already do in gtk_entry_get_text_area.
2016-01-31 20:05:52 +01:00
Timm Bäder
033c6c82d0 widget: Annotate out params of _translate_coordinates as optional 2016-01-31 20:05:52 +01:00
Matthias Clasen
5a2feab8c0 reftests: Make animation-direction test more reliable
This test was failing in continuous, where the tests are running
in a VM with disabled animations. Make the test adapt to that
situation by changing the reference ui on the fly if we find
that animations are disabled.
2016-01-31 13:51:54 -05:00
Matthias Clasen
073f8bc44b gtk-builder-tool: Expand the preview command
Make the preview command parse options properly, turn the ID into
an --id=ID option, and add a --css=FILE option that allows to
specify a css file to use for previewing.

This is useful for e.g. previewing the reftest .ui files with
their corresponding .css.
2016-01-31 13:09:43 -05:00
Matthias Clasen
bc882a679d gtk-launch: Add --version
Support --version. Also improve the --help output cosmetically.
2016-01-31 12:11:58 -05:00
Matthias Clasen
836bd65408 gtk-builder-tool: Accept --help
Saying 'Failed to open file '--help' is not polite or smart.
Catch this case and show usage information.
2016-01-31 11:02:53 -05:00
Matthias Clasen
f793da54a9 file chooser: Avoid a crash
Since 39c2d12330,
priv->operation_mode == OPERATION_MODE_BROWSE no longer
guarantees that priv->browse_files_model is the current
model of the list - we are only switching the models after
loading the new directory. Avoid triggering the assertion
in show_and_select_files by checking if we have right model
before calling it.

https://bugzilla.gnome.org/show_bug.cgi?id=761209
2016-01-30 23:07:56 -05:00
Matthias Clasen
6f74de5331 Don't include the builtin sequence table in multiple places
The table is defined as static const guint16 [], so it really
should only be included in one source file.
2016-01-30 22:52:13 -05:00
Matthias Clasen
3c4f36f622 combobox: Avoid a misleading indentation
gcc 6 warns about this sort of thing. There were also some
stray ; here.
2016-01-30 22:50:54 -05:00
Matthias Clasen
a66287a62e Fix the border-image-excess-size reftest
This was failing because the grid is now respecting border
width too. Making the selector more specific so it only
applies to the toolbars fixes this.
2016-01-30 21:50:00 -05:00
Matthias Clasen
27b4bfc1cf Fix another reftest
Make sure the notebook in the separator-size reftest does not
peek through, by giving it a transparent background.
2016-01-30 21:43:49 -05:00
Matthias Clasen
bbfc547b89 Fix some reftests under wayland
Tests need to use popup windows, in order to avoid differences
due to CSD.
2016-01-30 21:11:12 -05:00
Matthias Clasen
f42cd18779 wayland: Reduce warning level for parentless temporaries
Temp windows without parent are used frequently in our testsuite;
using g_warning on them causes the tests to fail, which is not
useful. Reduce the warning to a g_message.
2016-01-30 20:56:17 -05:00
Matthias Clasen
7d16b8df29 treeview: Draw background when empty
We have a function we call for drawing the empty case, but
it only renders a focus rectangle. Make it draw the background
as well.

https://bugzilla.gnome.org/show_bug.cgi?id=761309
2016-01-30 18:31:30 -05:00
Timm Bäder
16726e31f0 colorchooserwidgeet: Reset the selected swatch when removing
Otherwise, priv->current points to garbage and subsequently leads to a
crash, e.g. when adding another custom color.
2016-01-30 23:02:06 +01:00
Matthias Clasen
dd322f715f Document gtk_parse_args limitations
Mention that some things won't work without a display
connection.
2016-01-30 16:11:03 -05:00
Matthias Clasen
bbe48d0624 Throw an error when a display is missing
Creating style context won't work without a display, so
give a clear error message and abort instead of segfaulting
later on.

https://bugzilla.gnome.org/show_bug.cgi?id=761332
2016-01-30 16:06:59 -05:00
Matthias Clasen
3b4aad7d26 3.19.8 2016-01-30 13:27:30 -05:00
Matthias Clasen
d400ecca14 Remove entry-progress-coloring reftest
We don't recolor text over progress anymore, so this
tests a no longer existing feature.
2016-01-30 11:32:06 -05:00
Matthias Clasen
586522d83c Use TAP output for installed tests 2016-01-30 11:04:22 -05:00
Matthias Clasen
f375b275c8 Run reftests with HighContrastInverse too
For installed tests, we run the reftests with all the builtin
themes (minus platform-specific ones). Add HighContrastInverse
to that list.
2016-01-30 10:10:39 -05:00
Matthias Clasen
051b6071b7 Adwaita: Add symbolic png assets
And use them as fallback for the svg ones. This lets us
avoid a hard dependency on librsvg - the theme will work
without svg support.
2016-01-30 00:29:04 -05:00
Matthias Clasen
e54549502e icontheme: Avoid a crash
gtk_icon_info_new_for_file with a size of 0 would fail for
symbolic pngs because we ended up scaling with 0. Avoid this.
2016-01-30 00:29:04 -05:00
Matthias Clasen
2e4b1e72f4 css: Support the image() notation
This lets us do fallback in case an image format is not
supported, and also lets us provide solid-color images.
We don't support image fragment notations.

See ttps://www.w3.org/TR/css3-images/#image-notation

https://bugzilla.gnome.org/show_bug.cgi?id=761318
2016-01-30 00:29:04 -05:00
Matthias Clasen
0fe468c789 Emit an error if image loading fails
Instead of spamming stderr with g_warning, use the new
emit_error method of the GtkStyleProviderPrivate interface
to emit an error if loading an image fails.
2016-01-30 00:29:04 -05:00
Matthias Clasen
2c7fdf6432 CSS provider: Add a way to emit errors
Currently, GtkCssProvider can emit ::parsing-error only during
the actual parsing, although the documentation hints that it might
happen at other times.

This commit adds a emit_error method to the GtkStyleProviderPrivate
interface that will let us emit errors from the compute() implementations
as well, which can be useful (e.g. if an image fails to load).
2016-01-30 00:29:04 -05:00
Balázs Meskó
63bf90ae71 Updated Hungarian translation 2016-01-30 01:24:09 +00:00
Gábor Kelemen
4251a8acdf Updated Hungarian translation 2016-01-30 01:23:14 +00:00
Balázs Meskó
803ec7c5fb Updated Hungarian translation 2016-01-30 01:22:10 +00:00
Matthias Clasen
176e85ffe5 file chooser: Make Escape close the dialog
In some situations (no header bar, save mode), hitting Escape
would not do anything because the entry ate the key event.
Fix this by telling the entry to only handle Escape when there
is something to do, such as switching back to the path bar.

https://bugzilla.gnome.org/show_bug.cgi?id=761026
2016-01-29 19:12:51 -05:00
Matthias Clasen
f887fec55c Add a css style test for color names
Verify that we support all the css color names, with their expected
rgb values.
2016-01-29 18:23:25 -05:00
Matthias Clasen
b281c9d740 css image recolor: Load images at the proper scale
We should not hardcode a scale of 1, this leads to
pixellated upscaled images at scale=2, even if the source
is an svg. By passing the proper scale, we can load the
svg at the correct size.
2016-01-29 17:30:10 -05:00
Matthias Clasen
001598a821 icon theme: Improve loading of unthemed files
When creating icon info objects for unthemed files, we don't
really have a nominal size, so we pass 0 to mean 'load at
original size'. However, this is not what was happening.
To make this possible, add variants of some pixbuf loading
functions that take a scale factor instead of a desired size,
and use those when we don't have a nominal size.
2016-01-29 17:27:35 -05:00
Matthias Clasen
68edc67bde image: use GtkMisc padding again
This was lost in the gadget conversion.
Thankfully, the misc-alignment reftest catches this.
2016-01-29 13:44:45 -05:00
Matthias Clasen
8219a6b226 Use an GtkImage instead of GtkArrow
GtkArrow is deprecated, and the recommended replacement
is GtkImage.
2016-01-29 13:21:01 -05:00
Matthias Clasen
866193f6af reftests: get icon-vfuncs test almost working again
The remaining difference here is GtkArrow, which is deprecated
and has not been updated to the latest CSS rendering standards.
2016-01-29 13:10:03 -05:00
Lapo Calamandrei
fac5ed6165 Adwaita: reset padding on notebook tab close button 2016-01-29 18:09:28 +01:00
Matthias Clasen
e79db79e2c testgtk: Avoid deprecation warnings
Eventually, we should probably remove the examples that rely
on geometry support, since they probably don't work correctly
anymore. For now, just disable the warnings.
2016-01-29 11:54:07 -05:00
Matthias Clasen
17d9e94682 testoffscreen: Remove deprecated calls
Not doing these calls doesn't seem to affect the demo,
so lets just remove them.
2016-01-29 11:54:07 -05:00
Matthias Clasen
3302c2a12c testgeometry: Ignore deprecations
All the functionality that is tested here has been deprecated
recently.
2016-01-29 11:54:07 -05:00
Lapo Calamandrei
813cc34857 Adwaita: fix border radius on #editor-color-sample 2016-01-29 17:48:45 +01:00
Lapo Calamandrei
31cc642288 Adwaita: notebook style rewrite 2016-01-29 17:17:47 +01:00
Matthias Clasen
01626e0f4b Update gtk-builder-tool docs 2016-01-29 09:42:18 -05:00
Matthias Clasen
7d75d5ec66 builder tool: Add a preview command
This was somewhat missing, and is easy to add.
2016-01-29 09:39:41 -05:00
Matthias Clasen
69a38a9771 docs: Fix a duplicate id
This was causing the css properties chapter to appear twice
in the docs, and the overview not at all.
2016-01-29 08:08:08 -05:00
Matthias Clasen
eabf110182 Updates 2016-01-28 23:09:42 -05:00
Matthias Clasen
7fc0600f92 infobar: Don't expose implementation details
Only export the documented widgets as internal children.
2016-01-28 22:49:36 -05:00
Matthias Clasen
3014aab25c searchbar: Don't expose implementation details
The various boxes and the revealer here should not be exposed
as internal children for subclasses to use in their .ui files.
2016-01-28 22:47:28 -05:00
Matthias Clasen
0bf987c611 actionbar: Don't expose implementation details
The box and revealer here should not be exposed as internal
children for subclasses to use in their .ui files.
2016-01-28 22:39:31 -05:00
Matthias Clasen
a7489153b0 dialog: Stop exporting action_box
This was not meant as an internal child that subclasses
can refer to in their .ui files.

https://bugzilla.gnome.org/show_bug.cgi?id=761254
2016-01-28 22:36:27 -05:00
Matthias Clasen
3dce876555 print dialog: Stop using action_box in .ui
We can just use CSS margins nowadays to achieve the desired
appearance.
2016-01-28 22:29:30 -05:00
Matthias Clasen
a99c69fd6b label: fix a case of misleading indentation
gcc 6 complains aobut things like this.
2016-01-28 20:50:50 -05:00
Carlos Garnacho
cf4e179a45 tests: Avoid deprecated API usage in testgtk
We can use seat grabs here.
2016-01-28 12:50:50 +01:00
Carlos Garnacho
a74db1de77 tests: Avoid deprecated API usage in testsocket
We can use seat grabs here.
2016-01-28 12:50:50 +01:00
Carlos Garnacho
fef661ae84 tests: Fix deprecation warnings in testinput 2016-01-28 12:50:50 +01:00
Carlos Garnacho
2c0446917d demos: Modify "Change display" demo to use seat grabs
The window picking feature was done through a pointer grab, replace
it by a seat grab on pointing devices.
2016-01-28 12:50:49 +01:00
Carlos Garnacho
0125aa0a41 gtkdnd: Fix deprecation compile warnings
Grabbing must stay a bit longer until all other backends than x11/wayland
catch up with GDK DnD, so ignore deprecation flags are used on those. The
uses of GdkDeviceManager can be entirely avoided though.
2016-01-28 12:50:49 +01:00
Christoph Reiter
27263f2387 label: use GtkMisc padding again
this was lost in the gadget conversion in a81267c28e

https://bugzilla.gnome.org/show_bug.cgi?id=760522
2016-01-28 11:04:48 +01:00
Matthias Clasen
79fb921ffc spin button: Document sizing peculiarities
Document that it is best to explicitly set width-chars and
max-width-chars to avoid surprises.

https://bugzilla.gnome.org/show_bug.cgi?id=727294
2016-01-27 23:30:25 -05:00
Matthias Clasen
03f4666994 composetable: Don't abort on unsupported escape sequences
People might put all sorts of gunk in their .XCompose file, in
the hope that XLib makes sense of it. Even if we don't make sense
of it, we shouldn't abort, but instead ignore the lines we can't
understand. Pointed out in
https://bugzilla.redhat.com/show_bug.cgi?id=1301254
2016-01-27 23:22:02 -05:00
Matthias Clasen
b8a0f3582b Update README.glade
Update the README.glade file to use current .ui file
names and locations as example.
2016-01-27 15:20:15 -05:00
Mario Blättermann
8527fca250 Updated German translation 2016-01-27 20:08:35 +01:00
Matthias Clasen
8cbe309f36 css node tests: Update expected output
The entry undershoot change needs to be reflected in the
test output.
2016-01-27 13:23:58 -05:00
Matthias Clasen
625f3e5f39 window: Always disconnect signal handlers
We connect to the titlebar widgets change notification regardless
whether it is internally created or not, so don't make the signal
handler disconnection conditional on that either.
2016-01-27 13:09:40 -05:00
Matthias Clasen
88c3456d2f assistant: Avoid tripping template tests
We need to unset the titlebar manually before chaining up
in destroy, otherwise we trigger the template invariant
checking - GtkWindow would eventually unset it, but too late
for the invariants checking code in gtk_widget_destroy.
2016-01-27 13:09:40 -05:00
Allison Ryan Lortie
0d109867d2 Tweak startup-notification after the first window
Presently, Gtk will only send a startup notification completion message
for the first window that is shown.  This is not good for the case of
GtkApplication, where we are expected to participate in
startup-notification for all windows.

We have avoided this problem by manually emitting the startup complete
message from after_emit in GtkApplication.

Unfortunately, this causes problems for windows that are shown with a
delay.  It is also a dirty hack.

The reason for the original behaviour is simple: there is a static
boolean in gtkwindow.c which controls it.  We remove this.

Instead, clear the startup notification ID stored in GDK when sending
the completion message.  GtkApplication will re-set this the next time
an event comes in which needs startup-notification handling.  In the
non-GtkApplication case, newly shown windows will still not send the
message, since the cookie will have been cleared.

Finally, we remove the hack from GtkApplication's after_emit.

This will probably cause some regressions in terms of lingering startup
notification messages.  The correct solution here is to always use
gtk_window_present(), including when merely opening a new document (with
a new tab, for example).

https://bugzilla.gnome.org/show_bug.cgi?id=690791
2016-01-27 18:14:40 +01:00
Timm Bäder
299b32438d modelbutton: Use indicator state for button gadget if iconic 2016-01-27 16:34:22 +01:00
Krzesimir Nowak
09677f7331 entry: Fix a typo 2016-01-27 14:29:40 +01:00
Benjamin Otte
c4f7fbecfa entry: Fix a case of disagreeing coordinate systems
gesture_get_current_point() returned x/y in layout coordiantes, but
callers assumed it in textarea coordinates.
2016-01-27 14:04:21 +01:00
Cosimo Cecchi
2533289b62 Adwaita: fix spinbutton styling
Spinbuttons were quite broken after the latest changes. This commit
brings the style back around what it was for 3.18.
2016-01-27 12:26:21 +01:00
Matthias Clasen
4c192ea4c3 Adwaita: Add some themeing for entry undershoot
This is just copying what we do for scrolled windows.
It will need some tweaks to look good for entries.
2016-01-26 23:36:18 -05:00
Matthias Clasen
a9222146d3 entry: give a visual clue that content is scrolled
This has been requested long ago, and we now have the
machinery to implement it easily.
2016-01-26 23:36:18 -05:00
Matthias Clasen
8991f17d49 box gadget: Improve assertion message
Include the owner of the gadget in the assertion message,
to improve the chances of tracking down whats actually
going wrong here.
2016-01-26 22:11:54 -05:00
Matthias Clasen
745624235b color button: Allow skipping the palette
Allow skipping the palette in the dialog, and going directly
to the editor. This is useful when the color button is already
part of a palette.
2016-01-26 21:27:12 -05:00
Matthias Clasen
cf3a781d32 Fix a typo 2016-01-26 20:57:50 -05:00
Benjamin Otte
a222aa66d5 entry: Compute selection range correctly
gtk_editable_get_selection_bounds() returns UTF-8 character offsets,
but gdk_pango_layout_get_clip_region() wants byte ranges, so convert
from one to the other.
With English, this is especially visible for passwords, which use ●
as the invisible character.

https://bugzilla.gnome.org/show_bug.cgi?id=761128
2016-01-27 02:11:06 +01:00
Benjamin Otte
84b788c4a5 window: Deprecate gtk_window_parse_geometry()
Geometry handling in GTK is deprecated.
2016-01-27 02:11:06 +01:00
Benjamin Otte
b22fdf24e0 window: Deprecate gtk_window_set_default_geometry()
We don't support geometries anymore.
2016-01-27 02:11:06 +01:00
Olav Vitters
5cbc247c08 Add an XSetting for primary button warps slider
This will be used by xsettings-kde to ensure GTK+3.x programs behave
consistently.

https://bugzilla.gnome.org/show_bug.cgi?id=688524
2016-01-26 19:21:10 +01:00
Matthias Clasen
bf4443d9d9 gdk: Don't translate signal names
This was a thinko - what we sometimes do for signal names is to
use I_() to intern them (to avoid a strdup), but I_() is not
currently available in gdk, so lets just skip this
microoptimization for now.
2016-01-26 12:42:04 -05:00
Benjamin Otte
ae31c00092 spinbutton: Don't expand the buttons
When the spinbutton grows larger, distribute horizontal size to the
entry and vertical size to the buttons.

Obviously, horizontal size only matters for horizontal spinbuttons and
vertical for vertical spinbuttons.
2016-01-26 17:59:08 +01:00
Benjamin Otte
2c350f4469 stack: realize windows in correct position 2016-01-26 16:40:27 +01:00
Benjamin Otte
8ea697c434 pathbar: Use CSS node ordering
Instead of the custom get_path_for_child() function.
2016-01-26 15:53:56 +01:00
Benjamin Otte
9d0e8401ca stack: Turn into no-window widget
Having priv->view_window be the same as widget->window does not make
sense.

And because we need to clip the content area, we need the view window.
2016-01-26 15:53:56 +01:00
Benjamin Otte
fefc370f6c entry: Chain up in realize()
... instead of copy/pasting what gtk_widget_real_realize() does.
2016-01-26 15:53:56 +01:00
Emmanuele Bassi
02800033d4 build: Missing build flags
The compiler and linker flags variables were renamed in the previous
commit.
2016-01-26 13:32:47 +00:00
Emmanuele Bassi
9267f73c55 Add more checks for the font features demo
The demo also uses PangoFt2 API.
2016-01-26 13:29:46 +00:00
Emmanuele Bassi
c8686f0c47 demo: Link against Harfbuzz
The font features demo started calling the Harfbuzz API directly
starting from commit 9de3b24c20. Harfbuzz
is an implicit dependency of Pango on some platforms, but it's not part
of the public dependencies; this means that we cannot expect to link to
Pango and automatically get Harfbuzz symbols to link against —
especially when things like --as-needed are in play.

This change triggered build failures on non-Unix platforms, fixed by
commit 2a9967731a, as well as build
failures in Continuous, with this error message:

/usr/lib/gcc/x86_64-gnomeostree-linux/4.9.3/../../../../x86_64-gnomeostree-linux/bin/ld:
font_features.o: undefined reference to symbol 'hb_tag_to_string'
//lib/libharfbuzz.so.0: error adding symbols: DSO missing from command
line
collect2: error: ld returned 1 exit status

In order to get the font features demo to build everywhere we should
take an explicit, though optional, check on Harfbuzz, and conditionally
build the font features demo with the right compiler and linker flags.
2016-01-26 11:46:48 +00:00
Chun-wei Fan
2a9967731a demos: Don't build font features demo on non-UNIX
The fonts features demo now uses fontconfig APIs via PangoFT2, which makes
the code not build on non-Linux, so only include this demo in the build
on UNIX.
2016-01-26 15:56:07 +08:00
Matthias Clasen
9de3b24c20 gtk-demo: Expand font features demo
Add more features to the list, allow selecting script/language
from the set that is supported by the font, indicate which
features are present in the font for the selected script/language,
and expand the default specimen to cover latin, cyrillic and
greek.
2016-01-25 22:26:21 -05:00
Matthias Clasen
d5d6a050c5 Update expected output of a11y tests
This is the outcome of a recent fix to default values
for a GtkPaned property.
2016-01-25 16:01:07 -05:00
Ben Iofel
37000db1d3 Docs: fix typo 2016-01-25 15:34:10 -05:00
Ray Strode
05f0e9a5c2 wayland: __NR_memfd_create instead of SYS_memfd_create
It looks like the gnome-continuous headers haven't quite
caught up yet, so try __NR_memfd_create instead.

If that doesn't work, i'll likely just add in a fallback
code path.
2016-01-25 13:55:25 -05:00
Ray Strode
df70e28d92 wayland: use memfd_create instead of open in tmpdir
The tmpdir is used for a wide assortment of things, and
can easily fill up. If it fills then desktop will start
crashing with SIGBUS errors.

This commit changes the shm pool allocation code, to use
memfd_create, instead, so the shared memory files will
be anonymous and not associated with /tmp

https://bugzilla.gnome.org/show_bug.cgi?id=761095
2016-01-25 13:36:23 -05:00
Matthias Clasen
7097a4ed64 Fix another quoting error in installed tests
Same as the previous one. I should fix my silly mistakes before
copying them around...
2016-01-25 13:02:13 -05:00
Matthias Clasen
cce493493c testsuite: Fix a quoting error
This was breaking continous testing. Oops.
2016-01-25 10:56:19 -05:00
Benjamin Otte
5a3a86ec4b spinbutton: Add a base gadget
This really messes up rendering in Adwaita because the code now renders
the spinbutton's entry node when it didn't before.
2016-01-25 16:14:23 +01:00
Benjamin Otte
ad7bbbf9d8 entry: Use cleverer method to get the entry node 2016-01-25 15:49:17 +01:00
Benjamin Otte
3982f05be4 entry: Move spinbutton size hack
If we want to do special sizing for the text, we need to do it for the
text. Otherwise paddings, borders and entyr icons will screw up
everything.
2016-01-25 15:49:17 +01:00
Benjamin Otte
02fab14b3b entry: Move code
This movement is necessary for future gadgetization of GtkSpinButton.
2016-01-25 15:49:17 +01:00
Benjamin Otte
b52b4068af entry: Redo textarea handling
(1) Keep priv->text_allocation for the area used by the text
(2) Compute all text coordinates with the help of priv->text_allocation

As a side effect the get_text_area_size and get_frame_size vfuncs are
now unused. If we wanted them back, they should get a single use durig
size_allocate() and then their results should be stored for further
processing.
2016-01-25 15:49:17 +01:00
Benjamin Otte
c709072567 entry: Use gtk_render_layout()
It's funny that nobody has yet noticed that we don't draw the text using
the theme.

We had no text-shadow in entries!!!!!
2016-01-25 15:49:17 +01:00
Benjamin Otte
a363fd5fd3 entry: Draw selection the same way as GtkLabel 2016-01-25 15:49:17 +01:00
Benjamin Otte
ca690162af entry: Fold function into only caller 2016-01-25 15:49:17 +01:00
Benjamin Otte
0ae8b30210 entry: Don't allow different text over progress
This complicates refactorings, so remove that feature. It's not used
anywhere and doesn't play well with nodes the way it's implemented.
If we want it back, we can add it back later.
2016-01-25 15:49:17 +01:00
Piotr Drąg
334b1994c4 Updated POTFILES.skip 2016-01-25 03:07:00 +01:00
Matthias Clasen
ba582a4a19 One forgotten rename
Rename app-menu.ui to menus.ui in EXTRA_DIST too.
2016-01-24 20:10:45 -05:00
Matthias Clasen
792857c7b8 icon browser: Load app menu automagically
No need to manually create a builder and pass the resource to it,
just follow the conventions and have GtkApplication do it for us.
2016-01-24 20:01:33 -05:00
Matthias Clasen
e8ad47498b path bar: Don't hide arrows
Changing the visibility of child widgets in size-allocate does
not work well with out current allocation and layout machinery.
To avoid the visual fallout, just keep the arrow buttons visible
and only change their sensitivity.

https://bugzilla.gnome.org/show_bug.cgi?id=754868
2016-01-24 16:29:40 -05:00
Matthias Clasen
761120a5e2 inspector: Show CSS pseudoclass names for node state
This is a better fit for showing CSS node state, since one
commonly looks at this information to devise CSS selectors,
where the CSS names are needed.
2016-01-24 10:59:46 -05:00
Matthias Clasen
33bb1af277 css: Privately export a function to get pseudoclass names
This function centralizes the mapping for widget states
to pseudoclass names in one place, for easier maintenance.
2016-01-24 10:59:46 -05:00
Timm Bäder
f0439264aa gdkdnd: Fix signal docs
Signals all have at least one parameter, the object that received the
signal.
2016-01-24 10:48:48 +01:00
Timm Bäder
d6f989f59c Inspector: Plug a few leaks 2016-01-24 08:01:36 +01:00
Matthias Clasen
43747a6b30 paned: Initialize max_position
As pointed out in
https://bugzilla.gnome.org/show_bug.cgi?id=608865
max_position should be set to G_MAXINT.
2016-01-24 00:22:31 -05:00
Matthias Clasen
873a024f5b widget-factory: Add a color editor example 2016-01-23 22:30:59 -05:00
Matthias Clasen
a80b555274 color editor: Ensure spin buttons are wide enough
If we don't explicitly ask for 2 chars to be visible, we might
get less, and it doesn't look great.
2016-01-23 18:26:09 -05:00
Sebastien Lafargue
526fd89ec5 GtkColorChooser: make set_rgba work in editor mode
When using the color chooser in editor mode,
gtk_color_chooser_set_rgba need to be propaged
to the editor

https://bugzilla.gnome.org/show_bug.cgi?id=761005
2016-01-23 18:16:51 -05:00
Matthias Clasen
5febf4f170 Add a color editor test
This tests using a color editor embedded in other ui.
2016-01-23 18:16:51 -05:00
Matthias Clasen
770e308c9e widget-factory: Ensure spinbuttons are sized right
GtkEntry now respects the padding set by the theme, so we
need to ask the spin buttons to show 2 characters, otherwise
they will be clipped.
2016-01-23 18:16:51 -05:00
Matthias Clasen
8ba996a6db container: Clarify the forall/foreach documentation
Try to make the difference between these two functions
clearer.
2016-01-23 18:16:51 -05:00
Phil Clayton
695860958a Add missing (out) annotation to gdk_rgba_parse
https://bugzilla.gnome.org/show_bug.cgi?id=754990
2016-01-23 18:16:51 -05:00
Mario Blättermann
b208edacc2 Updated German translation 2016-01-23 18:21:45 +01:00
Ignacio Casal Quinteiro
05f1994808 win32 geometry: reorganize code to avoid prototypes 2016-01-23 14:43:57 +01:00
Ignacio Casal Quinteiro
3bb23ef2fe win32 device manager: reorganize code to avoid prototypes 2016-01-23 14:43:55 +01:00
Ignacio Casal Quinteiro
b3eaaa5a2c win32 virtual device: reorganize code to avoid prototypes 2016-01-23 14:43:52 +01:00
Ignacio Casal Quinteiro
36c3f21989 win32 device: reorganize code to avoid prototypes 2016-01-23 14:43:50 +01:00
Ignacio Casal Quinteiro
ca4ffbfe80 wintab: reorganize code to avoid prototypes 2016-01-23 14:43:47 +01:00
Timm Bäder
ddbafa023a overlay: Don't access priv pointer before typ check 2016-01-23 10:30:53 +01:00
Matthias Clasen
8096740ea4 levelbar: Document CSS node ordering 2016-01-22 23:30:36 -05:00
Matthias Clasen
2cf983eb30 notebook: Document CSS node order 2016-01-22 23:14:09 -05:00
Matthias Clasen
73307f78dc box gadget: Don't allow shifting too far
We don't want to let baseline adjustment shift the child
out of the original allocation. This is purely a sanity
measure - in practice, the baseline should always be bigger
than the child_baseline.
2016-01-22 22:49:01 -05:00
Matthias Clasen
50e923349e box gadget: Fix baseline calculation
Careful comparison with GtkBox revealed that the box gadget
code was confusing up and down, and thus shifted baselines
vertically.
2016-01-22 22:47:47 -05:00
Matthias Clasen
57baf6804b inspector: Show baseline value
The misc info page already shows the allocation and clip areas,
the baseline fits right in.
2016-01-22 22:24:46 -05:00
Matthias Clasen
e26300625f box gadget: Fix baseline allocation for widgets
We were adjusting the allocation to line up baselines before
calling gtk_widget_size_allocate_with_baseline, but that function
is doing this alignment internally anyway and expects to be given
a 'fill' allocation.

Move the allocation adjustment code down into
gtk_box_gadget_allocate_child where it only affects child gadgets,
not child widgets.
2016-01-22 22:08:38 -05:00
Matthias Clasen
029d568b04 gadget: Add baseline debugging
This should help to understand whats going wrong with
baselines.
2016-01-22 21:34:54 -05:00
Matthias Clasen
5469f26260 Adwaita: Move .ssd class around
Make the theme follow our documentation for the various .csd and
.ssd style classes: They all go on the window node. For now, just
add the new selector; the old one will be removed when mutter has
been updated.

https://bugzilla.gnome.org/show_bug.cgi?id=760714
2016-01-22 19:23:54 -05:00
Matthias Clasen
3d52fd3992 box gadget: Fix height-for-width handling
When measuring children while distributing a given height,
we must measure them for the given width that goes with
the height. Otherwise, things will go wrong if some of the
children do actual width-for-height. This was showing up
as misaligned images in anaconda.

https://bugzilla.gnome.org/show_bug.cgi?id=760967
2016-01-22 17:15:33 -05:00
Carlos Garnacho
f32a54fb70 GtkTreeView: Update prelight row after revalidating rows
It might have changed (eg. after a row being expanded, and the child
rows revalidated), so just update it here based on the last pointer
position.

Based on a patch by Maxim Reznik <reznikmm@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=760891
2016-01-22 21:18:24 +01:00
Carlos Garnacho
a5f9dc1284 GtkTreeView: Avoid device query on collapsing rows
The pointer position is queried to properly trigger the prelight
updates on the new row below it. We store the last coordinates
though, and track crossing events to unset these, so it's safe
to just update_prelight() here on these.
2016-01-22 21:18:24 +01:00
Benjamin Otte
0a9e9db9f4 shortcuts: Don't forall() widgets that aren't children 2016-01-22 20:39:14 +01:00
Benjamin Otte
efc899bd2b widget: Improve gtk_cairo_should_draw_window()
Check that non-native window are indeed children of the event window and
only then confirm that they should be drawn.

Fixes Glade thinking that it's okay to have the draw function do
different things depending on what window to draw. (This should really
be fixed in Glade.)
2016-01-22 14:18:15 +01:00
Benjamin Otte
74c3468d64 cssstyleproperty: Don't allow assigning min-width/min-height 2016-01-22 14:18:15 +01:00
Benjamin Otte
d4f853dc64 container: Turn assert into return_if_fail()
There's no reason to insta-crash when something goes wrong. Just don't
do anything stupid.

Also, remove the SPCIAL_CONTAINER() exception. Every case where special
containers needed this, it is wrong and made containers draw children
multiple times.
2016-01-22 14:17:28 +01:00
Benjamin Otte
6bb8da5564 stack: Clip animation drawing
We use cairo_paint() when doing that and we don't want to overdraw the
content area.
2016-01-22 13:46:01 +01:00
Benjamin Otte
a6845091f9 spinbutton: Make the entry gadget be the entry's gadget
This is a big and somewhat evil hack: We replace the entry's gadget's
node with the spinbutton's entry node.
2016-01-22 13:46:01 +01:00
Lapo Calamandrei
c7c17abdb9 Adwaita: fix checks and radios on selected row 2016-01-22 13:29:35 +01:00
Matthias Clasen
6a1722f689 text view: Don't leak cairo transforms
The text view draw function was leaving its cairo context
with a transformation after drawing to all the border windows,
which lead mis-drawing in gitg. Avoid this by moving the
gtk_cairo_transform_to_window call inside the existing
cairo_save/restore calls.

https://bugzilla.gnome.org/show_bug.cgi?id=760942
2016-01-21 23:39:16 -05:00
Matthias Clasen
eb2ef63211 wayland: Don't hardcode /tmp
As pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=760964,
we should use the GLib facilities for determining the preferred
location for temporary files.
2016-01-21 22:57:39 -05:00
Mario Blättermann
d3f18abf7d Updated German translation 2016-01-21 17:48:25 +01:00
Carlos Garcia Campos
0f7b4dad0f cssstyleproperty: Make it possible to query CSS opacity with gtk_style_context_get()
Add a query implementation to opacity property. Also fix the assert in
gtk_css_style_property_register() to allow registering properties with
query but without assign function.

https://bugzilla.gnome.org/show_bug.cgi?id=760933
2016-01-21 14:58:57 +01:00
Lapo Calamandrei
bd4aaa1285 Adwaita: first css check/radio implementation
draw checks and radios with css istead of relying on png assets.
2016-01-21 14:48:47 +01:00
Matthias Clasen
77a6d976b2 css: Fix refcounting thinko in -gtk-recolor
gtk_css_style_get_value does not return a reference.
So don't unref the return value without taking one.
2016-01-21 08:42:55 -05:00
Matthias Clasen
b4bfba00c4 Handle svg image assets in Adwaita
The build glue for collecting all the assets in Adwaita as
resources was assuming that they are all pngs, and tried to
preprocess them into embedded GdkPixbufs.
Fix it to leave svgs unmolested, so they can be recolored
at runtime.
2016-01-21 08:20:06 -05:00
Matthias Clasen
419f2c670d css: Handle image loading errors graciously
If we fail to load the image for a -gtk-recolor() expression,
fall back to using the image-missing icon instead of crashing,
and include more details in the warning message.
2016-01-21 08:19:37 -05:00
Matthias Clasen
ffc4f8ee11 Forgotten file 2016-01-21 08:18:28 -05:00
Matthias Clasen
52326e909a Adwaita: Set a text color for lists
Symbolic icons in list boxes came out white-on-white in the
inspector. Set an explicit text color to prevent that.
2016-01-20 22:53:47 -05:00
Matthias Clasen
e33bda3078 inspector: Show full allocation + clip
Previously, we were only showing the size of the allocation
and clip area. But there is no good reason to hide the position
of these rectangles, so add them, in the traditional format
of X geometry strings: wxh+x+y
2016-01-20 22:52:05 -05:00
Matthias Clasen
449a9c419a inspector: Refine typography
Use thin spaces in the formatting of monitor sizes.
2016-01-20 22:51:25 -05:00
Matthias Clasen
c2d4fd6b93 Fix GtkShortcutsWindow crash
GtkShortcutsWindow is among the 'cheating' containers that iterate
over indirect children in forall, and this is now triggering
an assertion in gtk_container_propagate_draw.

For now, just exclude the cheating containers from the assertion.
Eventually, this needs a better solution.
2016-01-20 19:33:16 -05:00
Ray Strode
5150849a67 wayland: don't pass in width and height to create_shm_pool
create_shm_pool doesn't need the width or height, it just needs
the total size.  By passing it in, we're requiring it to redo
stride calculation unnecessarily.

This commit drops the width and height parameters and makes the
function just take the total size directly.

https://bugzilla.gnome.org/show_bug.cgi?id=760897
2016-01-20 14:29:15 -05:00
Ray Strode
1e001eaa78 wayland: clean up stride calculation when creating shm surface
Right now, we assume the stride for the image surface needs to
be 4 byte aligned.  This is, in fact, true, but it's better to
ask cairo for the alignment requirement directly rather than
assume we know the alignment rules.

This commit changes the code to use cairo_format_stride_for_width
to calculate a suitable rowstride for pixman.

https://bugzilla.gnome.org/show_bug.cgi?id=760897
2016-01-20 14:29:15 -05:00
Ray Strode
c8deaeabdd wayland: unlink shm file earlier in create function
create_shm_pool unlinks the temporary file a little,
too late. It should be unlinked before ftruncate()
is called for two reasons:

1) if ftruncate fails, the file is currently not
getting cleaned up at all
2) in theory, if the file is public some other process
could muck with it

This commit just moves the unlink call a little higher
up.

https://bugzilla.gnome.org/show_bug.cgi?id=760897
2016-01-20 14:29:15 -05:00
Carlos Garnacho
6c1bee2377 GtkNotebook: Unify two private variables
Button state was being kept in two separate variables, which lead
to slight confusions in DnD that caused the notebook to ignore the
first click after DnD happened from (within) it. Unify these two
into one, which helps us keep better track of the really pressed
buttons.
2016-01-20 19:57:23 +01:00
Matthias Clasen
da31eb4f64 container: Don't create too-large clips
gdk_rectangle_union will happily add all the worlds pixels
to the union if the initial rectangle is initialized to all
zeros. Therefore, explicitly check for an empty rectangle
before calling it.
2016-01-20 13:44:34 -05:00
Matthias Clasen
51f05a00ae Clarify docs for gdk_rectangle_union
This function does not ignore empty rectangles. Since this
is a fairly subtle point about the behavior, it is worth
spelling this out in the documentation. We've had a bug
open about this for a long time:

https://bugzilla.gnome.org/show_bug.cgi?id=464528
2016-01-20 13:44:34 -05:00
Carlos Garnacho
4f6ea16c2e wayland: Protect against NULL offers on gdk_drag_status() implementation
If we're called untimely, we might end up crashing here when poking the
NULL wl_data_offer.
2016-01-20 18:55:51 +01:00
Carlos Garnacho
261622733c gtkdnd: Disconnect GdkDragContext signals on gtk_drag_source_info_free()
Otherwise it may still be tricked into emitting further signals at a
time we've already destroyed the GtkDragSourceInfo passed as callback
user data.
2016-01-20 18:53:03 +01:00
Benjamin Otte
f535251507 notebook: Get rid of during_reorder variable
Use operation == OPERATION_REORDER instead.
2016-01-20 17:37:37 +01:00
Benjamin Otte
c162a0cca8 notebook: Properly hide drag window
Move code to properly reinsert the tab label to where it belongs.
The if has the distinction between reparented-to-dnd-window and
just-changed-the-gdk-window-to-draw-to right there.

https://bugzilla.gnome.org/show_bug.cgi?id=760754
2016-01-20 17:37:37 +01:00
Benjamin Otte
099662998a notebook: Get rid of during_detach member
use operation == OPERATION_DETACH instead.
2016-01-20 17:37:37 +01:00
Matthias Clasen
5fd7b85d2b Add a function to get affected area for background
The new function, gtk_render_background_get_clip answers the
question: what pixels are affected if I call gtk_render_background ?

The long-term goal is to have APIs that answer this question for
all rendering primitives.
2016-01-20 09:41:01 -05:00
Ondrej Holy
b2eaed62f6 file chooser: Allow saving even if executable attribute is not set
Commit 8e975b2 (Bug 753969) introduced check of parent accessibility.
Consequently it is not possible to save file if executable attribute
is not set, which might happen for some gvfs backends. Let's assume
that the folder is accessible even if the attribute is not set.

https://bugzilla.gnome.org/show_bug.cgi?id=760881
2016-01-20 14:09:46 +01:00
Kalev Lember
fef545c623 configure: Require wayland >= 1.9.91
Needed since commit 1045dda035
2016-01-20 13:00:10 +01:00
Benjamin Otte
e3f8316d08 viewport: Don't destroy pixelcache while it's still used
Removing the child unsets the pxielcache's style context...
2016-01-20 05:10:16 +01:00
Matthias Clasen
e1068255b3 gtk-demo: Fix font features sources
The resources had the prefix, causing the ui file not
to show up.
2016-01-19 22:47:19 -05:00
Benjamin Otte
9cb0a97bb5 viewport: Set the pixel cache background from the child
The viewport itself doesn't move, so we cannot use it as the pixel
cache's background. Use the bottommost using element instead, which is
the viewport's child.

This might need adaptations in themes as we want the backgroud to be
opaque to speed up pixel cache performance.
2016-01-20 04:37:05 +01:00
Matthias Clasen
bb92428112 notebook: Implement rtl flipping for CSS nodes
Use gtk_box_gadget_reverse_children and gtk_css_node_reverse_children
to flip the children of the header_gadget and the tabs_gadget when
appropriate.

Add new CSS node tests to verify that the node order is updated
as expected in all cases.
2016-01-19 21:40:47 -05:00
Benjamin Otte
0304817d81 css: AFFFECTS_TEXT causes a resize, not a redraw
And we schedule the resize conditionally only when text is rendered but
don't do that check for the redraw.
2016-01-20 02:37:45 +01:00
Benjamin Otte
065aa296ed widget: Properly invalidate when CSS font properties change. 2016-01-20 02:19:42 +01:00
Piotr Drąg
e06c08a291 Updated POTFILES.in and POTFILES.skip 2016-01-20 01:43:38 +01:00
Matthias Clasen
02dabcfd2b 3.19.7 2016-01-19 09:19:32 -05:00
Matthias Clasen
e3b49b2d6c Update expected output of a11y tests
This reflects my recent change to messagedialog titles.
2016-01-19 09:19:31 -05:00
Matthias Clasen
cba7b2c56b Simplify foreign drawing example
This is code will be copied, so take out unnecessary complication.
2016-01-19 08:36:27 -05:00
Matthias Clasen
cccaf1d16b Use actual drop status
We have this information in the XDND protocol, so we don't have
to blindly assume that the drop succeeded.
2016-01-19 14:17:36 +01:00
Carlos Garnacho
40b28ac66a gdk: Document the functions that don't need calling on managed DnD
These functions will be automatically called by the windowing backend.
The usual hooks to run this from in gtk/ shouldn't even happen, but
it is worth to document which calls are expected and which aren't.
2016-01-19 14:17:36 +01:00
Carlos Garnacho
5b1d96234d wayland: Set weak reference on the current grab window
If the grab window is destroyed the grab will be implicitly removed,
although we won't get GdkSeat:ungrab called in order to clear our
internal window<->seat relation entirely. Setting a weak ref will
nullify the pointer we keep on the seat to the window, avoiding the
expected crashes.
2016-01-19 14:17:36 +01:00
Carlos Garnacho
be3f0dad82 wayland: Unset button modifiers on pointer enter
Due to implicit grabs, we basically can guarantee that the pointer
won't have any buttons pressed at the time of wl_pointer.enter.
Seems like a good place to unset any button modifiers that might
have been left stale by compositor grabs.
2016-01-19 14:17:36 +01:00
Carlos Garnacho
1045dda035 wayland: Implement DnD actions as per wl_data_device v3
Implement as a managed GdkDragContext, which actually fits nicely
with the drag-and-drop model in wayland.
2016-01-19 14:17:36 +01:00
Carlos Garnacho
0747a60129 wayland: Add internal gdk_wayland_seat_set_global_cursor()
This can be used for cases (like DnD) where there isn't necessarily
a grab, but we want a global pointer cursor.
2016-01-19 14:17:36 +01:00
Carlos Garnacho
8d47617623 gtkdnd: Reset widget controllers when starting DnD.
Otherwise there's no full guarantees that this will happen.
2016-01-19 14:17:36 +01:00
Carlos Garnacho
2b703b61cf gtk: Add private gtk_widget_reset_controllers()
This is a one-shot call that can be called on the places we
know we're taking input away.
2016-01-19 14:17:35 +01:00
Carlos Garnacho
e4f5e31b8b gtkdnd: Optionally use gdk_drag_context_manage_dnd()
When this is in use, there's essentially a bunch of dead code here.
When all backends are ported, we'll be able to remove grab/cursor
management plus a bunch of source-side event handlers.
2016-01-19 14:17:35 +01:00
Carlos Garnacho
bfee45e6f9 x11: Implement gdk_drag_context_manage_dnd()
This includes managing input events and source-side DND events,
as well as setting the appropriate cursor and emitting the signals
that are expected in this mode of operation.
2016-01-19 14:17:35 +01:00
Carlos Garnacho
ed5da43afb gdk: Add gdk_drag_get_cursor()
This function (most similar to gtk_drag_get_cursor() helps figure out
the right cursor that applies to a given action. To be used by the
various backends.
2016-01-19 14:17:35 +01:00
Carlos Garnacho
f6b8fb5a6b gdk: Run DnD internal handlers before the main event handler
We'll be stealing those to GTK+, if the GdkDragContext manages
the DnD operation.
2016-01-19 14:17:35 +01:00
Carlos Garnacho
edc4374a63 gdk: Allow internal management of source-side DnD
We've traditionally left GTK+ to handle the input side of things,
letting GDK only manage the windowing-specific messaging. This
way of splitting responsibilities is not compatible however with
some backends, we must fold then input management at the DnD stage
into GDK (and backends) domain.

The gdk_drag_context_manage_dnd() call is meant to be the entry
point for this mode of operation, if the drag and drop operation
becomes managed, the caller (i.e. gtkdnd.c) doesn't need to perform
grabs, nor manage input events itself.

As a consequence of this, different aspects now belong to the
backend GdkDragContext implementation:
- Because the caller doesn't see keyboard events anymore,
  keyboard navigation must be managed in GDK, so is the decision
  of the current action based on modifiers/button pressed.
- Because the caller won't see input events in general, the lifetime
  of the drag and drop operation is now communicated through the
  ::drop-performed, ::dnd-finished and ::cancel events
- Because the caller doesn't participate anymore on the action
  being chosen, the pointer cursor must be set by the backend.
  The caller is rather notified of the final action through the
  ::action signal.

The caller is still responsible of dealing with the corresponding
GdkSelection, ensuring its ownership and communicating the supported
mimetypes.
2016-01-19 14:17:35 +01:00
Benjamin Otte
a50baba160 widget: Call gdk_window_mark_paint_from_clip() again
The proper window to call it is the event window, as the call itself
ignores non-native windows anyway.
2016-01-19 14:12:53 +01:00
Marek Černocký
f64bb38aa7 Fixed typo childen->children 2016-01-19 12:52:58 +01:00
Matthias Clasen
3fea7f296e gtk-demo: Add a progress bar to foreigndrawing
This is another commonly requested widget.
2016-01-18 23:40:38 -05:00
Benjamin Otte
409760babf container: Properly reorder no-window children
... that are setup with gtk_widget_set_parent_window().

Fixes scrollbars not being drawn in GtkScrolledWindow.
2016-01-19 04:33:09 +01:00
Benjamin Otte
ab5dbfd1f1 widget: Add forgotten push_group code
... and remove the also forgotten void function that lingered around
with it.

Fixes opacity=0 parts like inactive spinners or sort indicators in
treeview headers being drawn since last commit.

Oops.
2016-01-19 04:24:32 +01:00
Benjamin Otte
580ea227a6 widget: Redo drawing code
Previously, we had a special cae to draw subwindows of widgets.

This is not necessary as conformant widgets should be able to properly
render themselves when all windows need to be painted.
From now on assume that is the case.

We therefore paint nonnative GDK windows "inline" by just returning TRUE
for gtk_cairo_should_draw_window() for those windows.

This speeds up hilighting different rows in the listbox gtk-demo example
tremendously (by a factor of 10 or more) as the previous code was
O(<number of non-window subwidgets> *
<number of subwindows>) which in the listbox example were ~15,000 and
~2,000 respectively.
2016-01-19 03:45:27 +01:00
Benjamin Otte
402cecf9a2 actionbar: Don't forall() widgets twice
When using forall(), only list the revealer, which lists the box
containing all the children. When using foreach(), bypass revealer and
box and list all children added to the box.
2016-01-19 03:45:26 +01:00
Matthias Clasen
575dfb4075 Updates 2016-01-18 20:20:32 -05:00
Matthias Clasen
1821c2df60 text view: Expose cursor blink control
Derived classes like GtkSourceView with their own ::key-event
handler need access to this, in order to make their keynav
as nice as the builtin one, wrt to caret visibility.

https://bugzilla.gnome.org/show_bug.cgi?id=760748
2016-01-18 16:27:43 -05:00
Carlos Garnacho
f8b8e4eaf8 x11: Set event->scroll.is_stop
We still figure this out from 0/0 scroll events. This method is
not intended to last forever, but it's something we can cling to
so far.

https://bugzilla.gnome.org/show_bug.cgi?id=756729
2016-01-18 21:36:23 +01:00
Peter Hutterer
48aa1bb08f wayland: add gdk_event_is_scroll_stop_event()
And use it to handle kinetic scrolling in the GtkScrolledWindow.

However, dropping the delta check causes the X11-based kinetic
scroll to break since we don't have the stop event here. Correct handling of
xf86-input-libinput-based scroll events is still being discussed.

https://bugzilla.gnome.org/show_bug.cgi?id=756729
2016-01-18 21:36:23 +01:00
Peter Hutterer
3fca36169a wayland: add support for wl_pointer frame/axis_source/axis_discrete/axis_stop
This adds support for the new wl_pointer events available in v5.

The wl_pointer.axis_source events can be ignored for the purposes here, the
main reason they exist is so that the combination of axis_source=finger and
axis_stop triggers kinetic scrolling. We don't need to care about the source,
axis_stop is enough for us to tell us when we're scrolling.

The wl_pointer.frame events group events together and is intended as a
mechanism to coalesce events together. This for example allows us to now
send a single GTK scroll event for a diagonal scroll. Previously, the two
wl_pointer.axis events had to be handled separately.

The wl_pointer.axis_discrete event sends mouse wheel clicks where
appropriate, and is translated into up/down/left/right scroll events.

https://bugzilla.gnome.org/show_bug.cgi?id=756729
2016-01-18 21:36:23 +01:00
Matthias Clasen
ac95bac5b8 Drop a reference to regions
Regions don't work anymore, so don't recommend them in the docs.
2016-01-18 14:31:37 -05:00
Matthias Clasen
b3b048906c im context simple: Protect shared data structures
Since a41f02f9b1, GtkIMContextSimple
uses threads to load X Compose files. It does that every time a new
im context object is initialized, so we can easily end up with multiple
threads accessing the shared global_tables list at the same time.

Use a lock to prevent that.

https://bugzilla.redhat.com/show_bug.cgi?id=1276432
2016-01-18 13:57:39 -05:00
Benjamin Otte
e150ea85bb cssnode: Don't leak the style cache on destruction 2016-01-18 18:06:41 +01:00
Timm Bäder
af958b86cb gdkdisplay-x11: Plug memory leak 2016-01-18 17:34:29 +01:00
Matthias Clasen
ff5d14f1a8 text view: Update selection node visibility
Make the node invisible if we don't have a selection.
2016-01-18 11:05:53 -05:00
Matthias Clasen
b08fe985cc entry: Expand the css node docs
Mention the context menu.
2016-01-18 10:52:26 -05:00
Matthias Clasen
07eda5920f text view: Expand CSS node docs
Mention the selection node, and the context menu.
2016-01-18 10:51:54 -05:00
Matthias Clasen
c24c56a143 Forgotten file 2016-01-18 09:41:46 -05:00
Benjamin Otte
3281d1a284 notebook: Don't crash when dnd'ing tabs out
https://bugzilla.gnome.org/show_bug.cgi?id=760754
2016-01-18 15:39:02 +01:00
Benjamin Otte
eca1b3cba3 accellabel: Remove unused variable 2016-01-18 15:39:02 +01:00
Matthias Clasen
6f3cff16af gdk: Clarify docs about scale
Explicitly state where we return application pixels as opposed
to device pixels.
2016-01-18 08:54:35 -05:00
Matthias Clasen
bbc08d08a9 Trivial typo fix 2016-01-18 08:36:53 -05:00
Matthias Clasen
65ae48d707 Add more CSS node tests for notebooks 2016-01-18 07:41:33 -05:00
Timm Bäder
d73f6b8c50 entry: Deprecate shadow-type
Things like that should be handled using css. Also, the property value
is unused inside GtkEntry.
2016-01-18 12:53:53 +01:00
Руслан Ижбулатов
f74f81f06b W32: Detect ticks wraparound
https://bugzilla.gnome.org/show_bug.cgi?id=748327
2016-01-18 09:23:44 +00:00
Matthias Clasen
83eb36a896 Add CSS node tests for checkbutton rtl flipping 2016-01-18 00:29:29 -05:00
Matthias Clasen
121aec6de8 Add css node tests for expander rtl flipping 2016-01-18 00:24:53 -05:00
Matthias Clasen
2a665715b6 expander: Flip the alignment of the vertical box
To ensure that the title moves to the other side as expected
in RTL, use GTK_ALIGN_START/END instead of GTK_ALIGN_FILL
when packing the title gadget into the vertical box, and
flip the alignment when the text direction changes.
2016-01-18 00:19:31 -05:00
Matthias Clasen
296f80a580 expander: Handle rtl changes again
Now that the box gadget has api for it, use it here to
change the order of the gadgets for right-to-left.
2016-01-18 00:11:54 -05:00
Matthias Clasen
a32b39c60f checkbutton: Handle rtl changes again
Now that the box gadget has api for it, use it here to
change the order of the gadgets for right-to-left.
2016-01-18 00:11:50 -05:00
Matthias Clasen
5265db5dd6 box gadget: Add a function to reverse children
This can be used to handle text direction changes.
2016-01-18 00:03:39 -05:00
Benjamin Otte
f6757e0c0c reftests: Fix up for easy CSS changes
This is mostly search and replace ala
  GtkButton => button
  GtkWindow => window
  .button => button
or removing style properties that aren't used anymore like
  -GtkButton-default-border: 0
2016-01-18 05:05:35 +01:00
Benjamin Otte
b7f32ed451 reftests: Remove test
We no longer match subtypes, so remove the test for it.
2016-01-18 05:05:35 +01:00
Matthias Clasen
7859f8ee91 checkbutton: Use a box gadget
Now that builtin icons have a baseline, we can just use
a box gadget with baseline alignment for the indicator
and the label.
2016-01-17 21:16:33 -05:00
Matthias Clasen
da30858ee4 builtin icon: set a baseline
Most uses of builtin icons (check and radio buttons,
expanders, etc) are placed next to labels, so they should
be properly positioned wrt to the baseline. Lacking anything
better, give the builtin icons a baseline that places the
center of the icon at the strikethrough position.
2016-01-17 21:02:18 -05:00
Matthias Clasen
9c3907dab0 box gadget: Deal with optional arguments
The baseline arguments to the preferred size callback can
be NULL. Don't crash if they are.
2016-01-17 19:48:40 -05:00
Matthias Clasen
44d94a4aeb Trivial formatting fix 2016-01-17 15:35:14 -05:00
Matthias Clasen
a7387e2641 Document restrictions on gtk_style_context_get
This makes it official that passing a different state
is not generally supported in the getters for CSS properties.
2016-01-17 15:31:37 -05:00
Matthias Clasen
6bf9715ce4 notebook: show tabs when asked to
gtk_notebook_set_show_tabs must make the header gadget
visible when show_tabs is TRUE, not the other way around.

https://bugzilla.gnome.org/show_bug.cgi?id=760596
2016-01-17 14:35:58 -05:00
Matthias Clasen
9e2a1685c5 accel label: Fix RTL handling
The 'mad hack' that GtkAccelLabel used to affect the GtkLabel
draw function broke with the introduction of gadgets, since
the positioning is no longer relative to the widgets' allocation
at the time of the call, but rather to the gadgets allocation.

Instead of coming up with an even madder hack to keep this
working, give the GtkLabel draw function knowledge about accel
labels.

https://bugzilla.gnome.org/show_bug.cgi?id=760663
2016-01-17 14:08:22 -05:00
Matthias Clasen
d28959c6db inspector: Make cursor-size combo wider
Cursor sizes typically have 2 digits, lets not clip them.
2016-01-17 13:23:49 -05:00
Matthias Clasen
00aca5d689 Expand window style class documentation a bit 2016-01-17 12:13:59 -05:00
Matthias Clasen
9d26038a10 Adwaita: Keep entry progress visible
When the entry is focused, make the progress one pixel wider
so it doesn't get swallowed by the focus outline.
2016-01-16 19:23:26 -05:00
Benjamin Otte
6e6cbd7316 stylechange: Do the right thing when old and new style are equal
We don't need to compare all their CSS values to figure out that nothing
changed. We know that.
2016-01-16 23:58:37 +01:00
Benjamin Otte
c904efef53 cssnode: Redo GTK_DEBUG=no-css-cache
Previously this setting would just invalidate the whole CSS tree and
thereby hopefully avoid all cache usage.

Now, we actually don't cause extra invalidations anymore, but instead
avoid ever inserting anything into the cache when this setting is set.
2016-01-16 23:58:37 +01:00
Benjamin Otte
024429f76f cssnode: Implement the style cache
This essentially copies the previous cache implementation. With one
caveat: It is now attached to and maintained by the CssNode, not by the
CssStyle.

And this is important because styles may be reused in incompatible
situations which would cause cache collisions and lead to broken CSS in
weird situations.
2016-01-16 23:58:37 +01:00
Benjamin Otte
5d562b6a2a cssnode: Split out the style cache
For now, the split out style cache doesn't cache anything. This is
mostly to make sure that bisections of wrong caching behavior will
bisect down to the commit that actually adds caching.
2016-01-16 23:58:37 +01:00
Lapo Calamandrei
93f8fa7576 Adwaita: stop axing toolbar separators 2016-01-16 04:16:55 +01:00
Lapo Calamandrei
d0f83d46a0 Adwaita: style textview derived widgets 2016-01-16 04:15:30 +01:00
Matthias Clasen
e7fc87e4ac color scale: Improve themability
Add the .color class, so themes can style scale.color.
Clip the trough rendering to the content path, so that
themes can set rounded corners.
2016-01-15 20:08:57 -05:00
Matthias Clasen
a0d91a3a71 treeview: Use foreground color to draw dnd marker
This is still not perfect, but makes the dnd marker better visible
in HighContrastInverse.
2016-01-15 19:39:12 -05:00
Matthias Clasen
2cf810c4c9 frame: Don't overlap label and child
We didn't do this previously, so don't start now.

https://bugzilla.gnome.org/show_bug.cgi?id=760528
2016-01-15 19:16:23 -05:00
Lapo Calamandrei
f32e1d42e6 Adwaita: combo style cleanup and fixes
fixes https://bugzilla.gnome.org/show_bug.cgi?id=760524
2016-01-16 01:03:08 +01:00
Matthias Clasen
e8b9aacfc1 combo: Add .linked class when appropriate
Add the .linked style class to combo boxes which have
an entry, since that is what they are.
2016-01-15 17:55:44 -05:00
Matthias Clasen
54a6e032ca combobox: Document the popup window CSS node 2016-01-15 17:48:39 -05:00
Matthias Clasen
0049be4e58 application: Protect against double shutdown
It is not something that can happen normally.
But if it does, we shouldn't crash.

https://bugzilla.gnome.org/show_bug.cgi?id=760680
2016-01-15 17:37:55 -05:00
William Hua
2b95e4db55 mir: add default GdkSeat for the default GdkDisplay 2016-01-15 14:10:53 -05:00
Matt Watson
d8bb228d3b widget: remove queue_resize in set_sensitive
Calling gtk_widget_propagate_state is enough to queue a resize if
needed

See da7a4089fe
2016-01-15 11:07:47 -08:00
Rui Matos
303556ac2a wayland: Fix an endless loop 2016-01-15 18:40:43 +01:00
Lapo Calamandrei
04f6f38b56 Adwaita: remove messagedialog label squashing hack
since Matthias fixed this properly.
2016-01-15 18:37:49 +01:00
Matthias Clasen
78162c5e88 message dialog: Prevent empty title from being shown
We don't want to grow the titlebar by showing an empty label.
2016-01-15 11:59:33 -05:00
Lapo Calamandrei
fc804bba2d Adwaita: some dialog love
addresses https://bugzilla.gnome.org/show_bug.cgi?id=760525
2016-01-15 17:57:25 +01:00
Matthias Clasen
6d18b77ca7 expander: Destroy gadgets after child widgets
With child widgets now being sorted into box gadgets, bad things
happen if those gadgets disappear prematurely.
2016-01-15 10:30:08 -05:00
Benjamin Otte
6e4d65d227 notebook: Destroy gadgets after chaining up
While chaining up, we might still call into the notebook code. And that
code expects the gadgets to be there.

https://bugzilla.gnome.org/show_bug.cgi?id=760640
2016-01-15 16:22:22 +01:00
Matthias Clasen
2e27c0af25 expander: Convert to use box gadgets
Use a vertical box gadget for the overall expander, and a
horizontal one for the title row. This lets us get rid of
all the custom allocation code here.
2016-01-15 09:43:51 -05:00
Matthias Clasen
5f5dc10820 expander: Deprecate spacing property
The same can be achieved with margins on the child, and
the spacing property gets in the way of converting the
expander to use box gadgets.
2016-01-15 09:43:51 -05:00
Matthias Clasen
87171469b7 box gadget: Implement cross-axis alignment
So far, the box gadget is always allocating all children the
full size in the cross axis. This behavior corresponds to the
align-items: stretch behavior in
https://www.w3.org/TR/css-flexbox-1/#align-items-property
This commit implements the other modes described there.

While widgets have halign/valign properties that we can use for
this, the API for inserting gadgets has to change to take an
extra align parameter. All callers have been updated to pass
GTK_ALIGN_FILL, since that corresponds to the previous behavior.

https://bugzilla.gnome.org/show_bug.cgi?id=760668
2016-01-15 09:43:12 -05:00
Piotr Drąg
662c7b87e2 Updated POTFILES.skip 2016-01-15 15:18:32 +01:00
Ignacio Casal Quinteiro
f6cc3be118 win32: get rid of _gdk_screen global variable
The screen is part of the display so it should be belong to it.
2016-01-15 12:35:31 +01:00
Ignacio Casal Quinteiro
ea7c509afd win32: fix warning 2016-01-15 11:56:01 +01:00
Tom Schoonjans
967ecc80d3 Windows library manager fix
The Makefile.am's had a dependency on incorrectly named libtool
archives for the generation of the .lib files.

https://bugzilla.gnome.org/show_bug.cgi?id=760388
2016-01-15 11:16:32 +01:00
Alberts Muktupāvels
c60cea3037 gtkwidgetpath: update gtk_widget_path_to_string
From gtk_widget_path_iter_set_object_name documentation:
"When set, the object name overrides the object type when matching CSS"

Update gtk_widget_path_to_string to match this behaviour.
2016-01-15 00:36:23 +02:00
Eric Williams
276101a3bc Fix typo in previous documentation fix for gtk_css_provider_load_from_data() 2016-01-14 17:01:26 -05:00
Matthias Clasen
5842e68a0d Document -gtk-recolor syntax 2016-01-14 16:06:16 -05:00
Matthias Clasen
beec55a22b Add a way to load recolored icons in CSS
This can come in handy to load images that are not in an icon theme,
but still benefit from symbolic recoloring.

https://bugzilla.gnome.org/show_bug.cgi?id=760536
2016-01-14 13:51:15 -05:00
Matthias Clasen
1b0ef71696 icon theme: Export recoloring function
This will be used in subsequent commits.

https://bugzilla.gnome.org/show_bug.cgi?id=760536
2016-01-14 13:51:09 -05:00
Matthias Clasen
7d717c8113 icon theme: Add a way to create GtkIconInfos from files
This is sometimes needed, and calling into actual icon theme
code just for it is confusing - the resulting icon does not
depend on the icon theme at all.

https://bugzilla.gnome.org/show_bug.cgi?id=760536
2016-01-14 13:50:58 -05:00
Lapo Calamandrei
c667f9f1d1 Adwaita: pathbar style cleanup 2016-01-14 17:54:31 +01:00
Florian Müllner
ea69bf8c17 cssstyleproperty: Expose min-width/height 2016-01-14 17:20:51 +01:00
Lapo Calamandrei
bc2355e0b1 Adwaita: remove superfluous selector on keycap styling
now that keys are made directly with labels istead of frames.
2016-01-14 16:26:22 +01:00
Timm Bäder
4703d2bbf0 boxgadget: Don't use g_assert
Use g_return_if_fail instead so nothing abort()s.
2016-01-14 16:02:36 +01:00
Timm Bäder
a5fabee202 entry: Don't draw icons twice 2016-01-14 16:02:12 +01:00
Timm Bäder
49d251a330 entry: Remove unused code 2016-01-14 16:02:12 +01:00
Timm Bäder
2397d76137 label: Remove some unneeded conditionals
We are never passing NULL here.
2016-01-14 16:02:12 +01:00
Timm Bäder
6a97b2563b shortcutlabel: Use a label directly
We can everything we need without the frame around it now.
2016-01-14 16:02:12 +01:00
Руслан Ижбулатов
37bd22c3d9 GDK W32: Don't use WM-drawn shadow for tooltips
This prevents WM from drawing shadows around tooltip windows,
which, in Adwaita, should have no shadow and are CSD-ish (which means
that tooltip window is larger than it looks, and WM draws the shadow
only on the outside, leaving a gap between the visible tooltip edge and
the shadow).

https://bugzilla.gnome.org/show_bug.cgi?id=759898
2016-01-14 14:53:15 +00:00
Paolo Borelli
3cd79c11fc win32: remove _gdk_root global variable 2016-01-14 14:30:37 +01:00
Руслан Ижбулатов
e44b420617 Ensure that the fstat fix is not applied on x86_64 2016-01-14 12:52:04 +00:00
Matthias Clasen
0acc6578d8 expander: center the arrow
In lieu of more sophisticated alignment, we need to at least
center the arrow allocation wrt to the label.
2016-01-14 07:35:59 -05:00
Руслан Ижбулатов
59f1b87409 W32: Ensure that correct statting function is used by iconcache
With Mingw-w64 fstat() can be an inline function that
calls _fstat32() or _fstat64(), depending on some macros.
And if LFS is enabled, fstat() is defined to turn into
_fstat32i64() or _fstat64(). And some/all of the above
might also be macros as well. Side-step all that mess
and excplicitly re-define fstat as _fstat32, which is
guaranteed to use a version of "stat" struct that
has 32-bit size and time fields, which is what we want.

https://bugzilla.gnome.org/show_bug.cgi?id=760615
2016-01-14 09:44:22 +00:00
Matthias Clasen
d2e80a7993 font chooser: Add a CSS name
The CSS name for GtkFontChooserWidget is fontchooser.
2016-01-13 23:42:35 -05:00
Matthias Clasen
c80adc33a4 app chooser: Set a CSS name
The CSS name for GtkAppChooserWidget is appchooser.
2016-01-13 23:41:38 -05:00
Matthias Clasen
9657ec9331 print dialog: Set a CSS name
The CSS name for GtkPrintUnixDialog is printdialog.
2016-01-13 23:41:38 -05:00
Matthias Clasen
704b41b504 file chooser: Set a CSS name
The CSS name for GtkFileChooserWidget is ... filechooser.
2016-01-13 23:41:38 -05:00
Matthias Clasen
2f169a493b color chooser: Set a CSS name
The CSS name for GtkColorChooserWidget is ... colorchooser.
2016-01-13 23:41:38 -05:00
Matthias Clasen
dc5c82e29c inspector: Don't select 'randomly'
While rescanning the object tree, we were emitting ::object-selected
signals, possibly causing wild blinking in the application window.
Don't do that.

https://bugzilla.gnome.org/show_bug.cgi?id=760572
2016-01-13 23:24:38 -05:00
Matthias Clasen
0d298ea75b Expand CSS icon property docs a bit 2016-01-13 23:06:32 -05:00
Matthias Clasen
f0d4d96ded Fix doc syntax 2016-01-13 22:48:19 -05:00
Matthias Clasen
25ccbf4e3f Improve docs for icon-related CSS properties
Clarify the relation between the various properties and the
icon loading functions.
2016-01-13 16:25:41 -05:00
Matthias Clasen
1009c88186 Make -gtk-icontheme() use -gtk-icon-palette
This makes it possible to recolor themed icons with -gtk-icon-palette,
regardless whether they are loaded by the theme or the application.
2016-01-13 16:17:44 -05:00
Matthias Clasen
34c263683c Move the -gtk-icon-palette property up
Other properties will start depending on it in subsequent
commits, so move it up to prevent ordering problems.
2016-01-13 16:16:39 -05:00
Matthias Clasen
1f65f1b746 color swatch: Use right allocation for window
Generally, input-only windows that correspond to CSS boxes
should be sized to the border allocation of the gadget.
2016-01-13 14:00:10 -05:00
Rafael Fontenelle
e8b11778a8 Updated Brazilian Portuguese translation 2016-01-13 18:55:36 +00:00
Matthias Clasen
2ec16c9f91 Add css node tests for right-to-left levelbars 2016-01-13 13:39:41 -05:00
Cosimo Cecchi
897126ae2b notebook: fix a GCC warning 2016-01-13 08:30:02 -08:00
Matthias Clasen
a0fdbff938 Add css node tests for paned node ordering 2016-01-13 00:41:44 -05:00
Matthias Clasen
fb77ebe17e paned: Update node ordering according to text direction
This was overlooked in the initial node conversion.
2016-01-13 00:40:11 -05:00
Matthias Clasen
7743944124 GtkBox: Documentation tweak 2016-01-13 00:39:53 -05:00
Matthias Clasen
e386fcae04 Update expected output of notebook css node test
The stack node is new.
2016-01-13 00:26:48 -05:00
Matthias Clasen
93aac8a86c notebook: Document the .dnd style class
We should aim to document all style classes that themes
can encounter during the normal operation of a widget.
2016-01-13 00:24:40 -05:00
Matthias Clasen
ea4cff1ea4 Use convenience API that was introduced recently
Use gtk_css_gadget_set_state in all the places where we previously
were getting a node from a gadget, just to call gtk_css_node_set_state.
2016-01-13 00:19:31 -05:00
Matthias Clasen
64b499be66 builtin icon: Don't save/restore cairo state
The reason why this was introduced is now handled in
gtk_css_stylke_render_icon since commit
0138af9f96.
2016-01-13 00:01:14 -05:00
Matthias Clasen
c71089a038 box gadget: Add some documentation 2016-01-12 23:57:35 -05:00
Matthias Clasen
2677eee720 box: Document child node ordering 2016-01-12 23:40:28 -05:00
Dominique Leuenberger
d7e5fd2e2f QEMU USB Tablet is not really a tablet - it's a trick
Unfortunately, Qemu gives us this confusing device to work with,
and the best we can do is filter it out based on its name.

https://bugzilla.gnome.org/show_bug.cgi?id=760445
2016-01-12 23:03:14 -05:00
Ting-Wei Lan
f4d2d66b1e broadway: Call setlocale in main function of broadwayd
It is required to correctly show translated messages on some locales.

https://bugzilla.gnome.org/show_bug.cgi?id=760416
2016-01-12 23:00:03 -05:00
Timm Bäder
b8db48079f switch: Fix text positioning
https://bugzilla.gnome.org/show_bug.cgi?id=760509
2016-01-12 21:56:53 +01:00
Timm Bäder
a8ceeb1766 switch: Don't include margins in input window size
https://bugzilla.gnome.org/show_bug.cgi?id=760509
2016-01-12 21:56:53 +01:00
Timm Bäder
ff7e2797f6 modelbutton: Don't include margins in input window size
https://bugzilla.gnome.org/show_bug.cgi?id=760509
2016-01-12 21:56:49 +01:00
Timm Bäder
788ee466b8 button: Don't include margins in input window size
And do the same thing for GtkCheckButton

https://bugzilla.gnome.org/show_bug.cgi?id=760509
2016-01-12 21:56:44 +01:00
Timm Bäder
19fa893067 entry: typo 2016-01-12 21:54:45 +01:00
Alberts Muktupāvels
0ba5e38c91 gdkseat: remove return from gdk_seat_ungrab 2016-01-12 18:49:40 +02:00
Timm Bäder
8cb515e2f3 Remove stray semicolon
Gets rid of a mixed code/declaration warning.
2016-01-12 09:35:04 +01:00
Matthias Clasen
c5d3556f98 HighContrast: Fix selection in .views
Copy Adwaita fixes from 21a2fce8ba.
2016-01-11 23:20:26 -05:00
Matthias Clasen
52a34d32bb Fix corner manipulation when growing rounded rects
This addresses problems with uneven border radius',
pointed out by Lapo.
2016-01-11 22:49:40 -05:00
Ben Iofel
7e5952c4ea GTK Notebook: use the right enum type 2016-01-11 19:16:36 -05:00
Lapo Calamandrei
1c3bad3d90 Adwaita: popover style fixes 2016-01-12 01:03:47 +01:00
Lapo Calamandrei
21a2fce8ba Adwaita: make selection visible in treeview derived widgets
See https://bugzilla.gnome.org/show_bug.cgi?id=757503
2016-01-12 00:16:12 +01:00
Hashem Nasarat
473433c93d Adwaita: fix separator margin in popovers
Commit 0b96b8a1 set margins via css, but accidentally changed the
semantics of margins for separators in popovers so that any separator
in a gtkpopover had a margin. This meant that the separators in
GtkListBoxes in popovers also had a margin around their separators, and
this is not what we want because it doesn't match separators in
listboxes not in popovers.

https://bugzilla.gnome.org/show_bug.cgi?id=760427
2016-01-11 23:40:25 +01:00
Matthias Clasen
2c0b251dac Improve deprecation note for gdk_device_manager_get_client_pointer
List gdk_seat_get_pointer as replacement. Suggested in
https://bugzilla.gnome.org/show_bug.cgi?id=759785
2016-01-11 15:09:47 -05:00
Matthias Clasen
5c50250273 Fix the deprecation note for gdk_device_manager_list_devices
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=759785
2016-01-11 15:06:15 -05:00
Matthias Clasen
63365d5044 Fix the annotation for gdk_seat_get_slaves
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=759785
2016-01-11 15:05:21 -05:00
Carlos Garnacho
0167f7c65c GtkWidget: Fix motion event consumption detection for touch-only gestures
If a GtkGestureSingle is set as touch-only, pointer events would be
discarded without giving an opportunity to the regular GtkGesture
handler to manage those.

Because the pointer events weren't actually managed by the gesture,
gtk_gesture_get_sequence_state() (rather unhelpfully here) will resort
to returning GTK_EVENT_SEQUENCE_NONE, which is in turn interpreted
by _gtk_widget_consumes_motion() as "may be handling the events for
this sequence", because gestures in this state presumably handle
the events, just that it's not "claimed" yet.

Instead, use gtk_gesture_handles_sequence(), which will perform the
expected check on the event sequence being managed, as we expect
here.
2016-01-11 20:16:06 +01:00
Matthias Clasen
32eda187ee Actually deprecate GtkNotebook::has-tab-gap 2016-01-11 13:58:37 -05:00
Matthias Clasen
990be25d63 notebook: Update CSS node docs
The stack node is new.
2016-01-11 13:55:23 -05:00
Benjamin Otte
3a8dc01ed2 notebook: Don't reparent tab label when drag stops
Use the same unrealize + set_parent_window() trick that we used in
6d5edd18cf when dragging starts.
2016-01-11 17:52:38 +01:00
Benjamin Otte
b917a0b155 notebook: Add .dnd style class to tabs during reorder 2016-01-11 17:46:15 +01:00
Benjamin Otte
6d5edd18cf notebook: Don't unparent tab label for drag
When a tab drag starts, we need to move the tab label into the drag
window via gtk_widget_set_parent_window().
If we don't unparent, but just unrealize the widget, we don't lose the
cssnode position.
2016-01-11 17:06:46 +01:00
Benjamin Otte
fdc13f315b notebook: Don't limit motion notify framerate
We have a frameclock for that these days.

In particular, this limiting worked at 45fps when monitors are all 60fps.
2016-01-11 17:06:46 +01:00
Benjamin Otte
d74c1bfd84 notebook: Remove outdated style properties from themes
No replacement provided, the notebook will have to be redone anyway.
2016-01-11 17:06:46 +01:00
Benjamin Otte
8020d5f93a notebook: Don't store gadget allocation twice
If we care about a gadget's allocation, we can ask it. There's no need
to store it in GtkNotebookPage.allocation.
2016-01-11 17:05:24 +01:00
Benjamin Otte
2ef3b01442 notebook: No need to recompute remaining space
The value is correct.

In particular, subtracting width on notebooks with tabs on left/right is
a very bad idea.
2016-01-11 17:05:24 +01:00
Benjamin Otte
4c083f8182 notebook: Port arrows to be gadgets
Also deprecate the arrow-spacing style property.
2016-01-11 17:05:24 +01:00
Benjamin Otte
326fda1b0e notebook: Pass full allocation instead of min and max value 2016-01-11 17:05:24 +01:00
Benjamin Otte
96f0cf7677 notebook: Pass allocation as argument
... instead of querying it later.
2016-01-11 17:05:23 +01:00
Benjamin Otte
6b8c191096 notebook: Simplify allocation code 2016-01-11 17:05:23 +01:00
Benjamin Otte
0e48216c48 notebook: Identify existence of arrows differently
Instead of having gbooleans in the priv struct, just look at the
existence of priv->arrow_node[i].
2016-01-11 17:05:23 +01:00
Benjamin Otte
a12e1328e9 notebook: Convert tab nodes to gadgets
The code does many bad things, so we get a lot of warning spew. Ignore
this for now, fixes will follow.
2016-01-11 17:05:23 +01:00
Benjamin Otte
d780ce3ff3 notebook: Assume tab allocations always change
This causes more redraws, but saves a bunch of code.
2016-01-11 17:05:23 +01:00
Benjamin Otte
7e0c7f7deb notebook: Remove weird hack where the current page was special-cased
I don't even know what it does, but it assumed that the current page was
always as large or larger than any other page. And that isn't true.
2016-01-11 17:05:23 +01:00
Benjamin Otte
3cda7e9503 boxgadget: Handle css nodes
Automatically insert the cssnode into the box gadget's node's children at
the right place and remove it again when done.
2016-01-11 17:05:23 +01:00
Benjamin Otte
a9320d93f6 notebook: Replace redraw_tabs() with gadget_queue_draw(tabs_gadget) 2016-01-11 17:05:23 +01:00
Benjamin Otte
f83c1fedbc notebook: Don't queue redraw of tabs junction
There is no junction anymore, so don't try to redraw it.
2016-01-11 17:05:23 +01:00
Benjamin Otte
f1e277969a gadget: Add queue_resize/allocate/draw() functions 2016-01-11 17:05:23 +01:00
Benjamin Otte
e1722baf57 notebook: Convert tabs node to a gadget
And in turn, convert the header gadget to a box gadget.
2016-01-11 17:05:23 +01:00
Benjamin Otte
acc534ebfa boxgadget: Add
Adds a GtkBoxGadget that is a Gadget that behaves like a GtkBox.

Use this gadget to implement the notebook base gadget.
2016-01-11 17:05:23 +01:00
Benjamin Otte
749855c1d1 notebook: Remove unused function call 2016-01-11 17:05:23 +01:00
Benjamin Otte
70b9aacfc2 notebook: Simplify event window position computation
The event window should overlay the header gadget, so just return its
position.
2016-01-11 17:05:23 +01:00
Benjamin Otte
ad245e0226 notebook: Introduce gtk_notebook_has_current_page()
GtkNotebook does not switch the current page if all pages are hidden. So
it may be that no visible page exsits, but there still is a current
page set.

We culd clear the current page, but I'm unsure about backwards
compatibility.

So instead, this new function handles that case.
2016-01-11 17:05:23 +01:00
Benjamin Otte
0d72055b89 notebook: Use gtk_container_class_handle_border_width() 2016-01-11 17:05:23 +01:00
Benjamin Otte
f34059c3b6 notebook: Convert header node to a gadget
This allows reworking the content node to do real height-for-width.

The content node also takes care of border width, but we might want to
have the toplevel do it or just get rid of it.
2016-01-11 17:05:22 +01:00
Benjamin Otte
8c1a73326c gadget: Add helpers for modifying state
They will be used in future commits.

I also was too lazy to convert existing widgets.
2016-01-11 17:05:22 +01:00
Benjamin Otte
e27551ddb2 notebook: Add a stack gadget
The stack gadget contains all the child widgets.
2016-01-11 17:05:22 +01:00
Benjamin Otte
c03fed4840 notebook: Remove extra calls to gtk_notebook_pages_allocate()
The function is called during size_allocate() and doesn't need to be
called elsewhere, as all other callers call queue_resize() already.
2016-01-11 17:05:22 +01:00
Benjamin Otte
33b6e30f68 notebook: Remove unnessecary gtk_widget_set_mapped()
We chain up, and the chainedup function calls this for us.
2016-01-11 17:05:22 +01:00
Benjamin Otte
dc4148c4e2 notebook: Simplify gtk_notebook_map()
We set visibility on our children properly, so we can simply chain up
and let the GtkContainer implementation do the mapping of children.
2016-01-11 17:05:22 +01:00
Benjamin Otte
22398ef459 notebook: Remove irrelevant case
The page is never the current page, because it was just created and the
current page wasn't changed yet.
2016-01-11 17:05:22 +01:00
Benjamin Otte
0e528ec74e notebook: No page switching in size request code
We have page switching under control now, we don't need to check every
get_preferred_size() call.
2016-01-11 17:05:22 +01:00
Benjamin Otte
1190efebce notebook: Set the current page when none is set
This case happens when you gtk_widget_show_all (notebook).
2016-01-11 17:05:22 +01:00
Benjamin Otte
0045e57e96 notebook: Draw the same things, no matter the show-border value
show-border modifies the "frame" style class on the notebook node, but
not what we actually draw.
2016-01-11 17:05:22 +01:00
Benjamin Otte
fd9ffe5d57 notebook: Turn the base notebook into a gadget 2016-01-11 17:05:22 +01:00
Benjamin Otte
92089ee29e notebook: Draw tab label while drawing tab
Instead of having special case code doing it.
2016-01-11 17:05:22 +01:00
Benjamin Otte
3d980da405 notebook: Don't translate before painting notebook
This will allow us to draw children directly from within the notebook
drawing code, which will remove a bunch of special casing.
2016-01-11 17:05:22 +01:00
Benjamin Otte
93dc364b02 notebook: Deprecate and stop supporting has-tab-gap style property 2016-01-11 17:05:22 +01:00
Benjamin Otte
71cc212eb5 notebook: Ignore and deprecate style properties
Deprecate initial-gap, tab-curvature and tab-overlap properties. All
their features can be achieved using CSS.

This CSS achieves the same effect as a 10px initial gap:
  notebook header {
    margin-left: 10px;
    margin-right: 10px;
  }

A tab overlap of 10px can be achieved via:
  notebook tabs {
    margin-left: 10px;
  }
  notebook tab {
    margin-left: -10px;
  }

And tab curvature is essentially the same as padding or border on a tab.
2016-01-11 17:03:07 +01:00
Benjamin Otte
0138af9f96 rendericon: Save and restore cairo matrix
... instead of requiring cairo_save()/cairo_restore().
2016-01-11 17:03:07 +01:00
Benjamin Otte
4e627e108e testnotebookdnd: Add an action widget
Just so we have some test that tests action widgets.
2016-01-11 17:03:07 +01:00
Benjamin Otte
fa7816d99c dnd: When setting a dnd icon widget, unset old one
Setting a DND icon twice should actually work and not cause warnings the
2nd time.
2016-01-11 16:56:16 +01:00
Jiro Matsuzawa
fb0a628975 Updated Japanese translation
Change B series paper names in accordance with the Japanese standards.
2016-01-11 23:58:16 +09:00
Krzesimir Nowak
67c6d24bb2 Fix a small mistake in stylecontext docs
Fix the "will be also be" to become "will also be".
2016-01-11 12:05:27 +01:00
Dušan Kazik
7a06e0102d Updated Slovak translation 2016-01-11 09:48:05 +00:00
Matthias Clasen
b035cc2cb6 Update style class docs
Instead of pointing to (outdated) widgets here, just refer to
widget docs in general.
2016-01-10 17:08:56 -05:00
Matthias Clasen
cffe2e2c93 Improve GtkStyleContext docs
Refer to the foreign drawing example in gtk3-demo, refer to
the widget documentation for style properties, remove
no-longer-used treeview regions.
2016-01-10 17:05:53 -05:00
Matthias Clasen
7ee65da0e3 Add foreigndrawing example to gtk3-demo
This makes it easier accessible and nicer to refer to
from the documentation.
2016-01-10 15:32:53 -05:00
Matthias Clasen
6d239cfba7 Add a css style test for adjacent states
This test checks that the selector E:state + F works as expected.

https://bugzilla.gnome.org/show_bug.cgi?id=722727
2016-01-10 14:51:36 -05:00
Ting-Wei Lan
0f120ea510 Cast the return value of g_array_free to void* before casting to char**
Let the compiler know that we don't want to use it as char*, so there is
no alignment error.

https://bugzilla.gnome.org/show_bug.cgi?id=760350
https://bugzilla.gnome.org/show_bug.cgi?id=755659
2016-01-11 00:23:46 +08:00
Rico Tzschichholz
2dc8d1f611 GdkSeat: Fix annotation of gdk_seat_grab() 2016-01-10 16:49:42 +01:00
Matthias Clasen
0ddc1eed19 Fix rendering of unsymmetric borders
There was an errant path that threw off our clipping for
the top section of the border.

https://bugzilla.gnome.org/show_bug.cgi?id=722937
2016-01-09 23:44:43 -05:00
Matthias Clasen
caaf537f94 Avoid division by 0 in the border rendering code
We skip sides with 0 border width in render_border, but when
we collect sides with the same style, we may pass the 0 width
down to render_frame_stroke anyway. So skip width 0 sides
there as well.
2016-01-09 23:44:43 -05:00
Jiri Grönroos
7d0173763e Updated Finnish translation 2016-01-09 21:39:37 +00:00
Matthias Clasen
12bc8ddb93 Fix dobule border rendering
This is the same fix that was applied for ridge and groove
style in 9f27ee7f5a.
2016-01-09 14:37:04 -05:00
Lapo Calamandrei
152171e60c Adwaita: transparent background for progressbar.osd
Hopefully fixes https://bugzilla.gnome.org/show_bug.cgi?id=760331
Added the .osd style class to the progressbar docs.
2016-01-09 20:05:41 +01:00
Lapo Calamandrei
6da0a0a106 gtkheaderbar: add titlebutton styleclass to the separator
...of the window control buttons
2016-01-09 19:27:15 +01:00
Lapo Calamandrei
99365753bf Adwaita: shortcut window related fixes 2016-01-09 18:03:26 +01:00
Lapo Calamandrei
44e0e1359c Adwaita: avoid colorswatch growing when drop targets 2016-01-09 15:30:20 +01:00
Lapo Calamandrei
239303b3f8 Adwaita: more scss cosmetics 2016-01-09 14:36:05 +01:00
Lapo Calamandrei
2050ed04dd Adwaita: rely on background-image for paned wide separators
this workaround fixes the rendering issue coming out using borders
2016-01-09 13:35:48 +01:00
Lapo Calamandrei
4355cb45d7 Adwaita: make the paned wide separator scss code correct
unfortunatelly the results are not, borders behaves in a weird way
here as well, if this don't get fixed I'll rely on background here
too.
2016-01-09 13:04:27 +01:00
Lapo Calamandrei
2b57ba61d5 Adwaita: some scss cosmetic changes 2016-01-09 12:38:49 +01:00
Lapo Calamandrei
f09483bb98 Adwaita: fix thin paned separators 2016-01-09 12:31:41 +01:00
Lapo Calamandrei
b143ed98b3 Adwaita: use stricter selectors on paned separators
this fixes the "fat" separator on gedit headerbar, since it was
cought by the paned separator styling.
2016-01-09 12:07:52 +01:00
Lapo Calamandrei
367543c0e8 Adwaita: remove old headerbar separator styling
which was actually selecting nothing now.
2016-01-09 11:55:40 +01:00
Lapo Calamandrei
4853303dd7 Adwaita: add vertical margins to headebar entries and separators 2016-01-09 11:25:08 +01:00
Lapo Calamandrei
bf48dd9d7c Adwaita: add vertical margins to headerbar buttons
to avoid them spanning the whole headerbar height with the changes
introduced in my last commit.
2016-01-09 10:19:47 +01:00
Matthias Clasen
3a774abbfe CSS documenation improvements
Work around some problems with the formatting of the online
docs, and split off the properties as a separate chapter.
2016-01-08 23:32:40 -05:00
Matthias Clasen
d8c1e6db21 3.19.6 2016-01-08 18:29:58 -05:00
Matthias Clasen
375619f9f4 Fix make dist
I've forgotten another place when renaming HighContrast inverse.
2016-01-08 18:29:58 -05:00
Matthias Clasen
1eaf035a78 reftests: Drop deprecated style properties 2016-01-08 18:11:07 -05:00
Matthias Clasen
fe35836168 Update expect output of a11y tests 2016-01-08 18:11:07 -05:00
Matthias Clasen
e84f1ae3bb Update the list of required cursors
We're now using standard cursor names for DND, so check for these.
2016-01-08 18:11:07 -05:00
Matthias Clasen
771149e19a wayland: Ensure we have a dnd-ask cursor
We use this for DND, so make sure that we fall back to some other
cursor if this one isn't present.
2016-01-08 18:11:07 -05:00
Matthias Clasen
04a9b5b5f8 x11: Ensure we have a dnd-ask cursor
We use this for DND, so make sure that we fall back to some other
cursor if this one isn't present.
2016-01-08 18:11:07 -05:00
Matthias Clasen
4b7c8218fb Use standard cursor names for DND
At least as far as we have them. CSS has on equivalent of dnd-ask,
so we keep using that name as-is.
2016-01-08 18:11:07 -05:00
Cosimo Cecchi
f2685ddf5e colorswatch: don't apply padding twice
Instead of taking the border and manually removing it from the
allocation, render our background over all the border allocation box, as
that's more correct and does not take padding into account twice.
2016-01-08 14:58:25 -08:00
Carlos Garnacho
e62f1604f9 paned: Use GtkGestureDrag for anything else than touch
The GtkGesturePan behavior of locking onto certain orientations may
come across as confusing, and is not strictly necessary for mice and
other pointing devices.

As GtkGesturePan is also a GtkGestureDrag, we just use the same
callbacks on both gestures.

https://bugzilla.gnome.org/show_bug.cgi?id=759670
2016-01-08 22:03:05 +01:00
Carlos Garnacho
ad0fc8ae7e wayland: Force the grab cursor while a grab is active
When a cursor is specified in gdk_seat_grab(), the cursor is reverted as
soon as the pointer enters or leaves another window.

To avoid this issue, store the grab cursor separately, so we force-apply
it in ::set_window_cursor(). Also, unset early the seat info from the
window on gdk_seat_ungrab(), so the next time switch_to_pointer_grab()
happens we end up picking the cursor set for the window underneath the
pointer window.

Based on a patch by Olivier Fourdan <ofourdan@redhat.com>.

https://bugzilla.gnome.org/show_bug.cgi?id=760213
2016-01-08 22:01:25 +01:00
Carlos Garnacho
23b629e27c x11: Initialize GdkWindowAttr struct memory
Valgrind complains about jumps based on uninitialized values
otherwise.
2016-01-08 21:58:33 +01:00
Lapo Calamandrei
48fbe5137e Adwaita: avoid too tall headerbars
the vertical padding from the headerbar has been removed, now the
sizing is done with min-height, this avoids title and subtitle
labels making the headbar.
2016-01-08 20:56:40 +01:00
Matthias Clasen
b94f30bb64 Avoid an X error
We are getting the mime data destroy notify called when we
destroy the surface in finalize. Trying to set the XSync counters
at this time is a) pointless and b) yielding an X error because
the counters have already been destroyed.
To avoid this, unhook the damage tracking before destroying
the surface.

https://bugzilla.gnome.org/show_bug.cgi?id=760188
2016-01-08 13:50:46 -05:00
Matthias Clasen
4d60b5b10c x11: Fix damage tracking hack
We are setting mime data with a destroy notify on the cairo
surface to get notified when cairo registers damage for the
surface (in that case, it clears the mime data, calling the
destroy notify). Unfortunately, the destroy notify is also
called when we remove the mime data ourselves, which was
not intentional.

Use a flag in the window impl struct to ignore the callback
when we are clearing the hook.
2016-01-08 13:44:36 -05:00
Matthias Clasen
3f56c530b3 Be more careful with floating point divisions
The assumption that MIN() takes care of all infinities here
turns out to be wrong. We were getting inf and -nan for some
combinations of 0 width/height and corners, leading to invalid
matrices and cairo errors.

https://bugzilla.gnome.org/show_bug.cgi?id=759668
2016-01-08 13:17:58 -05:00
Matthias Clasen
709cc08603 x11: Simplify drag cancel animation setup
Instead of creating an intermediate pixbuf, just render
the window surface onto the new surface. Doing things this
way lets us avoid the cairo_surface_mark_dirty() call in
gdk_pixbuf_get_from_window(), which is not generally safe
to call on 'random' surfaces - it asserts that the surface
has no mime data attached, and the X11 backend uses mime
data for damage tracking purposes...
2016-01-08 11:33:24 -05:00
Matthias Clasen
ea0084cd99 x11: Keep the drag window alive longer
We destroy the widget that is wrapped around the drag window
when the object data on the drag context gets cleared. Destroying
the window before that happens leads to unpleasantries. E.g. we may
try to access the frame clock, which doesn't exist anymore, and
things go downhill from there. So, keep the window alive for
a little longer.
2016-01-08 11:33:24 -05:00
Matthias Clasen
f9e504d70e wayland: Keep the drag window alive longer
We destroy the widget that is wrapped around the drag window
when the object data on the drag context gets cleared. Destroying
the window before that happens leads to unpleasantries. E.g. we may
try to access the frame clock, which doesn't exist anymore, and
things go downhill from there. So, keep the window alive for
a little longer.
2016-01-08 11:22:47 -05:00
Matthias Clasen
d3aea5c498 Forgotten file
One was forgotten in the dark -> inverse rename.
2016-01-08 11:12:55 -05:00
Matthias Clasen
000b5b9055 color editor: Set a name on the color sample
This can be used to tweak the style from CSS, via #editor-color-sample.
2016-01-08 11:10:02 -05:00
Lapo Calamandrei
91123adba7 Adwaita: remove some now uneeded selectors
...related to image-button sizing which is handled differently now.
2016-01-08 16:48:01 +01:00
Lapo Calamandrei
5de71413fe Adwaita: colorchooser and color button style rewrite
fixing https://bugzilla.gnome.org/show_bug.cgi?id=760169 in the
process.
2016-01-08 16:41:58 +01:00
Chun-wei Fan
d07f00d98f CJK Windows: Silence gtk_style_context_set_state() warnings
We need to update calls to gtk_style_context_set_state() in
gtkimcontextime.c, so that the state passed into that function would be in
line with what GtkStyleContext expects, due to updates in the CSS
machinery, as outlined in this link[1], which is based on information in
in Matthias' blog[2].

Doing so will silence the gtk_style_context_set_state() warnings, which is
emitted when a widget uses gtkimcontext on Windows with CJK IME, which will
in turn call gtkimcontextime.

[1]: http://feaneron.com/2016/01/04/quick-guide-to-port-an-app-for-gtk-3-20/
[2]: https://blogs.gnome.org/mclasen/2015/11/20/a-gtk-update/

https://bugzilla.gnome.org/show_bug.cgi?id=760314
2016-01-08 23:37:31 +08:00
Matthias Clasen
4eb333801b Revert "Translate GDK_KEY_KP_Decimal according to locale"
This reverts commit 7c7fde136e.

Too much controversy for this minor improvement.
See https://bugzilla.gnome.org/show_bug.cgi?id=756751
2016-01-08 08:59:02 -05:00
Matthias Clasen
d72e061bb9 Rename the HighContastInverse css files
Renaming the files from -dark to -inverse makes it more obvious
that this is not a dark variant in the sense of the 'prefer-dark'
setting, but rather a separate theme (sharing the same CSS).
2016-01-08 07:39:17 -05:00
Matthias Clasen
0dd013d372 Document caret CSS properties 2016-01-08 07:33:20 -05:00
Matthias Clasen
9f247e112b Deprecate cursor-color style properties
These have been replaced by CSS properties.
2016-01-08 07:33:20 -05:00
Matthias Clasen
9b86d6da2c Use the caret-color properties for drawing carets
Replace the cursor-color and secondary-cursor-color style
properties with the caret-color and -gtk-secondary-caret-color
CSS properties.

For the 'auto' value of these properties, we keep the same
behavior that we used to have when the style properties are
not explicitly set.
2016-01-08 07:33:20 -05:00
Matthias Clasen
fdba244c38 Add the caret-color CSS property
This property is defined in http://www.w3.org/TR/css3-ui/#caret-color.
We also add a -gtk-secondary-caret-color property, since GTK+ has
supported differently colored split cursors in the past. Unlike
CSS, we don't support the weakly defined auto keyword, and just
use currentColor as the initial value.
2016-01-08 07:33:20 -05:00
Timm Bäder
feba047574 gtk3-demo: Remove unused GtkCellView 2016-01-08 13:30:43 +01:00
Alberto Ruiz
496f0892fc introspection: This patch fixes nullable return values fixes for the following symbols in gtk
gtk_accel_group_query
  gtk_accel_group_from_accel_closure
  gtk_accel_label_get_accel_widget
  gtk_accessible_get_widget
  gtk_actionable_get_action_name
  gtk_app_chooser_get_app_info
  gtk_app_chooser_button_get_heading
  gtk_app_chooser_dialog_get_heading
  gtk_application_get_window_by_id
  gtk_assistant_get_nth_page
  gtk_binding_set_find
  gtk_builder_get_object
  gtk_builder_lookup_callback_symbol
  gtk_builder_get_application
  gtk_button_get_image
  gtk_cell_area_get_focus_from_sibling
  gtk_cell_renderer_start_editing
  gtk_cell_view_get_model
  gtk_cell_view_get_displayed_row
  gtk_clipboard_get_owner
  gtk_container_get_focus_child
  gtk_container_get_focus_vadjustment
  gtk_container_get_focus_hadjustment
  gtk_dialog_get_widget_for_response
  gtk_drag_get_source_widget
  gtk_drag_dest_get_target_list
  gtk_drag_source_get_target_list
  gtk_entry_completion_get_model
  gtk_entry_completion_compute_prefix
  gtk_expander_get_label_widget
  gtk_file_chooser_get_filename
  gtk_file_chooser_get_current_folder
  gtk_file_chooser_get_uri
  gtk_file_chooser_get_current_folder_uri
  gtk_file_chooser_get_preview_widget
  gtk_file_chooser_get_preview_file
  gtk_file_chooser_get_preview_filename
  gtk_file_chooser_get_preview_uri
  gtk_file_chooser_get_extra_widget
  gtk_file_chooser_get_filter
  gtk_file_chooser_native_get_accept_label
  gtk_file_chooser_native_get_cancel_label
  gtk_file_filter_get_name
  gtk_font_chooser_get_font_family
  gtk_font_chooser_get_font_face
  gtk_font_chooser_get_font
  gtk_font_chooser_get_font_desc
  gtk_font_chooser_get_font_map
  gtk_frame_get_label
  gtk_gesture_get_device
  gtk_gesture_get_window
  gtk_gl_area_get_error
  gtk_header_bar_get_title
  gtk_header_bar_get_subtitle
  gtk_header_bar_get_custom_title
  gtk_icon_info_get_filename
  gtk_icon_view_get_path_at_pos
  gtk_icon_view_get_model
  gtk_image_get_pixbuf
  gtk_image_get_animation
  gtk_label_get_mnemonic_widget
  gtk_label_get_attributes
  gtk_check_version
  gtk_menu_button_get_popup
  gtk_menu_button_get_menu_model
  gtk_menu_button_get_align_widget
  gtk_menu_button_get_popover
  gtk_menu_item_get_submenu
  gtk_menu_item_get_accel_path
  gtk_native_dialog_get_title
  gtk_native_dialog_get_transient_for
  gtk_notebook_get_nth_page
  gtk_notebook_get_tab_label_text
  gtk_notebook_get_menu_label
  gtk_notebook_get_menu_label_text
  gtk_notebook_get_group_name
  gtk_notebook_get_action_widget
  gtk_offscreen_window_get_surface
  gtk_offscreen_window_get_pixbuf
  gtk_paned_get_child1
  gtk_paned_get_child2
  gtk_places_sidebar_get_location
  gtk_places_sidebar_get_nth_bookmark
  gtk_plug_get_socket_window
  gtk_popover_get_default_widget
  gtk_progress_bar_get_text
  gtk_recent_filter_get_name
  gtk_recent_manager_lookup_item
  gtk_settings_get_default
  gtk_socket_get_plug_window
  gtk_stack_sidebar_get_stack
  gtk_stack_switcher_get_stack
  gtk_style_context_get_section
  gtk_style_context_get_parent
  gtk_style_context_get_frame_clock
  gtk_test_find_widget
  gtk_text_buffer_get_mark
  gtk_text_tag_table_lookup
  gtk_text_view_get_tabs
  gtk_text_view_toggle_cursor_visible
  gtk_text_view_get_window
  gtk_toolbar_get_nth_item
  gtk_tool_button_get_label
  gtk_tool_button_get_icon_name
  gtk_tool_button_get_label_widget
  gtk_tool_button_get_icon_widget
  gtk_tool_palette_get_drop_item
  gtk_tool_palette_get_drop_group
  gtk_tree_model_filter_convert_child_path_to_path
  gtk_tree_model_filter_convert_path_to_child_path
  gtk_tree_model_sort_convert_child_path_to_path
  gtk_tree_model_sort_convert_path_to_child_path
  gtk_tree_view_get_column
  gtk_tree_view_get_bin_window
  gtk_tree_view_column_get_widget
  gtk_tree_view_column_get_tree_view
  gtk_widget_get_frame_clock
  gtk_window_group_get_current_device_grab
  GtkTextBufferSerializeFunc
2016-01-08 12:18:23 +00:00
Olivier Fourdan
120088b15f wayland: Update parent of dialogs without transient
X11 has the notions of "transient for group", and while it's an ICCCM
violation, it's commonly used and documented that a window manager
would treat a window with transient_for set to None to transient for all
windows of its group.

gtk uses this when an application sets a dialog type window but does not
specify an explicit transient.

While this works on X11, there is no such thing as groups in Wayland and
the closest equivalent which is set_parent() in xdg-shell takes only one
parent. This is what is used for modal dialogs.

To get something similar in behavior to what is available on X11, a
solution is to update the parent() of the dialogs without transient when
the active surface changes.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=759161
2016-01-08 11:55:41 +01:00
Olivier Fourdan
28f011eb05 wayland: prefer subsurface when possible
Quite a few applications use GTK_WINDOW_POPUP to create various
temporary windows and place then on screen. That works fine on X11 but
on Wayland there is no global coordinate system for regular surfaces.

If the application is using a gdk temp window and set a parent with
gtk_window_transient_for(), the gdk wayland backend has all it needs to
create a subsurface that can be placed at will by the application.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=759738
2016-01-08 10:33:26 +01:00
Timm Bäder
d85b3fc60d revealer: Propagate draw event 2016-01-08 09:38:32 +01:00
Timm Bäder
711ffd648e GtkPopover: Protect against transparent backgrounds
If the background is transparent, we can't use it for the input shape,
since that will be empty. Draw a box with rounded corners irectly
instead, in fully opaque black.

https://bugzilla.gnome.org/show_bug.cgi?id=759905
2016-01-08 09:14:03 +01:00
Ben Gamari
fa66b271f8 gdkwindow-x11: Ensure that extended update counter is freed
I believe this lead to rampant leakage of SyncCounters by
gnome-terminal.

https://bugzilla.gnome.org/show_bug.cgi?id=760188
2016-01-07 21:13:42 -05:00
Matthias Clasen
a45b1d1e3c inspector: Sort themes in the various theme combos
It is nicer if the themes show up in a predictable order,
so sort them alphabetically.
2016-01-07 19:56:05 -05:00
Matthias Clasen
ec02f055ed inspector: Add HighContrastInverse to list of themes 2016-01-07 19:56:05 -05:00
Matthias Clasen
0e473a5f1c Rename HighContrast-dark to HighContrastInverse
For accessibility purposes, it is better to have this as a
separate theme than as a dark variant of the HighContrast theme.
2016-01-07 19:56:05 -05:00
Lapo Calamandrei
4925493e49 Adwaita: rounded corners on iconview selection 2016-01-08 01:39:16 +01:00
Lapo Calamandrei
c0275b508d Adwaita: fix calendar invisible selection 2016-01-08 01:39:16 +01:00
Matthias Clasen
5b3001b6d5 colorswatch: Fix the overlay
I misunderstood what the overlay is good for: We need to allocate
it the full size of the widget. since we are using it to render
a background gradient *over* the application-rendered color.

At the same time, save some 100 lines of code by using an icon
helper as gadget, instead of handling the icon manually.
2016-01-07 19:20:55 -05:00
Matthias Clasen
1b3bb244b6 color swatch: Fix up rendering
gtk_render_content_path is expecting the full box dimensions,
not just the content area. So, add the border before calling it.

Note it is still possible to have some separation between the
color and the border, by setting padding.
2016-01-07 18:38:31 -05:00
Daiki Ueno
f9e6ccd592 gtkbuilder: Install gettext ITS files
Recent gettext has a feature to allow consumer projects to supply their
own string extraction rules for XML files, in ITS format.

Gettext still ships the rule for *.ui, but it would be better
maintained in the upstream project.

https://bugzilla.gnome.org/show_bug.cgi?id=760202
2016-01-07 18:08:30 -05:00
Daniel Mustieles
b1f6925727 Updated Spanish translation 2016-01-07 23:15:11 +01:00
Daniel Mustieles
c9ee47333f Updated Spanish translation 2016-01-07 23:14:58 +01:00
Matthias Clasen
9e63e61b16 Implement transitions for radial gradients
This was missing in the initial implementation.
2016-01-07 16:30:19 -05:00
Matthias Clasen
a7e2a9d8d3 Don't interpolate between keywords
Transitioning between linear gradients like
linear-gradient(to top, yellow, green) and
linear-gradient(to left, yellow, green) was yielding
nonsensical results, with the gradient line jumping around
wildly. Fix this by falling back to stupid image interpolation
for these cases.
2016-01-07 16:13:26 -05:00
Kjartan Maraas
cd6ca291bd Updated Norwegian bokmål translation. 2016-01-07 21:54:51 +01:00
Timm Bäder
ca6d01a678 GtkCssGadget: Set valid clip values for invisible gadgets 2016-01-07 20:39:37 +01:00
Matthias Clasen
8ecba89991 color swatch: Remove a stray frame
When using a gadget, the border is free, no need to call
gtk_render_frame ourselves.
2016-01-07 14:08:26 -05:00
Timm Bäder
0b96b8a1ee GtkModelButton: Remove some margins
Now that we can use margins from css for this, remove the margins we set
in code and use css instead.
2016-01-07 19:37:18 +01:00
Timm Bäder
2f61bc1866 GtkModelButton: Remove always-zero variable 2016-01-07 19:37:18 +01:00
Eric Williams
bbfec07e06 Clarified the function docs for gtk_css_provider_load_from_data().
https://bugzilla.gnome.org/show_bug.cgi?id=760238
2016-01-06 22:42:37 -05:00
Matthias Clasen
10cc35405e wayland: Only do cursor name fallback for standard names
Always returning a left_ptr if we can't find anything better
broke firefox application-specific fallback for missing cursors.
Keep that working by only doing the fallback for the CSS cursor
names, not for things like hashes.

https://bugzilla.gnome.org/show_bug.cgi?id=760141
2016-01-06 14:57:42 -05:00
Matthias Clasen
d9befb9086 x11: Only do cursor name fallback for standard names
Always returning a left_ptr if we can't find anything better
broke firefox application-specific fallback for missing cursors.
Keep that working by only doing the fallback for the CSS cursor
names, not for things like hashes.

https://bugzilla.gnome.org/show_bug.cgi?id=760141
2016-01-06 14:57:42 -05:00
Matthias Clasen
b6e11d087c Add context-menu to the list of standard cursor names
Adwaita doesn't have this one, but we are falling to the
default cursor anyway.
2016-01-06 14:57:42 -05:00
Matthias Clasen
d76fb63ba8 Add a test for ltr vs rtl boxes.
This tests that horizontal boxes flip their child nodes
according to text direction to maintain the left-to-right
ordering of child nodes for both text directions.
2016-01-06 14:57:42 -05:00
Matthias Clasen
a519a1a928 CSS node tests: Add a way to test rtl vs ltr
CSS nodes have a linear sibling relationship; this is supposed
to correspond to left-to-right placement in horizontal arrangements.
This commit explicitly sets the text direction to rtl if the
filename ends in .rtl.ui, so we can test differences in node
tree layout between text directions.
2016-01-06 14:57:42 -05:00
Timm Bäder
47afccb41b GtkListBox: Optimize _get_row_at_y a bit
Use g_sequence_lookup for a binary search over the rows.
2016-01-06 16:02:59 +01:00
Timm Bäder
a9d5fa4cfe GtkListBox: get_row_at_y can return NULL 2016-01-06 16:02:58 +01:00
Rico Tzschichholz
83fc4d591a HighContrast: Fix make dist 2016-01-06 15:21:22 +01:00
Felipe Borges
98080e0289 printing: always propagate Collate value
https://bugzilla.gnome.org/show_bug.cgi?id=728344
2016-01-06 14:50:49 +01:00
Chun-wei Fan
1fec39ef0b Visual Studio builds: Use _USE_MATH_DEFINES
... to fix the build as some C99 math constant macros are being used, such
as M_SQRT2.
2016-01-06 21:12:19 +08:00
Wonchul Lee
215c28df28 docs: cleanup duplication of words
https://bugzilla.gnome.org/show_bug.cgi?id=760148
2016-01-06 09:02:14 +01:00
Matthias Clasen
f32362e82c HighContrast: Improve search bar appearance
Follow the generally white background we use everywhere else.
This is not perfect, we get double borders when the search bar
is shown, as can be seen in gtk3-widget-factory.
2016-01-05 22:33:20 -05:00
Matthias Clasen
aa9095ff72 HighContrast: Fix up action bar styling
Since HighContrast is not using different background colors
as much as Adwaita, we need to add borders to prevent things
from running into each other.
2016-01-05 22:22:47 -05:00
Matthias Clasen
643454147c HighContrast: Drop deprecated style properties 2016-01-05 20:39:16 -05:00
Matthias Clasen
56ca40996d HighContrast: Add a dark variant
This is just a quick experiment, and so I have another theme with
a dark variant to play with.
2016-01-05 19:25:06 -05:00
Matthias Clasen
474d6bec85 HighContrast: Add a missing unit 2016-01-05 16:54:40 -05:00
Matthias Clasen
907fade7d0 HighContrast: Fix sidebar borders 2016-01-05 16:53:03 -05:00
Matthias Clasen
39b76ec082 HighContrast: Fix checkboxes in selected context
Set a proper color so checks and radios don't disappear on the
black selection background.
2016-01-05 14:37:22 -05:00
Matthias Clasen
9ebb63c71f HighConstast: Some fixes for treeview headers 2016-01-05 14:19:58 -05:00
Matthias Clasen
d60fe93937 HighContrast: Keep spinbuttons from resizing on hover 2016-01-05 13:42:57 -05:00
Matthias Clasen
37ab99d1d2 HighContrast: Fix checks and radios 2016-01-05 13:42:57 -05:00
Matthias Clasen
c25b8e25f5 HighContrast: Some menu fixes 2016-01-05 13:42:57 -05:00
Matthias Clasen
fd57a552cf HighContrast: paned fixes
Mostly copied from Adwaita.
2016-01-05 13:42:57 -05:00
Cosimo Cecchi
0f3f2e7f9c HighContrast: more combobox fixes
Taken from Adwaita.
2016-01-05 10:01:54 -08:00
Paolo Borelli
c4996873dc docs: try to clarify widget_get_state_flags vs context_get_state 2016-01-05 18:46:56 +01:00
Matthias Clasen
4a9c6777a7 HighContrast: Some combobox fixes
Mostly copied from Adwaita.
2016-01-04 23:52:28 -05:00
Matthias Clasen
d17f89f6bf HighContrast: Fix frame styling 2016-01-04 23:45:13 -05:00
Matthias Clasen
a11c30d0df HighContrast: fix up color chooser theming
Mostly copied from Adwaita.
2016-01-04 23:28:32 -05:00
Matthias Clasen
32177aa03b HighContrast: Fix up stackswitcher
Copy Some of the more recent additions from Adwaita.
2016-01-04 22:08:53 -05:00
Matthias Clasen
c110ffcb1a HighContrast: No blue spinners
Spinners are drawing backgrounds now, so setting a blue
background color is pretty distracting.
2016-01-04 21:35:55 -05:00
Matthias Clasen
f63e8edec6 Make sure icons update on theme change
Gadgets don't connect to style-changed for widget nodes, and
GtkImage uses its widget node for the icon helper. The visible
effect of this is that symbolic icons don't change color when
switching to the dark variant of Adwaita.

Fix this by manually invalidating the icon helper.
2016-01-04 21:32:19 -05:00
Matthias Clasen
b387a966ce widget-factory: Make the notebook action truly circular
The sidebar-button class doesn't work out so well for this
since it has horizontal padding.
2016-01-04 21:32:19 -05:00
Cosimo Cecchi
637ade656a levelbar: loop over all block gadgets to determine min size
Instead of just picking the first. This is because the theme might set a
border on only one of them, like the HighContrast theme does.
2016-01-04 18:14:33 -08:00
Cosimo Cecchi
183bcb41ec levelbar: fix parameter confusion
We're always interested in the minimum size.
2016-01-04 17:56:50 -08:00
Cosimo Cecchi
beeefa1629 HighContrast: update to use -gtk-outline-radius 2016-01-04 17:50:24 -08:00
Cosimo Cecchi
bc66c0c31e HighContrast: update to use :hover 2016-01-04 17:49:41 -08:00
Cosimo Cecchi
2780865534 HighContrast: update to use :indeterminate 2016-01-04 17:48:59 -08:00
Cosimo Cecchi
b2b1b0e238 HighContrast: update to use :disabled 2016-01-04 17:46:43 -08:00
Matthias Clasen
bc020fdeb7 tests: Rework the way foreigndrawing works
Instead of the weird PathElt struct, generate a quick-n-dirty parser
that parses CSS selectors into GtkWidgetPath elements.

Based on a patch by Benjamin Otte.
2016-01-04 15:39:48 -05:00
Matthias Clasen
c543712551 Document radial gradient syntax 2016-01-04 13:59:48 -05:00
Matthias Clasen
d9a70bc56a Add a CSS style test for gradients
This mainly just tests that gradients are properly
reproduced by gtk_style_context_to_string.
2016-01-04 13:59:48 -05:00
Matthias Clasen
fcea12f790 Add some tests for radial gradient parsing
These are the examples from the CSS spec.
2016-01-04 13:59:24 -05:00
Matthias Clasen
f727ee5687 Implement CSS radial gradients
Implement parsing and drawing of radial gradients according to
http://www.w3.org/TR/css3-images/#radial-gradients.

Transitions are not implemented yet.
2016-01-04 13:59:24 -05:00
Christoph Reiter
f66191346c Mention GtkIconSize in all docs where the argument/return is annotated as taking an int instead of GtkIconSize
In https://bugzilla.gnome.org/show_bug.cgi?id=601425 the annotations
were changed to int as they not only take the predefined enum values
but also user defined values registered through gtk_icon_size_register()

As a result the typelib doesn't contain any information about
GtkIconSize for those arguments and the Python docstring only
shows the corresponding Python type "int".

This changes the argument docs to mention the type explicitly
so the Python doc generator can add a link to Gtk.IconSize
which contains the most useful predefined values.

https://bugzilla.gnome.org/show_bug.cgi?id=757411
2016-01-04 11:56:44 +01:00
Marek Černocký
10f71dd98c Updated Czech translation 2016-01-04 11:52:10 +01:00
Marek Černocký
77d9248e2a Updated Czech translation 2016-01-04 11:51:20 +01:00
Rico Tzschichholz
e213ec9e36 docs/gtk: Include css.xml 2016-01-04 10:16:45 +01:00
Rico Tzschichholz
2e0a3ec57a docs/gtk: Sort content_files/expand_content_files alphabetically 2016-01-04 09:53:24 +01:00
Piotr Drąg
d29bfb3c7d Updated POTFILES.skip 2016-01-04 08:27:02 +01:00
Chun-wei Fan
aa352168c9 config.h.win32.in: Update for _lock_file()
The Visual Studio versions that we support supports locking functions in
their CRT, so support that to optimize things a bit.  Also update the
config.h.win32.in so that its entries are more in line with the ones in
the autootols builds, and make sure that we use UNIX line endings.
2016-01-04 15:09:14 +08:00
Cosimo Cecchi
a009a50239 cssstyle: fix a compiler warning 2016-01-03 17:20:06 -08:00
Matthias Clasen
d8e1fd6079 Update expected output
The previous commit changed the format of the output
generated by the CSS style tests.
2016-01-03 17:23:59 -05:00
Matthias Clasen
cfa0884165 Improve formatting of CSS style prints
Add a newline after CSS properties, so things don't run into
each other.
2016-01-03 17:05:16 -05:00
Matthias Clasen
12be432df7 Skip GdkX11DeviceManagerCore in default value tests
We already skip the XI2 implementation, and the core
one needs the same treatment.
2016-01-03 16:14:43 -05:00
Matthias Clasen
e1634d18de Update expected output for CSS style tests
The format for CSS values changed slightly in one of the
previous commits.
2016-01-03 15:41:09 -05:00
Matthias Clasen
3c26aef826 Use a custom theme for CSS style tests
Use a custom, empty theme and stop importing reset-to-defaults.css.
This avoids overwriting initial values, so our initial value
filtering works better.
2016-01-03 15:39:55 -05:00
Matthias Clasen
2e921691d9 Redo CSS style printing
Drop the custom style printing implementation in gtkcssnode.c and
instead reuse the existing gtk_css_style_print function, extending
it a bit to suit our needs.

Instead of computing values, just recognize initial values by
having no CSS section. Also do away with the show-initial flag, and
just always filter out initial values. The flag can come back when
it is needed.
2016-01-03 15:36:48 -05:00
Matthias Clasen
d0e648d4f6 Update expected output for node and style tests
The previous commit changed the format of the output.
2016-01-03 14:41:43 -05:00
Matthias Clasen
0c52eca34c Move node printing to GtkCssNodeDeclaration
The node declaration has all the information we are printing
here (except for visibility). At the same time, redo the format
to print the information in selector format, and indicate
(in)visibility by enclosing the selector in square brackets.
2016-01-03 14:41:43 -05:00
Cosimo Cecchi
28e185dd1b tests: fix Makefile.am syntax
It requires a tab character, or the build will fail.
2016-01-03 11:33:19 -08:00
Cosimo Cecchi
dcaffe369f cssnode: fix a compiler warning 2016-01-03 11:25:45 -08:00
Matthias Clasen
489928cbb4 Fix the build 2016-01-03 12:05:57 -05:00
Matthias Clasen
f7a93c015c Forgotten file
I forgot to add this file to source control when the new tests
were initially added.
2016-01-03 12:02:11 -05:00
Felix Riemann
daa08862ff shortcuts: Separate gestures in search results
Gestures where shown separately from other shortcuts in the search
results before. This restores that behaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=760097
2016-01-03 17:07:23 +01:00
Felix Riemann
bd4b3091f6 shortcuts: Show icons and subtitles for gestures in search results
https://bugzilla.gnome.org/show_bug.cgi?id=760097
2016-01-03 17:07:23 +01:00
Matthias Clasen
2dd8d1ad53 Update expected results of a11y tests
All of these now have a harmless extra "panel".
2016-01-03 10:56:11 -05:00
Matthias Clasen
1aeaa33e68 lockbutton: Fix up the template
I forgot to clean this up when switching to a stack.
2016-01-03 10:42:13 -05:00
Matthias Clasen
7a01741575 Skip GdkX11DeviceManagerCore in notify tests
We already skip the XI2 implementation, and the core
one needs to the same treatment.
2016-01-03 10:34:40 -05:00
Matthias Clasen
9c39232ab3 assistant: Drop unnecessary frame
We can just style the sidebar box itself, no need for an
extra frame widget.
2016-01-03 10:33:54 -05:00
Matthias Clasen
adfb76dc7e lockbutton: Use a stack
The previous way of manually juggling the visibility of the
labels doesn't work anymore, now that gadgets of invisible
widgets don't allocate space anymore.
2016-01-03 09:55:30 -05:00
Matthias Clasen
ed5ebc0711 Add a css style test for currentColor 2016-01-03 09:19:31 -05:00
Matthias Clasen
33be60b0ab Add a css style test for inherit and initial 2016-01-03 09:19:31 -05:00
Matthias Clasen
1ec34ae085 Add a css style test for :first/last/only-child 2016-01-03 09:19:31 -05:00
Matthias Clasen
82a571e0ca Add a css style test for font inheritance 2016-01-03 09:19:31 -05:00
Matthias Clasen
905ab53c71 Add a test framework for CSS styles
This uses the same function for dumping CSS nodes and styles
as the CSS node test. It can be used to test aspects of inheritance
and matching, as well as initial values.

No actual tests yet.
2016-01-03 09:19:31 -05:00
Matthias Clasen
864693e5aa Add CSS node tests for levelbars 2016-01-03 09:19:31 -05:00
Matthias Clasen
0ce5075748 Add CSS node test for progressbars 2016-01-03 09:19:31 -05:00
Matthias Clasen
5c4efb09e2 Add a CSS node test for buttons 2016-01-03 09:19:31 -05:00
Matthias Clasen
78d715af22 Add a CSS node test for entries 2016-01-03 09:19:30 -05:00
Matthias Clasen
669ced3984 Add a CSS node test for notebooks 2016-01-03 09:19:30 -05:00
Matthias Clasen
d2c1203ef1 Add a test framework for CSS nodes
No actual tests yet.
2016-01-03 09:19:30 -05:00
Matthias Clasen
68edc47f6a Add a function to dump CSS nodes and styles
Add a gtk_style_context_to_string function that can serialize
a CSS node or tree of nodes, optionally including CSS properties
as well.

This will be useful in writing tests.
2016-01-03 09:19:30 -05:00
Cosimo Cecchi
a6624d803e infobar: remove unneeded gadget
It turns out we don't really need to use a separate gadget for the
infobar, if all we do is chaining up to the parent GtkBox which already
uses a gadget.
Just remove all the boilerplate.
2016-01-03 01:02:12 -08:00
Cosimo Cecchi
ef8a5fc542 window: remove unused variables 2016-01-03 00:54:16 -08:00
Cosimo Cecchi
424898e071 levelbar: consolidate code into single function 2016-01-03 00:45:43 -08:00
Cosimo Cecchi
a6e7e72d53 levelbar: port to use gadgets
We now use one gadget for the trough, and one for each block.
2016-01-03 00:45:43 -08:00
Cosimo Cecchi
971f1a9b31 levelbar: split out a function 2016-01-03 00:44:05 -08:00
Cosimo Cecchi
feb741babf infobar: port to use a gadget 2016-01-03 00:44:05 -08:00
Cosimo Cecchi
f246dc1c85 infobar: trivial code cleanups 2016-01-03 00:44:05 -08:00
Cosimo Cecchi
d8b6dbd888 menubar: prefer early return 2016-01-03 00:44:05 -08:00
Cosimo Cecchi
700286c6d8 menubar: port to use a gadget 2016-01-03 00:44:05 -08:00
Cosimo Cecchi
96f10c0b72 menubar: use gtk_container_class_handle_border_width() 2016-01-03 00:44:05 -08:00
Cosimo Cecchi
4328a3a24b HighContrast: remove unused selector
There's no header-bar-separator style class.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
a9d07b6ec6 Adwaita: remove unused selector
There's no header-bar-separator style class.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
28911c595b HighContrast: update for separators deprecations
HighContrast still has a long way to go, but let's get at least
separators working again.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
7dacc7836f HighContrast: reparse theme
For some reason, this got accidentally changed in a previous commit.
This is just the output of running parse-sass.sh again.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
39beebd2cb win32: remove ineffective selector
That style property is deprecated, but the combobox does not have a
separator anymore.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
908deb1bdc widget: deprecate separator style properties
They're not used in GTK anymore. Also remove them from the default
theme.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
64a06adfc0 treeview: don't use wide-separators/separator-height
Those style properties are on their way out; instead, use min-height
with the separator style class to obtain the height.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
2eb7e6a85a treeview: prefer positive polarity in if block 2016-01-03 00:42:51 -08:00
Cosimo Cecchi
1f690ddbfa separator: don't read wide-separators style property
The notion of a separator being wide or not does not make sense when a
theme can set any CSS property on it, and
separator-width/separator-height are on their way out for
min-width/min-height.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
0740f23c77 menuitem: don't read wide-separators or separator-height
Separators inside menus are working completely through CSS since
GtkMenuItem has been ported to use a gadget.
Remove this unused code from here.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
eff8865ab1 separatortoolitem: don't use custom sizing/rendering
Instead, just rely on the CSS gadget; we can stop using wide-separators,
separator-height and separator-width, and at the same time deprecate the
space-size style property of GtkToolbar.
2016-01-03 00:41:32 -08:00
Cosimo Cecchi
55e80f9379 separatortoolitem: trivial code cleanups 2016-01-03 00:41:32 -08:00
Cosimo Cecchi
ea25985b67 toolbar: deprecate GtkToolbarSpaceStyle and space-style style property
This is completely unused already.
2016-01-03 00:41:32 -08:00
Cosimo Cecchi
48596090af toolbar: port to use a gadget 2016-01-03 00:41:32 -08:00
Cosimo Cecchi
d64304997f toolbar: use gtk_container_handle_border_width() 2016-01-03 00:41:32 -08:00
Cosimo Cecchi
10c222649e toolbar: trivial code cleanup 2016-01-03 00:41:32 -08:00
Felix Riemann
6df8bc2e1a GtkBindings: Fix CSS key in example docs
gtk-key-bindings was renamed to -gtk-key-bindings in d267b8e0.

https://bugzilla.gnome.org/show_bug.cgi?id=760082
2016-01-03 02:04:11 -05:00
Matthias Clasen
d83e9539c5 Fix stylecontext tests to work
Some of the tests don't work anymore because they test
features of saved style contexts that have changed, and some
now trigger deprecation warnings.
2016-01-03 01:25:07 -05:00
Matthias Clasen
6da57d61d5 Skip GdkX11DeviceManagerCore in finalize tets
We already skip the XI2 implementation, and the core
one needs to the same treatment.
2016-01-03 01:23:35 -05:00
Christoph Reiter
6d77b9f316 gtkwindow: fix first allocation size
67ab00e01e removed the fake configure code in gtk_window_show() and
replaced it with a simple gtk_widget_realize(). The initial allocation
code in realize() only allocates the natural size or the last requested
size which now no longer is set, resulting in a too small first allocation.

This builds a configure request to compute the allocation size instead
which includes default size, CSD etc..

This problem could be seen in case of a GtkPaned in a GtkWindow with a
default size set and the pane position set as well. The first allocation
would be the natural size of the GtkPaned which would clamp the pane
position if too larg. Only the second allocation would fill the parent
window using the now wrong pane position.

https://bugzilla.gnome.org/show_bug.cgi?id=759705
2016-01-02 22:12:12 -05:00
Matthias Clasen
e93d64e4c3 Revert "Revert "window: Remove suspicious branch""
This reverts commit 2438a06d54.

See https://bugzilla.gnome.org/show_bug.cgi?id=759705
2016-01-02 22:12:12 -05:00
Cosimo Cecchi
6322b1f647 levelbar: fix a crash
We should not try to access a block with an index that exceeds the
number of blocks in the widget.
2016-01-02 18:44:07 -08:00
Matthias Clasen
8109520d4e separator toolitem: Respect ::draw property
This was lost when I converted the widget to use a gadget.

https://bugzilla.gnome.org/show_bug.cgi?id=760018
2016-01-02 20:55:37 -05:00
Cosimo Cecchi
0401146896 spinbutton: fix a typo 2016-01-02 15:31:23 -08:00
Cosimo Cecchi
664bbe12ba menuitem: move chaining up to draw inside gadget
This is more consistent with what other widgets do.
2016-01-02 15:31:21 -08:00
Marek Černocký
d3bf07594e Updated Czech translation 2016-01-02 21:13:40 +01:00
Timm Bäder
2b2a538629 testframe: Pass correct state to GtkStyleContext API 2016-01-02 15:52:20 +01:00
Timm Bäder
3758762119 GtkImage: Simplify _set_from_icon_name
We don't need to strdup icon_name since that will happen in
_gtk_icon_helper_set_icon_name anyway.
2016-01-02 15:46:45 +01:00
Andika Triwidada
9704f46b38 Updated Indonesian translation
(cherry picked from commit 45b3c553a9)
2016-01-02 12:27:26 +00:00
Andika Triwidada
0a1b746bf8 Updated Indonesian translation
(cherry picked from commit 1aa5f92784)
2016-01-02 12:22:44 +00:00
Rafael Fontenelle
420993af0e Updated Brazilian Portuguese translation
(cherry picked from commit e96c689aa1)
2016-01-02 06:48:37 +00:00
Christoph Reiter
558fb1ecdd gtkdnd-quartz: fix gtk_drag_begin_internal
gtk_drag_begin_internal was changed to take a GtkImageDefinition
instead of a GtkIconHelper. This adjusts the quartz variant
accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=759607
2016-01-01 15:05:23 +01:00
Alberts Muktupāvels
a90926c7f0 gtkheaderbar: update window buttons also on realize
After bb34db6 _gtk_header_bar_update_window_buttons function is
called before application menu is set. This caused regression -
app menu button is initially hidden.

https://bugzilla.gnome.org/show_bug.cgi?id=756618
2016-01-01 15:55:37 +02:00
Yosef Or Boczko
788de42ffa Updated Hebrew translation 2015-12-31 19:39:41 +02:00
Yosef Or Boczko
7c55841110 Updated Hebrew translation 2015-12-31 19:38:23 +02:00
Yosef Or Boczko
962ff554dc Updated Hebrew translation 2015-12-31 18:49:30 +02:00
Yosef Or Boczko
71c9e39127 Updated Hebrew translation 2015-12-31 18:47:57 +02:00
Руслан Ижбулатов
a8ae549ed0 Fix include path for gtkiconfactoryprivate.h 2015-12-30 21:57:29 +00:00
Руслан Ижбулатов
91bb91dbb9 Fix to compile for C libraries with no flockfile
Also use MS variant of flockfile, if available
(requires MSVCRT compatible with MSVCR90 or newer).
2015-12-30 21:57:29 +00:00
Cosimo Cecchi
f357ef5610 scrolledwindow: add missing deprecation flag 2015-12-30 10:44:12 -08:00
Cosimo Cecchi
354eb5678b menuitem: fix a crash when reserve_indicator is TRUE
In that case, code expects an arrow gadget to be present but we're not
creating it in every occurrence.
Fix it by ensuring there will be an arrow gadget when reserve_indicator
is TRUE.
2015-12-29 18:31:10 -08:00
Cosimo Cecchi
3740c7f092 toolitem: fix a copy/paste typo 2015-12-29 16:33:53 -08:00
Cosimo Cecchi
79c045ed80 scrolledwindow: port to use a gadget 2015-12-29 13:51:06 -08:00
Cosimo Cecchi
7c0f0e882a scrolledwindow: deprecate scrollbars-within-bevel style property
These days all the themes set it to TRUE, and it's not clear what
happens with overlay scrollbars...
2015-12-29 13:51:06 -08:00
Cosimo Cecchi
09835b4c39 viewport: don't render a background over the bin window
GtkViewport currently tries to draw a background over the bin window.
The feature is a bit broken at the moment, as it does not take into
account padding that might have been set on the GtkViewport, but in
general it does not seem very useful, and goes somewhat against the CSS
box model where every widget/gadget is responsible to draw its own
background. For a fix, we could either have the viewport gain a "bin"
gadget, or we could stop drawing the background.

As it isn't clear that there are any users of this feature, stop drawing
the background; a client can achieve the same effect by drawing the
background on the widget inside the viewport itself.
2015-12-29 13:50:19 -08:00
Cosimo Cecchi
5daede51f7 viewport: port to use a gadget
This will get us margin support, among other things, and simplifies the
code.
2015-12-29 13:50:19 -08:00
Cosimo Cecchi
71d7b10dad viewport: trivial code cleanup 2015-12-29 13:50:19 -08:00
Cosimo Cecchi
a37129fd60 viewport: use gtk_container_class_handle_border_width()
No need to do this manually.
2015-12-29 13:50:19 -08:00
Benjamin Otte
acbff85402 gadget: Handle visibility
As GtkCssNode has the visibility concept, it makes sense to mirror it in
gadgets.

Do what visibility does in widgets: Hidden gadgets can't be drawn or
allocated and request a 0x0 size.

Note that just like widgets, gadget visibility must not be changed in
size request, allocate or draw handlers.

GtkWidget::child-visible has no equivalent yet, code will have to
emulate that manually.
2015-12-29 13:48:58 -08:00
Matthias Clasen
9950764f12 Drop deprecated pango-utils api
Copy the few parsing functions we need.
2015-12-29 08:09:23 -05:00
Ben Iofel
1e1af62bee Raleigh: Don't use deprecated pseudo classes 2015-12-28 20:30:51 -08:00
Matthias Clasen
31e97b33e1 Set ID on css node right away
Previously, the ID was only set on the CSS node as a side-effect
of calling gtk_widget_get_style_context. This was showing up
in CSS style tests as nodes lacking their IDs.
2015-12-28 23:18:06 -05:00
Matthias Clasen
0042f9b414 Fix a comment 2015-12-28 22:37:33 -05:00
Matthias Clasen
e71f7d713e Add a transfer annotation
This was confusing me momentarily, so add an explicit annotation.
2015-12-28 22:37:22 -05:00
Mario Blättermann
9ae32adf3c Updated German translation 2015-12-28 21:16:11 +00:00
Matthias Clasen
ba1636be87 statusicon: Avoid criticals
The code handles the possibility of pixbuf being NULL, but
after b411c31832 we must be
prepared for surface already being NULL. Pointed out by
Albert Muktupāvels,

https://bugzilla.gnome.org/show_bug.cgi?id=759917
2015-12-28 10:27:08 -05:00
Matthias Clasen
e8ba058396 checkbutton: Update state initially
Without this, the check node starts out without the :dir(ltr)
state, at least.
2015-12-28 10:24:02 -05:00
Matthias Clasen
eb09bee492 css: Deprecate :sorted pseudo class
This was used with regions in GtkTreeView, and is not used
anymore, so deprecate it.
2015-12-27 18:37:19 -05:00
Matthias Clasen
2b27096fc3 Fix outline-radius css parser test
The outline-radius properties all got a -gtk prefix.
2015-12-27 17:32:45 -05:00
Matthias Clasen
ab182126df Fix the pseudo-classes-known css test
The test needs to be updated for the renamed :dnd pseudo class.
We also need to add a .errors file for the deprecation errors
that we are now producing.
2015-12-27 17:32:30 -05:00
Matthias Clasen
f3069d7e94 css: Redo the pseudo class deprecation warnings
Putting the deprecated class behind the official variant does
not work for the case of :focus and :focused - we were matching
:focus and leave a dangling 'ed'. So, put the deprecated classes
before the official variant, and explicitly mark them as deprecated.
2015-12-27 17:32:11 -05:00
Matthias Clasen
c4ca671a9e test-css-parser: Add a way to generate output
Use test-css-parser --generate foo.css to see the parser
output on stdout. This makes it more convenient to add new
css files to the testsuite.
2015-12-27 17:26:45 -05:00
Matthias Clasen
8bfbb2c103 Cosmetic change 2015-12-26 21:42:10 -05:00
Matthias Clasen
80a91722e5 inspector: Don't leak weak references
These come back to bite us when the inspector is no longer around
at the end of the program.

https://bugzilla.gnome.org/show_bug.cgi?id=759768
2015-12-26 21:42:10 -05:00
Matthias Clasen
787f600d33 inspector: Remove some dead code
Since commit bffeae6203, the
tree path is not used for anything useful anymore, so do away
with it entirely.
2015-12-26 21:42:10 -05:00
Matthias Clasen
f669ccca66 docs: Add missing value syntax for border-image 2015-12-26 21:42:10 -05:00
Руслан Ижбулатов
1f154f576a Fix a surface leak
Was introduced as part of b79a187d47.
Results in memory leaks (and GDI objects leaks on W32).
2015-12-27 02:02:19 +00:00
Carlos Soriano
5404e124b6 gtkframe: format fix 2015-12-26 20:52:53 +01:00
Carlos Soriano
79b6d48983 gtkframe: remove unused variable
And fix the compiler warning
2015-12-26 20:52:31 +01:00
Matthias Clasen
26d8688cb4 Redo the CSS docs
Split the CSS docs off from the GtkCssProvider docs and
give them their own chapter. Among other things, this commit
introduces more or less complete definitions of the syntax for
the supported selectors, a complete list of all supported
properties, and definitions for their values. This includes
documentation for GTK+-specific properties such as -gtk-icon-source.
2015-12-25 22:58:52 -05:00
Matthias Clasen
b3dbf3f41c Drop the :dnd syntax altogether
This was only introduced a few weeks ago. We don't need to keep
this around, now that we support the proper CSS syntax.
2015-12-25 22:58:28 -05:00
Matthias Clasen
39b4efb24e Adwaita: Don't use deprecated pseudo classes 2015-12-25 22:58:28 -05:00
Matthias Clasen
c998fae5ac Add deprecation warnings for pseudo states
Emit a deprecation error in the cases where we have
a CSS name for a custom pseudo class.
2015-12-25 22:58:28 -05:00
Matthias Clasen
158dbbc88f Use CSS syntax for drop highlighting
I hadn't noticed the :drop() pseudo state in the CSS4 Selectors
spec when I added this a while ago. This commit renames
GTK_STATE_FLAG_DND to GTK_STATE_FLAG_DROP_ACTIVE and adds
:drop(active) as equivalent to the :dnd pseudo state.
2015-12-25 22:58:28 -05:00
Matthias Clasen
b3c1454dcc Add docs for GtkCssSection 2015-12-25 22:58:28 -05:00
Carlos Garnacho
9290aa7c46 GdkSeat: Use g_intern_static_string() for signal names
https://bugzilla.gnome.org/show_bug.cgi?id=759857
2015-12-25 14:26:58 +01:00
Marek Černocký
9f06474bcc Updated Czech translation 2015-12-25 10:50:39 +01:00
Lapo Calamandrei
81da0b86f3 Adwaita: fix notebook close button 2015-12-24 00:02:12 +01:00
Lapo Calamandrei
157276b455 Adwaita: use min-height/width for entry and button sizing 2015-12-23 20:35:06 +01:00
Lapo Calamandrei
08f928a4ea Adwata: fix switch slider border clash 2015-12-23 18:57:04 +01:00
Florian Müllner
e20826fe03 label: Deny drag gesture when not selectable
We don't actually do anything when the label is not selectable
except for consuming the event, which breaks for instance titlebar
drags with labels that contain links. Simply deny the gesture in
that case to allow the event to bubble up normally.

https://bugzilla.gnome.org/show_bug.cgi?id=759798
2015-12-23 14:07:00 +01:00
Chun-wei Fan
c0bc0a9ac2 gtkcssnumbervalue.c: Include fallback-c89.c to fix build
... on older Visual Studio versions, where isinf() is not available, and
copy the isinf() implementation from gdk/fallback-c89.c to
gtk/fallback-c89.c.
2015-12-23 19:23:17 +08:00
Matthias Clasen
d0d8671c02 Forgotten files 2015-12-23 01:57:22 -05:00
Matthias Clasen
b6d287aab5 widget: Be safe against windows losing their frame clock
gdk_widget_get_frame_clock can return NULL. In particular,
this can happen when the drag window is destroyed at the end
of a DND operation. Handle this gracefully when it happens.
2015-12-22 23:57:06 -05:00
Alberts Muktupāvels
8ffa8b3a49 gtksettings: notify after property reset 2015-12-23 05:55:47 +02:00
Matthias Clasen
ef71eabfc5 Add parser tests for animation properties
This adds tests for animation-name, animation-duration,
animation-timing-function, animation-iteration-count,
animation-direction, animation-play-state, animation-delay
and animation-fill-mode.
2015-12-22 22:29:38 -05:00
Matthias Clasen
8f44383253 Add a parser tests for transition properties
This adds tests for transition-property, transition-delay
and transition-timing-function.
2015-12-22 22:29:38 -05:00
Matthias Clasen
2b6ab1b8bd Add parser tests for min-width and min-height 2015-12-22 22:29:38 -05:00
Matthias Clasen
a0487f0516 Add parser tests for border-image properties
This adds tests for border-image-source, border-image-repeat,
border-image-slice and border-image-width.
2015-12-22 22:29:38 -05:00
Matthias Clasen
d92111256f fix printing of numbers
We should be printing infinite, not inf.
2015-12-22 22:29:22 -05:00
Matthias Clasen
6b497bcf81 Trivial changes 2015-12-22 22:29:22 -05:00
Cosimo Cecchi
efb8e5bd43 menuitem: don't use content allocation to resize the GdkWindow
This is a fallout from the gadget conversion.
2015-12-22 15:36:00 -08:00
Matthias Clasen
e9aea98969 widget-factory: Rename outline radius in css
Rename all outline*radius properties to -gtk-outline*radius.
2015-12-22 16:20:09 -05:00
Matthias Clasen
ad87ebb5e7 Adwaita: Adapt to previous commit
Rename all outline*radius properties to -gtk-outline*radius.
2015-12-22 16:19:18 -05:00
Matthias Clasen
f61b7ba797 Prefix outline radius CSS properties
These are not in any CSS specifications, so mark them as GTK+
additions by giving them a -gtk prefix. The old names still work.
2015-12-22 16:18:10 -05:00
Matthias Clasen
2d6ce0da08 Add some docs to GtkIcon 2015-12-22 15:03:15 -05:00
Matthias Clasen
5f330418ae Add some docs to GtkBuiltinIcon 2015-12-22 15:03:15 -05:00
Cosimo Cecchi
a5a5091555 stylecontext: fix gtk-doc comment syntax 2015-12-22 11:56:23 -08:00
Cosimo Cecchi
22c9169883 Adwaita: don't set deprecated style property 2015-12-22 11:53:07 -08:00
Matthias Clasen
c8206ca698 Adwaita: Fix app-notification theming
The way to disable the frame border has changed.
2015-12-22 13:53:43 -05:00
Matthias Clasen
f5f80b40c3 Fix GtkFrame padding
This was showing up in the app-notification in widget-factory.
2015-12-22 13:53:43 -05:00
Cosimo Cecchi
23d8791a47 combobox: remove unused struct member
The box was removed a while ago.
2015-12-22 10:53:03 -08:00
Cosimo Cecchi
8d0ad79238 Adwaita: remove combobox separator styling
The separator does not exist anymore.
2015-12-22 10:49:21 -08:00
Cosimo Cecchi
ef41bd7112 combobox: deprecate shadow-type style property
It does not add any value to what can be achieved through regular CSS
styling.
2015-12-22 09:29:43 -08:00
Cosimo Cecchi
f5628f0439 combobox: port to use a gadget
Wrap the size request and allocate code into a GtkCssCustomGadget. This
makes margins work on GtkComboBox.
2015-12-22 09:29:43 -08:00
Cosimo Cecchi
a90d928a34 combobox: use a private variable when possible
Instead of dereferencing the same variable over and over.
2015-12-22 09:29:43 -08:00
Cosimo Cecchi
f03268eabe combobox: trivial code cleanup 2015-12-22 09:29:43 -08:00
Cosimo Cecchi
ebc7b59b44 combobox: remove unneeded check
The combobox always has a window.
2015-12-22 09:29:43 -08:00
Cosimo Cecchi
5764c09272 combobox: use GtkIcon to render button arrow
We can now use the newly introduced GtkIcon widget to properly render
the arrow in the combobox with CSS.
2015-12-22 09:29:43 -08:00
Cosimo Cecchi
9b7473b633 Introduce GtkIcon private class
This is an utility widget that wraps a GtkBuiltinIcon for situations
where using a real widget is more convenient than a gadget.
2015-12-22 09:29:43 -08:00
Matthias Clasen
164e8ed6bd menuitem: Simplify separators
For regular separators, we just rely on standard CSS background
rendering nowadays. Do the same for separators in menus.

https://bugzilla.gnome.org/show_bug.cgi?id=759765
2015-12-22 10:30:51 -05:00
Matthias Clasen
2438a06d54 Revert "window: Remove suspicious branch"
This reverts commit 67ab00e01e.

See https://bugzilla.gnome.org/show_bug.cgi?id=759705
for a case where this makes a difference.
2015-12-22 07:36:58 -05:00
Lapo Calamandrei
a64bf81a9f Adwaita: fix bogus rounded corners on split headerbars
we have to do some assumptions for css selectors limits for this
particular case, so for split headerbars to work correctly the
actual haderbars need not to have the titlebar class applied.
2015-12-22 11:53:27 +01:00
Kjell Ahlstedt
939be8a24b GdkSeat: Add G_BEGIN_DECLS and G_END_DECLS
https://bugzilla.gnome.org/show_bug.cgi?id=759771
2015-12-22 10:33:41 +01:00
Chun-wei Fan
7a05432843 gtk/gtkbuiltinicon.c: Fix build
The gtk_builtin_icon_get_default_size_property returns a const char *,
in a way such that some compilers insist that something that is of a
pointer value be returned, so fix that by replacing 0 with NULL.
2015-12-22 16:35:58 +08:00
Paolo Borelli
7f17468afc W32: avoid code duplication in gdkdevice-win32|virtual
The same get_position function is cut and pasted in the two
classes.
2015-12-22 09:31:56 +01:00
Daiki Ueno
75b3eec7a6 inspector: Avoid crash when canceling at startup
When clicking "Cancel" on the "Do you want to use GTK+ Inspector?"
dialog, unregister the update_debugging idle handler.  Also, steal
reference to 'inspector_window' while gtk_destroy_widget(), to make
further gtk_window_update_debugging() calls as a no-op.

https://bugzilla.gnome.org/show_bug.cgi?id=759764
2015-12-22 12:52:27 +09:00
Matthias Clasen
cc50652db5 Adwaita: Fix overwrite cursors in entries
GtkEntry uses the background color to render the text over
the block cursor. A transparent background color makes that
not work.
2015-12-21 20:17:35 -05:00
Matt Watson
11ad60d386 flowbox: remove unused prelight code
It was causing needless redraws

https://bugzilla.gnome.org/show_bug.cgi?id=759757
2015-12-21 14:52:11 -08:00
Matthias Clasen
5c704621ac Fix import css parser tests
Don't use nonexisting properties here either
2015-12-21 16:33:50 -05:00
Alberts Muktupāvels
54c32fae1e x11: create GdkSeat also in GdkX11DeviceManagerCore
There are at least few cases when GdkX11DeviceManagerXI2 will not
be used. Make sure that we have GdkSeat in such cases.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-21 20:58:28 +01:00
Matthias Clasen
31f319d1c7 css parser test: Drop remaining made-up properties
These are not used anymore in any tests, and the css parser
doesn't support parsing custom properties anymore.
2015-12-21 14:53:09 -05:00
Matthias Clasen
ece3d33858 Fix css parser integer test
Use margin-top instead of a made-up property.
2015-12-21 14:52:06 -05:00
Matthias Clasen
ce859a7c65 Update css parser value none test
The test is affected by icon-shadow being renamed and by
engine being deprecated.
2015-12-21 14:44:00 -05:00
Matthias Clasen
0fb84c5a68 Fix the css parser value initial test
This was affected by the recent renaming of icon-shadow to
-gtk-icon-shadow. Also, it produces an error now because
engine is deprecated.
2015-12-21 14:37:09 -05:00
Matthias Clasen
474f5b7784 Fix the css parser value inherit test
This was affected by the recent renaming of icon-shadow to
-gtk-icon-shadow. Also, it produces an error now because
engine is deprecated.
2015-12-21 14:35:11 -05:00
Matthias Clasen
db094092ae Update font-weight css parser test
This is affected by the recent fix for parsing font-weight.
2015-12-21 14:32:01 -05:00
Matthias Clasen
ea651dcd31 Update font-family css parser test
There are no errors here.
2015-12-21 14:31:10 -05:00
Matthias Clasen
b931821f5e Update the css parser unknown pseudo-class test
Use an existing property instead of a made-up one.
2015-12-21 14:29:17 -05:00
Matthias Clasen
8ff127940f Update the css parser selector test
Use an existing property instead of the made-up one, here.
2015-12-21 14:27:52 -05:00
Matthias Clasen
1f298c385f Drop the css parser enum test
We are no longer using and non-css properties, and css enums
are all parsed with custom code.
2015-12-21 14:25:46 -05:00
Matthias Clasen
e567f23bcd Update another css parser test
This test was using the engine property, which has
been deprecated and thus generates an error now.
Instead, use the font property.
2015-12-21 14:18:51 -05:00
Matthias Clasen
dcc3dd1211 Update css parser test for declarations
Use existing CSS properties instead of made-up ones.
2015-12-21 14:14:36 -05:00
Matthias Clasen
0035d526c3 test-css-parser: Drop unused property
The rgba-property is no longer used in any tests, drop it.
2015-12-21 14:11:10 -05:00
Matthias Clasen
6eb4102bf2 Update css parser tests for colors
Use the color property instead of a made-up rgba-valued property.
2015-12-21 14:10:20 -05:00
Matthias Clasen
a21025e096 test-css-parser: Drop unused property
The border-property is no longer used in any tests, drop it.
2015-12-21 14:07:08 -05:00
Matthias Clasen
b56980eba2 Update css parser test for borders
Use the border-image-width property instead of a made-up
border-valued property.
2015-12-21 14:06:07 -05:00
Matthias Clasen
0c9c6b882e Update border-radius-shorthand tests
The name of the css file is in the error output, so we
have to update that after the file was recently renamed.
2015-12-21 14:01:03 -05:00
Matthias Clasen
01f2d4dd0f Update pseudo-class test
We have some more pseudo-classes now, and some are printed
out with their CSS name.
2015-12-21 13:59:24 -05:00
Matthias Clasen
6d86ce516d test-css-parser: Drop unused properties
We don't have any tests involving these style
properties, so don't install those.
2015-12-21 13:57:26 -05:00
Matthias Clasen
a5ccef7470 Don't test parsing boolean values in css
CSS doesn't have any boolean properties.
2015-12-21 13:51:23 -05:00
Carlos Garnacho
fc2879108d wayland: Don't trigger grab on missing capabilities
Those might not be currently there in the first place.
2015-12-21 19:14:21 +01:00
Matthias Clasen
3075dac106 image: Don't assume baseline parameters are non-NULL
The GetSize callback *can* assume that minimum and natural are
non-NULL. Buy minimum_baseline and natural_baseline can and
will be NULL, so handle that. This was causing crashes e.g. in
pavucontrol.
2015-12-21 12:55:12 -05:00
Cosimo Cecchi
485c28d300 menu: port arrow rendering to use a GtkBuiltinIcon
At the same time, remove one spurious background/frame rendering, and
simplify the code a great deal.
2015-12-21 09:22:16 -08:00
Cosimo Cecchi
729801c2a1 menuitem: trivial doc improvement 2015-12-21 09:22:16 -08:00
Cosimo Cecchi
105b45dce0 cssgadget: print more information when warning 2015-12-21 09:22:16 -08:00
Cosimo Cecchi
5611e81bbc cssgadget: fix fallback case
We should be resetting the height here, not the width.
2015-12-21 09:22:16 -08:00
Cosimo Cecchi
655132b87c menu: deprecate double-arrows style property
It does not sound like a good idea anymore to have a style property
change the layout of the menu this drastically.
2015-12-21 09:22:16 -08:00
Cosimo Cecchi
b664ba50c0 menu: deprecate arrow-placement style property
It does not sound like a good idea anymore to have a style property
change the layout of the menu this drastically.
2015-12-21 09:22:16 -08:00
Lapo Calamandrei
8a0a11dae4 Adwaita: set scrollbar style props in a general wildcard
trying to make webkit happy.
2015-12-21 16:58:03 +01:00
Lapo Calamandrei
7c6ca26bfb Adwaita: fix split headerbar styling
applications with split headerbars has a container in the titlebar
slot so the .titlebar style there needs to be reset. Since we can't
go backward with selectors I assumed that any csd application
sports a headerbar hence relying on that styling and resetting
the .titlebar styleclass.
2015-12-21 16:18:04 +01:00
Matthias Clasen
6f889e832c css: Support CSS names for pseudo states
What we call :insensitive is called :disabled in CSS, and
:inconsistent is :indeterminate. Recognize these names, but
still support the old ones.
2015-12-21 08:26:58 -05:00
Matthias Clasen
2599ca4d9f Adwaita: Attempt a fixing split headers
Remove decorations from headerbars which are wrapped in some
other containers (like boxes, or paneds), to prevent double
decorations in those cases.
2015-12-21 07:46:37 -05:00
Matthias Clasen
698fe18521 Add missing tests to Makefile.am 2015-12-21 06:58:29 -05:00
Matthias Clasen
3daeb70182 Fix the build 2015-12-21 06:45:32 -05:00
Matthias Clasen
d081b309d5 Add some css parser tests
These tests exercise many allowed ways to specify various
properties.
2015-12-21 06:28:25 -05:00
Lapo Calamandrei
a54fadced6 Adwaita: make progressbars and scales the same size 2015-12-21 11:50:56 +01:00
Lapo Calamandrei
124923213f Adwaita: progressbar sizing and progress component positioning
shrinked progressbars a bit and moved the progress component start
and end over the trough border.
2015-12-21 11:28:45 +01:00
Matthias Clasen
436a258bb0 Fix a typo 2015-12-20 23:50:40 -05:00
Matthias Clasen
0473736499 Fix parsing of font-weight
The parser was turning a 400 into a 200 and a 700 into a 500.
2015-12-20 17:51:47 -05:00
Matthias Clasen
0520ca3bdf buttonbox: Fix size request
A copy-paste mistake was making us always request too little
space, causing the buttons to be jumbled or cut off.

https://bugzilla.gnome.org/show_bug.cgi?id=759664
2015-12-20 17:03:06 -05:00
Matthias Clasen
6a67df79a8 inspector: Avoid criticals in the css editro
We can't keep text iters around after text buffer has been
changed. Just clear the list errors when the buffer changes
before we've passed it again.
2015-12-20 14:43:14 -05:00
Michael Catanzaro
c3d611fcf2 entry: Fix typo 2015-12-20 11:52:30 -06:00
Aurimas Černius
e37e867048 Updated Lithuanian translation 2015-12-20 15:41:08 +02:00
Matthias Clasen
ea01921d09 modelbutton: Stop saving cairo state
GtkBuiltinIcon does this now on its own.
2015-12-20 01:04:59 -05:00
Matthias Clasen
9ac80c2510 checkbutton: stop saving cairo state
GtkBuiltinIcon now does this on its own.
2015-12-20 01:04:13 -05:00
Matthias Clasen
db7f269c03 Some updates to the CSS docs
Remove references to regions and engines, emphasize
element names over type names, update the list of
pseudo-states.
2015-12-20 01:03:38 -05:00
Cosimo Cecchi
c9e27636b6 checkmenuitem: port indicator gadget to GtkBuiltinIcon
Saves a lot of code.
2015-12-19 21:22:37 -08:00
Cosimo Cecchi
ce6cd49475 menuitem: port arrow gadget to GtkBuiltinIcon
Saves a lot of code.
2015-12-19 21:22:37 -08:00
Cosimo Cecchi
22ec899f23 menuitem: simplify code
Only cast once.
2015-12-19 21:22:37 -08:00
Cosimo Cecchi
aadc13c4ec builtinicon: save/restore cairo context when rendering 2015-12-19 21:22:37 -08:00
Cosimo Cecchi
4ec99db368 checkmenuitem: deprecate indicator-size style property
We can now use min-width/min-height.
2015-12-19 21:22:37 -08:00
Cosimo Cecchi
5a87b5bbce menuitem: deprecate toggle-spacing style property
We can move this to just use the actual GtkCssGadget of the menu item.
2015-12-19 21:21:16 -08:00
Cosimo Cecchi
3af5c83cd3 checkmenuitem: use a gadget for the check indicator
This will make margins and other CSS properties work correctly on the
indicator.
2015-12-19 21:21:16 -08:00
Cosimo Cecchi
0e24d6cd85 theme: fix menu check/radio styling
This is a leftover from the CssNode port of GtkCheckMenuItem and
GtkRadioMenuItem.
2015-12-19 21:21:16 -08:00
Cosimo Cecchi
b602dc2eed menuitem: trivial cleanup 2015-12-19 21:21:16 -08:00
Cosimo Cecchi
871a8c0e16 checkmenuitem: prefer early return 2015-12-19 21:21:16 -08:00
Cosimo Cecchi
7959c3fb6e menuitem: deprecate arrow-scaling style property
With this, we can also remove the custom measure function of the arrow
gadget.
2015-12-19 21:21:16 -08:00
Cosimo Cecchi
2d5d7d8cf2 menuitem: convert arrow rendering to GtkCssGadget
This also deprecates the arrow-spacing style property, which can be now
replaced with a simple margin.
2015-12-19 21:21:16 -08:00
Cosimo Cecchi
f49a5bf116 menuitem: deprecate width-chars style property
Instead, we can just set min-width.
2015-12-19 21:21:16 -08:00
Cosimo Cecchi
f2adb5779f menuitem: port to gadgets
This is not a complete conversion yet - more changes will come in later
commits.
2015-12-19 21:21:16 -08:00
Cosimo Cecchi
11d9da08a9 menuitem: use gtk_container_class_handle_border_width() 2015-12-19 21:21:16 -08:00
Cosimo Cecchi
35ed13ac54 menuitem: really ignore horizontal-padding
This style property has been documented as been ignored for a long time,
but we were still reading it in some cases.
2015-12-19 21:21:16 -08:00
Matthias Clasen
f792d20507 statusbar: Deprecate style properties
We were not really using the shadow-type style property anyway,
so lets just deprecate it. Themes can directly theme the frame.
2015-12-19 23:53:31 -05:00
Matthias Clasen
57dd855d10 Adwaita: Drop some deprecated style properties
These can now be replaces with min-width/min-height.
2015-12-19 23:24:27 -05:00
Matthias Clasen
c0683d9267 checkbutton: Fix regression from builtin icon
The leaking of cairo transforms from builtin icon drawing
was causing the label to be drawn at the wrong position.
2015-12-19 23:23:09 -05:00
Matthias Clasen
f7236b261b modelbutton: Fix state confusion
Checked buttons were getting the wrong image.
2015-12-19 21:56:05 -05:00
Matthias Clasen
f0fba02dca Adwaita: Try harder to fix arrow rendering
Fiddle with specificity to keep hovered modelbutton arrows
from rendering background.
2015-12-19 20:46:26 -05:00
Matthias Clasen
7aeb57cdfd modelbutton: Hide checks initially
Manually constructed model buttons were always ending up
with a check. Fix that by hiding the indictator node initially.
2015-12-19 20:16:51 -05:00
Matthias Clasen
0b7226e96e Adwaita: Fix treeview headers
The borders went missing on these, at some point.

https://bugzilla.gnome.org/show_bug.cgi?id=759567
2015-12-19 17:34:21 -05:00
Matthias Clasen
bca4755228 modelbutton: Use a builtin icon for the arrow
No need to do this manually.
2015-12-19 14:53:57 -05:00
Matthias Clasen
d36c93b91b expander: Fix drawing in rtl
GtkBuiltinIcon leaves the cairo context in unclean state
when drawing, work around that.
2015-12-19 11:24:27 -05:00
Matthias Clasen
7d801a4f69 Fix a case a height/width confusion 2015-12-19 11:24:27 -05:00
Matthias Clasen
d51de8cff8 expander: Use a builtin icon
This saves quite a bit of code.
2015-12-19 11:24:27 -05:00
Dušan Kazik
22738ad5af Updated Slovak translation 2015-12-19 13:46:14 +00:00
Pedro Albuquerque
5da6947927 Updated Portuguese translation 2015-12-19 07:37:02 +00:00
Pedro Albuquerque
bb3e4feee6 Updated Portuguese translation 2015-12-19 07:33:52 +00:00
Matthias Clasen
f54e0a283b label: Allocate gadget before using it
Move the gtk_css_gadget_allocate call before the
gtk_label_update_layout_width call. This fixes the
statusbar label in widget-factory page 2 coming
up fully ellipsized.
2015-12-19 00:33:20 -05:00
Benjamin Otte
35e98dce9b notebook: Sync menu labels with page list in visibile_cb
It's where it changes. Size requests have nothing to do with that.
2015-12-19 06:13:56 +01:00
Benjamin Otte
c3548328f7 notebook: Don't allocate during size requests
wat?
2015-12-19 06:13:56 +01:00
Benjamin Otte
dd90e020a2 label: Don't use _gtk_mis_get_padding_and_border()
The function takes into account CSS padding and border, which these days
is handled by the gadget code. Use gtk_misc_get_padding() instead.
2015-12-19 06:13:56 +01:00
Christoph Reiter
47325a827b imagedefinition: The storage type is not a boolean 2015-12-19 06:13:56 +01:00
Matthias Clasen
a3fd5a010b Simplify actionbar
We don't need a frame widget here, just render a top border on the
box.
2015-12-18 22:57:16 -05:00
Matthias Clasen
b90fa7dcd1 Adwaita: fix action bar styling
Make action bar buttons have some padding again.
2015-12-18 22:37:57 -05:00
Matthias Clasen
ac65952f0d icon helper: suppress style_changed when transient
Transient nodes should not propagate style-changed signals
that can cause widgets to get reallocated. This was causing
treeviews and iconviews with pixbuf cells to be constantly
resized and redrawn.
2015-12-18 20:53:02 -05:00
Matthias Clasen
7acb670e70 Add more icon entry tests
This test shows that changing icon types works.
2015-12-18 19:38:19 -05:00
Matthias Clasen
18e8842a7e entry: Don't clear when setting icons
Clearing the icon doesn't appear to be necessary with
todays code, and it has the unfortunate side-effect of
temoorarily hiding the icon's window, which breaks grabs
and makes us miss the button release event when the icon
is changed from a button press handler.
2015-12-18 19:38:07 -05:00
Matthias Clasen
6f5b19a0a5 css node: Use g_set_object
Replace unref + assignment + ref combinations by g_set_object_calls.
2015-12-18 16:56:04 -05:00
Matthias Clasen
51ba8421c3 entry: Remove some dead code
These defines are no longer used.
2015-12-18 10:55:26 -05:00
Timm Bäder
e8aa9b0440 Add a way to highlight resizing widgets
https://bugzilla.gnome.org/show_bug.cgi?id=759586
2015-12-18 16:20:19 +01:00
Timm Bäder
20a6ee30b7 GtkWidget: Don't mix code and declarations 2015-12-18 16:08:22 +01:00
Matthias Clasen
666e4135e8 expander: Deprecate style properties
This can all be done with CSS properties now.
2015-12-18 09:26:16 -05:00
Matthias Clasen
53787d29ad expander: Let gadget render focus
This lets us drop lots of allocation fiddling, and reduces
the code that is consulting the style properties we want
to get rid of.
2015-12-18 08:29:49 -05:00
Matthias Clasen
d81f8c1025 box: Add a way to get the gadget
This will be used in GtkButtonBox.
2015-12-18 07:37:52 -05:00
Matthias Clasen
acd339a9a5 buttonbox: Convert to gadgets
Set a css name and use a gadget for button box allocation and
drawing.
2015-12-18 06:52:35 -05:00
Matthias Clasen
2e25407638 Fix a problem with entry gadgets
place_windows is accessing the gadgets allocation, so make sure
to allocate the gadget before calling it.
2015-12-17 15:17:23 -05:00
Daniel Mustieles
fab31e16ed Updated Spanish translation 2015-12-17 19:14:57 +01:00
William Hua
54fa65f544 gdkborder: change types from gint16 to gint 2015-12-17 12:56:35 -05:00
William Hua
5190d010d9 gtkborder: restore original struct definition
We're going to add back the original struct definition removed by
a6e4de28, because using the typedef breaks all sorts of things like
gtkmm and WebKit, and having separate struct definitions allows us to
change the types in GdkBorder from gint16s to gints without breaking
ABI.
2015-12-17 12:56:35 -05:00
Paolo Borelli
8c355d8fe6 Win32: call dnd exit when finalizing the display
Since we init dnd when opening the display, call the corresponding
exit function (which is unused at the moment) when finalizing the
display.
2015-12-17 17:18:02 +01:00
Paolo Borelli
2e5616b27e Win32: move CoInitialize to dnd init
Functions requiring CoInitialize are called just in two places:
 - the filechooser thread which calls its own CoInitializeEx
 - the dnd code

Moving CoInitialize in the dnd specific init is cleaner and
we can pair it with the corresponding CoUninitialize since
CoUninitialize should be called as many times as CoInitialize.
Note that it is ok to call this function multiple times, so it
will not break if another codepath will need it in the future.

The patch also replaces the deprecated CoInitialize with the
equivalent call to CoInitializeEx (already used in the filechooser).
2015-12-17 17:18:01 +01:00
Timm Bäder
f6b0067718 GtkSeparator: Don't leak the gadget 2015-12-17 14:51:34 +01:00
Matthias Clasen
35c243b26f entry: use a gadget
Use a gadget for the entry. Selection and progress still
just use a CSS node. Most things seem to work correctly
with non-zero margin or padding.
2015-12-17 00:01:58 -05:00
Lionel Landwerlin
776778efc8 inspector: Ensure clip is always shown 2015-12-17 01:14:31 +00:00
Matthias Clasen
117ab50922 inspector: Always show clip
It is less confusing than hiding it sometimes.
2015-12-16 19:24:43 -05:00
Matthias Clasen
0e82076527 gadget: Don't warn about unset clip
Instead of warning about an unset clip, simply ignore
empty content clips.
2015-12-16 19:14:39 -05:00
Matthias Clasen
7778c237e6 cellview: Convert to gadgets 2015-12-16 19:07:26 -05:00
Matthias Clasen
f3c95e1c63 gadget: Avoid warning for empty containers
Empty boxes end up setting the clip to { 0, 0, 0, 0}, so warning
for a width or height of 0 triggers false positives. Instead,
initialize the clip to clearly invalid values.
2015-12-16 17:52:47 -05:00
Matthias Clasen
09d9674d69 gadget: Add more information to warnings
We have the gadget at hand, so we should print out some
information that helps tracking down where it comes from.
2015-12-16 17:41:04 -05:00
Matthias Clasen
083a17acd4 gadget: Update docs
Make it clear that out_clip must be set.
2015-12-16 17:32:24 -05:00
Matthias Clasen
ec5596ce20 gadget: Warn if clip is not set
This leads to hard-to-track-down drawing errors, so better
warn explicitly about it.
2015-12-16 17:27:14 -05:00
Matthias Clasen
2417184a1f frame: Fix gadget conversion
The GtkCssAllocateFunc must set the clip to meaningful values.
2015-12-16 17:12:12 -05:00
Matthias Clasen
576028bdec frame: Convert to gadgets
As part of this conversion, remove the hardcoded padding around
the label.

Unfortunately, we cannot use the main gadget for drawing the frame
decoration, since we want to draw a custom border instead of the
stock css border that gadgets insist on drawing for us. Therefore,
add an extra gadget with name border and use it just for rendering
the frame.
2015-12-16 15:15:18 -05:00
Carlos Garnacho
3be4971e05 GtkPopover: Ensure we unset modality before unparenting the popover
Otherwise the gtk_grab_remove() calls on widget destruction will happen
on the default window group, which may leave the real window group
of the popover with a dangling pointer if it is not the default one.

This could be seen on the inspector, open a popover in the properties
list and close the window with alt-F4.
2015-12-16 20:47:25 +01:00
Benjamin Otte
197e42efd8 label: Position the text properly
The PangoLayout needs to be positioned according to the content
allocation of the gadget, not the widget's allocation.
2015-12-16 20:39:51 +01:00
Benjamin Otte
2e362eafc7 cssnode: Redo first/last-child change tracking
Invisible nodes don't change the first/last-child status of the nodes
after/before them. That means we don't have to just check the state of
the adjacent node when modifying this state, but all their siblings
until we hit a visible node.

The same way, a node is not the first child if it has no previous
sibling, it is the first child if it has no previous visible sibling.
This is important for caching in the global lookup cache.
2015-12-16 19:55:50 +01:00
Benjamin Otte
36653bea41 checkbutton: Use a builtin icon
Also, add support to uiltin icons to look up the default size from a
style property.
2015-12-16 19:55:50 +01:00
Matthias Clasen
abbd6b11f6 switch: Deprecate style properties
CSS min-width and min-height on the slider node fit this
perfectly. We still fall back to the slider-width and
slider-height style properties if the CSS properties are
not set.
2015-12-16 13:53:13 -05:00
Matthias Clasen
4e05148bef Simplify some code
Deal with the min-width/min-height fallback the same way
as in GtkBuiltinIcon.
2015-12-16 13:53:13 -05:00
Carlos Garnacho
3f7eefb922 inspector: Use seat grabs for the "inspect widget" feature
And remove some usages of GdkDeviceManager API.
2015-12-16 19:47:07 +01:00
Carlos Garnacho
32c9db8600 GtkTreeView: Add ignore deprecation statements
We still need access to floating devices at places.
2015-12-16 19:47:07 +01:00
Carlos Garnacho
4f9f3f04c0 GtkWindow: Add ignore deprecation statements
We still need access to floating devices at places
2015-12-16 19:47:07 +01:00
Carlos Garnacho
4a7589ea12 GtkWindow: Avoid GdkDeviceManager API
We can iterate over the seats' pointers, instead of over master pointers.
2015-12-16 19:47:07 +01:00
Carlos Garnacho
0f98f225d1 GtkWidget: Add some ignore deprecation statements
We still need access to floating devices here.
2015-12-16 19:47:07 +01:00
Carlos Garnacho
04d7bd49d0 GtkMenu: Avoid GdkDeviceManager API
We used to pick a master pointer "at random", use the default seat pointer
instead.
2015-12-16 19:47:07 +01:00
Carlos Garnacho
26f3d02f03 GtkComboBox: Avoid GdkDeviceManager API
We used to pick a master pointer "at random", use the default seat pointer
instead.
2015-12-16 19:47:06 +01:00
Carlos Garnacho
e2c8d3c680 scrolledwindow: Remove unneeded code
We no longer take a grab here, no need to undo it on grab_notify
2015-12-16 19:47:06 +01:00
Carlos Garnacho
24afce5650 x11: Make fallback window dragging use seat grabs
Also, gdk_seat_ungrab() will undo the implicit grab when EWMH dragging
is used.
2015-12-16 19:47:06 +01:00
Carlos Garnacho
7ead57be8c x11: Add some ignore deprecation statements
In those places we still need access to floating devices, or we need to
use the GdkDeviceManager as its GdkEventTranslator interface.
2015-12-16 19:47:06 +01:00
Carlos Garnacho
c3f1565c18 x11: Avoid gdk_device_manager_get_client_pointer()
We can use the pointer of the default seat instead.
2015-12-16 19:47:06 +01:00
Carlos Garnacho
1fbf2fe4d7 wayland: Avoid GdkDeviceManager APIs
In most places, we can do with the pointer/keyboard of the default seat
instead of the client pointer. We can also remove some code from
gdk_input_init() because we know for sure there's no floating devices to
care about here.
2015-12-16 19:47:06 +01:00
Carlos Garnacho
598dedfe36 broadway: Add a few ignore deprecations statements around GdkDeviceManager
There's places where we still need to deal with floating devices, which are
unseen by seats. Ignore deprecations and keep using GdkDeviceManager until
we can forget about floating devices.
2015-12-16 19:47:06 +01:00
Carlos Garnacho
3e1e02c2bc GdkDisplay: Add a few ignore deprecations statements around GdkDeviceManager
There's places where we still need to deal with floating devices, which are
unseen by seats. Ignore deprecations and keep using GdkDeviceManager until
we can forget about floating devices.
2015-12-16 19:47:06 +01:00
Carlos Garnacho
50859d9efe GdkWindow: Add a few ignore deprecations statements around GdkDeviceManager
There's places where we still need to deal with floating devices, which are
unseen by seats. Ignore deprecations and keep using GdkDeviceManager until
we can forget about floating devices.
2015-12-16 19:47:06 +01:00
Carlos Garnacho
644fa138c3 GdkDisplay: Iterate through seats' pointers/keyboards in older grab functions
Instead of using the GdkDeviceManager.
2015-12-16 19:47:06 +01:00
Carlos Garnacho
ce7bb7c739 GdkWindow: Iterate through seats' pointers/keyboards in older grab functions
Instead of using the GdkDeviceManager.
2015-12-16 19:47:05 +01:00
Carlos Garnacho
7a926cc7e0 gdkevents: Fallback to the event device seat
There's places where we don't set a seat yet, plus the places
outside GTK+ where events are created, we should warn and fall
back to the master device seat with these.
2015-12-16 19:47:05 +01:00
Carlos Garnacho
b0d72a36d8 gdkevents: Ensure the seat data is copied in events 2015-12-16 19:47:05 +01:00
Carlos Garnacho
c70da9b7ae gdk: Set seat on events generated in common code 2015-12-16 19:47:05 +01:00
Cosimo Cecchi
13b9515e63 border: silence a GIScanner warning 2015-12-16 10:40:18 -08:00
Cosimo Cecchi
ea3df24735 gadget: fix copy/paste error in documentation 2015-12-16 10:38:05 -08:00
Cosimo Cecchi
990dc9961a gdkevents: fix a compiler warning 2015-12-16 10:35:46 -08:00
Matthias Clasen
0291978acc check button: Deprecate indicator-size
CSS min-width/min-height can do just the same. We still fall
back to the indicator-size style property if the CSS properties
are not set.
2015-12-16 13:11:24 -05:00
Matthias Clasen
bb67a06bd6 check button: Deprecate and ignore ::indicator-spacing
This can be done just as well with CSS margins, so
do that instead for Adwaita.
2015-12-16 12:27:53 -05:00
Matthias Clasen
86ecdc7a44 model button: Document iconic layout
Document how the CSS nodes look if iconic is TRUE. Add
a .model style class for this case and use it in Adwaita.
2015-12-16 11:37:49 -05:00
Matthias Clasen
2f544655f9 Revise CSS node documentation
Clarify the use of brackets in the CSS node diagrams:
[] means optional nodes or classes, <> means child widgets.
2015-12-16 10:58:47 -05:00
Benjamin Otte
fe9301ac1b widget-factory: Make things compile again
1e1064398c broke the build.

When I run make, I should make sure to run it in the right directory.
And not in the gtk/ subdirectory that will never build widget-factory...
2015-12-16 16:28:34 +01:00
Benjamin Otte
1e1064398c widget-factory: Disconnect clipboard watcher on close
The clipboard emit events after the button we connected it to was
already destroyed (on application close for example), so make sure we
don't try to use that dead button.
2015-12-16 15:44:52 +01:00
Olivier Fourdan
b456db8cf4 wayland: Check transient loop
Gdk Wayland backend walks up the transient windows tree, but does not
check for cycles when doing so.

As a result, if two or more windows are transient to each other, the
Wayland gdk backend will enter an infinite loop.

While this is clearly a bug in the application, gtk+/gdk should be more
robust and handle such errors more gracefully.

To avoid looping infinitely at various point in the code, check for a
possible loop when setting the transient relationship and deny the
request to set a window transient for another if that would create a
loop.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=759299
2015-12-16 14:11:11 +01:00
Emmanuele Bassi
0b19197493 Fix the fix to the last commit
I should not push while compilation is still going on
2015-12-16 12:42:27 +00:00
Emmanuele Bassi
00102e35ea Fix previous commit
The scale parameter was missing.
2015-12-16 12:41:16 +00:00
Lars Uebernickel
1f07625705 gdk_pixbuf_get_from_window: honor device scale
gdk_pixbuf_get_from_window() paints the given window onto a new cairo
surface. Create that new surface with the same device scale as the
window so that the result is not scaled down on hidpi screens.

This is similar to 657a43e (which was reverted), but doesn't modify the
behavior of gdk_pixbuf_get_from_surface().

https://bugzilla.gnome.org/show_bug.cgi?id=757147
2015-12-16 13:07:58 +01:00
Bastien Nocera
a56a8a8c02 shortcuts: Make sure that hidden shortcuts stay hidden
When doing a gtk_widget_show_all() on the shortcuts window,
accelerators for both RTL and LTR directions are being shown.

Make sure that no-show-all is set by default on hidden shortcuts, and
updated if the widget direction changes.

https://bugzilla.gnome.org/show_bug.cgi?id=759541
2015-12-16 12:22:58 +01:00
Matthias Clasen
6c91f5670c 3.19.5 2015-12-15 23:57:06 -05:00
Matthias Clasen
5db1dad869 paned: Initialize clip properly
This was causing problems in the case when only one of the paned
children is visible - we would use uninitialized memory, leading
to invalide clip regions. Concretely, the signal tab in the inspector
would sometimes not render at all.
2015-12-15 23:56:47 -05:00
Benjamin Otte
42fdfb6af4 renderborder: Actually draw the path as one element
Avoids spurious lines that can sometimes be seen going towards the
center of the widget.
2015-12-16 05:15:04 +01:00
Benjamin Otte
fab181fcfa builtinicon: Change the way size is handled
Make min-width/height have preference over the set default size. This
allows shrinking the widget. The default size is only used if min-width
is not set (or explicitly set to 0.
2015-12-16 04:46:23 +01:00
Benjamin Otte
9d56a076cc gadget: Add builtin icon gadget
This is to be used in all the places where we now call
gtk_render_activity()/option()/check() etc that in turn call the icon
render function.
2015-12-16 04:46:23 +01:00
Benjamin Otte
d3cf3fd267 rendericon: Move a function
The function is identical if used for builtin icons and regular icons
(as per iconhelper). So split it out in a way that doesn't assume
either.
2015-12-16 04:46:22 +01:00
Matthias Clasen
152326bd24 paned: Allocate the handle input area properly
Drop the margin misuse and use the border allocation of the
handle gadget. We use negative margins to make the border allocation
larger without pushing the paned children out.
2015-12-15 21:59:04 -05:00
Matthias Clasen
b14dc6b5a4 gadget: Add api to get the border allocation
This can be useful for giving input windows the right size.
2015-12-15 21:58:45 -05:00
Matthias Clasen
5aec427c1a paned: Fix size allocation
We were passing negative widths to height-for-width calls that
didn't expect this.
2015-12-15 21:58:45 -05:00
Benjamin Otte
26d42771ef progressbar: Change the way the progress gadget gets size
Size of the progress element now grows also when it's close to 0 size.

Previously the size was clamped to the minimum size, now it starts
growing from the minimum size.
So for a 100px trough with a 10px min size progress, the sizes of the
progress element change like this:
        old     new
0%      10      10
5%      10      14
10%     10      19
20%     20      28
50%     50      55
100%    100     100
2015-12-16 01:50:01 +01:00
Benjamin Otte
bf130da741 cssimage: Handle 0x0 images
0x0 images can happen when we fail to load an image - or when we
successfully load a 0x0 image.
2015-12-16 01:50:00 +01:00
Benjamin Otte
a11de0da6b stylecontext: Builtin images can be (and are) transformed
So don't special-case them out.
2015-12-16 01:50:00 +01:00
Benjamin Otte
75d7f7e756 css: Move enum
I want to use it for a gadget, so it's better in the generic file.
2015-12-16 01:50:00 +01:00
Matthias Clasen
65b056142b Really undo the deprecation of separator style properties
I hit the wrong one in the previous commit. For good measure,
undo depecation for all separator-related style properties.
They are still in use.
2015-12-15 19:45:35 -05:00
Matthias Clasen
9b408d911a shortcuts: Fix the circular stack switcher
The buttons need to set min-width now, to make this work.
2015-12-15 19:41:05 -05:00
Matthias Clasen
db684d853d Undo deprecation of the wide-separators style property
This was premature, as this style property is still used
by GtkTreeView and GtkMenu.
2015-12-15 19:41:05 -05:00
Piotr Drąg
60e8cf743d Updated POTFILES.skip 2015-12-16 01:09:00 +01:00
Matthias Clasen
1b174a6f16 shortcuts: Fix view filtering
When adding invisible groups to the pages/columns, we were
mistakenly creating new columns because the row count
stayed at zero.

https://bugzilla.gnome.org/show_bug.cgi?id=759517
2015-12-15 18:40:51 -05:00
Matthias Clasen
5d3f28192c gtk-demo: Add another shortcuts window example
The boxes shortcuts, taken straight from boxes.
This demonstrates a problem with view filtering.
2015-12-15 18:39:39 -05:00
Matthias Clasen
2bb80a9bb2 gadget: Fix a thinko in baseline adjustment
We are making the allocation smaller, so the baseline
needs to get smaller too, not bigger.
2015-12-15 18:15:16 -05:00
Carlos Garnacho
47632df9a5 gdkevents: Avoid gdk_device_manager_get_client_pointer()
It's now deprecated.
2015-12-15 23:24:59 +01:00
Carlos Garnacho
ee549c9ded GdkWindow: Listen to ::seat-removed in order to remove pointer info
Our actions on ::device-removed only actually applied to master
pointers, so listening to GdkDisplay::seat-removed and operating
on the seat pointer is equivalent.
2015-12-15 23:22:00 +01:00
Carlos Garnacho
b4aa498fe7 GdkWindow: Iterate through seats in gdk_window_set_cursor()
And set the pointer on all seat pointers, equivalent to the master
pointer lookup we were performing with GdkDeviceManager
2015-12-15 23:20:40 +01:00
Carlos Garnacho
ff686344c9 GdkWindow: Avoid gdk_device_manager_get_client_pointer()
It's now deprecated
2015-12-15 23:19:49 +01:00
Carlos Garnacho
1349ffa0db gtkdnd: Avoid gdk_device_manager_get_client_pointer()
It's now deprecated
2015-12-15 23:18:10 +01:00
Carlos Garnacho
56c6c722d1 GtkPlug: Avoid gdk_device_manager_get_client_pointer()
It's now deprecated
2015-12-15 23:17:53 +01:00
Carlos Garnacho
3d516449d4 GtkTooltip: Avoid gdk_device_manager_get_client_pointer()
It's now deprecated
2015-12-15 23:17:37 +01:00
Carlos Garnacho
7333d7e8bb GtkTreeView: Avoid gdk_device_manager_get_client_pointer()
It's now deprecated
2015-12-15 23:17:22 +01:00
Carlos Garnacho
253bf3fd38 GtkWidget: Avoid gdk_device_manager_get_client_pointer()
It's now deprecated
2015-12-15 23:17:07 +01:00
Carlos Garnacho
6ac16dc4a6 GtkWindow: Avoid gdk_device_manager_get_client_pointer()
It's now deprecated
2015-12-15 23:16:11 +01:00
Matthias Clasen
06b28a610b flowbox: Don't render focus erroneously
The gadget render function should only return TRUE if the
widget has the focus, and wants it rendered.
2015-12-15 15:10:08 -05:00
Carlos Soriano
8858c3aaa0 gtkplacesviewrow: plural form for available space
We were not supporting plural form of the available space, which
is a problem in some languages.
However in this case is kind of a difficult matter, since we use a
formatted string from glib with g_format_size.

To fix it, use the same behavior as g_format_size to decide when
it should be used a plural form or not.

https://bugzilla.gnome.org/show_bug.cgi?id=759491
2015-12-15 14:59:13 -05:00
Matthias Clasen
4eeeb5811d listbox: Fix an oversight in the row gadget conversion 2015-12-15 14:12:50 -05:00
Matthias Clasen
cf6523d9f2 Add some more updates 2015-12-15 14:06:55 -05:00
Matthias Clasen
fdb9625f4f modelbutton: Remove debug spew 2015-12-15 13:14:49 -05:00
Matthias Clasen
af4e7b7a8e Updates for 3.19.5 2015-12-15 11:00:48 -05:00
William Hua
a6e4de2884 gdkborder: add GdkBorder to gdktypes.h 2015-12-15 10:13:03 -05:00
William Hua
c6bd3ddb8a gdkwindow: move GdkWindowTypeHint to gdktypes.h 2015-12-15 10:13:03 -05:00
Matthias Clasen
03bb75b1cf gdk: Add gdk_drag_drop_done to the docs 2015-12-15 10:00:21 -05:00
Matthias Clasen
246fcd6563 Complete docs for gtk_stack_get_interpolate_size 2015-12-15 09:48:16 -05:00
Matthias Clasen
44baf19330 paned: Add a deprecation note 2015-12-15 08:41:16 -05:00
Matthias Clasen
d891bb815b checkbutton: Remove dead code 2015-12-15 08:41:16 -05:00
Matthias Clasen
e02c21fdd8 button box: Deprecate style properties
These can all be replaced by standard CSS properties.
2015-12-15 08:41:16 -05:00
Matthias Clasen
49e24b05b5 flowbox: convert to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
3b264ea555 flowbox: Convert child to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
29accad89a listbox: Convert to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
9fb3716259 listbox: Convert rows to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
c2fc1cff32 paned: Convert to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
9c63170e70 stack: Convert to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
48e543fbc8 Adwaita: Update separator toolitem styling
Don't set a background for these, since we now draw background.
2015-12-15 08:41:16 -05:00
Matthias Clasen
e480fa3841 separator toolitem: Convert to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
f2dd4350b2 css node: Warn more
gtk_css_node_insert_before/after can easily create cycles
which later lead to stack overflows. Even if we're not
catching all cycles here, at least we can detect obviously
invalid arguments, such as inserting a node next to itself.
2015-12-15 08:41:16 -05:00
Matthias Clasen
e2bc77b9af Adwaita: Remove nonsensical expander theming
No red backgrounds, please.
2015-12-15 08:41:16 -05:00
Matthias Clasen
61fb3f828e expander: Convert to gadgets
As part of the conversion, add another CSS node for the title
area including the arrow and the label.
2015-12-15 08:41:16 -05:00
Matthias Clasen
f0a2f9ef96 revealer: Add CSS node docs 2015-12-15 08:41:16 -05:00
Matthias Clasen
f7466b236a stackswitcher: Stop hardcoding 100px width
We can now set a min-width in the theme, so we don't have to
hardcode the size request here anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=726371
2015-12-15 08:41:16 -05:00
Matthias Clasen
ad349caa00 gadget: Add some documentation 2015-12-15 08:41:16 -05:00
Matthias Clasen
9c88256441 box: Trivial doc change
All the CSS sections are named CSS nodes, so do the same here.
2015-12-15 08:41:16 -05:00
Matthias Clasen
f3561eaa9b grid: Convert to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
e237c947c7 headerbar: Convert to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
90109cfe4c actionbar: Convert to gadgets
This is a nice example of a trivial container conversion.
2015-12-15 08:41:16 -05:00
Matthias Clasen
0f7dbc3bbd Adwaita: No padding for image buttons in popovers 2015-12-15 08:41:16 -05:00
Matthias Clasen
736d864d18 modelbutton: Port to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
782c2762bf gadget: Be more forgiving to size inconsistencies
Instead of asserting if we hit negative content sizes,
warn and continue. This is easier to work with in this
transition period.
2015-12-15 08:41:16 -05:00
Matthias Clasen
a52c3a3db9 radiobutton: Port radio buttons to gadgets
This was already mostly done by inheritance from GtkCheckButton.
To complete it, stop using the draw_indicator vfunc for radio
buttons, and instead make the indicator gadget draw either a
check or radio.
2015-12-15 08:41:16 -05:00
Matthias Clasen
233179d374 check button: Convert to gadgets
Use a gadget for the button, and for the indicator.
A complication here is that GtkCheckButton (and
GtkRadioButton) have a totally different appearance
depending on the ::draw-indicator property. If an
indicator is not required, we just reuse the
GtkButton gadget.
This mostly works; some minor sizing issues left, e.g. cranking
up the indicator-size causes the checkbutton grid in testgtk
to overlap.
2015-12-15 08:41:16 -05:00
Matthias Clasen
37e9d92632 button: Convert to gadgets 2015-12-15 08:41:16 -05:00
Matthias Clasen
a81267c28e label: Convert to gadgets
This removes some hairy code handling with borders and padding,
which may or may not be correct. The examples in testheightforwidth
all continue to work, and min-width now works for labels.
2015-12-15 08:41:16 -05:00
Matthias Clasen
ff9f3c108f Adwaita: Update color swatch styling
The adjustments here are provisional and need an artistic eye.
2015-12-15 08:41:16 -05:00
Matthias Clasen
c376e82702 colorswatch: Convert to gadgets
Use gadgets for the widget and the overlay.
2015-12-15 08:41:16 -05:00
Matthias Clasen
fcca496734 widget: Deprecate some style properties
Deprecate the ::wide-separators and ::separator-width/height
style properties.
2015-12-15 08:41:16 -05:00
Matthias Clasen
20e1ff44e8 Adwaita: Update separator styling
Separators no longer draw a line with the foreground color,
but instead just draw background.
2015-12-15 08:41:16 -05:00
Matthias Clasen
17be791b0b separator: port to gadgets
As part of this, stop using custom rendering code for wide
and non-wide separators.
2015-12-15 08:41:16 -05:00
Matthias Clasen
9e278293ca spinner: Use a gadget
This gives us min-width/height support. Currently, the spinner
still has a hardcoded minimum size of 16 and doesn't grow beyond
32. We may want to revisit that at some point.
2015-12-15 08:41:16 -05:00
Matthias Clasen
fffa84b843 progressbar: Convert to gadgets
Use gadgets for the text, the trough and the progress.
2015-12-15 08:41:16 -05:00
Benjamin Otte
1f6efbf669 iconhelper: Queue resize on invalidation
When things change in the iconhelper, queue a resize on the owner widget
so that it automatically resizes.

Only do this for iconhelpers that are used as gadgets though, not for
temporary helpers - and to check this, check if the node is transient.
2015-12-15 08:41:16 -05:00
Benjamin Otte
3a77da9df2 entry: Turn icons into gadgets 2015-12-15 08:41:16 -05:00
Benjamin Otte
4dee06e04f spinbutton: Port the buttons to gadgets 2015-12-15 08:41:16 -05:00
Benjamin Otte
4586503e93 iconhelper: Finish gadget conversion
Implement missing vfuncs
2015-12-15 08:41:16 -05:00
Benjamin Otte
e723fccaa9 rendericon: Restore cairo matrix after rendering 2015-12-15 08:41:16 -05:00
Benjamin Otte
b79a187d47 iconhelper: Handle invalidation
When CSS, direction or scale factor change, handle the invalidation
inside the iconhelper.
This way the widgets using them don't have to.
2015-12-15 08:41:16 -05:00
Benjamin Otte
de6dca4f81 iconhelper: Use the gadget's node
... instead of looking at the widget's style context.

This removes all calls to the style context.
2015-12-15 08:41:16 -05:00
Benjamin Otte
ad22612ab2 iconhelper: Require passing a cssnode to the constructor
Note that we don't use it yet.
2015-12-15 08:41:16 -05:00
Benjamin Otte
7075d00958 iconhelper: Use the gadget's owner property
Don't keep the owner widget ourselves.
2015-12-15 08:41:16 -05:00
Benjamin Otte
25ecd8cd37 iconhelper: Turn into gadget
This is just the basic conversion to inheriting from
GTK_TYPE_CSS_GADGET.
2015-12-15 08:41:16 -05:00
Matthias Clasen
c0fd106019 image: Port to gadgets 2015-12-15 08:41:16 -05:00
Benjamin Otte
49fea0b0f5 box: Port to gadgets 2015-12-15 08:41:16 -05:00
Benjamin Otte
7a05016d93 container: Split out a function
Computing the clip for all children is something I want to do in other
places.
2015-12-15 08:41:16 -05:00
Benjamin Otte
0f8233bd7b switch: Port to gadgets 2015-12-15 08:41:16 -05:00
Benjamin Otte
e09eb4fc9f gadget: Add GtkCssCustomGadget
The thing you use when you want to custom-do everything.
2015-12-15 08:41:16 -05:00
Benjamin Otte
6eafe00d8f gadget: Add the concept of a "gadget"
A gadget is halfway between a widget and a CSS node. It's supposed to
provide the minimum convenicence around CSS nodes until we've figured
out how to integrate them with widgets.
2015-12-15 08:41:16 -05:00
Benjamin Otte
0fb01decba css: Add min-width/height CSS properties 2015-12-15 08:41:16 -05:00
Benjamin Otte
a920f7260c treeview: Reposition dnd button css node properly
After the drag ends, the button node went to the wrong place and then
looked like a regular button. Fix that.
2015-12-15 08:41:16 -05:00
Chun-wei Fan
c049581f79 MSVC builds: Build more tools in gtk/
Build the gtk-update-icon-cache, gtk-builder-tool and gtk-query-settings
tools and run gtk-update-icon-cache as part of the post-build
"installation" process.

Pointed out (and reminded) by Paolo Borelli in bug 759436 that we should
build, "install" and run gtk-update-icon-cache in the MSVC builds as well.
2015-12-15 15:37:33 +08:00
Benjamin Otte
26d536a69b inspector: Fix quick-fix
Constructing GtkCssStyleChange objects without styles is forbidden, so
don't do it. Instead untangle the callback from the actual update
function and call that untangled function directly.
2015-12-15 01:15:51 +01:00
Benjamin Otte
f6606c4f6f cssnode: Clear cache if reusing style
When we reuse styles that didn't change across changes to the source
CSS, make sure we clear the caches. Otherwise child nodes will pick up
styles from the old source CSS.
2015-12-15 01:15:51 +01:00
Piotr Drąg
220d2620e4 Updated POTFILES.in 2015-12-15 00:51:33 +01:00
Carlos Garnacho
5d6a2ae54f win32: Use GdkSeatDefault to implement GdkSeat 2015-12-15 00:40:22 +01:00
Carlos Garnacho
af54b82c0a quartz: Use GdkSeatDefault to implement GdkSeat 2015-12-15 00:40:21 +01:00
Carlos Garnacho
321154eb4b broadway: Use GdkSeatDefault to Implement GdkSeat 2015-12-15 00:40:21 +01:00
Carlos Garnacho
a33aefc281 wayland: Improve creation of windowing surface roles
We no longer need a grabbed seat, instead we'll just use the default
seat if this happens, not without first warning and recommending
gdk_seat_grab() for the operation.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:40:21 +01:00
Carlos Garnacho
c7280e4a31 wayland: Replace deprecated functions
We can just gdk_seat_ungrab() here.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:40:21 +01:00
Carlos Garnacho
4065bd1e96 gdk: Deprecate GdkDeviceManager and gdk_device_grab/ungrab()
GdkSeat is now the preferred way to deal with input devices and grabs.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:40:21 +01:00
Carlos Garnacho
3009eac85e wayland: Emit cancelled on touchpoint used on window dragging/moving
This allows GDK to unset the grab itself. Also, make sure we unset
the "pointer emulating" touch on the device if this is the
pointer emulating sequence.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:40:21 +01:00
Carlos Garnacho
77cf80f3a9 wayland: Unset "pointer emulating" touch on wl_touch.cancel
And emit the corresnponding leave event on its master pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:40:21 +01:00
Carlos Garnacho
fc19a999ec gdk: Manage GDK_TOUCH_CANCEL events on gdk_windowing_got_event()
These events must get active/implicit grabs undone, and can be done
on client-side code.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:40:21 +01:00
Carlos Garnacho
09947a63ed wayland: Make gdk_wayland_device_get_focus() work on touch
So we can figure out the focus for the master device.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:40:21 +01:00
Carlos Garnacho
8ec3fb39a2 GdkDisplay: Add ::seat-added/removed signals
These will be emitted as seats come and go.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:40:21 +01:00
Carlos Garnacho
17525ef7a6 wayland: Add GdkSeat implementation
GdkWaylandDeviceData conceptually gathers the data that belongs to
a seat, so it's been renamed (although the old typedef stays, plenty
of refactoring is due here...).

The methods in GdkSeatClass have also been implemented, the most
remarkable is ::grab, which ensures the grab is performed on all
the relevant "master" devices.

https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:40:21 +01:00
Carlos Garnacho
f663d17c14 GtkTreeView: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:32:56 +01:00
Carlos Garnacho
91b5497d69 GtkNotebook: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:32:56 +01:00
Carlos Garnacho
fad174b967 GtkEntryCompletion: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:32:55 +01:00
Carlos Garnacho
534b0af512 GtkComboBox: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:32:55 +01:00
Carlos Garnacho
d54f208d29 GtkMenu: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:32:55 +01:00
Carlos Garnacho
5cbbb90e31 GtkCellRendererAccel: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:32:55 +01:00
Carlos Garnacho
e4eeec2163 GtkButton: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:32:55 +01:00
Carlos Garnacho
d236fd7aab x11: Use GdkSeatDefault to implement GdkSeat
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:32:55 +01:00
Carlos Garnacho
6e8d5f70db x11: Use gdk_event_set_device() consistently
Move the variable definitions above the function, and use those
throughout all branches of the event handling switch.
2015-12-15 00:16:15 +01:00
Carlos Garnacho
da6d52711a GdkEvent: Add GdkSeat getter and internal setter
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:16:15 +01:00
Carlos Garnacho
6f4edc091b GdkDisplay: Add GdkSeat getters
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:16:15 +01:00
Carlos Garnacho
d24f63e9ce GdkDevice: Add GdkSeat property and getter
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:16:15 +01:00
Carlos Garnacho
0472c088a1 gdk: Add GdkSeatDefault
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:16:15 +01:00
Carlos Garnacho
8d68f59bef gdk: Add GdkSeat
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:16:15 +01:00
Carlos Garnacho
3733e53c1a x11: Use client pointer as default core pointer for gtk+2 API
There is no need to fiddle with the master devices list.

https://bugzilla.gnome.org/show_bug.cgi?id=759323
2015-12-15 00:04:20 +01:00
Lucas Baudin
306ee6d9a5 wayland: recursively search for the settings schema.
On some systems, the gtk settings are not used properly for wayland.
Indeed, g_settings_schema_source_get_default is used, and as the docs says it,
"all lookups performed against the default source should probably be done
recursively.".

https://bugzilla.gnome.org/show_bug.cgi?id=759409
2015-12-14 08:20:04 -05:00
Dušan Kazik
0bfd012f04 Updated Slovak translation 2015-12-14 10:53:55 +00:00
Piotr Drąg
3d537b0518 Updated POTFILES.in 2015-12-14 01:45:11 +01:00
Matthias Clasen
a22c1ec980 dnd: Cleanups
Remove some now unused includes and dead code, and rename
gtk_drag_set_icon_window to gtk_drag_set_icon_widget_internal,
since it is no longer restricted to toplevel windows.
2015-12-13 18:24:41 -05:00
Matthias Clasen
934941d95d testdnd2: Add some verbosity
This makes it easier to see that we're missing some signals
under Wayland.
2015-12-13 16:02:02 -05:00
Matthias Clasen
95f648147d dnd: Stop doing cancel animation in GTK+
Under Wayland, the compositor does it, so there is no need
for us to move the window ourselves. For X11, we are now
doing the animation from the X11 backend. Trigger that by
calling gdk_drag_drop_done().

What changes here is that we have to keep the icon_window
alive for as long as the drag context exists. Use a weak
reference to do so.
2015-12-13 16:02:02 -05:00
Matthias Clasen
23b2b49321 x11: Implement drag cancel animation
Showing the drag cancel animation can be done in the X11
drag context implementation now that we hold the drag
window there, and have the start coordinates.

Since we can't control if and when the application destroys
the drag widget, we take a snapshot of the window contents
and display that during the animation. This should be good
enough for all practical purposes.
2015-12-13 15:49:25 -05:00
Matthias Clasen
c590b83397 gdk: Add gdk_drag_drop_done
This will allow us to move the drag cancel animation to GDK.
For now, it does nothing.
2015-12-13 10:39:43 -05:00
Matthias Clasen
ed89e5f62a x11: Store drag start coordinates
These will be used in later commits.
2015-12-13 10:39:43 -05:00
Matthias Clasen
a24bbcbb8d dnd: Pass start coordinates when creating the drag context
This will be used in subsequent commits.
2015-12-13 10:39:43 -05:00
Matthias Clasen
268c7a3e44 gdk: Allow passing the start coordinates in drag_begin
Add a variant of gdk_drag_begin that takes the start position
in addition to the device. All backend implementation have been
updated to accept (and ignore) the new arguments.

Subsequent commits will make use of the data in some backends.
2015-12-13 10:39:43 -05:00
Benjamin Otte
eb97ef0514 cssnode: Set new style if it's animated
In commit 2c61316677 we avoided emitting
the style-changed signal if no CSS property changed.

Unfortunately, this also caused CSS styles to not be updated when
animations started if those animations did not change any CSS value
immediately. In those cases the animation would just never start.
The obvious example was the spinner.
2015-12-13 16:12:39 +01:00
Daniel Mustieles
b22a07ec66 Updated Spanish translation 2015-12-13 13:31:25 +01:00
Daniel Mustieles
ee8d484835 Updated Spanish translation 2015-12-13 13:31:15 +01:00
Pedro Albuquerque
49145981b8 Updated Portuguese translation 2015-12-13 08:16:32 +00:00
Benjamin Otte
5cbbc62026 widget: Pass a GtkCssStyleChange instead of a bitmask 2015-12-13 04:11:58 +01:00
Timm Bäder
c219bdbecc Gestures: Add some nullable annotations 2015-12-12 09:29:08 +01:00
Timm Bäder
c3fd1b3b73 GtkFlowBox: Add missing nullable annotation 2015-12-12 09:29:08 +01:00
Timm Bäder
c02f68f0ba GtkFlowBox: Fix copy/paste mistake in docs 2015-12-12 09:29:08 +01:00
Benjamin Otte
776f034e2d cellrendererpixbuf: Don't set icon size for pixbufs
The code before the refactorings didn't set it, so we now don't set it
either.

Fixes images being way too smal inside iconviews.
2015-12-12 03:24:32 +01:00
Benjamin Otte
2c61316677 cssnode: Catch case where a style didn't change
Catch the case where a CSS style did not change and don't emit the
style-changed signal in that case.

This saves not only the emission of the signal, but also doesn't cause
invalidation in child nodes, which would previously get a PARENT_STYLE
2015-12-12 02:16:04 +01:00
Benjamin Otte
971a277419 cssnode: Change style-changed signal
Instead of having old and new style, now have a GtkCssStyleChange opaque
object that will compute the changes you are interested in for you.

This simplifies change signal handlers quite a bit and avoids lots of
repeated computation in every signal handler.
2015-12-12 02:16:04 +01:00
Matthias Clasen
0ad259a178 inspector: Hide request mode for non-widgets
Only widgets have a request mode.
2015-12-11 17:12:44 -05:00
Lapo Calamandrei
bb16ba7e31 Adwaita: menu color change on the dark variant only 2015-12-11 21:08:53 +01:00
Matthias Clasen
fb937984af file chooser: Also apply the settings
I forgot that the settings object we're dealing with here
is in delay mode, so settings won't apply immediately.
2015-12-11 12:25:31 -05:00
Matthias Clasen
d4654dd10b file chooser: Store size more frequently
We were only storing the dialog size on unmap, but resetting to the
stored default value more often, e.g. on focus-out. This was causing
the dialog to 'jump back' to its remembered size after the user
manually resized it, leading to frustration and bug reports.

Instead, save the dialog size on every ::size-allocate of the toplevel.
To avoid needlessly spamming dconf, only write the new value if it
changed.
2015-12-11 12:15:03 -05:00
Matthias Clasen
a8a33b71e4 Add a drag-end callback
This will be helpful in figuring out life-cycle issues
with icon widgets.
2015-12-11 10:50:25 -05:00
Matthias Clasen
c418ca451b Add a dnd testcase
This has tests for drag images, widgets, hotspots.
2015-12-11 10:44:46 -05:00
Jonas Ådahl
561833334b wayland: Implement DND icon hotspot API
In Wayland, the hotspot of a DND icon is set using the buffer offset in
wl_buffer.attach. To implement this, add a private API to cause the
next wl_surface.attach to offset the new buffer with a given offset.
Setting a DND icon hotspot sets this offset while also queuing a redraw
of the window to trigger the wl_surface.attach.

https://bugzilla.gnome.org/show_bug.cgi?id=759168
2015-12-11 09:16:46 -05:00
Georges Basile Stavracas Neto
8884e82af8 placesviewrow: remove unneeded functions
These function declarations are not used nor implemented
anywhere, so remove them.
2015-12-11 02:28:39 -02:00
Matt Watson
ae487840f0 gtkstack: remove needless queue_resize
In gtk_stack_set_transition_position we should only need to
queue_resize if we are non-homogeneous, which is already done
earlier in the function.
2015-12-10 16:51:29 -08:00
Georges Basile Stavracas Neto
67125ae4e0 placesview: implement available space
GtkPlacesView is a widget to display locations
in the computer, such as root ("/") and volumes,
separating the persistent devices from removable
ones.

From the latest mockups[1], GtkPlacesView would
display the available space of local drives like
partitions. This, however, is not implemented in
the current codebase.

Fix that by implementing the measurement of disk
space, and adding a new property GtkPlacesView::show-disk-usage
which controls the visibility of measured disks.

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/nautilus/nautilus-next/other-locations.png

https://bugzilla.gnome.org/show_bug.cgi?id=759225
2015-12-09 20:30:10 -02:00
Cosimo Cecchi
5f45878133 statusicon: plug memory leak 2015-12-09 10:45:26 -08:00
Lapo Calamandrei
191b9d84fa Adwaita: make menu bg color the same as popovers
fixes https://bugzilla.gnome.org/show_bug.cgi?id=759260
2015-12-09 18:56:38 +01:00
Lapo Calamandrei
d266151fee Adwaita: another try at color tweakings... 2015-12-09 17:43:40 +01:00
Lapo Calamandrei
f51dfb7af8 Adwaita: some more color tweaks and sass simplification 2015-12-09 17:38:38 +01:00
Lapo Calamandrei
07506a9088 Adwaita: fix popover styling
...in the process simplified the touch-selection styling, check
and radios not fixed there since I'm going to add proper osd assets
for those (istead of forcing the dark variant assets there as before).
2015-12-09 14:54:15 +01:00
Benjamin Otte
861ac8e373 iconhelper_ Don't use deprecated functions
Use gtk_widget_get_direction() instead of
gtk_style_context_get_direction().
2015-12-09 13:30:40 +01:00
Benjamin Otte
ccfc4d3f12 iconhelper: Remove the context argument
Instead, use the widget's context.
2015-12-09 13:30:40 +01:00
Benjamin Otte
e95e2d5048 iconhelper: Get rid of _gtk_icon_helper_set_window()
Instead use the window of the owner widget.
2015-12-09 13:30:40 +01:00
Benjamin Otte
c9d1a45d30 iconhelper: Require a widget as construction argument
Note that the caller needs to ensure the widget lives as long as the
iconhelper as the iconhelper will not ref the widget.
2015-12-09 13:30:40 +01:00
Benjamin Otte
ee5758a4e1 statusicon: Port from iconhelper to imagedefinition 2015-12-09 13:30:40 +01:00
Benjamin Otte
866e7dc733 cellrendererpixbuf: Create iconhelper on-demand
Instead of storing one in the priv structure, only store an image
definition there.

This will allow future refactorings of the icon helper.
2015-12-09 13:30:40 +01:00
Benjamin Otte
01387428a3 iconhelper: Pass only the CssStyle when loading pixbufs 2015-12-09 13:30:40 +01:00
Benjamin Otte
6afeab4313 iconhelper: Remove unused GtkStyleContext parameters 2015-12-09 13:30:40 +01:00
Benjamin Otte
cf77c1695d iconhelper: Pass only the CssStyle when loading iconsets 2015-12-09 13:30:40 +01:00
Benjamin Otte
88a490fe58 iconfactory: Move private functions into private header 2015-12-09 13:30:40 +01:00
Benjamin Otte
ee6e685478 iconhelper: Pass only the CssStyle when loading icons
This is the first step in replacing StyleContext usage with CssNode
usage.
2015-12-09 13:30:39 +01:00
Matthias Clasen
8edbbde127 toolitem: Set a css name 2015-12-08 20:53:56 -05:00
Sébastien Wilmet
e2d1042b6b Don't use gtk_text_iter_begins_tag() (deprecated)
Use gtk_text_iter_starts_tag() instead.

https://bugzilla.gnome.org/show_bug.cgi?id=759092
2015-12-08 19:56:57 +01:00
Sébastien Wilmet
1dcb3a0f88 textiter: add starts_tag() and deprecate begins_tag()
The name gtk_text_*_begins_* was used only for begins_tag(). All other
similar functions use "starts": starts_line(), starts_word(), etc.

So for consistency, add gtk_text_iter_starts_tag() and deprecate
gtk_text_iter_begins_tag().

Also change (allow-none) to (nullable), to use the new annotation.

https://bugzilla.gnome.org/show_bug.cgi?id=759092
2015-12-08 19:55:53 +01:00
Matthias Clasen
28ae8a3608 Revert "wayland: Implement DND icon hotspot API"
This reverts commit 3ab9d96623.

Pushed prematurely.
2015-12-08 13:04:17 -05:00
Kalev Lember
d4f841049d Remove GtkShortcutsGesture from docs
Commit c83ab24 that dropped GtkShortcutsGesture left in one last reference in
docs; this drops it as well.
2015-12-08 18:51:05 +01:00
Matthias Clasen
8dfad8e2f0 gtk-demo: Add an example for direction-dependent shortcuts 2015-12-08 12:32:00 -05:00
Jonas Ådahl
3ab9d96623 wayland: Implement DND icon hotspot API
In Wayland, the hotspot of a DND icon is set using the buffer offset in
wl_buffer.attach. To implement this, add a private API to cause the
next wl_surface.attach to offset the new buffer with a given offset.
Setting a DND icon hotspot sets this offset while also queuing a redraw
of the window to trigger the wl_surface.attach.

https://bugzilla.gnome.org/show_bug.cgi?id=759168
2015-12-08 11:47:07 -05:00
Khaled Hosny
0164256aec Update Arabic translation 2015-12-08 10:59:07 +04:00
Kalev Lember
9103707922 headerbar: Don't leak internal widgets
Make sure to clean up internal widgets in destroy, as these aren't
cleaned up when GtkContainer walks the childrens list in
gtk_container_destroy().

This also fixes a gedit crash as reported in
https://bugzilla.redhat.com/show_bug.cgi?id=1288669

https://bugzilla.gnome.org/show_bug.cgi?id=759132
2015-12-07 22:15:25 -05:00
Matthias Clasen
7d1a0b075d Trivial code restructuring 2015-12-07 21:57:45 -05:00
Matthias Clasen
bf7a7a5f3d dnd: pass hotspot to GDK
This uses the new api introduced in the previous commits.
2015-12-07 21:54:55 -05:00
Matthias Clasen
3b4bfba37d wayland: Add a dummy implementation of gdk_drag_context_set_hotspot
This just records the hotspot coordinates. Still to do:
apply the hotspot when updating the drag window.
2015-12-07 21:53:38 -05:00
Matthias Clasen
475f6e09b1 x11: Implement gdk_drag_context_set_hotspot
This makes the drag behavior under X11 match what we had previously.
2015-12-07 21:52:51 -05:00
Matthias Clasen
f4ebdb64ee gdk: Add api to set drag window hotspot
With GdkDragContext now being in charge of placing the window,
it needs to know about the hotspot to place under the cursor.
2015-12-07 21:52:03 -05:00
Matthias Clasen
08ecf19907 dnd: Remove an unused struct field
We only have one screen nowadays, so the fallback_icon is
never used.
2015-12-07 21:15:23 -05:00
Carlos Garnacho
c0477c2c52 GtkNotebook: Use gdouble in coordinate calculations
Otherwise rounding errors fool the "tab under coordinates" checks on
crossing events, which will be triggered close enough to the window
rectangle if the pointer moves slowly enough.

With this, the tab_prelight() function correctly figures out we've
moved the pointer outside the tab area when called in
gtk_notebook_leave_notify().

https://bugzilla.gnome.org/show_bug.cgi?id=759091
2015-12-07 17:40:01 +01:00
Adam Reichold
5088b4937e Fix method to update menu sensitivity of combo box
After removal of the selectable header and separator from the combo box,
the method to update the menu sensitivity must be changed as it assumes
at least two items within each sub menu and contains special handling
for the separator. Removing this fixes bug #759079.
2015-12-07 11:23:18 -05:00
Matthias Clasen
f7cc4abbad Avoid ugly seams on half-tiled terminals
Since we're no longer doing geometry widgets, don't send
base size and increments to the window manager anymore either.
This avoids an ugly 2 pixel gap to the right and bottom of half-tiled
terminals under gnome-shell.
2015-12-07 10:11:06 -05:00
Matthias Clasen
88c4d06973 accel cellrenderer: Fix rendering
We were getting the "New Accelerator" text mixed with the
content of the underlying cell, since plain labels don't
have a background. Go back to putting the label in selected
state, and fix the theme to render that white-on-blue. This
was lost when we switched to using a selection sub-node.
2015-12-07 07:04:43 -05:00
Erika
05dd21be88 Correct annotations for gtk_cell_layout_get_area
The function can return NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=759081
2015-12-07 06:16:59 -05:00
Matthias Clasen
326f4739ca inspector: Redo the CSS node page
Showing two lists in a paned was a bit awkward, and space was
getting too limited. Go back to showing just the node list at
first, and make the CSS properties available via a stack. At
the same time, add a right-click context menu to the node list
to make the name and class editing more easily available.
2015-12-06 23:06:33 -05:00
Matthias Clasen
6f1c945010 inspector: Avoid a crash
gkt_cell_layout_get_area may return NULL, handle it.
2015-12-06 17:25:31 -05:00
Matthias Clasen
9c73603c16 css node: Some more docs 2015-12-06 15:42:13 -05:00
Matthias Clasen
2188fe0e54 places view: Use names for cursors
Use the standard name for the busy+interactive cursor.
2015-12-05 19:18:27 -05:00
Matthias Clasen
f76fa0411f entry: Always use cursor names
The names are the preferred API for cursors, so use it.
2015-12-05 19:17:52 -05:00
Matthias Clasen
64431a17e3 Add a test for required cursors
We use these cursors in GTK+, so check for their existence.
2015-12-05 19:09:17 -05:00
Matthias Clasen
93b3669273 Be forgiving if cursors are missing
No need to crash here. Missing cursors are ugly, but we
shouldn't crash.
2015-12-05 18:55:05 -05:00
Matthias Clasen
6915aba952 Add more examples to foreigndrawing
Show how to draw checks and radios.
2015-12-05 17:09:59 -05:00
Dušan Kazik
2c03ab48eb Updated Slovak translation 2015-12-05 19:38:36 +00:00
Matthias Clasen
c73325c6b0 entry completion: Reduce the timeout
Pop up the completion window after 100ms. The previous timeout
of 300ms was making completions feel slow.

https://bugzilla.gnome.org/show_bug.cgi?id=758929
2015-12-05 14:12:27 -05:00
Matthias Clasen
63c4b9226c widget-factory: Add an entry completion
This was missing so far.
2015-12-05 14:11:06 -05:00
Matthias Clasen
12dbfe026f shortcuts: Another attempt to fix up forall
gtk_window_set_titlebar does not take ownership of the headerbar,
so we need to explicitly destroy it.
2015-12-05 13:53:23 -05:00
Matthias Clasen
6fdc6cb313 gtk-demo: Plug a memory leak 2015-12-05 13:53:23 -05:00
Piotr Drąg
0c1d46dca5 Updated POTFILES.in 2015-12-05 19:27:32 +01:00
Matthias Clasen
c83ab24237 Remove GtkShortcutsGesture
The gesture functionality was taken over by GtkShortcutsShortcut,
so this widget is no longer needed, and it never was in a stable
release, so lets get rid of it.
2015-12-05 12:10:21 -05:00
Lapo Calamandrei
830b6f10a1 Adwaita: simpler active switch background
...removing the progressbar_fill mixin in the process.
2015-12-05 17:56:32 +01:00
Lapo Calamandrei
8f2cd874f1 Adwaita: first stab at some visual updates 2015-12-05 17:56:32 +01:00
Piotr Drąg
124932c8d7 Updated Polish translation 2015-12-05 15:28:37 +01:00
Wolfgang Stöggl
17ac9c27b1 Updated German translation 2015-12-05 12:18:51 +00:00
Pedro Albuquerque
11241ae783 Updated Portuguese translation 2015-12-05 07:48:40 +00:00
Pedro Albuquerque
b07830ebaf Updated Portuguese translation 2015-12-05 07:46:31 +00:00
Matthias Clasen
6f061b139d 3.19.4 2015-12-04 17:01:03 -05:00
Matthias Clasen
f210dc9281 Fix make check
GtkFontChooserWidget is using a GThemedIcon in its template,
so we need to ensure that the type is registered before
loading it. This was causing the defaultvalue test to fail.
2015-12-04 17:01:03 -05:00
Lionel Landwerlin
55e06e5d52 adwaita: fix property spelling mistake
https://bugzilla.gnome.org/show_bug.cgi?id=759048
2015-12-04 21:04:06 +00:00
Timm Bäder
ecc5342b0d GtkEntry: Recompute in text-inserted/text-deleted
The text-inserted/text-deleted handlers rely on the cursor positions
being unadjusted after the text change, so we can't do it in
buffer_notify_text.
2015-12-04 20:41:16 +01:00
Matthias Clasen
f19cadeaf3 testsuite: Fix notify tests
GtkStatusIcon tests don't work well under xwayland either, so just
skip them unconditionally.
GtkEntry now fails because the update of the im-module is no longer
deferred to an idle, and (gtk-im-simple) is not a valid module
name, so skip this property.
2015-12-04 13:22:26 -05:00
Matthias Clasen
03769e3830 shortcut label: Tweak modifier key rendering
The subscript was affecting the vertical alignment too much,
so tweak the rendering of the L/R markers to avoid that. Also,
mark these as translatable.
2015-12-04 13:22:26 -05:00
Matthias Clasen
27b24bb68f Add a css name to GtkShortcutsShortcut
This will be useful for tweaking the gesture image details,
among other things.
2015-12-04 13:22:26 -05:00
Lapo Calamandrei
5cb06a30a0 Adwaita: added back progressbar.osd style 2015-12-04 19:04:17 +01:00
Lapo Calamandrei
c64452c29d Adwaita: fix scales with marks on the dark variant 2015-12-04 18:47:28 +01:00
Lapo Calamandrei
cfc17a0152 Adwaita: slight color tweaks 2015-12-04 18:43:24 +01:00
Benjamin Otte
05bdecb2f8 reftests: Add test for missing-image handling
Add a test that ensures that missing images get the icon-effect properly
applied.
2015-12-04 17:44:51 +01:00
Benjamin Otte
d14e2a489a iconhelper: Fold function into callers
The function takes so many arguments and is so short that it's not worth
keeping.
2015-12-04 17:44:51 +01:00
Benjamin Otte
72d4b65b1d iconhelper: Apply icon-effect directly
Instead of creating an icon source, making sure no state is set and
therefore the icon-effect will be applied and then rendering that icon
source, just call the icon-effect apply function.

Also, the new way isn't deprecated.
2015-12-04 17:44:51 +01:00
Benjamin Otte
1b835fc7ce css: Leftover renaming gtk-image-effect => icon-effect
The previous renaming commit was incomplete, so here we go again.
2015-12-04 17:44:51 +01:00
Benjamin Otte
a37220109f render: Split out icon-effect apply function 2015-12-04 17:44:51 +01:00
Benjamin Otte
cefba86fb3 iconhelper: Return surface from icon-effect function
All the callers where converting to a surface anyway.
2015-12-04 17:44:51 +01:00
Benjamin Otte
295f208e1c iconhelper: Refactor missing icon handling
In particular, stop using deprecated code for loading the missing image
icon.
2015-12-04 17:44:51 +01:00
Benjamin Otte
3c54a49633 iconhelper: Fold function into only caller 2015-12-04 17:44:51 +01:00
Benjamin Otte
b8dd24b4fb iconfactory: Drop caching infrastructure
- icon sets are essentially unused
- the icon theme does caching
- this code complicates the restructuring I'm about to do

=> Delete it!
2015-12-04 17:44:51 +01:00
William Hua
d2ef875e09 mir: remove deprecated function call 2015-12-04 11:17:43 -05:00
Matthias Clasen
8768c0b8ac shortcuts: Extend the accelerator syntax more
Cover cases like left+right control, and render them nicely.
The gtk3-demo builder shortcuts example shows the new
possibilities.
2015-12-04 10:56:48 -05:00
Olivier Fourdan
7fc493a8a8 wayland: fix testtooltips
On Wayland, for tooltips to work as expected, the type hint must be set
to tooltips, otherwise the popup window won't be translated as a
subsurface.

Fix the test do work as expected under Wayland.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=759018
2015-12-04 13:17:29 +01:00
Lionel Landwerlin
bd332f10ab gdkoffscreenwindow: use embedder to derive surfaces & scale factor
In Gdk, a GdkOffscreenWindow parent has to be the root window. This is
problematic on Wayland because the root window doesn't necessary have the
right information with regard to scale factor.

This patch proposes to rely on the embedder, if available, to derive
surfaces as well as getting the scale factor.

https://bugzilla.gnome.org/show_bug.cgi?id=758936
2015-12-03 21:47:29 +00:00
Timm Bäder
3ba11782db GtkEntry: nullable annotations 2015-12-03 20:20:58 +01:00
Timm Bäder
da477575cd GtkEntry: Return proper constants from signal handlers 2015-12-03 20:01:30 +01:00
Timm Bäder
d86ec52547 GtkTreeModel: Remove erroneous transfer annotation 2015-12-03 20:01:30 +01:00
Timm Bäder
f11f989f1f GtkEntry: Remove recompute idle
Just do it directly
2015-12-03 20:01:30 +01:00
Timm Bäder
cfc23cbf32 GtkEntry: Remove unused fields 2015-12-03 20:01:30 +01:00
Lapo Calamandrei
07ee962ed3 Adwaita: some OSD rationalization
taking care of https://bugzilla.gnome.org/show_bug.cgi?id=732528 in
the process, any toolbar.osd with a positional style class attached
gets squared corners now.
2015-12-03 19:28:57 +01:00
Lapo Calamandrei
d46ab0f62a Adwaita: scale with marks styling
I'm really sorry for the unlucky ones who would have to read that
code...
2015-12-03 18:41:35 +01:00
Lapo Calamandrei
37c943c8cd Adwaita: added back scale marks style 2015-12-03 18:41:35 +01:00
Benjamin Otte
52ba39ba73 tests: Rework some foreigndrawing code
Instead of specifying the full path everytime, just specify the parent
style context and then use its path.
2015-12-03 14:43:56 +01:00
Matthias Clasen
ec5baa144d Update gtk_drag_highlight() docs
What they said was no longer true.
2015-12-03 08:37:58 -05:00
Matthias Clasen
36d5d29af6 Simplify foreign drawing example a bit 2015-12-03 07:55:57 -05:00
Lapo Calamandrei
234c497474 Adwaita: scale fill style 2015-12-03 12:57:02 +01:00
Sebastien Bacher
635da34908 GtkAppChooserWidget: wrap the label, use a standard icon
Let the label wrap if needed, that's required in some locales, use an
icon which is available in the theme

https://bugzilla.gnome.org/show_bug.cgi?id=758908
2015-12-03 12:45:56 +01:00
Lapo Calamandrei
081bdb07c3 Adwaita: rename scale sass templates to be more specific 2015-12-03 11:43:53 +01:00
Lapo Calamandrei
b7a980d5d8 Adwaita: added back style for scales on selected list rows 2015-12-03 11:38:50 +01:00
Lapo Calamandrei
a291003ad4 Adwaita: first stab at GtkScale and GtkProgressBar rewrite
...scale has marks stuff missing, coming soon.
2015-12-03 10:54:33 +01:00
Benjamin Otte
3ed71cf4a7 window: Deprecate gtk_window_resize_to_geometry()
And make it not do anything anymore.

Fixes erratic resizes of gnome-terminal.

https://bugzilla.gnome.org/show_bug.cgi?id=757282
2015-12-03 10:43:57 +01:00
Olivier Fourdan
de41389352 gtkwindow: Document further resize with csd
Applying the client-side decorations in the configure routine greatly
increases the chances of having the right size for the GtkHEaderBar and
border shadows.

Yet, it may be possible that these sizes change at a later point in
time, if for example the GtkHeaderBar grows in height while adding new
controls.

Mention this possible pitfall in the documentation for
gtk_window_resize().

https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-12-03 09:16:29 +01:00
Matthias Clasen
058dfb0723 entry: Use regular drag highlight
The entry code passes GTK_DEST_DEFAULT_HIGHLIGHT when setting
up the drop target, but that is ineffective because of the
custom drag_motion implementation. Instead, call
gtk_drag_[un]hightlight ourselves.
2015-12-02 23:52:55 -05:00
Matthias Clasen
0b9136842d Use :dnd pseudoclass for drag highlighting
Instead of a ::draw handler with a hardcoded outline,
use CSS for drawing the highlight.
2015-12-02 23:49:07 -05:00
Matthias Clasen
cbde3ee01f css: Add a :dnd pseudoclass
This will be used for drag highlighting.
2015-12-02 23:23:36 -05:00
Matthias Clasen
574246a3d8 Add a selected text example 2015-12-02 23:10:56 -05:00
Matthias Clasen
16eed47e87 Make foreign drawing example work
Set up multiple style contexts to get inheritance right.
2015-12-02 21:32:45 -05:00
Matthias Clasen
09c74f958d Add another hand-drawn scrollbar
This one is supposed to show up in active state, but doesn't.
2015-12-02 18:59:59 -05:00
Matthias Clasen
b5bcc299ad Add an example of foreign drawing
This uses the gtk_render apis with a style context constructed
from a style path.
2015-12-02 18:49:07 -05:00
Benjamin Otte
7fa37e4bf8 css: Introduct -gtk-icon-palette
This borrows heavily from the CSS4 fonts draft's font-palette, currently
found at https://drafts.csswg.org/css-fonts-4/#font-palette-control

The palette is mainly meant to trigger invalidations when colors used for
symbolic icons change, to potentially allow extending supported colors
in symbolic icons and to recolor all colors of a symbolic icon, not just
the main one.

The syntax for the property goes like this:
Name:        -gtk-icon-palette
Value:       default | name <color> [ , name <color> ]*
Initial:     default
Applies to:  all elements with icons
Inherited:   yes
Animatable:  yes, each color animated separately

The property defines a list of named colors to be used when looking up
icons. If a name is not defined, the value of the current "color"
property is used. Which names are relevant depends on the icons in use.
Currently symbolic icons make use of the names "success", "warning" and
"error".

"default" is the current behavior of the GTK when coloring symbolic
icons and is equal to the string
  success @success_color, warning @warning_color, error @error_color

Animation is crudely implemented by animating colors that are in both
palettes that are animated and otherwise keeping the color from the
palette that defined it. Note that this can cause a sharp cut at the
beginning or end of the animation when the color goes away and will
therefore be replaced with the color property.

You can see an example of animations at
http://gfycat.com/CautiousPeacefulIaerismetalmark
2015-12-03 00:47:00 +01:00
Daniel Mustieles
109c3aa65a Updated Spanish translation 2015-12-02 21:08:41 +01:00
Timm Bäder
2b9d57f726 GtkRange: Return proper constants in signal handlers 2015-12-02 21:06:11 +01:00
Timm Bäder
5a6bac7831 GtkRange: Remove recalc_marks field
And instead recalculate the marks on demand, i.e. whenever we were
previously setting recalc_marks to TRUE.
2015-12-02 21:06:11 +01:00
Timm Bäder
414ffbb708 GtkRange: Use G_MININT as default mouse position, not -1
Otherwise we're getting MOUSE_WIDGET as mouse position for unmapped
GtkRanges.
2015-12-02 21:06:11 +01:00
Timm Bäder
591e7f5ef8 GtkScale: Add missing nullable annotations 2015-12-02 21:06:11 +01:00
Lapo Calamandrei
8efdd94a31 Adwaita: button.color fix
border-radius: 0 for colorswatch overlay as well.
2015-12-02 17:42:42 +01:00
Lapo Calamandrei
a25fa9922d Adwaita: vertically linked insensitive entries
Brighter border in that case as well.
2015-12-02 17:02:58 +01:00
Benjamin Otte
c10b6b7297 dnd: Add gtk_image_set_from_definition()
... and use it in the DND code, thereby getting rid of the icon helper.
2015-12-02 15:45:14 +01:00
Benjamin Otte
4d31bf91db dnd: No need to reset the icon
When we start a drag cancel animation, we can just keep the existing
window. The reset was only necessary to convert from cursor icon to
window and we removed the cursor handling.
2015-12-02 15:22:23 +01:00
Benjamin Otte
8a7dbe5f36 image: Remove unused code
I wonder how long that stuff has existed and not been used...
2015-12-02 14:56:15 +01:00
Benjamin Otte
c66a2057af image: Split out a function 2015-12-02 14:54:15 +01:00
Krzesimir Nowak
cbbaad4135 imagedefinition: Assert when trying to free empty definition
Empty definitions are not allocated on a heap, so doing a g_free() on
it would crash anyway.
2015-12-02 12:46:21 +01:00
Krzesimir Nowak
f6ce2cd975 cssprovider: Pass NULL unconditionally
We know that parent is NULL at this point.

Also, fix indentation.
2015-12-02 12:46:21 +01:00
Olivier Fourdan
e933233479 gtkwindow: apply CSD in configure size request
Just like we did for the default size, that reduces the chances of
having the headerbar missing or wrongly sized when computing the client
side decorations controls.

https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-12-02 08:41:31 +01:00
Matthias Clasen
0384f9eaf3 popover: Make position property not CONSTRUCT
There is no good reason for it, and it causes problems
with widget templates.
2015-12-02 01:07:02 -05:00
Matthias Clasen
564e11cc4e popover: Port to g_object_install_properties
And use the pspecs for notification.
2015-12-02 01:03:35 -05:00
Matthias Clasen
93d9c77ead dnd: Drop an unused argument 2015-12-02 00:51:47 -05:00
Matthias Clasen
676862a213 dnd: Some simplifications
We can now use a GtkImage instead of toplevel with
a custom draw callback and a specially prepared cairo
pattern.
2015-12-02 00:48:37 -05:00
Matthias Clasen
9fd6db87d2 Drop gdk_wayland_drag_context_get_dnd_window
This backend-specific and libgtk-only API is now unused,
so drop it.
2015-12-02 00:47:53 -05:00
Matthias Clasen
28b97ff0e9 dnd: Prevent black background in icons 2015-12-02 00:03:11 -05:00
Matthias Clasen
ae4f6da550 DND: Drop support for using rgba cursors as icons
This adds a lot of complication to the code, and is not really
a big win, since still need to support icon windows anyway.
2015-12-01 23:47:56 -05:00
Matthias Clasen
5bb12474d9 dnd: Fix issues with drag icons under Wayland
The Wayland dnd surface must remain in place until the drag
is over. Setting it directly as the hardcoded window of the
widget we construct carries the danger that it might get
destroyed prematurely, e.g. when the application calls
gtk_drag_set_icon_name more than once and we recreate the
widget.

Instead, create a dedicated toplevel, and reparent the widget
into it. To keep the code simple, we use the same approach
under X11 as well, and make it the responsibility of the
GDK dnd code to keep the window position updated. We already
pass the current pointer position to gdk_drag_motion, which
makes this very easy.

As a side-effect of these changes, it is now possible to use
non-toplevel widgets as drag icons.

https://bugzilla.gnome.org/show_bug.cgi?id=748763
2015-12-01 23:47:56 -05:00
Matthias Clasen
fff8297a50 Add gdk_drag_context_get_drag_window
This makes gdk_wayland_drag_context_get_dnd_window
backend-independent API and adds an implementation
for X11.
2015-12-01 23:47:56 -05:00
Benjamin Otte
d46b67dc79 widget: Don't update pango context in state_flags_changed
It only needs to be updated in style_updated, and we do it there.
2015-12-02 05:04:41 +01:00
Benjamin Otte
3513e5e87b Chain up in state_flags_changed
When introducing handlers for state_flags_changed in the node
transitions, chaining up was forgotten.
2015-12-02 04:36:31 +01:00
Benjamin Otte
da6beb994e css: Add ability to specify icontheme in CSS
-gtk-icontheme: "oxygen" works now.

This is a very crude implementation. It's meant for testing only.
2015-12-02 03:54:41 +01:00
Benjamin Otte
e1d74f7c71 window: Listen to icon theme changes on CSS
No need to connect a signal handler to the icon theme, we get notified
via CSS.
2015-12-02 03:28:36 +01:00
Benjamin Otte
bc1b53a34c css: Query icon theme from style, not from settings
No need to look at the settings when the CSS has a property for the icon
theme.
2015-12-02 03:18:26 +01:00
Benjamin Otte
d26a4b5555 spinner: Active spinners should be :checked, not :active
If that sounds confusing, it's because GTK and CSS can sometimes not
agree on naming.

:active for CSS means that a button is currently pressed on an element.
And that is clearly not the case for spinning spinners.
2015-12-02 00:39:25 +01:00
Benjamin Otte
8355ee3053 stylecontext: Don't emit state warning for transient nodes
It's fine to call set_state() on those.

https://bugzilla.gnome.org/show_bug.cgi?id=758930
2015-12-02 00:29:36 +01:00
Benjamin Otte
2396265523 css: Rename -gtk-image-effect to -gtk-icon-effect
This is a property for icons, so we should name it as such.
2015-12-02 00:29:31 +01:00
Benjamin Otte
7f93858ccc Stop using gtk_icon_size_lookup_for_settings()
Use the equivalent gtk_icon_size_lookup() instead.
2015-12-02 00:29:31 +01:00
Benjamin Otte
0c027937e8 iconhelper: Stop tracking state
The iconfactory code doesn't use it anymore, so we don't need to track
it either.
2015-12-02 00:29:31 +01:00
Benjamin Otte
6d65b7d772 iconfactory: Make state depend on image-effect
This removes the dependency on state, which should be used for selection
CSS styles, not for actually applying them.

And image-effect does exactly what we want already, so we can start
using it.
2015-12-02 00:29:30 +01:00
Benjamin Otte
6a4b91d0ed iconhelper: Remove _gtk_icon_helper_ensure_pixbuf()
The code isn't used anymore. Everything uses
gtk_icon_helper_load_surface() now.
2015-12-02 00:29:30 +01:00
Benjamin Otte
b411c31832 statusicon: Use gtk_icon_helper_load_surface()
This is in preparation for the next commit.
2015-12-02 00:29:30 +01:00
Benjamin Otte
7a154d9acd dnd: Add gtk_drag_set_icon_definition()
... and use it for entry icons.

As a side effect, icons dragged from entries will now resize to DND
size.
2015-12-02 00:29:30 +01:00
Benjamin Otte
4a42aa5229 imagedefinition: Remove icon-size
The size of icons is a property that is relevant to who is rendering the
icon, not to the icon itself.

Example: Starting a DND operation from an entry icon should cause the
icon to resize (from the entr icon's size to the DND icon size).
2015-12-02 00:29:30 +01:00
Benjamin Otte
e99eba4415 dnd: Rewrite iconhelper code
It now uses GtkImageDefinition instead.
2015-12-02 00:29:30 +01:00
Benjamin Otte
85423ea278 entry: Use gtk_icon_helper_load_surface()
This is the first step towards getting rid of pixbuf loading code in the
icon helper.
2015-12-02 00:29:30 +01:00
Benjamin Otte
482d71d680 iconhelper: Add a scale argument to gtk_icon_helper_load_surface()
It will be used in the next patch.
2015-12-02 00:29:30 +01:00
Benjamin Otte
afad393b15 iconhelper: Refactor ensure_surface()
Make gtk_icon_helper_ensure_surface() a private function that just
ensures the surface was loaded.

Add gtk_icon_helper_load_surface() that is called by the above function
and the dnd code to actually load the surface.
2015-12-02 00:29:30 +01:00
Benjamin Otte
2ce67f0098 iconhelper: Store surface in ensure_surface()
Do not assign it in the functions that actually load the surface. Make
those just return the surface.
2015-12-02 00:29:30 +01:00
Benjamin Otte
b2584eb8ed iconhelper: Don't store surface size
Instead, compute it on demand.

This avoids having to cache it in lots of places and simplifies code.
2015-12-02 00:29:29 +01:00
Benjamin Otte
751a1a9926 iconhelper: Move invalidation check
Just do the invalidation check once, there's no need to do it in every
branch of the switch.

Also remove useless checks: These functions will not be called if we
already have a rendered surface.
2015-12-02 00:29:29 +01:00
Benjamin Otte
3bacffd063 dnd: Use surface for dnd icon instead of pixbuf 2015-12-02 00:29:29 +01:00
Benjamin Otte
c601a9653a iconhelper: Move invalidation check
Just do the invalidation check once, there's no need to do it in every
branch of the switch.

Also remove useless checks: These functions will not be called if we
already have a rendered surface.
2015-12-02 00:29:29 +01:00
Benjamin Otte
afd0e28437 iconhelper: Improve size determination for surfaces
Instead of just working for image surface, this should now work for all
bounded surfaces.

Test included.
2015-12-02 00:29:29 +01:00
Benjamin Otte
071d2a1d69 iconhelper: Move size computation
We do a switch on the image type, so compute the size for a certain
image type right there.
2015-12-02 00:29:29 +01:00
Benjamin Otte
a81bdf1e60 image: queue_resize() after changing icon-size property 2015-12-02 00:29:29 +01:00
Benjamin Otte
1c96b703a6 dragsource: Store an itemdefinition, not an iconhelper
The icon is never rendered, so there's no need for the extra iconhelper
code.
2015-12-02 00:29:29 +01:00
Benjamin Otte
e666106a43 imagedefinition: Split out from icon helper
The image definition is supposed to hold the description about the image
to be displayed. The icon helper actually does caching and tracks
changes.
2015-12-02 00:29:29 +01:00
Benjamin Otte
67ab00e01e window: Remove suspicious branch
It seems this branch is not needed anymore. It was originally added in
1999 to support gtk_widget_realize(), but all those reasons seem
obsolete today.
Instead just call gtk_widget_realize().

If you end up at this commit when bisecting:
There is no bug that made me remove this code, it was purely meant to be
cleanup / dead code removal. I seem to have introduced a new bug or
bisecting wouldn't have let you here. So it seems we should just revert
this commit.
2015-12-02 00:29:29 +01:00
Benjamin Otte
d210ed7871 Revert "gdk_pixbuf_get_from_window: honor device scale"
This reverts commit 657a43e54e.

The commit breaks the assumptions about the arguments in both
gdk_pixbuf_get_from_window() and gdk_pixbuf_get_from_surface().

https://bugzilla.gnome.org/show_bug.cgi?id=757147
2015-12-02 00:29:29 +01:00
Benjamin Otte
9a1913dfb0 wayland: Remove unused variable
Poor gcc was unhappy.
2015-12-02 00:29:29 +01:00
Matthias Clasen
e626038467 popover: Make it possible to constrain to toplevel
Under X11, popovers are always constrained to the toplevel
window. Under Wayland, they aren't. This commit adds a
property that allows to explicitly constrain popovers to
the toplevel, giving them the same behavior under Wayland
as under X11.

https://bugzilla.gnome.org/show_bug.cgi?id=757474
2015-12-01 17:26:25 -05:00
Christian Hergert
5dcf4e10b7 filechooserbutton: add some spacing between icon and text
These were a bit crammed, which doesn't match well with spacing used in
various other parts of gtk.
2015-12-01 11:23:12 -08:00
Olivier Fourdan
103d369ff6 gtkwindow: remove headerbar after disposing parent
Widgets such as gtkfilechooser may be saving their size and position on
the unmap callback, if the client-side decoration header bar is removed
first, the reported size will be wrong.

https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-12-01 16:18:03 +01:00
Olivier Fourdan
f37aa415cd wayland: re-configure surface even if size matches
gdk-wayland backend would not re-configure a surface when its size and
scale match the known size and scale.

But there might be a pending xdg_surface_configure() that would revert
this change so we should re-configure even if the currently known
size/scale match, otherwise we may end up with a wrong size after the
xdg_surface_configure() is received.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=758901
2015-12-01 16:17:39 +01:00
Carlos Garnacho
1a394bd5ec wayland: Invert drop_finished/button release call order
If we "release" the button first, the drag will be eventually cancelled,
we must first signal GDK_DROP_FINISHED, and then release the button so
the success status prevails.
2015-12-01 15:49:13 +01:00
Carlos Garnacho
0ad927adca wayland: Store requested target on GdkWaylandSelection
It doesn't make a lot of sense to have this stored as data offer data,
rather together with the source_targets array, which is what we're
poking here in the end.

https://bugzilla.gnome.org/show_bug.cgi?id=758713
2015-12-01 15:49:13 +01:00
Timm Bäder
a28103cf51 Add some more missing nullable annotations 2015-12-01 13:41:35 +01:00
Timm Bäder
88b4955fd9 GtkBox: The center widget can be NULL
Propagates to GtkActionBar.
2015-12-01 13:41:35 +01:00
Timm Bäder
1551ad4908 GtkWidget: Add some missing nullable annotations 2015-12-01 13:41:35 +01:00
Matthias Clasen
150728d6b0 inspector: Show the size request mode
This is not a property, so show it in the misc page.
2015-11-30 22:27:27 -05:00
Matthias Clasen
d908c38ec3 window: Use g_set_object
No need to do the same thing manually.
2015-11-30 20:45:57 -05:00
Matthias Clasen
a3ce702a5a testentryicons: update dnd example
This code was #ifdefed out since 2008. Time to try it.
2015-11-30 18:41:33 -05:00
Matthias Clasen
4005f137a0 testentryicons: Use an existing icon name
dialog-info is not an existing icon.
2015-11-30 18:21:44 -05:00
Carlos Garnacho
4f9d0c06ef wayland: Refactor selection ownership
Dissociate ownership from our maintenance of wl_data_source objects.
The only place where ownership must be updated together is
data_source.cancelled, for the other places GDK should take care of
setting up the right ownership, even if at a different order than
we'd expect here.

This fixes GTK+ apps on wayland being locally confused about the
current selection ownership. Because gtk_selection_add_targets()
results in a wl_data_source being created, and ownership being
updated right away, early callers of this will change the ownership
even if the widget it's being called on didn't explicitly request
the selection ownership yet.

https://bugzilla.gnome.org/show_bug.cgi?id=758660
2015-11-30 20:37:25 +01:00
Sébastien Wilmet
1a8f3e2462 textiter: fix bug in case insensitive backward search
'win.lines' contains the same content as the GtkTextBuffer, so to find
@match_start, forward_chars_with_skipping() is called with
skip_decomp=FALSE (the last parameter). So far so good.

On the other hand, the content 'lines' (the needle split in lines) is
casefolded and normalized for a case insensitive search. So,
forward_chars_with_skipping(..., skip_decomp=TRUE) must be called only
for the portion of text containing the needle.

Since 'start_tmp' contains the location at the start of the match, we
can simply begin at that location to find the end of the match.

Unit tests are added.

https://bugzilla.gnome.org/show_bug.cgi?id=758698
2015-11-30 19:46:16 +01:00
Florian Müllner
0a35886b0a listbox: Use :focus-on-click policy from row instead of list
Using the property from the container is inconsistent with the
:selectable and :activatable properties, which are per row.
2015-11-30 17:59:06 +01:00
Timm Bäder
d505a1af68 icon-browser: Stop using GtkMisc properties
Instead of xpad/ypad of 4 for every widget, just increase the
row-spacing and column-spacing by 8.

https://bugzilla.gnome.org/show_bug.cgi?id=758790
2015-11-30 17:31:49 +01:00
Timm Bäder
624cb5e016 icon-browser: Use proper "times" character
https://bugzilla.gnome.org/show_bug.cgi?id=758790
2015-11-30 17:31:49 +01:00
Timm Bäder
91cafb8d08 icon-browser: baseline-align the icon size labels
https://bugzilla.gnome.org/show_bug.cgi?id=758790
2015-11-30 17:31:49 +01:00
Matthias Clasen
373ce9f652 stack: Update windows before allocating children
Doing things the other way around seems to cause problems in
some cases where children want to do different things depending
on the window position.

https://bugzilla.gnome.org/show_bug.cgi?id=758563
2015-11-30 10:41:13 -05:00
Emmanuele Bassi
11eab60f43 scalebutton: Annotate the return type
Instead of just listing the return type of get_plus_button() and
get_minus_button() in the documentation, we can use the (type)
annotation to ensure that the introspection data reflects the actual
type of the returned widget.
2015-11-30 14:09:19 +00:00
Benjamin Otte
f30b4ba22e gtkwindow: fix regression with firefox dropdown menu
Fix a regression introduced by:

commit 6866d1c widget: Make gtk_widget_queue_allocate() not resize

Where the dropdown menu in Firefox would not be relocated after the
toplevel window is moved.

bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=758609
2015-11-30 14:32:39 +01:00
Timm Bäder
886686973c GtkScaleButton: _get_(plus|minus)_button returns a GtkButton
https://bugzilla.gnome.org/show_bug.cgi?id=539944
2015-11-28 21:09:53 +01:00
Pedro Albuquerque
af65114ea9 Updated Portuguese translation 2015-11-28 09:27:22 +00:00
Pedro Albuquerque
ebe1985ab0 Updated Portuguese translation 2015-11-28 09:21:52 +00:00
Piotr Drąg
c938263d17 Updated Polish translation 2015-11-27 23:30:20 +01:00
Matthias Clasen
8ea14162d3 Adwaita: No background for spinners
Blue background for spinners doesn't make sense.
2015-11-26 15:08:54 -05:00
Руслан Ижбулатов
3701a60401 GDK W32: Add a comment for clarity
This is a copy of a similar comment in another place, which explains
why WS_EX_TRANSPARENT windows get a special treatment.

https://bugzilla.gnome.org/show_bug.cgi?id=758484
2015-11-26 17:58:47 +00:00
Руслан Ижбулатов
8b7783ce21 GDK W32: Clarify the use of the second argument to SetWindowPos()
https://bugzilla.gnome.org/show_bug.cgi?id=758484
2015-11-26 17:58:46 +00:00
Руслан Ижбулатов
db1b24233e GDK W32: Don't use SetWindowLong() to set/unset WS_EX_TOPMOST
While searching for the cause of bug 746745 it was discovered that one could
not set WS_EX_TOPMOST extended window style with SetWindowLong(),
but must use SetWindowPos() for that purpose.

This was never a problem most likely because it is highly unlikely for windows
to acquire/lose WS_EX_TOPMOST after they are created, by means other
than SetWindowPos() (which GTK does use to raise/lower windows and
set/remove keep_above), and because trying to set/unset WS_EX_TOPMOST with
SetWindowLong() results in WS_EX_TOPMOST merely not being set/unset (that is,
other styles are still set/unset within the same call and no error is
signalled).

https://bugzilla.gnome.org/show_bug.cgi?id=758483
2015-11-26 16:26:32 +00:00
Jonas Ådahl
1e11b55606 wayland: Use xdg shell protocol from wayland-protocols
Drop our own copy of the xdg shell XML file, and use the one installed
by wayland-protocols.

https://bugzilla.gnome.org/show_bug.cgi?id=758634
2015-11-26 16:54:32 +08:00
Jonas Ådahl
912e79dbe2 wayland: Use pointer gestures protocol from wayland-protocols
Instead of having our own copy of the pointer gestures XML file, use
the one installed by wayland-protocols.

Since pointer gestures is an unstable protocol, it went through the
unstable protocol naming convention changes, which is reflected in this
commit.

https://bugzilla.gnome.org/show_bug.cgi?id=758634
2015-11-26 16:54:32 +08:00
Piotr Drąg
65b1ee5dd3 Updated POTFILES.in 2015-11-26 00:51:08 +01:00
Carlos Garnacho
4981ca9f13 GtkWindow: Reset gestures after triggering right click titlebar action
Just like it happens for window dragging, we're likely to not see the
matching button release for this event, so we must reset the controller
manually here.

https://bugzilla.gnome.org/show_bug.cgi?id=758661
2015-11-25 21:59:48 +01:00
Benjamin Otte
923ad2767a window: Don't lose position information
Before calling gdk_window_move_resize(), store the full configure
request, not just width and height.

Fixes firefox randomly losing position of its dropdown windows.

https://bugzilla.gnome.org/show_bug.cgi?id=758609
2015-11-25 20:31:27 +01:00
Benjamin Otte
415030d25f dnd: Split GtkDragSourceSite into its own file 2015-11-25 20:31:27 +01:00
Christoph Reiter
ee3397388f dnd-quartz: fix missing icon helper include 2015-11-25 20:27:21 +01:00
Benjamin Otte
2bee73c1f9 dnd: Just pass iconhelper instead of whole DragSourceSite
Simplifies the code.
2015-11-25 16:32:40 +01:00
Benjamin Otte
175d5d580e dnd: Remove unused struct members 2015-11-25 16:32:40 +01:00
Benjamin Otte
29cdb2001c iconhelper: Don't include gtk.h 2015-11-25 16:32:39 +01:00
Benjamin Otte
4843925660 iconhelper: Remove unused function 2015-11-25 16:32:39 +01:00
Benjamin Otte
2a8e6619a7 iconhelper: Remove unused context argument
Various functions don't use the style context.
2015-11-25 16:32:39 +01:00
Carlos Garnacho
de7e27bc97 wayland: remove embarrassing g_print()s 2015-11-24 20:57:03 +01:00
Carlos Garnacho
5f59d7de1e wayland: Do not store the grab cursor separately
After the grab is finished, we would expect an enter event, and
GDK updating internally the cursor for that window and device.
This means there is no need at all to store it separately in the
backend.

As a side effect, animated cursors are now also possible on grab
icons.

https://bugzilla.gnome.org/show_bug.cgi?id=735847
2015-11-24 20:52:12 +01:00
Carlos Garnacho
cc2e77295e device: Fix dispose
The way master devices detach from their other master counterpart is
vulnerable to infinite recursion due to the way we first recurse on
the other device before clearing the pointer, this may happen if
that last reference to the other master device is held by the
device->associated field.

https://bugzilla.gnome.org/show_bug.cgi?id=732742
2015-11-24 20:52:12 +01:00
Carlos Garnacho
d62febcf97 wayland: Plug surface leak
Other backends take care of the cairo surface destruction in
GdkWindow::destroy. We must do the same here, or the cairo_surface
and its corresponding wl_buffer are left dangling.

https://bugzilla.gnome.org/show_bug.cgi?id=747295
2015-11-24 20:52:12 +01:00
Daniel Mustieles
0ff879e975 Updated Spanish translation 2015-11-24 15:20:20 +00:00
Matthias Clasen
3e8eacc8b7 dialog: Use an element name
This will help differentiating dialogs from other windows, style-wise.
2015-11-24 07:41:26 -05:00
Timm Bäder
bd0f217ff4 GtkPopover: Restore tails
The call to gtk_style_context_get_border was accidentally removed in
2182fe7d9d.
2015-11-24 11:37:00 +01:00
Timm Bäder
df2cb5befc inspector: Leave unneeded widgets out of source files 2015-11-24 11:17:10 +01:00
Timm Bäder
5e2aec7cbb GtkWidget: Add some missing nullable annotations 2015-11-24 11:17:10 +01:00
Timm Bäder
f154875e08 GtkStack: Add some missing nullable annotations 2015-11-24 11:16:51 +01:00
Matthias Clasen
8640216be7 Add a test for deprecated css properties 2015-11-23 22:31:20 -05:00
Matthias Clasen
943b2e8da7 3.19.3 2015-11-23 20:56:29 -05:00
Matthias Clasen
3b0ceea08b shortcuts section: Fix destroy
The container destroy implementation does not quite work here,
so do our own.
2015-11-23 19:48:50 -05:00
Matthias Clasen
0ed61a0480 Fix some new symbols for the docs 2015-11-23 17:01:22 -05:00
Matthias Clasen
8e12943a09 Raleigh: Avoid deprecated icon-shadow 2015-11-23 17:01:22 -05:00
Matthias Clasen
3532cd5365 places view: Fix up docs 2015-11-23 17:01:22 -05:00
Rico Tzschichholz
5d8f45c708 gtk: Fix make dist 2015-11-23 22:24:41 +01:00
Daniel Mustieles
ebaf1324f1 Updated Spanish translation 2015-11-23 19:04:26 +01:00
Daniel Mustieles
4c690ae977 Updated Spanish translation 2015-11-23 19:04:16 +01:00
Carlos Garnacho
728d63bfc3 searchenginetracker: Remove astray ");" closing a function
Sad face for me.
2015-11-23 18:20:44 +01:00
Carlos Garnacho
f6dd0438d1 searchenginetracker: Optimize direct/recursive folder lookups
tracker:uri-is-descendant/parent has the unfortunate side effect of
rendering the collation mechanisms in the database useless, so those
require full table scans to be validated.

Performing these as pure string comparisons will perform much better,
as those allow the underlying sqlite to rely on its own collation
to perform the search, which can be significantly faster with many
elements in the database.

https://bugzilla.gnome.org/show_bug.cgi?id=758407
2015-11-23 17:58:34 +01:00
Carlos Garnacho
61d6c1a523 searchenginetracker: ensure nie:url is bound
This could produce strange warnings as it is currently passed to
tracker:uri-is-* sparql functions, as these expect no NULLs.

https://bugzilla.gnome.org/show_bug.cgi?id=758407
2015-11-23 17:58:34 +01:00
Jakub Steiner
bb183ae591 last last gesture stock image fixes
- swipe left was missing outline conversion to allow recolorization
2015-11-23 16:13:45 +01:00
Matthias Clasen
b6e03dbc26 Load gesture images as symbolic icons
This makes them recolor in the dark theme, which looks better.
2015-11-23 10:08:14 -05:00
Jakub Steiner
454a4b7576 gesture stock images size fix
fit all images to 64x64
2015-11-23 15:53:02 +01:00
Jakub Steiner
24cedfd87e gesture stock images fixes
- convert all objects to shapes to allow css recoloring
  ala symbolic icons
2015-11-23 15:45:24 +01:00
Jakub Steiner
25d5fd97e9 more gesture stock images tweaks
- rotation gestures more natural look
2015-11-23 14:40:30 +01:00
Matthias Clasen
6dfcea304f gtk-demo: Stop using GtkShortcutsGesture
Use the new predefined gestures, and GtkShortcutsShortcut.
2015-11-23 08:37:14 -05:00
Matthias Clasen
98fd5bda58 Tweak the gtk-font-name setting docs
Clarify that only parts of the font name are used.

https://bugzilla.gnome.org/show_bug.cgi?id=758367
2015-11-23 08:18:37 -05:00
Jakub Steiner
3e649c4812 gesture stock images sizing
- make swipe left and right less wide
2015-11-23 14:06:18 +01:00
Jakub Steiner
1cd5ef5285 minor touchups on stock gesture images
- add minimal margin for safe scaling
- fixed height of 64pixels
- pixel alignment issues (grid fit)
2015-11-23 13:53:12 +01:00
Matthias Clasen
50abc8b525 shortcuts: Add set properties for optional things
This makes it possible to switch between gesture and accelerator
types and override the builtin icons and subtitles for predefined
gestures.
2015-11-22 22:41:48 -05:00
Matthias Clasen
576e68faba gtk-demo: Show all built-in gesture images
Show all the predefined gestures which have enum values
in GtkShortcutType. This also demonstrates the gesture
functionality of GtkShortcutsShortcut.
2015-11-22 22:41:48 -05:00
Matthias Clasen
304c5ac226 shortcuts: Add support for standard gestures
Add an enum for gestures that GtkShortcutsShortcut knows how
to show an image and subtitle for.

https://bugzilla.gnome.org/show_bug.cgi?id=758187
2015-11-22 22:41:48 -05:00
Matthias Clasen
62620a5244 Add stock gesture images
These will be used in the shortcuts window.
2015-11-22 22:41:48 -05:00
Matthias Clasen
c6dc863e90 shortcuts shortcut: Take over gesture functionality
It turns out that it is nicer in glade to have just a single
widget that can show either a shortcut or a gesture, so make
GtkShortcutsShortcut do it both.

GtkShortcutsGesture is now redundant and will be removed before
the next stable release.
2015-11-22 22:41:48 -05:00
Matthias Clasen
b1aef18c84 shortcuts: Fix size group handling
We need to keep pointers to the size groups and apply
them to shortcuts that are added later.
2015-11-22 22:41:48 -05:00
Matthias Clasen
a661ce4d06 shortcuts: Complete the container implementations
Various problems with the container implementations in
GtkShortcutsWindow, Section and Group were showing up
in glade.
2015-11-22 22:41:48 -05:00
Matthias Clasen
520da80bd0 shortcuts: Update title and section-names properly
The current code in gtkshortcutswindow.c is good enough to
construct a widget once from a .ui file, but fails to handle
changes at runtime, as happen e.g. in glade. Fix this by
listening for changes to section-name and title.
2015-11-22 22:41:48 -05:00
Piotr Drąg
3ee99423d7 Updated POTFILES.in 2015-11-22 20:01:39 +01:00
Timm Bäder
2182fe7d9d Don't pass widget state flags to GtkStyleContext API 2015-11-22 17:11:35 +01:00
Руслан Ижбулатов
f407871b87 GDK W32: Only restack windows with matching always-on-top status
This prevents normal application windows (and other kinds of windows)
from being moved up in Z-order to be above windows that have the
always-on-top bit set. Doing so would make the previously-normal windows
in question also always-on-top implicitly.
Windows that are already always-on-top will be restacked on top of other
always-on-top windows too.

https://bugzilla.gnome.org/show_bug.cgi?id=746745
2015-11-22 03:20:10 +00:00
Руслан Ижбулатов
6b7951b219 GDK W32: Refactor restacking functions a bit 2015-11-22 03:18:43 +00:00
Cosimo Cecchi
9ba94849e8 GtkRenderBorder: make one function static 2015-11-21 14:55:13 -08:00
Cosimo Cecchi
b821f132d1 GtkCssImage: formatting fixes 2015-11-21 14:52:18 -08:00
Timm Bäder
5fb10d25c1 gtk-demo: Fix selection in css basics demo 2015-11-21 21:04:02 +01:00
Pedro Albuquerque
cdd3e05fba Updated Portuguese translation 2015-11-21 09:01:10 +00:00
Matthias Clasen
036ee7a68b inspector: Always underline at least one char
Empty underlines are hard to make out. Since we get somewhat
unreliable section information from the CSS parser, we just
make sure that we always underline at least one character.
2015-11-20 20:59:53 -05:00
Benjamin Otte
ee1381a1f3 cssnodedeclaration: Only set the id on the widget path if we have one
Widget paths don't like NULL.
2015-11-21 02:40:53 +01:00
Matthias Clasen
adead3b499 Update key themes to use -gtk-key-bindings
The name gtk-key-bindings has been deprecated and causes warnings.
2015-11-20 20:35:39 -05:00
Matthias Clasen
d267b8e028 Rename the gtk-key-bindings property
This is not a standard CSS property, so rename it to
-gtk-key-bindings. We still support the old name, with a
deprecation warning.
2015-11-20 20:35:39 -05:00
Matthias Clasen
ba1fb4b0a7 HighContrast: use -gtk-icon-shadow
The name icon-shadow has been deprecated and causes warnings.
2015-11-20 20:35:39 -05:00
Matthias Clasen
b1f0283630 Adwaita: use -gtk-icon-shadow
The name icon-shadow has been deprecated and causes warnings.
2015-11-20 20:35:39 -05:00
Matthias Clasen
5f73e8a720 Rename the icon-shadow property
This is not a standard CSS property, so rename it to
-gtk-icon-shadow. We still support the old name, with a
deprecation warning.
2015-11-20 20:35:39 -05:00
Matthias Clasen
f3e4e8660d Warn if a property alias is used
Emit a deprecation warning if a property is not used
by its official name.
2015-11-20 20:35:39 -05:00
Matthias Clasen
7c95f50ee2 Add a way to add aliases for css properties
This will be used to rename some properties in a more
systematic way without breaking all users of the old name.
2015-11-20 20:35:39 -05:00
Matthias Clasen
d2d521d4b5 Add a deprecation error for the engine css property
This helps people fix up their css.
2015-11-20 20:35:39 -05:00
Matthias Clasen
df55412ba2 inspector: Fix css warning tags
The builder syntax for tags was invalid here (why did this not
get flagged as error ?!). While we're at it, give the warning
underline a nice, orange color.
2015-11-20 20:35:39 -05:00
Benjamin Otte
4b2ea59dd1 stylecontext: Treat empty path like no path
This way, we don't do weird stuff when an empty path is set.
2015-11-21 02:22:22 +01:00
Benjamin Otte
6eb89fb6a3 stylecontext: Copy name when setting widget path
Imitate what we do for the type. This way we don't lose the name on
save/restore.

https://bugzilla.gnome.org/show_bug.cgi?id=758442
2015-11-21 02:21:12 +01:00
Benjamin Otte
7373fd8aab cssnodedeclaration: Set element name and id on widget path
Otherwise the widget path creation functions will fail. This affects
widgets still using gtk_style_context_save().

https://bugzilla.gnome.org/show_bug.cgi?id=758442
2015-11-21 02:14:08 +01:00
Benjamin Otte
55061eca59 customproperty: Remove unused function 2015-11-21 02:11:52 +01:00
Benjamin Otte
0e2648e8c2 customproperty: Stop supporting the parsing of values
Now that we don't use custom CSS properties anymore, let's fail as early
as possible.
2015-11-21 00:53:47 +01:00
Matthias Clasen
ad49103b93 inspector: Show css parsing errors
The squiggly underline is useful, but seeing the error message
is much better, so show it in a tooltip.
2015-11-20 18:18:01 -05:00
Matthias Clasen
68d77b1823 Expand the container_remove hack
Make it possible to use gtk_container_remove on GtkShortcutsWindow.
glade needs this.
2015-11-20 15:31:00 -05:00
Matthias Clasen
159a13a065 shortcuts window: More complete container implementation
To give glade a chance to work with GtkShortcutsWindow, the
container implementation needs to be a bit more complete.
2015-11-20 15:31:00 -05:00
Benjamin Otte
d75989a52b cssstyle: Don't store custom css properties
This makes custom CSS properties no longer configurable. But it avoids
crashes when loading custom themes, so that's a good thing.

Testcase included.

https://bugzilla.redhat.com/show_bug.cgi?id=1281234
2015-11-20 21:22:15 +01:00
Timm Bäder
6489ec440f GtkSpinButton: Update node state on button release 2015-11-20 20:32:15 +01:00
Aurimas Černius
2cb0e4ac5f Updated Lithuanian translation 2015-11-20 21:17:47 +02:00
Jonas Ådahl
dc65abc44c wayland: Set a null cursor surface when cursor buffer is null
If the buffer of a cursor is NULL, for example if its an empty cursor,
just set the cursor surface to NULL as well. Not doing this we'll use
uninitialized hotspot coordinates, dimensions and scales.

https://bugzilla.gnome.org/show_bug.cgi?id=758025
2015-11-20 11:59:46 -05:00
Matthias Clasen
cf7bb4f2aa spin button: Fix initial button state
We can't use up_panel and down_panel as differentiators for the buttons,
because these window system resources don't exist before realize().
Just use a one-off enum for this purpose.

https://bugzilla.gnome.org/show_bug.cgi?id=758094
2015-11-20 11:40:55 -05:00
Timm Bäder
1db5ed0aae GtkLabel: Create gestures only when needed
And move them into the GtkLabelSelectionInfo struct.
2015-11-20 16:45:17 +01:00
Carlos Garnacho
770feff302 gtkdnd: Unbreak non-wayland builds
missing #ifdef...
2015-11-20 13:30:14 +01:00
Matthias Clasen
5018e32cbe 3.19.2 2015-11-20 00:13:20 -05:00
Matthias Clasen
9f75c5445f cell renderer progress: Avoid warnings
Use the right state when calling gtk_style_context_get_padding,
to avoid warnings.
2015-11-20 00:13:20 -05:00
Matthias Clasen
9202bc244e Fix make check
For some reason, GtkFileChooserNative is causing the defaultvalue
test to fail. I couldn't track this down quickly, so skip the
type for now.
2015-11-20 00:13:20 -05:00
Matthias Clasen
8f3ffe4d08 Work around g_test_dbus annoyance
Without iterating a mainloop for a bit, g_test_dbus_down() will
give us an error.
2015-11-20 00:13:20 -05:00
Matthias Clasen
4aceee71c5 stack switcher: Notify consistently
Whether to notify a property change should not depend
on whether the switcher is associated with a stack or not.
2015-11-20 00:13:20 -05:00
Matthias Clasen
530aa3cced shortcuts: Avoid excessive property notification
Notifying needlessly causes unnecessary work, and causes our
testsuite to fail.
2015-11-20 00:13:20 -05:00
Carlos Garnacho
c4f5fd111c wayland: Ensure we have a drop-side GdkDragContext without pointer
This GdkDragContext should be created even if we don't have pointer
capabilities. Make it created on add_seat(), and only set the device
on wl_seat.capabilities, so it can be set to either master pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=741066
2015-11-20 00:11:33 +01:00
Carlos Garnacho
26f9d6b1c1 gtkdnd: Ensure we don't fold the drag icon into the cursor on wayland
This is wrong by all accounts there, as we can do no tricks there to show
a "drag failed" animation, which is performed by the compositor itself
on wayland.
2015-11-19 23:28:19 +01:00
Carlos Garnacho
ec65c6d1ce wayland: Fix toplevel lookup before starting DnD
We use the high-level gdk_device_get_window_at_position() to figure
out the window, although this one actually tries to find out the
current window under the device coordinates, which might well fall
outside the window, so NULL is returned in those cases.

Fix this by using the lower level _gdk_device_window_at_position()
that will return the toplevel without further lookups, so is more
desirable here.

https://bugzilla.gnome.org/show_bug.cgi?id=758250
2015-11-19 23:27:26 +01:00
Carlos Garnacho
e3012dc9b3 gtkdnd: Use gdk_drag_begin_for_device()
We've got the pointer at hand there, just pass that instead of figuring
out from the client pointer.
2015-11-19 23:26:49 +01:00
Carlos Garnacho
d221119d14 wayland: Implement GdkDevice::window_at_position for touch
This goes through its own master pointer, so look up the pointer
emulating touch focus window and coordinates.
2015-11-19 23:26:48 +01:00
Carlos Garnacho
c405f810cd wayland: Disallow setting the cursor on the touch master pointer
That "pointer" is not backed by anything in the windowing system, ignore
cursor updates there.
2015-11-19 23:26:48 +01:00
Carlos Garnacho
a72974252f wayland: Ensure we get the master pointer on GdkDeviceManager::get_client_pointer
Now that we have multiple master pointers, this call may pick the wrong one.
Instead, pick the GdkWaylandDeviceData from the first device, and pick the
master pointer from there.
2015-11-19 23:26:48 +01:00
Carlos Garnacho
04ecffa238 wayland: Separate touch pointer emulation into its own master pointer
The common GDK code accounts for "pointer emulating" touch sequences to be
synchronized with the pointer position by the windowing system.

However on Wayland pointer and touch are completely independent, the backend
attempts to implement pointer emulation, but doesn't account for the
possible crossing events happening when the user switches from pointer to
touch or the opposite.

In order to fix this, and to ensure we don't have to interact with the
master pointer (which backs the wl_pointer), separate the touch interface
to have its own master pointer, and ensure crossing events are emitted on
it, so the picture of an "emulated pointer" is complete above the backend.

Inspired in a former patch by Jonny Lamb <jonnylamb@gnome.org>

https://bugzilla.gnome.org/show_bug.cgi?id=750845
2015-11-19 23:26:48 +01:00
Christoph Reiter
bb34db6d35 gtkheaderbar: update the window buttons on ::hierarchy-changed instead of ::realize
The window button setup depends on properties of the toplevel window.
Instead of updating the setup on realize, do it when the toplevel
changes.

This makes sure that when a GtkHeaderBar is added to a window
all the widgets are present and get_preferred_height() will return
the height the widget will have when finally shown. This allows
the logic in gtkwindow to select the right window size so that
the content size will match the requested default size.

https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-11-19 21:42:53 +01:00
Christoph Reiter
308aec53c6 gtkwindow: apply CSD adjustments to the default size when used instead of when setting it
Before the resulting window size would differ if the default size was set
before adding a headerbar vs after. Now the saved state is again the actual
requested size and it is adjusted at the time we request a window size.

https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-11-19 21:42:24 +01:00
Olivier Fourdan
1080ffdf19 window: maximize on double click only if allowed
GtkHeaderBar will not show the maximize button if the window in not of
type normal or not resizeable.

Use the same restriction for double-click actions as well.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=757530
2015-11-19 15:04:03 -05:00
Jonas Platte
6a69c01e42 Fix return annotations for GtkWindow
Add nullable annotations for functions that may return NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=753520
2015-11-19 15:01:31 -05:00
Phillip Wood
ce8b5b4586 Fix character entities
These are not supposed to be supported by gtk-doc¹

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

https://bugzilla.gnome.org/show_bug.cgi?id=758175
2015-11-19 14:54:57 -05:00
Carlos Soriano
9f3839066e gtkstack: allow templates to override all properties
Currently GtkStack has some G_PARAM_CONSTRUCT properties. That means,
the properties are set with its default value after the initializacion
of the object.
When using GtkBuilder to build objects, GtkBuilder creates them and
after that sets the properties found on the xml definition.
However, this is not true for templates because the template is initialized
in the init() function of the actual object, and after that, the construct
properties will be set.

This is a problem when someone wants to use templates with GtkStack and
set those properties, since they will be set on the tempalt initialization
and set again to its default values afterwards.

To fix this, make those properties not G_PARAM_CONSTRUCT.

https://bugzilla.gnome.org/show_bug.cgi?id=758086
2015-11-19 14:50:09 -05:00
Matthias Clasen
0434649cc1 Updates 2015-11-19 14:40:55 -05:00
Matthias Clasen
12a692ea9d wayland: Avoid a crash
We can end up in situations where NULL gets passed to
get_transient_parent(). Embrace it instead of avoiding it.

https://bugzilla.gnome.org/show_bug.cgi?id=758327
2015-11-19 14:40:55 -05:00
Matthias Clasen
029aad7907 Add more CSS node docs 2015-11-19 14:01:41 -05:00
Matthias Clasen
040723ec2d Trivial: Some doc rewording 2015-11-19 13:40:57 -05:00
Matthias Clasen
2b5d4455b8 Add some CSS node docs
Write up some of the insights from doing the CSS node transition,
so the knowledge is not lost.
2015-11-19 12:56:30 -05:00
Emmanuele Bassi
e2d9051f23 Do not use the GPL v3 blurb for LGPL v2.1 files
GTK+ is licensed under the terms of the GNU LGPL v2.1+.
2015-11-19 12:54:48 +00:00
Emmanuele Bassi
e4c565d780 Do not use the LGPL v3 blurb for LGPL v2.1 files
GTK+ is released under the terms of the GNU LGPL v2.1+.
2015-11-19 12:54:48 +00:00
Emmanuele Bassi
8194bd1960 Fix the license version in GtkTrashMonitor
There is no GNU Lesser General Public License version 2; it's either GNU
Library General Public License version 2, or GNU Lesser General Public
License version 2.1.
2015-11-19 12:54:48 +00:00
Emmanuele Bassi
0d48a308ae Fix license version for GtkFileChooserWidget private header
Since it's using Lesser GPL, use version 2.1; there is no Lesser GPL v2,
as it was called 'Library GPL' prior to v2.1.
2015-11-19 12:54:06 +00:00
Emmanuele Bassi
eec10b703f Fix the licensing blurb of GtkBookmarksManager
Copy-pasta from GPL instead of LGPL.

Also, there is no GNU Lesser General Public License version 2; either
it's the GNU Library General Public License version 2, or it's the GNU
Lesser General Public License version 2.1.
2015-11-19 12:52:46 +00:00
Emmanuele Bassi
1ddf204745 Fix the licensing blurb in GtkPlacesSidebar
The code is released under the terms of the LGPL v2.1+, as is the rest
of the GTK+ code.
2015-11-19 12:52:46 +00:00
Matthias Clasen
a2d9223094 Fix license header
I didn't meant to make this different from any other file
in GTK+ when I added it.
2015-11-19 07:22:01 -05:00
Matthias Clasen
95df0fb6f5 box: Use an element name 2015-11-19 07:07:26 -05:00
Matthias Clasen
86764aeb1c toolitemgroup: Fix initial state
GtkToolItemGroup starts out as non-collapsed, make the CSS node
state reflect that.
2015-11-19 06:05:15 -05:00
Matthias Clasen
7435c87775 Document GDK_TOUCHPAD_GESTURE_MASK 2015-11-19 06:05:15 -05:00
Christian Hergert
0a0213bc1c entry: ensure valid GdkWindow before set_invisible_cursor()
If the window has not yet been created, then we can't set the invisible
cursor yet. This can happen in situations where the widget is in a
revealer with type-to-search functionality.
2015-11-18 14:41:29 -08:00
Cosimo Cecchi
bb441f4488 HighContrast: remove deprecated progressbar style properties
These are ignored and trigger a runtime warning.
2015-11-18 09:16:51 -08:00
Daniel Mustieles
727885e35d Updated Spanish translation 2015-11-18 12:22:59 +00:00
Olivier Fourdan
370e3469c6 gtkwindow: apply csd offset to set/get_default_size
An application may use gtk_window_get_size() to retrieve the current
window size and later reuse that size with
gtk_window_set_default_size().

gtk_window_set_default_size() and gtk_window_get_default_size() should
also take client side decorations offset into account.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-11-18 08:35:31 +01:00
Matthias Clasen
87b10e6f60 popover: Avoid a crash when no relative-to widget is set
This was showing up in glade, which creates freestanding
popovers.
2015-11-17 22:48:35 -05:00
Matthias Clasen
f79aef67f8 HighContrast: remove deprecated style properties 2015-11-17 21:47:02 -05:00
Matthias Clasen
7085595c08 expander: Use the right state when querying style properties
Failure to do so causes warnings.
2015-11-17 20:48:50 -05:00
Matthias Clasen
527d6a6f34 gtk-demo: Fix the CSS examples
The CSS needs small adjustments after all the CSS node changes.
2015-11-17 20:02:05 -05:00
Matthias Clasen
1266c6d81a gtk-demo: Fix the assistant example
GtkEntry respects valign now, so we need to set it to something
other than fill.
2015-11-17 19:48:02 -05:00
Matthias Clasen
49bb6d287c Adwaita: Drop deprecated style properties 2015-11-17 19:41:08 -05:00
Carlos Garnacho
4c49c0a297 wayland: Move additional pointer buttons after the old 4-7 scrolling ones
We were using that range for the extra buttons after left/right/middle,
while this is harmless for clients not handling extra buttons (we
used to translate those button events into scroll events in x11 anyway)
this will be unexpected for clients that do handle additional mouse
buttons themselves (eg. back/forward buttons present in some mice).

In order to remain compatible with X11, those need to be assigned from
button 8 onwards.

Also, include input.h, and stop using magic numbers here.

https://bugzilla.gnome.org/show_bug.cgi?id=758072
2015-11-17 22:41:22 +01:00
Daniel Mustieles
a51c607df7 Updated Spanish translation 2015-11-17 18:56:17 +01:00
Daniel Mustieles
9432f91847 Updated Spanish translation 2015-11-17 18:56:07 +01:00
GNOME Translation Robot
32b6b4e980 Updated Scottish Gaelic translation 2015-11-17 17:47:41 +00:00
Carlos Garnacho
c5b7cd97b6 x11: Add "pointer" to the is-not-a-touchscreen device name checks
Commit 1266d15c4 also broke Xwayland, as it does the same trick
than VMWare pointers. Let's extend the heuristic to check for "pointer"
in the device name, what can possibly go wrong...

https://bugzilla.gnome.org/show_bug.cgi?id=757358
2015-11-17 16:22:06 +01:00
Christian Hergert
0ca014af14 stackswitcher: add GtkStackSwitcher:icon-size property
Set the GtkStackSwitcher:icon-size property to change the size of icons
used in the linked GtkRadioButton children.

https://bugzilla.gnome.org/show_bug.cgi?id=758208
2015-11-16 21:38:22 -08:00
Matthias Clasen
c659292940 x11: Try harder to find a core pointer
We currently just look for a master device with input source MOUSE.
After recent changes to the way input devices are classified, xwayland
on my system comes up with a virtual core pointer that has input
source TOUCHSCREEN. This was causing assertion failures. Be a little
more careful and accept a touchscreen as core pointer, if there is
no mouse.
2015-11-16 18:34:18 -05:00
Matthias Clasen
e24c248013 Adwaita: Remove deprecated style properties
These are now triggering warnings, so clean them up.
2015-11-16 15:14:41 -05:00
Matthias Clasen
43f822e70f Annotate deprecated style properties
Use G_PARAM_DEPRECATED with deprecated style properties.
This will make it easier to identify and remove such stale
properties from css, since it will now trigger warnings.
2015-11-16 15:13:33 -05:00
Matthias Clasen
08c4bc8aa5 css provider: Issue deprecation warnings for style properties
This makes G_PARAM_DEPRECATED useful for style properties.
2015-11-16 14:37:23 -05:00
Benjamin Otte
9facd00884 cssprovider: Only push a new scanner when none exists
For @import, we want to emit the error as part of the @import statement,
not as part of the new file.
2015-11-16 19:34:24 +01:00
Benjamin Otte
0a4e88b79b cssprovider: Have a section on import error
When loading a nonexisting CSS file using
gtk_css_provider_load_from_file() or gtk_css_provider_load_from_path()
we would emit the error using a NULL scanner. Don't do that, because
we'll have a NULL section in that case and error handlers don't like
that.

Testcase attached.

https://bugzilla.redhat.com/show_bug.cgi?id=1277959
2015-11-16 17:39:15 +01:00
Carlos Soriano
81cb57b260 gtkcontainer: clarify requirements for implementations
Spent quite a few time investigating why the widgets were
not shown in my GtkContainer implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=758087
2015-11-16 17:18:00 +01:00
GNOME Translation Robot
d0d393174b Updated Scottish Gaelic translation 2015-11-16 15:22:01 +00:00
Matthias Clasen
ed2c14f4aa spinbutton: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
90f8b054b3 range: Document some style properties as deprecated
Remove dead code dealing with the arrow-displacement-x/y style
properties, and document them as deprecated.
2015-11-16 07:20:18 -05:00
Matthias Clasen
c6d5accf9c progressbar: Ignore x/yspacing style properties
These are not really useful, so ignore and deprecate them.
2015-11-16 07:20:18 -05:00
Matthias Clasen
bab98a8427 menuitem: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
3aa9293258 menubar: Ignore the shadow-type style property
The border can be controlled with regular CSS, so deprecate
and ignore this style property.
2015-11-16 07:20:18 -05:00
Matthias Clasen
af04390b29 icon view: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
46b7b0ac9f entry: Ignore the icon-prelight style property
The icon prelight effect can be controlled with regular CSS,
so deprecate and ignore this style property.
2015-11-16 07:20:18 -05:00
Matthias Clasen
684cd47c53 button: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
8fea3ebfa0 button box: Document some style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
c1dd25d459 assistant: Document style properties as deprecated
No code change.
2015-11-16 07:20:18 -05:00
Matthias Clasen
5cc6fb7644 Avoid an unused variable warning
This was introduced with the recent win32 build fix.
2015-11-16 07:20:18 -05:00
Cosimo Cecchi
8a66e685a6 stack switcher: fix typos in documentation comment 2015-11-15 14:11:48 -08:00
Kjartan Maraas
d8aedfebfd Updated Norwegian bokmål translation. 2015-11-15 19:44:56 +01:00
Matthias Clasen
3811eb4f32 label: Use css nodes for links
Use a subnode with name link for links in labels. These subnodes
carry the :link or :visited state.
2015-11-15 01:04:27 -05:00
Carlos Garnacho
b32c7c3282 x11: Do not misdetect mice with abs axes as touchscreens
VMWare seems to create mouse devices with abs axes which confuses
our detection of single-touch touchscreens. Those have though a
name we can match on ("VirtualPS/2 VMware VMMouse"), it should
be pretty safe to assume that no real touchscreens have "mouse"
in their name...

https://bugzilla.gnome.org/show_bug.cgi?id=757358
2015-11-14 23:45:46 -05:00
Rui Matos
bc6d2d65fb wayland: Translate virtual modifiers too
Wayland allows us to receive virtual modifiers too so we can just use
them directly if the compositor does send them.

https://bugzilla.gnome.org/show_bug.cgi?id=748904
2015-11-14 23:26:11 -05:00
Matthias Clasen
a24de82ced spinbutton: update node state more often
We need to update the entry_node state, and we should
update the node state initially.
2015-11-14 23:18:17 -05:00
Matthias Clasen
9b041ae930 shortcuts: Support direction-specific shortcuts
The prime example for direction-dependent shortcuts is using
<Alt>Left or <Alt>Right to go back. Support this by adding a
direction property to GtkShortcutsShortcut, and filtering by
the current text direction.

https://bugzilla.gnome.org/show_bug.cgi?id=757888
2015-11-14 22:34:19 -05:00
Matthias Clasen
705d371362 help overlay: Allow key sequences
Extend the syntax to allow sequences of keys or key combinations,
e.g. t+t or <ctl>c+<ctl>x.

https://bugzilla.gnome.org/show_bug.cgi?id=758051
2015-11-14 21:34:43 -05:00
Matthias Clasen
fe65c3ac4c Add one more selector to CSS parsing tests
Add an E + F selector to the selector parsing tests.
It is a CSS selector that we support.
2015-11-14 19:04:42 -05:00
Matthias Clasen
2d054fa6ae Always pass the right state in style context getters
Otherwise, we are causing warnings that break make check.
2015-11-14 19:03:57 -05:00
Matthias Clasen
dedab98bbb testsuite: Skip GtkFileChooserNative for notification tests
Like all the other GtkFileChooser implementations, this one
emits some unneeded notifications.
2015-11-14 19:03:10 -05:00
Matthias Clasen
aa5af9da4f HighContrast: Fix selection styling in icon views
This makes selected items in icon view show up again.
2015-11-14 18:35:03 -05:00
Matthias Clasen
55667352aa HighContrast: Fix selection styling in treeviews
This makes selected rows in treeviews show up again.
2015-11-14 18:29:27 -05:00
Matthias Clasen
65635546b4 HighContrast: Fix selection styling in some places
Make selected flow box children and list box rows show up again.
2015-11-14 18:25:59 -05:00
Matthias Clasen
4cee658f5f Adwaita: Misc cleanups
Various cleanups and simplifications.
2015-11-14 18:25:24 -05:00
Matthias Clasen
afab635f9d HighContrast: Fix shadow size
Ensure that the shadow extents don't change as we go to backdrop,
to prevent windows from jumping.
2015-11-14 18:05:06 -05:00
Matthias Clasen
718ca64bb7 Adwaita: Fix selection styling in icon views
This was also broken by recent selection styling changes.
2015-11-14 17:36:35 -05:00
Matthias Clasen
919be04a3d Adwaita: Fix selection styling in flow boxes
This was broken by recent selection styling changes.
2015-11-14 17:33:00 -05:00
Timm Bäder
d6cbe7ed2b GtkApplicationWindow: the help_overlay is nullable 2015-11-14 22:58:38 +01:00
Timm Bäder
d9de02e1ca GtkApplicationWindow: Fix typos 2015-11-14 22:20:27 +01:00
Matthias Clasen
dc836abbb4 Adwaita: Fix window shadow size
Ensure that the shadow extents don't change as we go to backdrop,
to prevent windows from jumping.
2015-11-14 12:55:34 -05:00
Matthias Clasen
93629325d5 Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
debb33db8c Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
bcc6df00e5 Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
828a66b4aa Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
38be852bee Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
10a8533bd3 Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
6c5d08d75a Cosmetic: Avoid explicit state variables
Fold it into its single user.
2015-11-14 12:32:57 -05:00
Matthias Clasen
3007ad6f3b Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
eca9549c72 Cosmetic: Avoid explicit state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
beb2875437 Cosmetic: Avoid explict state variables
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
acdb7dae4e Cosmetic: Avoid an explicit state variable
Using the state of the context makes it more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
cf1adadfed listbox: Cosmetic cleanup
We don't cast these arguments anywhere else, so lets not do here
either.
2015-11-14 12:32:57 -05:00
Benjamin Otte
55735cee2f window: Don't invalidate cssnode during get_preferred_width()
Getting the shadow width must not call gtk_style_context_set_state()
because that will invalidate the node and cause a style-updated emission
which can cause gtk_widget_queue_resize() calls.

And calling queue_resize() from get_preferred_size() essentially means
the size is permanently invalid because you invalidate it while
querying it.

This causes flickering of windows when going from/to backdrop state. To
avoid this we either need to fix the theme to not have different shadow
sizes in those cases or we need to ensure the window doesn't flicker in
the first place.
2015-11-14 18:32:08 +01:00
YunQiang Su
38bfec8ea4 Us ... instead of … for zh_CN 2015-11-14 21:59:40 +08:00
Pedro Albuquerque
3c1193f3e4 Updated Portuguese translation 2015-11-14 07:50:47 +00:00
Timm Bäder
3c22784328 GtkShortcutsShortcut: Add missing word 2015-11-13 14:12:35 +01:00
Timm Bäder
86f4346c29 GtkGrid: Remove invalid return annotation 2015-11-13 14:12:35 +01:00
Chun-wei Fan
d01ea18dc3 gtkimcontextsimple.c: Use X11_DATA_PREFIX only on X11/Wayland
Only use the hard-coded build-time path given by X11_PREFIX on X11 and
Wayland where a X11 package is normally available.  On other platforms,
get the datadir of the running system and mimic the behavior by
constructing the path dynamically.  This avoids hardcoding the path for
searching for compose tables where we want to have relocatability.

This fixes the build on Windows/MSVC as well, where we don't normally have
any X11 packages available.

https://bugzilla.gnome.org/show_bug.cgi?id=757984
2015-11-13 07:39:54 -05:00
Matthias Clasen
1190a61c27 check menu item: Fix a typo
It is check, not checl. Pointed out by Giovanni Campagna in
https://bugzilla.gnome.org/show_bug.cgi?id=757968
2015-11-13 07:11:23 -05:00
Matthias Clasen
386b9ef075 Adwaita: Fix styling of selected rows in treeviews
This broke in some of the recent selection handling changes.
2015-11-13 07:07:53 -05:00
Paolo Borelli
c619c86250 filechooser: ignore double clicks on the selected item
Since we are now interpreting button press events and
make our own double-click determination, we should not
handle double-click events that are generated by GDK.

https://bugzilla.gnome.org/show_bug.cgi?id=757950
2015-11-13 07:07:53 -05:00
Ignacio Casal Quinteiro
d74a08b80f win32: do not use g_clear_pointer also on the clipboard window
A follow up on the previous patch. We should use DestroyWindow
directly since it has a different calling convention than
the expected callback for g_clear_pointer
2015-11-13 12:58:45 +01:00
Ignacio Casal Quinteiro
2ad243d43d win32: do not use g_clear_pointer to destroy the window
DestroyWindow expects a different calling convenction so
we endup getting an error at runtime
2015-11-13 12:57:53 +01:00
Matthias Clasen
e0aa35ca58 Update testlevelbar
This test needs some small updates after the recent changes
to levelbar styling.
2015-11-13 06:41:14 -05:00
Matthias Clasen
4faef48410 notebook: Chain up in direction_changed
We do this everywhere else.
2015-11-13 06:41:14 -05:00
Yosef Or Boczko
989f607e4a Updated Hebrew translation 2015-11-13 11:51:07 +02:00
Matthias Clasen
a0cdd4ac51 HighContrast: Update levelbar styling
Adapt to changes in the previous commit.
2015-11-13 01:05:30 -05:00
Matthias Clasen
d5ab5fee3b Adwaita: Update levelbar styling
Adapt to the changes in the previous commit. In particular, fix
the handling of low and high offsets. Anything below the low offset
gets warning color, anything below high gets selected background,
and anything below the new full offset gets success color.
2015-11-13 00:56:54 -05:00
Matthias Clasen
21209a963a levelbar: Use more CSS nodes
Create as many CSS nodes as we're rendering blocks on the screen.
2015-11-13 00:55:28 -05:00
Sébastien Wilmet
1685da6f69 textbuffer: nicer get_iter functions, without return values
Avoid crashes when passing an invalid location to a
gtk_text_buffer_get_iter_at_*() function.

A first attempt added boolean return values to know if @iter has been set to
the exact location, but it breaks Python and JS bindings because the out
parameter is already a return value in those languages.

Unit tests are added.

https://bugzilla.gnome.org/show_bug.cgi?id=735341
2015-11-12 17:50:39 +01:00
Ignacio Casal Quinteiro
1f5f3ca41b win32: destroy clipboard notification window on dispose
The clipboard uses a hidden window to get some specific events.
The window was created but never destroyed on dispose.
2015-11-12 17:09:25 +01:00
Mingye Wang (Arthur2e5)
a4ccf0e382 update zh_CN translation 2015-11-12 23:18:24 +08:00
Ignacio Casal Quinteiro
79f7f19c6e win32: chain up on display dispose 2015-11-12 16:00:53 +01:00
Matthias Clasen
fde91c3bec Revert "textbuffer: nicer get_iter functions"
This reverts commit a9a1c00cc9.

Unfortunately, adding the boolean return broke both the python
and javascript bindings, since they now return a tuple consisting
of the boolean and the out argument.
2015-11-12 09:58:28 -05:00
Chun-wei Fan
a56f8859ee gtktestutils.c: Ensure variables are declared at top of block
Fixes build on C89 compilers...
2015-11-12 20:12:26 +08:00
Chun-wei Fan
dbe430f6ec MSVC builds: Use /opt:ref for release builds
glib-compile-resources have been updated to ensure that the symbols
generated are referred to, so that they will not be optimized out by the
linker in release builds.  We can change from /opt:noref to /opt:ref,
which should improve optimization a bit.
2015-11-12 18:16:33 +08:00
Chun-wei Fan
97b44e02a9 MSVC 2010+ builds: Do not explicitly use /LTCG
This partially reverts de16a4e.

As we now ensure that items using GResources and GConstructors are always
referenced so that the linker does not optimize them out in a default
Release build, we no longer need to enforce the use of /LTCG, so
/LTCG:incremental will work as well.
2015-11-12 15:53:47 +08:00
Alexander Larsson
51dc4873fd Add gtk_native_dialog_destroy()
Its very easy to get extra references to the NativeDialog so that
when you release your last reference any visible dialog is not
hidden. We handle this by adding a destroy method similar to how
you destroy regular toplevels.
2015-11-11 16:06:44 +01:00
Alexander Larsson
402225a8e2 GtkNativeDialog: Fix modal handling in gtk_native_dialog_run() 2015-11-11 15:14:40 +01:00
Emmanuele Bassi
0e0b45602a tooltipwindow: Use a builder UI file
It's not a hugely complicated file, but it's easier to deal with some of
the details of tooltip windows styling if we have a UI file to edit,
instead of source code.
2015-11-11 12:27:07 +00:00
Emmanuele Bassi
73497c16ae Add autocleanups for GtkShortcutsWindow 2015-11-11 12:02:43 +00:00
Emmanuele Bassi
9ebe95f4a9 Remove introspection scanner guards around autocleanups
They are not needed.
2015-11-11 12:02:43 +00:00
Timm Bäder
5912790f32 gtklevelbar: Fix typo 2015-11-11 09:35:31 +01:00
Matthias Clasen
373a3517b3 HighContrast: Update levelbar styling
Adapt to the changes in the previous release.
2015-11-11 00:30:24 -05:00
Matthias Clasen
2a0024ebe2 Adwaita: Update levelbar rendering
Adapt to the changes in the previous commit.
2015-11-11 00:26:32 -05:00
Matthias Clasen
17f110433d levelbar: Port to use CSS nodes
Use element names levelbar, trough, block, and some style
classes on the block nodes: .discrete, .continuous, .empty,
.level-low, etc.
2015-11-11 00:25:24 -05:00
Matthias Clasen
601cbbcc87 Improve testlevelbar
Add a switch to toggle between discrete and continuous modes.
2015-11-10 23:31:33 -05:00
Matthias Clasen
02d08a1bd7 text util: Avoid creating transient nodes
We don't need to add .view - its already added, and shouldn't
really be needed in the first place.
2015-11-10 21:59:31 -05:00
Matthias Clasen
f3c915f18c HighContrast: Update textview selection styling
Use the selection element name.
2015-11-10 21:52:45 -05:00
Matthias Clasen
fbd6a814c6 Adwaita: Update textview selection styling
Use the selection name.
2015-11-10 21:51:36 -05:00
Matthias Clasen
9d9088304c text view: Improve text rendering
Use the text CSS node for rendering text, and the selection node
for rendering selected text, avoid gtk_style_context_save, update
states of all CSS nodes, and use the proper states when querying
style properties.
2015-11-10 21:49:42 -05:00
Matthias Clasen
bb786ac240 textview: Use a CSS node for selection rendering
Use a CSS node with name selection, like we do for entries
and labels. Unlike those widgets, we currently don't user
gtk_render_background, but just use the background color.
That will require more effort.
2015-11-10 21:18:10 -05:00
Matthias Clasen
735a71da11 cell view: Add an element name
The element name is...cellview.
2015-11-10 20:45:42 -05:00
Matthias Clasen
514c0f761f HighContrast: Update label selection styling
Adapt to changes in the previous commit.
2015-11-10 20:33:12 -05:00
Matthias Clasen
218d584b54 Adwaita: Update label selection styling
Adapt to the changes in the previous commit.
2015-11-10 20:29:31 -05:00
Matthias Clasen
fafa75ac19 label: Use a CSS node for selection rendering
This adds new possibilities for themes to render the selection
in fancy ways.
2015-11-10 20:28:10 -05:00
Matthias Clasen
27d70cbb10 entry: Simplify selection rendering
Calling gtk_render_background for each rectangle in the region
leads to suboptimal and sometimes weird results. Getting this
right requires more work in Pango first. Go back to just rendering
a single background, and clip it to the selection region. This
matches what GtkLabel does.
2015-11-10 20:18:39 -05:00
Matthias Clasen
e9449f6014 inspector: Don't grow horizontally
Labels in the object tree are application data. Ellipsize them
to avoid growing extremely wide if the data is bogus.
2015-11-10 17:36:33 -05:00
Matthias Clasen
774b6f94d5 inspector: fix a typo 2015-11-10 17:36:23 -05:00
Matthias Clasen
6cbfc780c5 HighContrast: Update entry selection styling
Adapt to changes in the previous commit.
2015-11-10 13:39:10 -05:00
Matthias Clasen
e7854aeb42 Adwaita: Update entry selection rendering
Adapt to the changes in the previous commit.
2015-11-10 13:37:15 -05:00
Matthias Clasen
2a03107677 entry: Use a CSS node for selection rendering
This adds new possibilities for themes to render the selection
in fancy ways.
2015-11-10 13:36:16 -05:00
Matthias Clasen
3552f524c3 Adwaita: Update tooltip styling more
Now that tooltips are csd again, the CSS wasn't quite working
anymore.
2015-11-10 12:48:40 -05:00
Olivier Fourdan
f2b373add8 gtkwindow: css offset for toplevel only
At the time gtk_window_move() or gtk_window_resize() get called, there
is no way to predict if a popup window will actually draw its shadow, so
applying an offset in this case may end up with a wrong size or
positioning for such windows.

Changing the logic in gtk_window_should_use_csd() as previously done to
address that issue will cause some other breakage as popup windows may
not draw a shadow but still need CSD.

So best is to actually apply client side decorations offset for regular,
top level windows only. This is actually a lot simpler and safer and
less likely to cause additional breakage.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=756618
2015-11-10 12:35:23 -05:00
Matthias Clasen
69cbf0a129 Adwaita: update tooltip styling
Adapt to the changes in the previous commit. Note that tooltip
appearance is currently affected by tooltips having lost their
csd nature, due to a regression.
2015-11-10 12:26:05 -05:00
Emmanuele Bassi
62d9abeebc Move GtkAccelMap autocleanup to the class header 2015-11-10 14:12:35 +00:00
Emmanuele Bassi
a395852233 Recursively move autocleanups to their header files
Start from GtkAccelLabel and walk the tree downwards.
2015-11-10 14:11:04 +00:00
Emmanuele Bassi
56ab3bdf3c Move GtkAboutDialog autocleanup to the class header 2015-11-10 14:08:07 +00:00
Emmanuele Bassi
90c15c294e Move GtkDialog autocleanup to the class header 2015-11-10 14:07:41 +00:00
Emmanuele Bassi
93369788c9 Start recursively moving autocleanups macros to their headers
* Cover letter

Having a single header file for all autocleanups definitions was a
reasonable stop-gap measure, but now GTK+ is starting to use G_DECLARE_*
macros. This means that every class using a G_DECLARE_* macro will need
to include "gtk.h" to avoid compiler warnings, which is not acceptable.

By moving the G_DEFINE_AUTO* use to the header that defines the type we
allow using the G_DECLARE_* macros without sacrificing the ability to
include only the needed files when deriving from a class.

* Commit

This commit changes all includes relative to GtkWindow to define their
own autocleanup macros.
2015-11-10 13:59:36 +00:00
Emmanuele Bassi
d589170754 Only include the necessary headers in GtkPlacesViewRow
When compiling inside GTK we also use the GTK_COMPILATION guard, as the
GtkPlacesView and GtkPlacesViewRow widgets are shared with Nautilus.
2015-11-10 13:49:11 +00:00
Emmanuele Bassi
862007fe1c Move GtkListBox g_autoptr macros to the class header
This allows GtkPlacesViewRow to use G_DECLARE_FINAL_TYPE without having
to include gtk.h.
2015-11-10 13:48:31 +00:00
Emmanuele Bassi
0d4a010cbb Remove an unused variable declaration
And the compiler warning that comes with it.
2015-11-10 13:42:02 +00:00
Emmanuele Bassi
40d6321b4c Move GtkWindow g_autoptr macros in the class header
Otherwise we won't be able to use G_DECLARE_* macros internally to GTK
without generating warnings, or without including gtk.h itself.
2015-11-10 13:42:02 +00:00
Emmanuele Bassi
d694a9a83b docs: Ignore GtkTooltipWindow's private header file 2015-11-10 13:24:05 +00:00
Matthias Clasen
534f537a3c Fix an oversight
We must set the construct-only "type" to GTK_WINDOW_POPUP, otherwise
this ends upo being a regular toplevel.
2015-11-10 13:23:18 +00:00
Emmanuele Bassi
6f6e536543 Use CSS node name for GtkTooltipWindow
Instead of a style class.
2015-11-10 13:23:18 +00:00
Emmanuele Bassi
a846fd586d Add GtkTooltipWindow private sub-class
GtkTooltip does a lot of set up on the GtkWindow it uses internally. We
should move that code to a separate class to keep it contained.
2015-11-10 13:23:18 +00:00
Matthias Clasen
c2d0aa7851 print dialog: Avoid gtk_style_context_save
There was one more call to gtk_style_context_save here that I
overlooked. We can get rid of it by just setting the element name
on the drawing area.
2015-11-10 07:54:59 -05:00
Matthias Clasen
afc09d924e flowbox: Add a diagram to CSS documentation 2015-11-10 07:39:40 -05:00
Matthias Clasen
740fa2cd70 iconview: Add a diagram to CSS documentation 2015-11-10 07:37:25 -05:00
Matthias Clasen
ff4b112265 treeview: Add a diagram to CSS documentation 2015-11-10 07:36:41 -05:00
Matthias Clasen
ec065d4cbf HighContrast: Update treeview rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 07:31:32 -05:00
Matthias Clasen
8efb1b1f92 Adwaita: Update treeview rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 07:30:29 -05:00
Matthias Clasen
4c56a1ea5d treeview: Use a CSS node for rubberband drawing
Use a CSS node with name rubberband to draw the rubberband
selection.
2015-11-10 07:29:54 -05:00
Alexander Larsson
0af457639d TextView: Use saner coordinate space in draw_layer.
When I added the draw_layer vfunc it accidentally got passed a cairo_t
that was configured with to draw in the viewport coordinate space (rather
than the buffer coordinate space). This makes things unnecessary complex,
because you have to convert between the two.

The pixel cache is shared between the text and the layers, so there is
no way to use draw_layer to get a stationary overlay effect. Thus it makes
much more sense for the draw_layer vfunc to draw in the buffer space.

Just changing this would break ABI for existing code, so this is fixed
by adding new layer types and deprecating the old ones.

Also, we use the new layer types to fix gtk3-widget-factory.

https://bugzilla.gnome.org/show_bug.cgi?id=757856
2015-11-10 08:39:47 +01:00
Matthias Clasen
b0a6af3783 Forgotten file
This change belongs to the iconview rubberband changes.
2015-11-10 00:55:57 -05:00
Matthias Clasen
921c2a1db4 HighContrast: Update flowbox rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 00:55:29 -05:00
Matthias Clasen
f6201e4ccd Adwaita: Update flowbox rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 00:52:09 -05:00
Matthias Clasen
6c7f4b78b5 flowbox: Use a CSS node for rubberband drawing
Use a CSS node with name rubberband to draw the rubberband
selection.
2015-11-10 00:51:48 -05:00
Matthias Clasen
75d465eee4 HighContrast: Update rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 00:30:39 -05:00
Matthias Clasen
f4076dff42 Adwaita: Update rubberband styling
Adapt to the changes in the previous commit.
2015-11-10 00:28:46 -05:00
Matthias Clasen
318269550b iconview: Use a CSS node for rubberband drawing
Use a CSS node with name rubberband to draw the rubberband
selection.
2015-11-10 00:27:11 -05:00
Matthias Clasen
ee76f9bfed HighContrast: Update text handle styling
Adapt to the changes in the previous release.
2015-11-09 23:49:29 -05:00
Matthias Clasen
3daff48aca Adwaita: Update text handle styling
Adapt to the changes in the previous commit.
2015-11-09 23:47:08 -05:00
Matthias Clasen
0a136004c9 Document text handle styling
Since GtkTextHandle is private, document text handle style
classes in the GtkEntry and GtkTextView documentation.
2015-11-09 23:45:29 -05:00
Matthias Clasen
ea51db1feb text handle: Port to CSS nodes
Use cursor-handle as the element name for the CSS node that
is used to render text the selection handles.
2015-11-09 23:33:54 -05:00
Matthias Clasen
14f4b7ead2 Avoid excessive property notification for GtkStack::interpolate-size
make check checks this for writable properties, and fails now that
we've made this property writable.
2015-11-09 14:53:25 -05:00
Matthias Clasen
c283315466 notebook: Update CSS docs
The .header style class is no longer used.
2015-11-09 13:33:58 -05:00
Timm Bäder
c28be30ac1 colorswatch: Don't pass _GENERIC_FALLBACK to API that doesn't support it 2015-11-09 17:13:19 +01:00
Alexander Larsson
09a181d205 gdk: Fix invalidation w/ pixel cache when changing child window geometry.
When moving/scrolling a child window we can't use the current clip
region to limit what is invalidated, because there may be a pixel
cache that listens for changes outside the clip region. Instead
invalidate the entire area and rely on the invalidation code to limit
the repaint to the actually visible area.
2015-11-09 17:06:00 +01:00
Benjamin Otte
a0d9728e6c textdisplay: save/restore when using different state flags
Also, never use gtk_widget_get_state_flags() when we want
gtk_style_context_get_state()
2015-11-09 14:17:53 +01:00
Olivier Fourdan
9757ea2c49 gtkwindow: Fix resize without "_GTK_FRAME_EXTENTS"
git commit a5b1cdd0 introduced a regression where CSD windows are not
resizable with metacity.

Reason being that metacity does not support "_GTK_FRAME_EXTENTS" and
therefore gtk_window_supports_client_shadow() would always return FALSE.

This explains why it works with window managers which support
"_GTK_FRAME_EXTENTS" such as mutter/gnome-shell or xfwm4.

Partially revert commit a5b1cdd0 to reinstate the logic in
get_shadow_width().

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=757805
2015-11-09 14:17:53 +01:00
Matthias Clasen
32f27a4cd0 container: Slightly reword some docs
Clarify gtk_container_remove documentation regarding reference
holding. Suggested in

https://bugzilla.gnome.org/show_bug.cgi?id=757607
2015-11-09 07:40:44 -05:00
Matthias Clasen
7314c8ca06 tool item group: Use a CSS node for the arrow
This completes the transition for GtkToolItemGroup.
2015-11-09 06:42:59 -05:00
Matthias Clasen
db70ec9666 HighContrast: Update notebook styling
Some fixes for arrows and for headers.
2015-11-08 21:08:38 -05:00
Matthias Clasen
f564f16b5c Adwaita: Update notebook styling
Adapt to the changes in the previous commit.
2015-11-08 21:08:38 -05:00
Matthias Clasen
4802b515e4 notebook: Use CSS nodes for arrows
This converts the drawing of scroll arrows to use separate CSS
nodes.
2015-11-08 21:08:38 -05:00
Matthias Clasen
78373eb9f7 Don't use a transient node in gtk_render_arrow()
It is not necessary for the users of this API, and causes things
to not work as intended. Without this transient node, styling
"notebook header tabs arrow" has the desired effect on notebook
arrows.
2015-11-08 21:08:38 -05:00
Matthias Clasen
306b6c6024 widget-factory: Add another notebook example
This example shows a scrollable notebook with action widgets.
2015-11-08 21:08:38 -05:00
Matthias Clasen
e892b918dc HighContrast: update notebook styling
Adapt to the changes in the previous commit.
2015-11-08 21:08:38 -05:00
Matthias Clasen
6592c6f51f Adwaita: Adapt notebook styling a bit
This needs a lot more work.
2015-11-08 21:08:38 -05:00
Matthias Clasen
5686853c6e notebook: redo notebook styling
Add a header node, and put positional classes on it.
2015-11-08 21:08:38 -05:00
Benjamin Otte
2fcbf996c6 placesview: Don't export API
This is a private object, don't export its symbols.

https://bugzilla.gnome.org/show_bug.cgi?id=756978
2015-11-09 01:48:54 +01:00
Benjamin Otte
0e75fbf39c cssnode: Propagate NTH_LAST_CHILD changes properly
We were just catching the previous sibling before. Now we properly
invalidate all previous siblings (and also all other wiblings, but we
can think about optimizing that later).
2015-11-09 01:48:14 +01:00
Benjamin Otte
4141a7d7c8 csstypes: Propagate NTH_CHILD and NTH_LAST_CHILD to siblings
Otherwise, we'd have to mark eveyr child on changes, and it's far easier
to do that once we actually validate.
2015-11-09 01:48:14 +01:00
Benjamin Otte
a7816909ef box: Refactor CSS node handling
Only update the node that changed, don't invalidate everything.
2015-11-09 01:48:14 +01:00
Benjamin Otte
bed3ff2737 box: Don't track children visibility
It's not necessary anymore with css nodes.
2015-11-09 01:48:14 +01:00
Benjamin Otte
d55628cd9f testutils: Add deprecation guards 2015-11-09 01:48:14 +01:00
Matthias Clasen
c2a9202a66 Move gtk_builder_extend_with_template to public header
We export the symbol, so we should not hide it in private
headers.
2015-11-08 19:21:45 -05:00
Matthias Clasen
f0a74bc302 Document gtk_builder_extend_wth_template 2015-11-08 19:21:39 -05:00
Gábor Kelemen
ed26f5d761 Updated Hungarian translation 2015-11-08 22:49:12 +00:00
4112 changed files with 711246 additions and 647458 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/subprojects/*/

82
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,82 @@
stages:
- build
- flatpak
- deploy
.cache-paths: &cache-paths
paths:
- _ccache/
- subprojects/gdk-pixbuf/
- subprojects/glib/
- subprojects/graphene/
- subprojects/libepoxy/
- subprojects/pango/
fedora-x86_64:
image: registry.gitlab.gnome.org/gnome/gtk/master:v2
stage: build
script:
- bash -x ./.gitlab-ci/test-docker.sh
artifacts:
when: on_failure
name: "gtk-${CI_COMMIT_REF_NAME}"
paths:
- "${CI_PROJECT_DIR}/_build/meson-logs"
cache:
key: "$CI_JOB_NAME"
<<: *cache-paths
.mingw-defaults: &mingw-defaults
stage: build
tags:
- win32
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
cache:
key: "%CI_JOB_NAME%"
<<: *cache-paths
msys2-mingw32:
variables:
MSYSTEM: "MINGW32"
CHERE_INVOKING: "yes"
<<: *mingw-defaults
.flatpak-defaults: &flatpak-defaults
image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master
stage: flatpak
artifacts:
paths:
- "${APPID}-dev.flatpak"
expire_in: 1 day
script:
- bash -x ./.gitlab-ci/flatpak-build.sh "${APPID}"
flatpak:demo:
variables:
APPID: org.gtk.Demo
<<: *flatpak-defaults
flatpak:widget-factory:
variables:
APPID: org.gtk.WidgetFactory
<<: *flatpak-defaults
pages:
image: registry.gitlab.gnome.org/gnome/gtk/master:v2
stage: deploy
script:
- meson -Ddocumentation=true _build .
- ninja -C _build
- ninja -C _build gdk4-doc gsk4-doc gtk4-doc
- mkdir -p public/
- mv _build/docs/reference/gtk/html/ public/gtk/
- mv _build/docs/reference/gdk/html/ public/gdk/
- mv _build/docs/reference/gsk/html/ public/gsk/
artifacts:
paths:
- public
only:
- master

82
.gitlab-ci/Dockerfile Normal file
View File

@@ -0,0 +1,82 @@
FROM fedora:29
RUN dnf -y install \
hicolor-icon-theme \
adwaita-icon-theme \
atk-devel \
at-spi2-atk-devel \
avahi-gobject-devel \
cairo-devel \
cairo-gobject-devel \
ccache \
colord-devel \
cups-devel \
desktop-file-utils \
elfutils-libelf-devel \
fribidi-devel \
gcc \
gcc-c++ \
gdk-pixbuf2-devel \
gdk-pixbuf2-modules \
gettext \
git \
glib2-devel \
glibc-devel \
glibc-headers \
gobject-introspection-devel \
graphene-devel \
gstreamer1-devel \
gstreamer1-plugins-good \
gstreamer1-plugins-bad-free-devel \
gstreamer1-plugins-base-devel \
gtk-doc \
iso-codes \
itstool \
json-glib-devel \
lcov \
libattr-devel \
libepoxy-devel \
libffi-devel \
libmount-devel \
librsvg2 \
libselinux-devel \
libXcomposite-devel \
libXcursor-devel \
libXcursor-devel \
libXdamage-devel \
libXfixes-devel \
libXi-devel \
libXinerama-devel \
libxkbcommon-devel \
libXrandr-devel \
libXrender-devel \
libxslt \
mesa-dri-drivers \
mesa-libEGL-devel \
mesa-libwayland-egl-devel \
ninja-build \
pango-devel \
pcre-devel \
python3 \
python3-pip \
python3-wheel \
redhat-rpm-config \
sassc \
systemtap-sdt-devel \
vulkan-devel \
wayland-devel \
wayland-protocols-devel \
which \
xorg-x11-server-Xvfb \
&& dnf clean all
RUN pip3 install meson==0.49.0
ARG HOST_USER_ID=5555
ENV HOST_USER_ID ${HOST_USER_ID}
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
USER user
WORKDIR /home/user
ENV LANG C.UTF-8

View File

@@ -0,0 +1,44 @@
#!/bin/bash
set -e
appid=$1
builddir=app
repodir=repo
flatpak-builder \
--stop-at=gtk \
${builddir} \
build-aux/flatpak/${appid}.json
flatpak-builder \
--run ${builddir} build-aux/flatpak/${appid}.json \
meson \
--prefix /app \
--libdir /app/lib \
--buildtype debug \
-Dx11-backend=true \
-Dwayland-backend=true \
-Dprint-backends=file \
-Dbuild-tests=false \
-Dbuild-examples=false \
-Dintrospection=false \
-Ddemos=true \
_build .
flatpak-builder \
--run ${builddir} build-aux/flatpak/${appid}.json \
ninja -C _build install
flatpak-builder \
--finish-only \
--repo=${repodir} \
${builddir} \
build-aux/flatpak/${appid}.json
flatpak build-bundle \
${repodir} \
${appid}-dev.flatpak \
--runtime-repo=https://flathub.org/repo/flathub.flatpakrepo \
${appid}

11
.gitlab-ci/run-docker.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
set -e
TAG="registry.gitlab.gnome.org/gnome/gtk/master:v2"
sudo docker build --build-arg HOST_USER_ID="$UID" --tag "${TAG}" \
--file "Dockerfile" .
sudo docker run --rm --security-opt label=disable \
--volume "$(pwd)/..:/home/user/app" --workdir "/home/user/app" \
--tty --interactive "${TAG}" bash

32
.gitlab-ci/test-docker.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/bin/bash
set -e
srcdir=$(pwd)
mkdir -p _ccache
export CCACHE_BASEDIR="$(pwd)"
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
ccache --zero-stats
ccache --show-stats
export CCACHE_DISABLE=true
meson \
-Dx11-backend=true \
-Dwayland-backend=true \
-Dbroadway-backend=true \
-Dvulkan=yes \
_build $srcdir
unset CCACHE_DISABLE
cd _build
ninja
ccache --show-stats
xvfb-run -a -s "-screen 0 1024x768x24" \
meson test \
--print-errorlogs \
--suite=gtk+ \
--no-suite=gtk+:gsk \
--no-suite=gtk+:a11y

53
.gitlab-ci/test-msys2.sh Normal file
View File

@@ -0,0 +1,53 @@
#!/bin/bash
set -e
if [[ "$MSYSTEM" == "MINGW32" ]]; then
export MSYS2_ARCH="i686"
else
export MSYS2_ARCH="x86_64"
fi
# Update everything
pacman --noconfirm -Suy
# Install the required packages
pacman --noconfirm -S --needed \
base-devel \
git \
mingw-w64-$MSYS2_ARCH-toolchain \
mingw-w64-$MSYS2_ARCH-ccache \
mingw-w64-$MSYS2_ARCH-pkg-config \
mingw-w64-$MSYS2_ARCH-gobject-introspection \
mingw-w64-$MSYS2_ARCH-meson \
mingw-w64-$MSYS2_ARCH-adwaita-icon-theme \
mingw-w64-$MSYS2_ARCH-atk \
mingw-w64-$MSYS2_ARCH-cairo \
mingw-w64-$MSYS2_ARCH-gdk-pixbuf2 \
mingw-w64-$MSYS2_ARCH-glib2 \
mingw-w64-$MSYS2_ARCH-graphene \
mingw-w64-$MSYS2_ARCH-json-glib \
mingw-w64-$MSYS2_ARCH-libepoxy \
mingw-w64-$MSYS2_ARCH-pango \
mingw-w64-$MSYS2_ARCH-fribidi \
mingw-w64-$MSYS2_ARCH-gst-plugins-bad \
mingw-w64-$MSYS2_ARCH-shared-mime-info
mkdir -p _ccache
export CCACHE_BASEDIR="$(pwd)"
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
# Build
ccache --zero-stats
ccache --show-stats
export CCACHE_DISABLE=true
meson \
-Denable-x11-backend=false \
-Denable-wayland-backend=false \
-Denable-win32-backend=true \
-Dvulkan=no \
_build
unset CCACHE_DISABLE
ninja -C _build
ccache --show-stats

View File

@@ -0,0 +1,36 @@
## Steps to reproduce
1. ...
2. ...
3. ...
<!--
You should try and reproduce with the demos applications available
under the `demos` directory, or the test programs in the `tests` directory.
Alternatively, please attach a *small and self-contained* example that
exhibits the issue.
-->
## Current behavior
<!--
Please describe the current behaviour
-->
## Expected outcome
<!--
Please describe the expected outcome
-->
## Version information
<!--
- Which version of GTK+ you are using
- What operating system and version
- For Linux, which distribution
- If you built GTK+ yourself, the list of options used to configure the build
-->
## Additional information
<!--
- Screenshots or screen recordings are useful for visual errors
- Please report any warning or message printed on the terminal
-->

View File

@@ -0,0 +1,34 @@
## Steps to reproduce
1. ...
2. ...
3. ...
<!--
You should try and reproduce with the demos applications available
under the `demos` directory, or the test programs in the `tests` directory.
Alternatively, please attach a *small and self-contained* example that
exhibits the issue.
-->
## Version information
<!--
- Which version of GTK+ you are using
- What operating system and version
- for Linux, which distribution
- If you built GTK+ yourself, the list of options used to configure the build
-->
## Warnings
<!--
- If the application generates warning messages before crashing please
report them here
-->
## Backtrace
<!--
- Attaching a stack trace obtained using GDB is appreciated; follow the
instructions on the wiki:
https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces
-->

266
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,266 @@
# Contribution guidelines
Thank you for considering contributing to the GTK project!
These guidelines are meant for new contributors, regardless of their level
of proficiency; following them allows the maintainers of the GTK project to
more effectively evaluate your contribution, and provide prompt feedback to
you. Additionally, by following these guidelines you clearly communicate
that you respect the time and effort that the people developing GTK put into
managing the project.
GTK is a complex free software GUI toolkit, and it would not exist without
contributions from the free and open source software community. There are
many things that we value:
- bug reporting and fixing
- documentation and examples
- tests
- new features
Please, do not use the issue tracker for support questions. If you have
questions on how to use GTK effectively, you can use:
- the `#gtk+` IRC channel on irc.gnome.org
- the [gtk](https://mail.gnome.org/mailman/listinfo/gtk-list) mailing list,
for general questions on GTK
- the [gtk-app-devel](https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list)
mailing list, for questions on application development with GTK
- the [gtk-devel](https://mail.gnome.org/mailman/listinfo/gtk-devel-list)
mailing list, for questions on developing GTK itself
You can also look at the GTK tag on [Stack
Overflow](https://stackoverflow.com/questions/tagged/gtk).
The issue tracker is meant to be used for actionable issues only.
## How to report bugs
### Security issues
You should not open a new issue for security related questions.
When in doubt, send an email to the [security](mailto:security@gnome.org)
mailing list.
### Bug reports
If you're reporting a bug make sure to list:
0. which version of GTK are you using?
0. which operating system are you using?
0. the necessary steps to reproduce the issue
0. the expected outcome
0. a description of the behavior; screenshots are also welcome
0. a small, self-contained example exhibiting the behavior; if this
is not available, try reproducing the issue using the GTK examples
or interactive tests
If the issue includes a crash, you should also include:
0. the eventual warnings printed on the terminal
0. a backtrace, obtained with tools such as GDB or LLDB
For small issues, such as:
- spelling/grammar fixes in the documentation
- typo correction
- comment clean ups
- changes to metadata files (CI, `.gitignore`)
- build system changes
- source tree clean ups and reorganizations
You should directly open a merge request instead of filing a new issue.
### Features and enhancements
Feature discussion can be open ended and require high bandwidth channels; if
you are proposing a new feature on the issue tracker, make sure to make
an actionable proposal, and list:
0. what you're trying to achieve
0. prior art, in other toolkits or applications
0. design and theming changes
If you're proposing the integration of new features it helps to have
multiple applications using shared or similar code, especially if they have
iterated over it various times.
Each feature should also come fully documented, and with tests.
## Your first contribution
### Prerequisites
If you want to contribute to the GTK project, you will need to have the
development tools appropriate for your operating system, including:
- Python 3.x
- Meson
- Ninja
- Gettext (19.7 or newer)
- a [C99 compatible compiler](https://wiki.gnome.org/Projects/GLib/CompilerRequirements)
Up-to-date instructions about developing GNOME applications and libraries
can be found on [the GNOME Developer Center](https://developer.gnome.org).
The GTK project uses GitLab for code hosting and for tracking issues. More
information about using GitLab can be found [on the GNOME
wiki](https://wiki.gnome.org/GitLab).
### Dependencies
In order to get GTK from Git installed on your system, you need to have the
required versions of all the software dependencies required by GTK; typically,
this means a recent version of GLib, Cairo, Pango, and ATK, as well as the
platform-specific dependencies for the windowing system you are using (Wayland,
X11, Windows, or macOS).
The core dependencies for GTK are:
- [GLib, GObject, and GIO](https://gitlab.gnome.org/GNOME/glib)
- [Cairo](http://cairographics.org)
- [Pango](https://gitlab.gnome.org/GNOME/pango)
- [GdkPixbuf](https://gitlab.gnome.org/GNOME/gdk-pixbuf)
- [Epoxy](https://github.com/anholt/libepoxy)
- [ATK](https://gitlab.gnome.org/GNOME/atk)
- [Graphene](https://github.com/ebassi/graphene)
GTK will attempt to download and build some of these dependencies if it
cannot find them on your system.
Additionally, you may want to look at projects that create a development
environment for you, like [jhbuild](https://wiki.gnome.org/HowDoI/Jhbuild)
and [gvsbuild](https://github.com/wingtk/gvsbuild).
### Getting started
You should start by forking the GTK repository from the GitLab web UI, and
cloning from your fork:
```sh
$ git clone https://gitlab.gnome.org/yourusername/gtk.git
$ cd gtk
```
**Note**: if you plan to push changes to back to the main repository and
have a GNOME account, you can skip the fork, and use the following instead:
```sh
$ git clone git@gitlab.gnome.org:GNOME/gtk.git
$ cd gtk
```
To compile the Git version of GTK on your system, you will need to
configure your build using Meson:
```sh
$ meson _builddir .
$ cd _builddir
$ ninja
```
Typically, you should work on your own branch:
```sh
$ git checkout -b your-branch
```
Once you've finished working on the bug fix or feature, push the branch
to the Git repository and open a new merge request, to let the GTK
maintainers review your contribution.
### Code reviews
Each contribution is reviewed by the core developers of the GTK project.
The [CODE-OWNERS](./docs/CODE-OWNERS) document contains the list of core
contributors to GTK and the areas for which they are responsible; you
should ensure to receive their review and signoff on your changes.
### Commit messages
The expected format for git commit messages is as follows:
```plain
Short explanation of the commit
Longer explanation explaining exactly what's changed, whether any
external or private interfaces changed, what bugs were fixed (with bug
tracker reference if applicable) and so forth. Be concise but not too
brief.
Closes #1234
```
- Always add a brief description of the commit to the _first_ line of
the commit and terminate by two newlines (it will work without the
second newline, but that is not nice for the interfaces).
- First line (the brief description) must only be one sentence and
should start with a capital letter unless it starts with a lowercase
symbol or identifier. Don't use a trailing period either. Don't exceed
72 characters.
- The main description (the body) is normal prose and should use normal
punctuation and capital letters where appropriate. Consider the commit
message as an email sent to the developers (or yourself, six months
down the line) detailing **why** you changed something. There's no need
to specify the **how**: the changes can be inlined.
- When committing code on behalf of others use the `--author` option, e.g.
`git commit -a --author "Joe Coder <joe@coder.org>"` and `--signoff`.
- If your commit is addressing an issue, use the
[GitLab syntax](https://docs.gitlab.com/ce/user/project/issues/automatic_issue_closing.html)
to automatically close the issue when merging the commit with the upstream
repository:
```plain
Closes #1234
Fixes #1234
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1234
```
- If you have a merge request with multiple commits and none of them
completely fixes an issue, you should add a reference to the issue in
the commit message, e.g. `Bug: #1234`, and use the automatic issue
closing syntax in the description of the merge request.
### Commit access to the GTK repository
GTK is part of the GNOME infrastructure. At the current time, any
person with write access to the GNOME repository can merge changes to
GTK. This is a good thing, in that it encourages many people to work
on GTK, and progress can be made quickly. However, GTK is a fairly
large and complicated project on which many other things depend, so to
avoid unnecessary breakage, and to take advantage of the knowledge
about GTK that has been built up over the years, we'd like to ask
people committing to GTK to follow a few rules:
0. Ask first. If your changes are major, or could possibly break existing
code, you should always ask. If your change is minor and you've been
working on GTK for a while it probably isn't necessary to ask. But when
in doubt, ask. Even if your change is correct, somebody may know a
better way to do things. If you are making changes to GTK, you should
be subscribed to the [gtk-devel](https://mail.gnome.org/mailman/listinfo/gtk-devel-list)
mailing list; this is a good place to ask about intended changes.
The `#gtk+` IRC channel on irc.gnome.org is also a good place to find GTK
developers to discuss changes, but if you live outside of the EU/US time
zones, an email to the gtk-devel mailing list is the most certain and
preferred method.
0. Ask _first_.
0. Always write a meaningful commit message. Changes without a sufficient
commit message will be reverted.
0. Never push to the `master` branch, or any stable branches, directly; you
should always go through a merge request, to ensure that the code is
tested on the CI infrastructure at the very least. A merge request is
also the proper place to get a comprehensive code review from the core
developers of GTK.
If you have been contributing to GTK for a while and you don't have commit
access to the repository, you may ask to obtain it following the [GNOME account
process](https://wiki.gnome.org/AccountsTeam/NewAccounts).

64
HACKING
View File

@@ -1,64 +0,0 @@
If you want to hack on the GTK+ project, you'll need to have
the following packages installed:
- GNU autoconf 2.62
- GNU automake 1.11
- GNU libtool 2.2
- indent (GNU indent 1.9.1 is known good)
- GNU gettext 10.40
These should be available by ftp from ftp.gnu.org or any of the
fine GNU mirrors. Beta software can be found at alpha.gnu.org.
Up-to-date instructions about developing GNOME applications and libraries
can be found here:
http://library.gnome.org/devel/
Information about using git with GNOME can be found here:
https://wiki.gnome.org/Git
In order to get GIT GTK+ installed on your system, you need to have
the most recent GIT versions of GLib, Pango, and ATK installed as well.
The installation process of these libraries is similar to that of GTK+,
but needs to be fulfilled prior to installation of GTK+.
If at all possible, please use GIT to get the latest development version of
gtk+ and glib. You can do the following to get glib and gtk+ from GIT:
$ git clone git://git.gnome.org/glib
$ git clone git://git.gnome.org/pango
$ git clone git://git.gnome.org/atk
$ git clone git://git.gnome.org/gtk+
Note: if you plan to push changes to back to the master repository and
have a gnome account, you want to use the following instead:
$ git clone ssh://<username>@git.gnome.org/git/gtk+
To compile the GIT version of GTK+ on your system, you will need to take
several steps to setup the tree for compilation. You can do all these
steps at once by running:
gtk+$ ./autogen.sh
Basically this does the following for you:
gtk+$ aclocal; automake; autoconf
The above commands create the `configure' script. Now you
run the `configure' script in `gtk+/' to create all Makefiles.
More information about that in `INSTALL'.
Before running `autogen.sh' or `configure', make sure you have libtool
in your path.
Note that autogen.sh runs configure for you. If you wish to pass
options like `--prefix=/usr' to `configure' you can give those options
to `autogen.sh' and they will be passed on to `configure'.
For information about submitting patches and pushing changes
to GIT, see the `README' and `README.commits' files. In particular,
don't, under any circumstances, push anything to GIT before
reading and understanding `README.commmits'.

View File

@@ -1,42 +0,0 @@
Prerequisites
=============
GTK+ requires the following packages:
- The GLib, Pango, GdkPixbuf, ATK and cairo libraries, available at
the same location as GTK+. GTK+ @GTK_VERSION@ requires at least
GLib @GLIB_REQUIRED_VERSION@, Pango @PANGO_REQUIRED_VERSION@,
GdkPixbuf @GDK_PIXBUF_REQUIRED_VERSION@, ATK @ATK_REQUIRED_VERSION@
and cairo @CAIRO_REQUIRED_VERSION@.
- libepoxy, for cross-platform OpenGL support.
It can be found here: https://github.com/anholt/libepoxy
- Each GDK backend has its own backend-specific requirements. For
the X11 backend, X11 R6 and XInput version 2 (as well as a number
of other extensions) are required. The Wayland backend requires
(obviously) the Wayland libraries.
- gobject-introspection @INTROSPECTION_REQUIRED_VERSION@ or newer.
Simple install procedure
========================
% tar xf gtk+-@GTK_VERSION@.tar.xz # unpack the sources
% cd gtk+-@GTK_VERSION@ # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK+
[ Become root if necessary ]
% make install # install GTK+
The Details
===========
Complete information about installing GTK+ and related libraries
can be found in the file:
docs/reference/gtk/html/gtk-building.html
Or online at:
http://library.gnome.org/devel/gtk/stable/gtk-building.html

View File

@@ -1,12 +0,0 @@
Matthias Clasen
E-mail: mclasen@redhat.com
Userid: matthiasc
Tim Janik
E-mail: timj@gtk.org
Userid: timj
Note that a lot of people are contributing to GTK+, and some parts of it
are technically maintained by other people. The people listed above are
meant as contacts for administrative questions such as cvs accounts. Other
questions are best directed to the mailing list gtk-devel-list@gnome.org.

View File

@@ -1,116 +0,0 @@
## Makefile.am for GTK+
include $(top_srcdir)/Makefile.decl
SRC_SUBDIRS = gdk gtk libgail-util modules demos tests testsuite examples
SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
EXTRA_DIST += \
autogen.sh \
HACKING \
README \
README.in \
INSTALL \
INSTALL.in \
NEWS.pre-1-0 \
README.commits \
README.win32 \
config.h.win32 \
makefile.msc \
gtk-zip.sh.in \
sanitize-la.sh \
po/README.translators \
po/po2tbl.sed.in \
make-pot
MAINTAINERCLEANFILES = \
$(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
$(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \
$(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \
$(srcdir)/m4/gtk-doc.m4 \
$(srcdir)/INSTALL \
$(srcdir)/README \
$(srcdir)/gtk-doc.make \
$(srcdir)/ChangeLog
## Copy .pc files to target-specific names
gtk+-x11-3.0.pc gtk+-win32-3.0.pc gtk+-quartz-3.0.pc gtk+-broadway-3.0.pc gtk+-wayland-3.0.pc gtk+-mir-3.0.pc: gtk+-3.0.pc
rm -f $@ && \
cp gtk+-3.0.pc $@
gdk-x11-3.0.pc gdk-win32-3.0.pc gdk-quartz-3.0.pc gdk-broadway-3.0.pc gdk-wayland-3.0.pc gdk-mir-3.0.pc: gdk-3.0.pc
rm -f $@ && \
cp gdk-3.0.pc $@
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gdk-3.0.pc gtk+-3.0.pc gail-3.0.pc
pkgconfig_DATA += ${GDK_BACKENDS:%=gtk+-%-3.0.pc}
pkgconfig_DATA += ${GDK_BACKENDS:%=gdk-%-3.0.pc}
if OS_UNIX
pkgconfig_DATA += gtk+-unix-print-3.0.pc
endif
DISTCLEANFILES = \
gtk+-unix-print-3.0.pc \
gtk+-3.0.pc \
gtk+-x11-3.0.pc \
gtk+-win32-3.0.pc \
gtk+-quartz-3.0.pc \
gtk+-broadway-3.0.pc \
gtk+-wayland-3.0.pc \
gtk+-mir-3.0.pc \
gdk-3.0.pc \
gdk-x11-3.0.pc \
gdk-win32-3.0.pc \
gdk-quartz-3.0.pc \
gdk-broadway-3.0.pc \
gdk-wayland-3.0.pc \
gdk-mir-3.0.pc \
gail-3.0.pc \
config.lt
distclean-local:
if test "$(srcdir)" = "."; then :; else \
rm -f ChangeLog; \
fi
ChangeLog:
$(AM_V_GEN) if test -d "$(srcdir)/.git"; then \
(GIT_DIR=$(top_srcdir)/.git $(top_builddir)/build-aux/missing git log GTK_2_16_0^^.. --stat) | fmt --split-only > $@.tmp \
&& mv -f $@.tmp $@ \
|| ($(RM) $@.tmp; \
echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
(test -f $@ || echo git-log is required to generate this file >> $@)); \
else \
test -f $@ || \
(echo A git checkout and git-log is required to generate ChangeLog >&2 && \
echo A git checkout and git-log is required to generate this file >> $@); \
fi
.PHONY: ChangeLog
uninstall-local:
rm -f $(DESTDIR)$(pkgconfigdir)/gtk+-3.0.pc
DISTCHECK_CONFIGURE_FLAGS = \
--enable-gtk-doc \
--disable-doc-cross-references \
--enable-man \
--disable-maintainer-mode \
--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 \
po-properties/.intltool-merge-cache
-include $(top_srcdir)/git.mk

View File

@@ -1,96 +0,0 @@
# GTK+ - The GIMP Toolkit
GTESTER = gtester -k # in $PATH for non-GLIB packages
GTESTER_REPORT = gtester-report # in $PATH for non-GLIB packages
# initialize variables for unconditional += appending
EXTRA_DIST =
TEST_PROGS =
### testing rules
# Xvfb based test rules
XVFB = Xvfb -ac -noreset -screen 0 1024x768x16
XIDS = 101 102 103 104 105 106 107 197 199 211 223 227 293 307 308 309 310 311 \
491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 \
991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 \
1008 1009 4703 4721 4723 4729 4733 4751 9973 9974 9975 9976 9977 9978 9979 \
9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 \
9995 9996 9997 9998 9999
if USE_X11
SKIP_GDKTARGET = \
false
else
SKIP_GDKTARGET = \
echo "Gtk+Tests:INFO: Skipping GUI tests for non-X11 target."
endif
if PLATFORM_WIN32
no_undefined = -no-undefined
endif
XVFB_START = \
${XVFB} -help 2>/dev/null 1>&2 \
&& XID=`for id in $(XIDS) ; do test -e /tmp/.X$$id-lock || { echo $$id; exit 0; }; done; exit 1` \
&& { ${XVFB} :$$XID -nolisten tcp -auth /dev/null >/dev/null 2>&1 & \
trap "kill -15 $$! " 0 HUP INT QUIT TRAP USR1 PIPE TERM ; } \
|| { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \
&& DISPLAY=:$$XID && export DISPLAY
# call as: $(XVFB_START) && someprogram
# test: run all tests in cwd and subdirs
test: test-cwd test-recurse
# test-cwd: run tests in cwd
test-cwd: ${TEST_PROGS}
@$(SKIP_GDKTARGET) || test -z "${TEST_PROGS}" || { \
$(XVFB_START) && { set -e; $(TESTS_ENVIRONMENT) G_TEST_SRCDIR="${abs_srcdir}" G_TEST_BUILDDIR="${abs_builddir}" ${GTESTER} --verbose ${TEST_PROGS}; }; \
}
# test-recurse: run tests in subdirs
test-recurse:
@ for subdir in $(SUBDIRS) ; do \
test "$$subdir" = "." -o "$$subdir" = "po" -o "$$subdir" = "po-properties" || \
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) test ) || exit $? ; \
done
# test-report: run tests in subdirs and generate report
# perf-report: run tests in subdirs with -m perf and generate report
# full-report: like test-report: with -m perf and -m slow
test-report perf-report full-report: ${TEST_PROGS}
@ ignore_logdir=true ; \
if test -z "$$GTESTER_LOGDIR" ; then \
GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
ignore_logdir=false ; \
fi ; \
for subdir in $(SUBDIRS) ; do \
test "$$subdir" = "." -o "$$subdir" = "po" -o "$$subdir" = "po-properties" || \
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
done ; \
$(SKIP_GDKTARGET) || test -z "${TEST_PROGS}" || { \
case $@ in \
test-report) test_options="-k";; \
perf-report) test_options="-k -m=perf";; \
full-report) test_options="-k -m=perf -m=slow";; \
esac ; \
$(XVFB_START) && { \
set -e; \
if test -z "$$GTESTER_LOGDIR" ; then \
G_TEST_SRCDIR="${abs_srcdir}" G_TEST_BUILDDIR="${abs_builddir}" ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
elif test -n "${TEST_PROGS}" ; then \
G_TEST_SRCDIR="${abs_srcdir}" G_TEST_BUILDDIR="${abs_builddir}" ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
fi ; \
}; \
}; \
$$ignore_logdir || { \
echo '<?xml version="1.0"?>' > $@.xml ; \
echo '<report-collection>' >> $@.xml ; \
for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
done ; \
echo >> $@.xml ; \
echo '</report-collection>' >> $@.xml ; \
rm -rf "$$GTESTER_LOGDIR"/ ; \
${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
}
.PHONY: test test-cwd test-recurse test-report perf-report full-report
# run make test-cwd as part of make check
check-local: test-cwd

10088
NEWS

File diff suppressed because it is too large Load Diff

903
NEWS.pre-2.0 Normal file
View File

@@ -0,0 +1,903 @@
Overview of Changes in GTK+ 2.0.0
=================================
* GtkTreeView fixes [Jonathan Blandford, Kristian Rietveld, Darin Adler]
* Build fixes [Anders Carlsson, Tor Lillqvist, Manish Singh]
* Bug fixes. [Thomas Leonard, Owen Taylor]
Overview of Changes in GTK+ 2.0.0 rc1
=====================================
* GtkTreeView fixes [Kristian Rietveld, Jonathan Blandford, Richard Hult]
* Text widget fixes [Havoc Pennington]
* Efficiency fixes when using Xft [Owen Taylor]
* Key handling fixes and other fixes for Win32 [Hans Breuer, Tor Lillqvist]
* Try to fix key handling without XKEYBOARD extension [Owen]
* Documentation fixes and improvements
[Matthias Clasen, Alexey Malyshev, Akira Tagoh, Vitaly Tishkov]
* Widget drawing improvements [Soeren Sandmann]
* Allow cycling between multiple menu bars with <Control>Tab [Owen]
* Try to build libraries with only shared library dependencies on Xft to
deal with transition to Xft2 [Owen]
* Portability fixes [Owen, Miroslaw Dobrzanski-Neumann]
* Don't use red as the default cursor color [Owen]
* Bug fixes, bug fixes, bug fixes.
Other contributors: Darin Adler, Jacob Berkman, Kevin Breit, Hans Breuer,
Anders Carlsson, Damon Chaplin, Finlay Dobbie, Jody Goldberg,
Andreas J. Guelzow, Scott Guilbeaux, Vlad Harchev, James Henstridge,
Tim Janik, Satyajit Kanungo, Charles Kerr, Sergey Kuzminov, Miles Lane,
Alexander Larsson, Paolo Maggi, Skip Montaro, Jan Mynarik, Sven Neumann,
Padraig O'Briain, Narayani Pattipati, Mark Patton, Havoc Pennington,
Ettore Perazzoli, Guillermo S. Romero, Manish Singh, Morten Welinder
Overview of Changes in GTK+ 1.3.15
==================================
* New stock and improved icon images
[Tuomas Kuosmanen, Jakub Steiner, Anders Carlsson]
* Widget drawing improvements for check and radio buttons,
spinbuttons [Soeren Sandmann]
* Clean up module search path algorithm, use GTK_PATH [Owen Taylor]
* Add GtkSetting for font name. [Richard Hestilow]
* Much improved key matching code, accelerators work independent
of group [Owen]
* Make mnemonics work for embedded GtkPlug widgets [Owen]
* Keynav improvements for GtkTreeView [Kristian Rietveld]
* Fix gtk_tree_view_scroll_to_cell() [Jonathan Blandford]
* Rename gtk_tree_view_get_iter_root() and gtk_tree_path_new_root()
to gtk_tree_view_get_iter_first() and gtk_tree_path_new_first(),
add compatibility macros.
* GtkTreeView bug fixes [Kristian, Anders, Damon Chaplin]
* GtkTextView bug fixes [Havoc Pennington]
* Pad class structures for future binary compatibility [Owen]
* Tutorial improvements [Sven Neumann, Matthias Clasen]
* Fixes for MULTIPLE selection target [Gregory Merchan, Owen]
* Fix problems with initial widget size [Owen]
* AIX compilation fixes [Miroslaw Dobrzanski-Neumann]
* Win32 fixes [Hans Breuer, Tor Lillqvist]
* Miscellaneous bug fixes
Other contributors: David L. Cooper, Eric Fischer, Jody Goldberg,
Satajyit Kanungo, Thomas Leonard, Mark Patton, Manish Singh,
Nicolas Setton
Overview of Changes in GTK+ 1.3.14
==================================
* Keyboard focus improvements [Owen Taylor]
* Code cleanup [Matthias Clasen, Manish Singh, Darin Adler]
* Fix accidentally exported variables [Mark McLoughlin]
* GtkTreeView fixes [Jonathan Blandford, Kristian Rietveld, John Harper, Darin]
* Default to yellow tooltips [Owen]
* RC file fixes for reloading, priorities [Owen, Matthias]
* GtkMenu behavior improvements and bug fixes [Owen, Arnaud Charlet]
* GtkTextView fixes [Havoc Pennington, Daniel Elstner, Dennis Bjorklund]
* Improve keynav for paned widgets, tooltips, spin buttons, notebooks,
scrolled windows [Soeren Sandmann, Padraig, Owen]
* Add Emacs/Default key themes [Owen]
* Win32 fixes [Hans Breuer, Tor Lillqvist]
* Ethiopic input methods [Daniel Yacob]
* Opaque paned window resizing [Soeren]
* Tweak table expansion behavior [Tim Janik]
* Fix GtkCalendar focus drawing [Bill Haneman]
* Allow themeable cursor thickness [Bill]
* Start of fixing of tutorial for GTK+-2.0 [Matthias]
* Add a ::adjust-bounds signal to GtkRange to allow spreadsheet style
scrollbars. [Jody Goldberg]
* Add the ability to turn on multiple selection for GtkFileSel [Manish]
* Bug fixes
Other contributors: Jacob Berkman, Padraig O'Briain, Anders Carlsson,
Johan Dahlin, Richard Hult, Stefan Kost, Alex Larsson, Thomas Leonard,
Paolo Maggi, Alexey Malyshev, Federico Mena Quintero, Skip Montaro,
Sven Neumann, Havoc Pennington, Laszlo Peter, Christian Rose, Joe Shaw,
Kevin Vandersloot, Morten Welinder, Peter Williams
Overview of Changes in GTK+ 1.3.13
==================================
* Tree view fixes. [Kristian Rietveld, Jonathan Blandford, Anders Carlsson]
* Tree view support for low-vision themes [Bill Haneman]
* Text view bug fixes. [Havoc Pennington]
* Win32 fixes and improvements. [Tor Lillqvist, Hans Breuer,
Archaeopteryx Software]
* Documentation improvements [Matthias Clasen, Havoc Pennington]
* Accelerate alpha compositing using RENDER extension if present,
and optimize the non-RENDER case a lot. [Owen Taylor]
* Add support for "optional keybindings" (action signal returns FALSE) [Owen]
* Fixed the infamous changing directory deletes filename bug
[Owen and a cast of thousands]
* Add mouse cursor hiding for text widgets [Anders Carlsson]
* Simple Hangul input module [Yusuke Tabata]
* Removed the scary startup warning.
* GdkPixbuf pixel handling fixes [Owen, Michael Hore, Jim Cape]
* Converted GtkFileSelection and GtkFontSelection to use GtKTreeView widgets
instead of the deprecated GtkCList [Owen]
* gtkhsv.h was installed by mistake, fixed that. [reported by Ross Burton]
* gdk_pixbuf_render_to_drawable() now also handles alpha pixbufs.
* Made Gtkimage draw GtkPixmap, GtkImage, GdkPixbuf insensitive, prelighted,
etc. [Havoc, Owen]
* Marked gtk_item_factory_path_from_widget() G_CONST_RETURN. [Matt Wilson]
* gtk_image_menu_item_new_from_stock() now falls back to
new_with_mnemonic, for consistency with gtk_button_new_from_stock()
[Havoc Pennington]
* GdkModifierType is now consistently used for modifier mask parameters
[Mark Patton]
* gtk_widget_set_accel_path() is now publically exported.
Other contributors: Darin Adler, Jeffrey Baker, Damon Chaplin, Brian Cameron,
Murray Cumming, James Henstridge, Jacob Berkman, Arnaud Charlet, Jeff Franks,
Jeff Garzik, Jody Goldberg, Diego Gonzalez, Melvin Hadasht, Raja Harinath,
Tim Janik, Mike Kestner, Mathieu Lacage, Alex Larsson, Ryan Lovett,
Mark McLoughlin, Sven Neumann, Padraig O'Briain, Xavier Ordoquy, Chris Phelps,
Detlef Reichl, Guillermo S. Romero, Federico Mena Quintero, Manish Singh,
HideToshi Tajima, Vitaly Tishkov, Jon Trowbridge, Sergey Vlasov.
Overview of Changes in GTK+ 1.3.12
==================================
* Fix problems with PNG saving [Michael Natterer]
* Cleanups of deprecated usages [Sebastian Wilhelmi]
* Win32 fixes [Tor Lillqvist]
* Documentation improvements [Matthias Clasen, Havoc Pennington,
Vitaly Tishkov]
* Frame buffer port fixes [Manish Singh]
* GtkTextView bug fixes [Havoc Pennington, Chris Phelps]
* Menu behavior improvements [Kristian Rietveld]
* Make focus line width configurable, focus color work on
dark themes. [Bill Haneman, Owen Taylor]
* Add state argument to gtk_paint_focus() [Bill]
* Added incremental revalidation to tree view, for better apparent speed
[Jonathan Blandford]
* Remove useless gtk_tree_view_column_cell_event() [Jonathan]
* Display XIM status in a separate window [HideToshi Tajima]
* Add GDK_DEBUG=nograbs to disable pointer, keyboard grabs [Jacob Berkman]
* Add menu of Unicode control characters to GtkEntry, GtkTextView
[Dov Grobgeld, Havoc]
* Pass key releases along to input methods [Owen]
* Many bug fixes
Other contributors: Darin Adler, Fabrice Bellet, Chris Blizzard,
Hans Breuer, Anders Carlsson, Damon Chaplin, Murray Cumming, Jeff Franks,
James Henstridge, Tim Janik, Alex Larsson, George Lebl, Kjartan, Maraas,
Sven Neumann, Seth Nickell, Padraig O'Briain, Soeren Sandmann, Manish Singh,
Matt Wilson
Overview of Changes in GTK+ 1.3.11
==================================
* Massive rework of accelerator API and implementation (Tim Janik)
* Major fixes to resizing and redrawing to eliminate hysteresis
and optimize. (Owen Taylor, Soeren Sandmann)
* Make many widgets NO_WINDOW to improve appearance and reduce
drawing overhead (Owen)
* Text view fixes (Havoc Pennington)
* Make child widgets in GtkTextView work (Havoc)
* GtkTreeModelSort fixage (Jonathan Blandford, Kristian Rietveld)
* Clean up GtkTreeView drag and drop support (Owen)
* Misc tree view fixes and improvements (Jonathan, Kristian, Anders, Matt Wilson)
* Add gtk_window_get/set_focus(), gtk_window_set_default() as public
functions (Owen, Damian Ivereigh)
* Fixes to GtkPlug/GtkSocket (Michael Meeks, Owen)
* Change button ordering in standard dialogs to correspond to
GNOME usability project proposal (Gregory Merchan)
* Add support for context sensitivity in input methods (Owen)
* Hook up gtk_im_context_set_use_preedit() (Hidetoshi Tajima)
* Fix gdk_window_scroll() and other aspects of big windows (Owen)
* Remove need for X connection for class initialization (Jacob Berkman)
* Propagate key events to parents of focused widget (Owen)
* Don't export normal GTK+ marshalers, export deprecated compat marshalers (Owen)
* Many Win32 Fixes and improvements (Hans Breuer, Tor Lillqvist)
* Bug and documentation fixing (Matthias Clasen, Anders Carlsson,
Jacob Berkman, others.)
Other Contributors:
Darin Adler, Marius Andreiana, Erwann Chenede, Murray Cumming, Janet Davis,
Daniel Egger, Daniel Elstner, Jeff Franks, Alex Larsson, George Lebl,
Sergey Kuzminov, Eric Lemings, Arkadiusz Miskiewicz, Padraig O'Briain, Sven Neumann,
Kristian Rietveld, Nicolas Setton, Manish Singh, Vitaly Tishkov, Sebastian Wilhelmi,
Michael Natterer
Overview of Changes in GTK+ 1.3.10
==================================
* GtkTextView fixes [Havoc Pennington]
* GtkTreeView fixes and improvements [Jonathan Blandford, Kristian,
Manish Singh, Joshua Pritikin, Oleg Maiboroda, James Henstridge]
* gtkdemo improvements [Kristian Rietveld]
* Drag and drop fixes to generic code and widgets
[Owen Taylor, Damian Ivereigh]
* Documentation improvement [Havoc Pennington, Matthias Clasen]
* Spelling fixes [Jacob Berkman]
* Move signals to the GtkEditable interface [Kristian]
* Further stock image improvements [Jakub Steiner]
* Support text chunks for the PGN loader, add gdk_pixbuf_get_option()
[Sven Neumann]
* Rename gdk_pixbuf_new_from_stream back to new_from_inline [Owen]
* Automatically call setlocale(), unless explicitly disabled [Owen]
* Property addition to various widgets [Michael Meeks, Owen]
* Support building with automake-1.4 [James]
* Make GtkRadioButton groups act as a single focus point [Owen]
* Move gdk_window_lookup etc. to be cross-platform [Matthias]
* Draw spinbuttons variably sized [Kristian]
* Separate GdkAtom out from X atoms for compatibility with future
multihead changes [Owen]
* Require gdk_threads_init() to be explicitly called instead
of piggybacking off of g_thread_init(). [Owen]
* Improvements to text-view/label/entry popup menus [Damian, Jacob, Owen]
* Bug fixes and cleanup [Matthias, others]
Other Contributors:
Mark McLoughin, Mikael Hermansson, Soeren Sandmann, Anders Carlsson,
Tim Janik, Murray Cumming, Hidetoshi Tajima, Padraig O'Briain,
Hans Breuer, Vitaly Tishkov, Dov Grobgeld
Overview of Changes in GTK+ 1.3.9
=================================
* Add editable text cells to GtkTreeView.
Keynav, drawing fixes in GtkTreeView [Jonathan Blandford]
* Text widget no longer always has a \n in it. [Havoc Pennington]
* Text widget bug fixes [Havoc, Dov Grobgeld, Hidetoshi Tajima]
* Allow -1 for width/height in gdk_pixbuf_render_*(). [Matthias Clasen]
* Minor fix for major resizing problems in recent releases [Owen Taylor]
* Restore ability to set _set properties to TRUE for
GtkCellRendererText, GtkTextTag [Owen]
* Cursor drawing improvements [Owen]
* Win32 fixes [Hans Breuer]
* Mark various functions as deprecated or private.
* Misc bug fixes, portability fixes, and cleanups.
Other Contributors:
Vitaly Tishkov, Christian Rose, Frank Belew, Jeff Franks, Sven Neumann,
Kristian Rietveld, Vitaly Tishkov, Joshua N. Pritikin, Matt Wilson,
James Henstridge, Detlef Reichl
Overview of Changes in GTK+ 1.3.8
=================================
* GtkTreeView and GtkTreeModel API cleanups/improvements [Jrb]
* GtkOptionMenu scrollwheel support [Alex]
* GtkModule search paths [Owen]
* Documenatation updates [Havoc,Jrb]
* Major Gdk cleanup [Owen]
* Miscellaneous other fixes/cleanups
Other Contributors:
Joshua N Pritikin, Padraig O'Briain, Jakub Steiner, Matthias Clasen,
Matt Wilson, James Henstridge
Overview of Changes in GTK+ 1.3.7
=================================
* Many Pixbuf (loader) improvements [Matthias Clasen, Soeren Sandmann]
* Added publically installed utility gdk-pixbuf-csource to generate
inlined pixbufs in C source code [Tim Janik]
* Optional movement of button children on press [Soeren, Owen Taylor]
* Interactive searching in GtkTreeView [Kristian Rietveld]
* Sorting/ordering improvements for GtkTreeView [Kris, Jonathan Blandford]
* Animation of expander motion for GtkTreeView [Anders Carlsson]
* Lots of misc GtkTreeView fixes and improvements [Jonathan]
* New/improved stock icons [Jakub Steiner]
* Code and API rework for window resizing [Havoc Pennington]
* Converted accel groups to GObject [James Henstridge]
* More property support improvements
* Add facility for "secondary" buttons in
GtkButtonBox/GtkDialog [Gregory Merchan]
* Disentangled child visability from MAPPED state [Owen]
* Plug/Socket improvements and port to the XEMBED protocol [Owen]
* Added priorities for styles in RC files,
support multiple parse contents [Owen]
* Made GdkVisual and GdkDevice GObjects [Alexander Larsson]
* Key binding improvements [Havoc]
* Added GtkWidget::event-after signal since normal event handling
is now aborted as soon as a handler returned TRUE [Tim]
* Dnd fixes and improved icon support [Owen]
* Removed GtkPacker widget
* Fixing missing paired getters/setters [Kris]
* Nuked remaining GtkArg cruft, implemented container/child properties [Tim]
* Added window grab groups [Owen]
* Many frame buffer improvements [Alex]
* Win32 fixes and improvements [Hans Breuer]
* Warning fixes [Darin Adler]
* Miscellaneous bug and API fixes [Matthias et. al]
Other Contributors:
Joshua N Pritikin, Hidetoshi Tajima, Manish Singh, ERDI Gergo, Jens Finke,
Chema Celorio, Lee Mallabone, Vitaly Tishkov, Sebastian Wilhelmi,
Nicola Girardi, Sven Neumann, Padraig O'Briain, Michael Natterer,
Suresh Chandrasekharan, Jonas Borgström, Jay Cox, Michael Meeks,
Mathias Hasselmann, Peter Williams, Thomas Broyer, Kjartan Maraas,
Joel Becker, Jeff Franks, Brian Cameron, Skip Montanaro
Overview of Changes in GTK+ 1.3.6
=================================
* Properly renders strikethrough text
* win32 fixes
* Added "scale" property to GtkTextTag and GtkCellRendererText to do
relative font scaling
* Added "format_value" signal to GtkScale to reformat value text
* framebuffer fixes
* Property support added to lots of widgets
* Many GtkTreeView new features and API/implementation fixes
* Lots of new_with_mnemonic() convenience functions
* Change GtkImageMenuItem API to be more consistent/useful
* Added lots of new stock items/icons
* Rewrote GtkRange/GtkScale/GtkScrollbar, includes support for
enabling/disabling extra scrollbar stepper arrows in gtkrc so NeXT
themes won't need broken hacks
* Convenience API for GtkRange similar to the one added to GtkSpinButton
a while back
* Make menubar/toolbar work properly with xthickness/ythickness of 1 or 0,
and move some attributes from program settings to user settings.
Allows nice 1-pixel-bevel themes.
* Moved ::focus virtual function from GtkContainer to GtkWidget
* Plenty of bug fixes
Overview of Changes in GTK+ 1.3.5
=================================
* New default theme based on Raleigh theme for 1.2.x.
* Dependency on the ATK library added as a step to
providing accessibility-enabling interfaces
* XEMBED-based GtkPlug/GtkSocket now basically works.
* Drag and drop of column headers in GtkTreeView
* GtkColorSelector work: hooks for saving and propagating palette, UI tweaks,
and API sanitation
* Key binding fixes
* Configurable padding/spacing in a lot of places
* Invisible text in GtkTextView fixed
* SHM segments now created with a mode of 0600
* Bug fixes
Overview of Changes in GTK+ 1.3.4
=================================
* Win32 fixes
* GtkTreeView improvements and fixes
* Fix glib-2.0.m4
* Miscellaneous bug fixes
Overview of Changes in GTK+ 1.3.3
=================================
[ 5600 lines of ChangeLog ]
* API cleanups
* Win32 work (Tor, Hans Breuer)
* Focus improvements (Owen)
* Frame buffer improvements (Alex)
* Work on GtkTextView (Havoc)
* Much work on GtkTreeView (Jonathan)
* Selectable labels (Havoc)
* Converted many arguments to properties (Lee Mallabone, John Margaglione)
* Add exact regions to GdkExposeEvent, propagate it. (Alex)
* Added ability to have resize grips in status bars (etc.) using
_NET_WM_MOVERESIZE protocol. (Havoc)
* Added mnemnonic mechanism to make setting underline accelerators
much easier. (Alex)
* Add per-style property mechanism to allow themes to change
geometry parameters. (Tim)
* Added global settings mechanisms for settings such as double-click
time. (Tim, Owen)
* Various support functions for new and old WM properties (Havoc, Alex)
* Add TRUE-stops-returns for boolean-returning signals (Ron Steinke)
Overview of Changes in GTK+ 1.3.2
=================================
GTK Core:
* New stock-icon and stock-item system. Use themeable pixbufs in
dialogs, buttons, etc. [Havoc]
* Theme engines reworked to use derivation and new object system. [Owen]
* Added GtkClipboard object for simple selection handling. [Owen]
* Make GtkEditable an interface, move implementation to GtkOldEditable for
compat. [Owen]
* Better handling of default directionality. [Robert]
* Use GSignal as backend for GtkSignal and other GObject stuff. [Tim]
* Move theme engines to GTypePlugin. [Owen]
GDK:
* Beginning of implementation of client parts of new window manager spec. [Owen]
* Make gdk_drawable_get_image() work with backing store. [Havoc]
Widgets:
* New text widget [Havoc]
- Adjustable tab handling.
- Ability to have scrolling side areas in new text widget for tabs/line numbers.
- Many cleanups and small improvements.
* Improvements to submenu navigation [Nils Barth/David Santiago] and
scrolling menus. [Alex]
* Simplification of progress bar API. [Havoc]
* Make GtkImage a generic image-display widget. [Havoc]
* New GtkTreeView tree widget. Model/view architecture, flexible rendering,
large datasets, etc. [Jonathan]
* New GtkMessageBox widget for message display. [Havoc]
* Allow labels to have contents set from XML-like markup language. [Havoc]
* Make dialogs derive from GtkDialog and use stock buttons. [Havoc]
Internationalization:
* Proper character set conversion for clipboard/selection. [Owen]
* New input method system via loadable modules; support on-the-spot
preedit in GtkEntry and new text widget; allow switching input methods
on the fly; include modules for XIM and demo Cyrillic-transliteration
module. [Owen]
* VIQR, Thai, and Inuktitut input methods. [Robert]
* Convert po files to UTF-8. [Robert]
gdk-pixbuf:
* Full-alpha compositing for gdk-pixbuf on drawable. [Havoc]
* Add simple saving to gdk-pixbuf. [David Welton/Havoc]
* Add improved error handling with GError to gdk-pixbuf. [Havoc]
Ports:
* Much work on Win32 Port. [Tor/Hans]
* Much work on Linux-FB Port. [Elliot/Alex]
Misc:
* Start of new gtk-demo demo program. [Owen/Jonathan]
* Bug fixes and more bug fixes.
Overview of Changes in GTK+ 1.3.1:
* GTK+ now uses the Pango library for text manipulation. All
strings in GTK+ now are in Unicode, languages written
from right-to-left, and complex-text languages are now supported.
* The gdk-pixbuf library for image loading and manipulation is
has been integrated with GTK+.
* The GTK+ object system has mostly been moved to GLib, separating
it from the GUI code. Many significant enhancements have been
made as part of this.
* A new text widget is now included. This started as a port
of the Tk text widget, and includes such features of the Tk
text widget as tags, marks, and unicode text support. It
has been enhanced to support model-view operation and the
full power of Pango.
* The GDK library has been extensively revised to support multiple
windowing systems. The only fully functional backend in 1.3.1
is the X11 backend, however, ports to Win32, Linux-framebuffer,
Nano-X, BeOS, and MacOS exist in various states of completion,
and at least some of these will be finished and integrated in
before the final GTK+-2.0 release.
* 32-bit coordinates are now supported throughout GDK and GTK+
(they are emulated where not supported by the windowing system.)
* Many minor bug fixes and enhancements. Incompatible changes
are documented in docs/Changes-2.0.txt
Overview of Changes in GTK+ 1.2.8:
* GNU Make 3.79 bug workaround
* FAQ and tutorial updates and improvements
* Miscellaneous bug fixes: CList, Calendar, rc-files, FontSelection
Overview of Changes in GTK+ 1.2.7:
* More header cleanups.
* Fixed activation bug for insensitive widgets.
* Locale fixes to RC file parsing code.
* Miscellaneous bugfixes for Item Factory, CList, CTree, X Selections,
HScale, VScale, Pixmap, Viewport, OptionMenu, Entry and Notebook.
* Upgrade to libtool 1.3.4.
Overview of Changes in GTK+ 1.2.6:
* container queue_resize fixes
* gtk[vh]scale: minor fixups
* rename idle to idle_id in testgtk to avoid conflicts with
broken libs
* More consistent naming of gtkrc files
* Added language support: ro, uk
Overview of Changes in GTK+ 1.2.5:
* more GtkCTree and GtkWindow bug fixes.
* more redraw/resize queue fixes, better expose event
discarding code.
* more miscellaneous bugs fixed
* new configure.in option --disable-rebuilds to completely disable
rebuilds of autogenerated sources.
* check for 5.002 now, to avoid failing autogeneration build rules due
to old perl versions.
* fonts (and fontsets) are cached now.
* more autogeneration make rules and dependency fixups, we should be
save with autogeneration up to make -j12 now ;)
* new window position GTK_WIN_POS_CENTER_ALWAYS, which will recenter the
GtkWindow on every size change.
* major rework of window manager hints handling code, fixed a bunch of
races with the new resizing code.
* the new wm hints and resizing code is absolutely perfect and bug free now,
it only lacks testing ;)
* fixed up various rc style memory problems.
* gtk_widget_modify_style() now properly changes the style of realized widgets
and references the style passed into it. if people worked around this bug,
this will introduce a slight memory leak in their code.
The code should typically look like:
GtkRcStyle *rc_style = gtk_rc_style_new ();
[...]
gtk_widget_modify_style (widget, rc_style);
gtk_rc_style_unref (rc_style);
* fix problems with positioning menus offscreen.
* GtkText fixes for some crashes and drawing errors.
* Better handling for unexpected window destroys in GDK and GTK+.
This should make it possible to use a GtkPlug and catch the
case where its parent socket is randomly killed.
* FAQ updates.
* FileSelection i18n patches, RadioButton fixups.
* many translation improvements.
* miscellaneous other bugs fixed.
Overview of Changes in GTK+ 1.2.4:
* DnD improvements (drags can be canceled with Esc now).
* suppressed configure event reordering in Gdk.
* rewrite of Gtk's configure event handling.
* major improvements for the object argument system (Elena Devdariani).
* major bugfixes for threading, GtkNotebook, GtkItemFactory, GtkCList and
GtkCTree.
* tutorial/FAQ updates, new file generation.txt on autogenerated sources.
* configure's --with-glib= is "officially" unsupported.
* upgrade to libtool 1.3.3.
* various buglets fixed.
Overview of Changes in GTK+ 1.2.3:
* Upgrade to libtool 1.3
* Check for dgettext (for systems with old versions of GNU Gettext)
* Many bug fixes (see ChangeLog for details)
Overview of Changes in GTK+ 1.2.2:
* Improved Dnd behaviour with Motif applications.
* Bug fixes for the Gtk selection code.
* Minor bug fixes to the Gdk Atom cache and Dnd code (with --display option).
* Bug fixes and leak plugs for the Gdk IM code.
* Added gtk_object_get() facility to retrieve object arguments easily.
The var args list expects ("arg-name", &value) pairs.
* Fixed mapping for GdkInputCondition<->GIOCondition, this should fix
problems where closed pipes were no longer signaling GDK_INPUT_READ on
systems with a native poll().
* Some cleanups to GtkLabel's memory allocation code (shouldn't leak memory
anymore).
* We don't attempt to lookup xpm color "None" anymore, this should prevent
eXodus (commercial X windows server) from popping up a color dialog every
time a transparent pixmap is created.
* Fixed bug where Gtk timeout/idle handlers would execute without the global
Gdk lock being held.
* Other minor bug fixes.
Overview of Changes in GTK+ 1.2.1:
* Many Bug fixes have been applied to the menu and accelerator code.
* GtkItemFactory can "adopt" foreign menu items now and manage their
accelerator installation. This is often required to get GtkItemFactory
like accelerator propagation between different windows with the same
menu hierarchy and for centralized parsing and saving of accelerators.
* GtkCList/GtkCTree buttons should always display correctly now.
* Miscellaneous other bug fixes.
What's New in GTK+ 1.2.0 (since 1.0.x):
* New widgets: GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree,
GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket
* Many new features and robustness for existing widgets
* Theme support
* New DND implementation
* Internationalization of standard dialogs
* New key binding system
* Tearoff menus and menu accelerators
* Wide character support for entry and text
* Resizing code has been overhauled
* Queued redraws of partial areas
* Far better support for object arguments
* Speed optimizations
* Runtime loading of dynamic modules
* Support for GLib log domains
* Tutorial improvements
* A bug fix or two
Overview of Changes in GTK+ 1.1.16:
* Major fixes and improvements for handlebox
* A change to the way widget->requisition works. Now,
widget->requisition is always what the widget requested,
unmodified by the usize. See Changes-1.2.txt for details.
This correct various bugs with gtk_widget_set_usize().
* Fixes for XIM on X11R5 systems
* Don't allow cut-and-paste of text in password-style entries
* --enable-debug is now on by default for the development release.
(When compiling for "production", use --enable-debug=minimum)
* Handle systems where Helvetica is not present more gracefully
* Fixes for memory leaks
* CList and CTree fixes
* Bug fixes for drawing problems.
* Miscellaneous bug fixes to GtkLabel, GtkCList, GtkCTree,
GtkColorsel, Focusing, DND
* Tutorial improvements
Overview of Changes in GTK+ 1.1.15:
* Tutorial Updates
* Added --libs gthread to gtk-config
* Bug fixes
What is new in GTK+ 1.1.14:
* Additions to docs/Changes-1.2.txt
* Just warn when loading theme engine fails
* CLAMP GtkScale digits to a meaningful range
* GTK_LOCALDIR is now defined in a better fashion
* New functions (feature freeze, we know...):
gtk_menu_set_title()
gtk_toggle_button_get_active()
* Some locale fixups in gtkrc code
* Fixes to make gtk_radio_button_set_group() keep only
one radio button in the group active
* Foreign windows are now always treated as viewable; this fixes
a problem where updating didn't occur properly in GtkPlug
* DND fixes for 64 bit architectures, and for specifying operations
with modifier keys.
* Major revisions to GtkLayout: avoid having to create window
for NO_WINDOW children, adjust allocations of children as
scrolled so queued draws work, and a resize is queued instead
of allocating directly in a put() or move()
What is new in GTK+ 1.1.13:
* Dnd and selection bug fixes and memory purification.
* Widget sensitivity fixups.
* Tooltips windows are now named "gtk-tooltips" so rc file rules
can match tooltips windows. Fixed interaction of tooltips and NO_WINDOW
widgets.
* Spin buttons now update their values upon value retrieval.
* Overhaul of the resizing vs. redrawing logic to reduce redrawing needs
a lot. Gtk makes full use of the draw_area coalescing code now, which
got minorly improved as well.
* Containers map their Gdk windows after their children now to reduce
expose event generation.
* Gdk event queue fixups, this solves the double-click problems people were
recently having.
* Account for the fact that GSource's are only properly reentrant from
within dispatch(), thus we don't do Gdk event processing from within
check() or prepare() anymore.
* Rc files feature a bg_pixmap value of "<none>" now.
* Improved session management support in Gdk.
* Automatic disabling of NLS if no gettext is found should work now.
* Removed deprecated functions, docs/Changes-1.2.txt gives an overview.
* Gtk+ development now requires GNU autoconf 2.13, GNU automake 1.4
and GNU libtool 1.2d.
* More bug fixes all over the place.
What is new in GTK+ 1.1.12:
* Korean translation added
* Fixed memory leaks
* A few other bug fixes
What is new in GTK+ 1.1.11:
* Dutch, Japanese, Swedish, Polish, and Norwegian translations
* Removed deprecated _interp variants: gtk_container_foreach_interp,
gtk_idle_add_interp, gtk_timeout_add_interp, gtk_signal_connect_interp
* Lots of cast corrections
* Many fixes
What is new in GTK+ 1.1.9:
* Check for broken glibc 2.0 mb functions and avoid them
* Label and Entry display fixes
* Move main thread back to GDK, for locking when translating events
* Bug fixes
What is new in GTK+ 1.1.8:
* Added support for gettext and the localization of the standard
dialogs.
* Added line-wrapping for the label, and JUSTIFY_FILL
* Support reordering via drag and drop in CList and CTree.
* Replaced GtkDrawWindow widget with a GTK_USER_DRAW flag
* Extended gtkpaned API to support minimum sizes and proportional
resizing.
* Changed the handling of shared memory segments so as to
remove the need for GTK+ to set up signal handlers.
* Re-implemented event loop in terms of the event loop
that has been added to GLib 1.1.8
* Added 'grab_focus' signal to allow keyboard accelerators
for entries.
* Load locale specific RC files if present.
* Bug fixes.
What is new in GTK+ 1.1.7:
* Fixed memory mis-allocation in default files code
* Various event handling fixes
* Wide character support for entry and text
* Destroy widgets _after_ propagating unrealize signals through
widget hierarchy
* Only build XIM-support if available
* Tutorial and examples updates
* Added gtk_drag_source_unset()
What is new in GTK+ 1.1.6:
* The signal system now features emission hooks with special semantics,
refer to the ChangeLog for this.
* Minor? speedups and memory reductions to the emission handling of the
signal system.
* _interp() function variants are deprecated now. the corresponding *_full()
variants are provided for a long time now.
* Dnd abort timeout increased to 10 minutes.
* GtkScrolledWindow inherits from GtkBin now.
* GTK_POLICY_NEVER is implemented for scrolled windows now.
* Lots of API clean ups.
* Incremental freezing abilities.
* Integrated widgets from the GNOME tree: GtkLayout, GtkPlug and GtkSocket.
* New window functions for transient relationship, default size, and
geometry hints
* Default rc files are now read in (<sysconfdir/etc/gtkrc and ~/.gtkrc)
GTK_RC_FILES environment variable and functions are provided to configure
this behavior
* Read doc/Changes-1.2.txt to properly adapt your code.
* Bug Fixes.
What is new in GTK+ 1.1.5:
* Theme integration
* Widget style modification is now handled through GtkRcStyles
* GtkPixmaps now grey out pixmaps when insensitive
* Notebook enhancements
* Shadow configurability for menubars and handleboxes
* DND enhancements
* gtkfilesel now supports automounters better
* Implementation of expose compression
* Queued redraws of partial areas
* Scrolledwindow (+Viewport) source incompatibilities, children that are added
to a scrolled window don't get an automatic viewport anymore. a convenience
function gtk_scrolled_window_add_with_viewport() is supplied for this task
* Deprecated functions will now issue a message, informing the programmer about
the use of this function. These functions will get removed in future versions
* Non-functional functions got removed entirely
* gtk_widget_new() and gtk_object_new() will now auto-construct new objects.
A new function gtk_object_default_construct() is provided now which should
be called after every gtk_type_new() to perform the auto-construction
* Improved argument support of several widgets
* Bug Fixes
What is new in GTK+ 1.1.3:
* GtkCList/GtkCTree now have the ability to:
- hide/show individual columns
- disable/enable column resizing
- set min and max for column widths
- set expander style of the ctree
- set/get row and cell styles
- set spacing between tree expander and cell contents in ctree
- toggle auto_resize for columns
* Must enhanced DND support, removed old DND code
* Idle functions are now implemented via GHook, giving a slight speed
improvement
* An environment variable GTK_MODULES which takes a colon separated
list of module names GTK+ will now automatically load at gtk_init() startup
* GtkFontSel now has support for an extra 'base' filter
* New function gdk_window_set_root_origin to get the real geometry taking
into account window manager offsets
* New function gtk_text_set_line_wrap to toggle line wrapping
* New function gtk_widget_add_events which safely adds additional
events to a widget's event mask
* New function gdk_event_get_time to get the timestamp from a generic
event
* New widget GtkCalendar
* New widget GtkInvisible - InputOnly offscreen windows used for reliable
pointer grabs and selection handling in DND code
* New functions gtk_object_remove_no_notify[_by_id] to remove a certain
data portion without invocation of its destroy notifier
* gtk_spin_button_construct is now deprecated, use gtk_spin_button_configure
instead
* gtk_clist_set_border is now deprecated, use gtk_clist_set_shadow_type
instead
* Removed functions gtk_object_set_data_destroy[_by_id]
* Documentation additions/updates
* HTML and plain text files are now included in the distribution
* Bug fixes, typeness corrections, and general fixups
What is new in GTK+ 1.1.2:
* Gtk+ is now featuring runtime loading of dynamic modules via the
--gtk-modules= command line switch. such modules have to export a
G_MODULE_EXPORT void gtk_module_init (gint *argc, gchar ***argv);
function which will be invoked to initialize the module. since such
modules may create new widget types, they are always resident.
* The tutorial has been updated again.
* Changes to menus including tearoff menus and accelerators.
* Better support for modal dialogs.
* Removed CAN_FOCUS by default from scrollbars and button children of toolbar.
* More improvements and fixes for GtkCList and GtkCTree (i.e. row sorting).
* GtkCTree rows can be unselectable now.
* The GtkCTree API has undergone major renames (see ChangeLog entry from Lars
Hamann on Tue Aug 18 00:29:13 1998).
* A bunch of varargs functions changed to get va_lists working on systems that
implement va_lists as arrays.
* Improvements to the gdkrgb code.
* Improvements to Gdk color handling so we greatly reduce server traffic and
don't leak colors anymore.
* Improved internal widget tree iterators (the GtkContainer::foreach signal
vanished because of this).
* Option menus can have the keyboard focus now.
* More fixups to the text widget.
* GtkFileSelection should behave much more nicely in combination with AFS now.
* Support for label underlining.
* Support for GLib 1.1.3 log domains.
* Documentation improvements.
* Configuration fixes on various platforms.
* Miscellaneous fixes to XInput support.
* Build with shared library dependencies on Linux
* Fix for a major bug in the type systems memory allocation code that could
cause random crashes.
* Libtool update to version 1.2b.
* Lots of bugfixes and cleanups again ;)
What is new in GTK+ 1.1.1:
* Tutorial updates and additions.
* Key binding support for GtkListItems and GtkList.
* Extended selection mode and autoscrolling for GtkLists.
* A GtkCtree now operates on GtkCTreeNode* structures rather than GList*.
* GtkCTreeNodes can now be created from GNode trees.
* Bug fixes for GtkNotebook, GtkCList, GtkCombo and GdkWindow reparentation.
What is new in GTK+ 1.1.0:
* New widget GtkFontSelector.
* New featureful progress bar.
* New container widget GtkPacker.
* New object GtkItemFactory, GtkMenuFactory is deprecated.
* New key binding system, configurable via rcfiles, similar to styles.
* New widget GtkCTree with drag selections and keyboard movement and
and horizontal scrolling. Features also implemented for GtkCList.
* Significant speedups to widget creation and destruction through caching
colormap and visual queries to the XServer.
* Speedups for type creation and especially gtk_type_is_a() checks.
* Speedups in signal lookup, creation and emissions and connection handling.
* Minor speedups with object data allocation and destruction.
* Additions to the signal handling API (e.g. *_emitv).
* Support for rc-file reparsing.
* Resizing logic is now implemented on container widget basis, rather than
for toplevel GtkWindows only.
* Buttons support relief styles now.
* Some widgets are now allocated through memchunks to behave more memory wise.
* Newly included file gtkfeatures.h which defines compatibility macros to
test for certain API features upon program compilation.
* Child arguments support for container widgets.
* Far better support for object arguments, revamp of the underlying
mechanism for speed and reusability. Child/object arguments don't
need to be preceded by the "GtkType::" portion anymore.
* Removed GtkAcceleratorTable in favour of GtkAccelGroup, accelerator display
is now performed by a new widget GtkAccelLabel.
* Overhaul of the resizing code. Resizing behaviour can now be specified
on GtkContainer basis, so the underlying algorithm isn't only available
for GtkWindows.
* GtkTables are now fully resizable.
* The GtkType system now supports an additional base class initialization
function.
* GtkStyles and key bindings can now be looked up depending on the base
types of a widget, through a new keyword `class' in rc files.
* GtkButton derives from GtkBin (finally).
* More descriptive error messages on rc parsing.
* Runtime information is available to query enum/flag definition values.
* Upgrade to libtool-1.2
* Legions of bug fixes, memory leaks, segfaults, of-by-something errors...
including those that already went into the 1.0.x branch.
* A big bunch of features and cosmetic fixups that just got lost in
the masses of changesonfigure problem when cross-compiling

6951
NEWS.pre-3.0 Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,72 +0,0 @@
GTK+ is part of the GNOME git repository. At the current time, any
person with write access to the GNOME repository, can make changes to
GTK+. This is a good thing, in that it encourages many people to work
on GTK+, and progress can be made quickly. However, GTK+ is a fairly
large and complicated package that many other things depend on, so to
avoid unnecessary breakage, and to take advantage of the knowledge
about GTK+ that has been built up over the years, we'd like to ask
people committing to GTK+ to follow a few rules:
0) Ask first. If your changes are major, or could possibly break existing
code, you should always ask. If your change is minor and you've
been working on GTK+ for a while it probably isn't necessary
to ask. But when in doubt, ask. Even if your change is correct,
somebody may know a better way to do things.
If you are making changes to GTK+, you should be subscribed
to gtk-devel-list@gnome.org. (Subscription address:
gtk-devel-list-request@gnome.org.) This is a good place to ask
about intended changes.
#gtk+ on GIMPNet (irc.gimp.org, irc.us.gimp.org, irc.eu.gimp.org, ...)
is also a good place to find GTK+ developers to discuss changes with,
however, email to gtk-devel-list is the most certain and preferred
method.
1) Ask _first_.
2) With git, we no longer maintain a ChangeLog file, but you are expected
to produce a meaningful commit message. Changes without a sufficient
commit message will be reverted. See below for the expected format
of commit messages.
Notes:
* When developing larger features or complicated bug fixes, it is
advisable to work in a branch in your own cloned GTK+ repository.
You may even consider making your repository publically available
so that others can easily test and review your changes.
* The expected format for git commit messages is as follows:
=== begin example commit ===
Short explanation of the commit
Longer explanation explaining exactly what's changed, whether any
external or private interfaces changed, what bugs were fixed (with bug
tracker reference if applicable) and so forth. Be concise but not too brief.
=== end example commit ===
- Always add a brief description of the commit to the _first_ line of
the commit and terminate by two newlines (it will work without the
second newline, but that is not nice for the interfaces).
- First line (the brief description) must only be one sentence and
should start with a capital letter unless it starts with a lowercase
symbol or identifier. Don't use a trailing period either. Don't exceed
72 characters.
- The main description (the body) is normal prose and should use normal
punctuation and capital letters where appropriate. Normally, for patches
sent to a mailing list it's copied from there.
- When committing code on behalf of others use the --author option, e.g.
git commit -a --author "Joe Coder <joe@coder.org>" and --signoff.
Owen Taylor
13 Aug 1998
17 Apr 2001
Matthias Clasen
31 Mar 2009

325
README.in
View File

@@ -1,325 +0,0 @@
General Information
===================
This is GTK+ version @GTK_VERSION@. GTK+ is a multi-platform toolkit for
creating graphical user interfaces. Offering a complete set of widgets,
GTK+ is suitable for projects ranging from small one-off projects to
complete application suites.
GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without any
license fees or royalties.
The official download locations are:
ftp://ftp.gtk.org/pub/gtk
http://download.gnome.org/sources/gtk+
The official web site is:
http://www.gtk.org/
Information about mailing lists can be found at
http://www.gtk.org/mailing-lists.php
Installation
============
See the file 'INSTALL'
How to report bugs
==================
Bugs should be reported to the GNOME bug tracking system.
(http://bugzilla.gnome.org, product glib.) You will need
to create an account for yourself.
In the bug report please include:
* Information about your system. For instance:
- What operating system and version
- For Linux, what version of the C library
And anything else you think is relevant.
* How to reproduce the bug.
If you can reproduce it with one of the test programs that are built
in the tests/ subdirectory, that will be most convenient. Otherwise,
please include a short test program that exhibits the behavior.
As a last resort, you can also provide a pointer to a larger piece
of software that can be downloaded.
* If the bug was a crash, the exact text that was printed out
when the crash occured.
* Further information such as stack traces may be useful, but
is not necessary.
Patches
=======
Patches should also be submitted to bugzilla.gnome.org. If the
patch fixes an existing bug, add the patch as an attachment
to that bug report.
Otherwise, enter a new bug report that describes the patch,
and attach the patch to that bug report.
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
======================
* The GtkFileChooser interface pre-requisite changed from GtkWidget
to GObject, allowing non-widget implementations of this interface.
This is a minor change in ABI, as apps are no longer guaranteed
that a GtkFileChooser interface also supports all GtkWidget methods.
However, all previously existing objects still derive from GtkWidget,
so no existing code should break.
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.

159
README.md Normal file
View File

@@ -0,0 +1,159 @@
GTK+ — The GTK toolkit
======================
[![Build Status](https://gitlab.gnome.org/GNOME/gtk/badges/master/build.svg)](https://gitlab.gnome.org/GNOME/gtk/pipelines)
General information
-------------------
GTK+ is a multi-platform toolkit for creating graphical user interfaces.
Offering a complete set of widgets, GTK+ is suitable for projects ranging
from small one-off projects to complete application suites.
GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without any
license fees or royalties.
The official download location
- https://download.gnome.org/sources/gtk+
The official web site
- https://www.gtk.org
The official developers blog
- https://blog.gtk.org
Information about mailing lists can be found at
- http://www.gtk.org/mailing-lists.php
Nightly documentation can be found at
- Gtk: https://gnome.pages.gitlab.gnome.org/gtk/gtk/
- Gdk: https://gnome.pages.gitlab.gnome.org/gtk/gdk/
- Gsk: https://gnome.pages.gitlab.gnome.org/gtk/gsk/
Building and installing
-----------------------
In order to build GTK+ you will need:
- [a C99 compatible compiler](https://wiki.gnome.org/Projects/GLib/CompilerRequirements)
- [Python 3](https://www.python.org/)
- [Meson](http://mesonbuild.com)
- [Ninja](https://ninja-build.org)
You will also need various dependencies, based on the platform you are
building for:
- [GLib](https://download.gnome.org/sources/glib)
- [GdkPixbuf](https://download.gnome.org/sources/gdk-pixbuf)
- [GObject-Introspection](https://download.gnome.org/sources/gobject-introspection)
- [Cairo](https://www.cairographics.org)
- [Pango](https://download.gnome.org/sources/pango)
- [Epoxy](https://github.com/anholt/libepoxy)
- [Graphene](https://github.com/ebassi/graphene)
- [ATK](https://download.gnome.org/sources/atk)
- [Xkb-common](https://github.com/xkbcommon/libxkbcommon)
If you are building the X11 backend, you will also need:
- Xlib, and the following X extensions:
- xrandr
- xrender
- xi
- xext
- xfixes
- xcursor
- xdamage
- xcomposite
- [atk-bridge-2.0](https://download.gnome.org/sources/at-spi2-atk)
If you are building the Wayland backend, you will also need:
- Wayland-client
- Wayland-protocols
- Wayland-cursor
- Wayland-EGL
Once you have all the necessary dependencies, you can build GTK+ by using
Meson:
```sh
$ meson _build .
$ cd _build
$ ninja
```
You can run the test suite using:
```sh
$ meson test
```
And, finally, you can install GTK+ using:
```
$ sudo ninja install
```
Complete information about installing GTK+ and related libraries
can be found in the file:
```
docs/reference/gtk/html/gtk-building.html
```
Or [online](https://developer.gnome.org/gtk4/stable/gtk-building.html)
How to report bugs
------------------
Bugs should be reported on the [issues page](https://gitlab.gnome.org/GNOME/gtk/issues/new).
In the bug report please include:
* Information about your system. For instance:
- which version of GTK+ you are using
- what operating system and version
- for Linux, which distribution
- if you built GTK+, the list of options used to configure the build
And anything else you think is relevant.
* How to reproduce the bug.
If you can reproduce it with one of the demo applications that are
built in the demos/ subdirectory, on one of the test programs that
are built in the tests/ subdirectory, that will be most convenient.
Otherwise, please include a short test program that exhibits the
behavior. As a last resort, you can also provide a pointer to a
larger piece of software that can be downloaded.
* If the bug was a crash, the exact text that was printed out
when the crash occurred.
* Further information such as stack traces may be useful, but
is not necessary.
Release notes
-------------
The release notes for GTK+ are part of the migration guide in the API
reference. See:
- [3.x release notes](https://developer.gnome.org/gtk3/unstable/gtk-migrating-2-to-3.html)
- [4.x release notes](https://developer.gnome.org/gtk4/unstable/gtk-migrating-3-to-4.html)
Licensing terms
---------------
GTK+ is released under the terms of the GNU Lesser General Public License,
version 2.1 or, at your option, any later version, as published by the Free
Software Foundation.
Please, see the `COPYING` file for further information.

View File

@@ -1,206 +0,0 @@
The Win32 backend in GTK+ is not as stable or correct as the X11 one.
For prebuilt runtime and developer packages see
http://ftp.gnome.org/pub/gnome/binaries/win32/
Building GTK+ on Win32
======================
First you obviously need developer packages for the compile-time
dependencies: GDK-Pixbuf, Pango, atk, glib, gettext-runtime, libiconv at least.
See http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies .
For people compiling GTK+ with Visual C++ 2005 or later, it is
recommended that the same compiler is used for at least GDK-Pixbuf,
Pango, atk and glib so that crashes and errors caused by different CRTs
can be avoided. The VS 2008 project files and/or VS Makefiles are
either already available or will be available in the next stable release.
Unfortunately compiling with Microsoft's compilers versions 2003 or earlier
is not supported as compiling the latest stable GLib (which *is* required for
building this GTK+ release) requires features from newer compilers
and/or Platform SDKs
After installing the dependencies, there are two ways to build GTK+
for win32.
1) GNU tools, ./configure && make install
-----------------------------------------
This requires you have mingw and MSYS.
Use the configure script, and the resulting Makefiles (which use
libtool and gcc to do the compilation). I use this myself, but it can
be hard to setup correctly.
The full script I run to build GTK+ 2.16 unpacked from a source
distribution is as below. This is from bulding GTK+ 2.16.5. I don't
use any script like this to build the development branch, as I don't
distribute any binaries from development branches.
# This is a shell script that calls functions and scripts from
# tml@iki.fi's personal work envíronment. It is not expected to be
# usable unmodified by others, and is included only for reference.
MOD=gtk+
VER=2.16.5
REV=1
ARCH=win32
THIS=${MOD}_${VER}-${REV}_${ARCH}
RUNZIP=${MOD}_${VER}-${REV}_${ARCH}.zip
DEVZIP=${MOD}-dev_${VER}-${REV}_${ARCH}.zip
HEX=`echo $THIS | md5sum | cut -d' ' -f1`
TARGET=c:/devel/target/$HEX
usedev
usemsvs6
(
set -x
DEPS=`latest --arch=${ARCH} glib atk cairo pango libpng zlib libtiff jpeg`
PROXY_LIBINTL=`latest --arch=${ARCH} proxy-libintl`
PKG_CONFIG_PATH=
for D in $DEPS; do
PATH=/devel/dist/${ARCH}/$D/bin:$PATH
[ -d /devel/dist/${ARCH}/$D/lib/pkgconfig ] && PKG_CONFIG_PATH=/devel/dist/${ARCH}/$D/lib/pkgconfig:$PKG_CONFIG_PATH
done
LIBPNG=`latest --arch=${ARCH} libpng`
ZLIB=`latest --arch=${ARCH} zlib`
LIBTIFF=`latest --arch=${ARCH} libtiff`
JPEG=`latest --arch=${ARCH} jpeg`
patch -p0 <<'EOF'
EOF
lt_cv_deplibs_check_method='pass_all' \
CC='gcc -mtune=pentium3 -mthreads' \
CPPFLAGS="-I/devel/dist/${ARCH}/${LIBPNG}/include \
-I/devel/dist/${ARCH}/${ZLIB}/include \
-I/devel/dist/${ARCH}/${LIBTIFF}/include \
-I/devel/dist/${ARCH}/${JPEG}/include \
-I/devel/dist/${ARCH}/${PROXY_LIBINTL}/include" \
LDFLAGS="-L/devel/dist/${ARCH}/${LIBPNG}/lib \
-L/devel/dist/${ARCH}/${ZLIB}/lib \
-L/devel/dist/${ARCH}/${LIBTIFF}/lib \
-L/devel/dist/${ARCH}/${JPEG}/lib \
-L/devel/dist/${ARCH}/${PROXY_LIBINTL}/lib -Wl,--exclude-libs=libintl.a \
-Wl,--enable-auto-image-base" \
LIBS=-lintl \
CFLAGS=-O2 \
./configure \
--enable-win32-backend \
--disable-gdiplus \
--with-included-immodules \
--without-libjasper \
--enable-debug=yes \
--enable-explicit-deps=no \
--disable-gtk-doc \
--disable-static \
--prefix=$TARGET &&
libtoolcacheize &&
rm gtk/gtk.def &&
(PATH="$PWD/gdk-pixbuf/.libs:/devel/target/$HEX/bin:$PATH" make -j3 install || (rm .libtool-cache* && PATH="/devel/target/$HEX/bin:$PATH" make -j3 install)) &&
PATH="/devel/target/$HEX/bin:$PATH" gdk-pixbuf-query-loaders >/devel/target/$HEX/etc/gtk-2.0/gdk-pixbuf.loaders &&
grep -v -E 'Automatically generated|Created by|LoaderDir =' <$TARGET/etc/gtk-2.0/gdk-pixbuf.loaders >$TARGET/etc/gtk-2.0/gdk-pixbuf.loaders.temp &&
mv $TARGET/etc/gtk-2.0/gdk-pixbuf.loaders.temp $TARGET/etc/gtk-2.0/gdk-pixbuf.loaders &&
grep -v -E 'Automatically generated|Created by|ModulesPath =' <$TARGET/etc/gtk-2.0/gtk.immodules >$TARGET/etc/gtk-2.0/gtk.immodules.temp &&
mv $TARGET/etc/gtk-2.0/gtk.immodules.temp $TARGET/etc/gtk-2.0/gtk.immodules &&
./gtk-zip.sh &&
mv /tmp/${MOD}-${VER}.zip /tmp/$RUNZIP &&
mv /tmp/${MOD}-dev-${VER}.zip /tmp/$DEVZIP
) 2>&1 | tee /devel/src/tml/packaging/$THIS.log
(cd /devel && zip /tmp/$DEVZIP src/tml/packaging/$THIS.{sh,log}) &&
manifestify /tmp/$RUNZIP /tmp/$DEVZIP
You should not just copy the above blindly. There are some things in
the script that are very specific to *my* build setup on *my* current
machine. For instance the "latest" command, the "usedev" and
"usemsvs6" shell functions, the /devel/dist folder. The above script
is really just meant for reference, to give an idea. You really need
to understand what things like PKG_CONFIG_PATH are and set them up
properly after installing the dependencies before building GTK+.
As you see above, after running configure, one can just say "make
install", like on Unix. A post-build fix is needed, running
gdk-pixbuf-query-loaders once more to get a correct gdk-pixbuf.loaders
file.
For a 64-bit build you need to remove the gtk/gtk.def file and let it
be regenerated by the makefilery. This is because the 64-bit GTK dll
has a slightly different list of exported function names. This is on
purpose and not a bug. The API is the same at the source level, and
the same #defines of some function names to actually have a _utf8
suffix is used (just to keep the header simpler). But the
corresponding non-suffixed function to maintain ABI stability are not
needed in the 64-bit case (because there are no older EXEs around that
would require such for ABI stability).
2) Microsoft's tools
--------------------
Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
makefile.msc in gdk and gtk. Be prepared to manually edit various
makefile.msc files, and the makefile snippets in build/win32.
There are also VS 2008/2010 solution and project files to build GTK+, which
are maintained by Chun-wei Fan. They should build GTK+ out of the box,
provided that the afore-mentioned dependencies are installed. They will
build GDK with the Win32 backend, GTK+ itself (with GAIL/a11y built in),
the GAIL-Util library and the gtk-demo program.
Please refer to the following GNOME Live! page for a more detailed ouline
on the process of building the GTK+ stack and its dependencies with Visual
C++:
https://wiki.gnome.org/Projects/GTK+/Win32/MSVCCompilationOfGTKStack
Alternative 1 also generates Microsoft import libraries (.lib), if you
have lib.exe available. It might also work for cross-compilation from
Unix.
I (Tor) use method 1 myself. Hans Breuer has been taking care of the MSVC
makefiles. At times, we disagree a bit about various issues, and for
instance the makefile.msc files might not produce identically named
DLLs and import libraries as the "autoconfiscated" makefiles and
libtool do. If this bothers you, you will have to fix the makefiles.
Using GTK+ on Win32
===================
To use GTK+ on Win32, you also need either one of the above mentioned
compilers. Other compilers might work, but don't count on it. Look for
prebuilt developer packages (DLLs, import libraries, headers) on the
above website.
Multi-threaded use of GTK+ on Win32
===================================
Multi-threaded GTK+ programs might work on Windows in special simple
cases, but not in general. Sorry. If you have all GTK+ and GDK calls
in the same thread, it might work. Otherwise, probably not at
all. Possible ways to fix this are being investigated.
Wintab
======
The tablet support uses the Wintab API. The Wintab development kit is
no longer required. The wintab.h header file is bundled with GTK+
sources. Unfortunately it seems that only Wacom tablets come with
support for the Wintab API nowadays.
--Tor Lillqvist <tml@iki.fi>, <tml@novell.com>
--Updated by Fan, Chun-wei <fanc999@yahoo.com.tw>

View File

@@ -1,79 +0,0 @@
# autoconf 2.13 / 2.50 compatibility macro
# GLIB_AC_DIVERT_BEFORE_HELP(STUFF)
# ---------------------------------
# Put STUFF early enough so that they are available for $ac_help expansion.
# Handle both classic (<= v2.13) and modern autoconf
AC_DEFUN([GLIB_AC_DIVERT_BEFORE_HELP],
[ifdef([m4_divert_text], [m4_divert_text([NOTICE],[$1])],
[ifdef([AC_DIVERT], [AC_DIVERT([NOTICE],[$1])],
[AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
$1
AC_DIVERT_POP()])])])
# GTK_ADD_LIB(VAR,LIBNAME)
# ---------------------------------
# Helper macro to add a -lBlah to a variable, avoiding repeats
# Note that this needs to be quoted when used in an enclosing macro
AC_DEFUN([GTK_ADD_LIB],
[ case "$$1 " in
*-l$2[[\ \ ]]*) ;;
*) $1="-l$2 $$1" ;;
esac
])
# Checks the location of the XML Catalog
# Usage:
# JH_PATH_XML_CATALOG([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# Defines XMLCATALOG and XML_CATALOG_FILE substitutions
AC_DEFUN([JH_PATH_XML_CATALOG],
[
# check for the presence of the XML catalog
AC_ARG_WITH([xml-catalog],
AC_HELP_STRING([--with-xml-catalog=CATALOG],
[path to xml catalog to use]),,
[with_xml_catalog=/etc/xml/catalog])
jh_found_xmlcatalog=true
XML_CATALOG_FILE="$with_xml_catalog"
AC_SUBST([XML_CATALOG_FILE])
AC_MSG_CHECKING([for XML catalog ($XML_CATALOG_FILE)])
if test -f "$XML_CATALOG_FILE"; then
AC_MSG_RESULT([found])
else
jh_found_xmlcatalog=false
AC_MSG_RESULT([not found])
fi
# check for the xmlcatalog program
AC_PATH_PROG(XMLCATALOG, xmlcatalog, no)
if test "x$XMLCATALOG" = xno; then
jh_found_xmlcatalog=false
fi
if $jh_found_xmlcatalog; then
ifelse([$1],,[:],[$1])
else
ifelse([$2],,[AC_MSG_ERROR([could not find XML catalog])],[$2])
fi
])
# Checks if a particular URI appears in the XML catalog
# Usage:
# JH_CHECK_XML_CATALOG(URI, [FRIENDLY-NAME], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
AC_DEFUN([JH_CHECK_XML_CATALOG],
[
AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
if $jh_found_xmlcatalog && \
AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
AC_MSG_RESULT([found])
ifelse([$3],,,[$3
])dnl
else
AC_MSG_RESULT([not found])
ifelse([$4],,
[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],
[$4])
fi
])

View File

@@ -1,46 +0,0 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
test -n "$srcdir" || srcdir=`dirname "$0"`
test -n "$srcdir" || srcdir=.
olddir=`pwd`
cd "$srcdir"
mkdir -p m4
GTKDOCIZE=`which gtkdocize`
if test -z $GTKDOCIZE; then
echo "*** No GTK-Doc found, please install it ***"
exit 1
else
gtkdocize || exit $?
fi
PKGCONFIG=`which pkg-config`
if test -z "$PKGCONFIG"; then
echo "*** pkg-config not found, please install it ***"
exit 1
fi
pkg-config --print-errors gobject-introspection-1.0
if [ $? != 0 ]; then
echo "You probably need to install 'libgirepository1.0-dev'"
exit 1
fi
# README and INSTALL are required by automake, but may be deleted by clean
# up rules. to get automake to work, simply touch these here, they will be
# regenerated from their corresponding *.in files by ./configure anyway.
touch README INSTALL
AUTORECONF=`which autoreconf`
if test -z $AUTORECONF; then
echo "*** No autoreconf found, please install it ***"
exit 1
else
autoreconf --force --install --verbose || exit $?
fi
cd "$olddir"
test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"

View File

@@ -0,0 +1,74 @@
{
"app-id": "org.gtk.Demo",
"runtime": "org.gnome.Platform",
"runtime-version": "master",
"sdk": "org.gnome.Sdk",
"command": "gtk4-demo",
"tags": ["devel", "development", "nightly"],
"rename-icon": "gtk4-demo",
"desktop-file-name-prefix": "(Development) ",
"finish-args": [
"--device=dri",
"--share=ipc",
"--socket=x11",
"--socket=wayland",
"--talk-name=org.gtk.vfs", "--talk-name=org.gtk.vfs.*",
"--talk-name=ca.desrt.conf", "--env=DCONF_USER_CONFIG_DIR=.config/dconf"
],
"cleanup": [
"/include",
"/lib/pkgconfig", "/share/pkgconfig",
"/share/aclocal",
"/man", "/share/man", "/share/gtk-doc",
"*.la", ".a",
"/lib/girepository-1.0",
"/share/gir-1.0",
"/share/doc"
],
"modules": [
{
"name" : "wayland",
"buildsystem" : "autotools",
"builddir" : true,
"config-opts" : [
"--disable-documentation"
],
"sources" : [
{
"type" : "git",
"url" : "https://github.com/wayland-project/wayland.git"
}
]
},
{
"name": "graphene",
"buildsystem": "meson",
"builddir": true,
"config-opts": [
"--libdir=/app/lib",
"-Dtests=false",
"-Dbenchmarks=false"
],
"sources": [
{
"type": "git",
"url": "https://github.com/ebassi/graphene.git"
}
]
},
{
"name": "gtk",
"buildsystem": "meson",
"builddir": true,
"config-opts": [
"--libdir=/app/lib"
],
"sources": [
{
"type": "git",
"url": "https://gitlab.gnome.org/GNOME/gtk.git"
}
]
}
]
}

View File

@@ -0,0 +1,74 @@
{
"app-id": "org.gtk.WidgetFactory",
"runtime": "org.gnome.Platform",
"runtime-version": "master",
"sdk": "org.gnome.Sdk",
"command": "gtk4-widget-factory",
"tags": ["devel", "development", "nightly"],
"rename-icon": "gtk4-widget-factory",
"desktop-file-name-prefix": "(Development) ",
"finish-args": [
"--device=dri",
"--share=ipc",
"--socket=x11",
"--socket=wayland",
"--talk-name=org.gtk.vfs", "--talk-name=org.gtk.vfs.*",
"--talk-name=ca.desrt.conf", "--env=DCONF_USER_CONFIG_DIR=.config/dconf"
],
"cleanup": [
"/include",
"/lib/pkgconfig", "/share/pkgconfig",
"/share/aclocal",
"/man", "/share/man", "/share/gtk-doc",
"*.la", ".a",
"/lib/girepository-1.0",
"/share/gir-1.0",
"/share/doc"
],
"modules": [
{
"name" : "wayland",
"buildsystem" : "autotools",
"builddir" : true,
"config-opts" : [
"--disable-documentation"
],
"sources" : [
{
"type" : "git",
"url" : "https://github.com/wayland-project/wayland.git"
}
]
},
{
"name": "graphene",
"buildsystem": "meson",
"builddir": true,
"config-opts": [
"--libdir=/app/lib",
"-Dtests=false",
"-Dbenchmarks=false"
],
"sources": [
{
"type": "git",
"url": "https://github.com/ebassi/graphene.git"
}
]
},
{
"name": "gtk",
"buildsystem": "meson",
"builddir": true,
"config-opts": [
"--libdir=/app/lib"
],
"sources": [
{
"type": "git",
"url": "https://gitlab.gnome.org/GNOME/gtk.git"
}
]
}
]
}

26
build-aux/meson/post-install.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/sh
gtk_api_version=$1
gtk_abi_version=$2
gtk_libdir=$3
gtk_datadir=$4
# Package managers set this so we don't need to run
if [ -z "$DESTDIR" ]; then
echo Compiling GSettings schemas...
glib-compile-schemas ${gtk_datadir}/glib-2.0/schemas
echo Updating desktop database...
update-desktop-database -q ${gtk_datadir}/applications
echo Updating icon cache...
gtk-update-icon-cache -q -t -f ${gtk_datadir}/icons/hicolor
echo Updating module cache for print backends...
mkdir -p ${gtk_libdir}/gtk-4.0/4.0.0/printbackends
gio-querymodules ${gtk_libdir}/gtk-4.0/4.0.0/printbackends
echo Updating module cache for input methods...
mkdir -p ${gtk_libdir}/gtk-4.0/4.0.0/immodules
gio-querymodules ${gtk_libdir}/gtk-4.0/4.0.0/immodules
fi

View File

@@ -1,45 +0,0 @@
# Centralized autotools file
# Create the Visual Studio 2012/2013/2015 project files
# from the Visual Studio 2010 project files
# This autotools file, from GLib, can be used in other projects
# that have Visual Studio build support, and is copied into
# $(srcroot)/build/.
# Author: Fan, Chun-wei
# November 05, 2012
# MSVC_VER_LONG: Long Version of Visual Studio (2012, 2013, 14 and so on)
# MSVC_VER: Short Version of Visual Studio (11 for 2012, 12 for 2013, 14 for 2015 and so on)
# MSVC_FORMAT_VER: Use 12 for MSVC 2012 through 2015
%.sln:
sed 's/11\.00/$(MSVC_FORMAT_VER)\.00/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp
sed 's/2010/$(MSVC_VER_LONG)/g' < $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@
rm $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp
%.txt:
sed 's/vs10/vs$(MSVC_VER)/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp
sed 's/VS10/VS$(MSVC_VER)/g' < $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@
rm $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp
%.vcxproj:
if test -e $(top_srcdir)/build/win32/vs10/$@; then \
sed 's/v100/v$(MSVC_VER)0/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
else \
sed 's/v100/v$(MSVC_VER)0/g' < $(top_builddir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
fi
%.props:
if test -e $(top_srcdir)/build/win32/vs10/$@; then \
sed 's/<VSVer>10<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
else \
sed 's/<VSVer>10<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' < $(top_builddir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
fi
%.vcxproj.filters:
if test -e $(top_srcdir)/build/win32/vs10/$@; then \
cp $(top_srcdir)/build/win32/vs10/$@ $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
else \
cp $(top_builddir)/build/win32/vs10/$@ $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
fi

View File

@@ -1,14 +0,0 @@
include $(top_srcdir)/Makefile.decl
SUBDIRS = \
win32
EXTRA_DIST += \
msvcfiles.py \
gen-file-list-gtk.py \
detectenv_msvc.mak \
introspection-msvc.mak \
gtk-introspection-msvc.mak.in \
gtk-introspection-msvc.mak
-include $(top_srcdir)/git.mk

View File

@@ -1,107 +0,0 @@
# Author: Fan, Chun-wei
# Common Autotools file used to generate Visual Studio 2008+
# Projects from their templates
# This autotools file, from GLib, can be used in other projects
# that have Visual Studio build support, and is copied into
# $(srcroot)/build/.
# * Input variables:
#
# MSVCPROJS - List of Projects that should be generated
#
# * Simple tutorial
#
# Add this to Makefile.am where your library/program is built:
# include $(top_srcdir)/build/Makefile.msvcproj
# MSVCPROJS = YourProject (can be multiple projects in a single srcdir)
# YourProject_FILES = $(libyourlib_1_0_SOURCES)
# YourProject_EXCLUDES = ... # list of sources to exclude, separated by '|', wildcards allowed; use random unsed value if none
# YourProject_HEADERS_DIR = $(libyourlibincludedir)
# YourProject_HEADERS_INST = $(libyourlib_1_0_HEADERS)
# YourProject_HEADERS_EXCLUDES = ... # <list of headers to exclude from installation, separated by '|', wildcards allowed; use random unsed value if none>
#
# dist-hook: \ # (or add to it if it is already there, note the vs9 items will also call the vs10 items in the process)
# $(top_builddir)/build/win32/vs9/YourProject.vcproj \
# $(top_builddir)/build/win32/vs9/YourProject.headers
# Private functions
## Transform the MSVC project filename (no filename extensions) to something which can reference through a variable
## without automake/make complaining, eg Gtk-2.0 -> Gtk_2_0
_proj_name=$(subst /,_,$(subst -,_,$(subst .,_,$(1))))
_proj_path_raw:=$(subst $(abs_top_srcdir),,$(abs_srcdir))
_proj_path=$(subst /,\\,$(_proj_path_raw))
_proj_subdir_int=$(subst \\\\,\\,\\$(_proj_path)\\)
_proj_subdir=$(subst \\.\\,\\,$(_proj_subdir_int))
_proj_files_raw=$(subst /,\\,$($(_proj_name)_FILES))
_proj_files=$(subst $(srcdir)\\,,$(subst $(builddir)\\,,$(subst $(top_builddir)\\$(_proj_path)\\,\\,$(_proj_files_raw))))
_proj_filters=$($(_proj_name)_EXCLUDES)
_proj_headers_raw=$(subst /,\\,$($(_proj_name)_HEADERS_INST))
_proj_headers=$(subst $(srcdir)\\,,$(subst $(builddir)\\,,$(subst $(top_builddir)\\$(_proj_path)\\,\\,$(_proj_headers_raw))))
_proj_headers_excludes=$($(_proj_name)_HEADERS_EXCLUDES)
_headers_dest_posix=$(subst $(includedir),,$($(_proj_name)_HEADERS_DIR))
_headers_destdir=$(subst /,\\,$(_headers_dest_posix))
#
# Creates Visual Studio 2008/2010 projects from items passed in from autotools files
# $(1) - Base Name of the MSVC project files (outputs)
#
define msvcproj-builder
$(top_builddir)/build/win32/vs10/$(1).vcxproj: $(top_builddir)/build/win32/vs9/$(1).vcproj
$(top_builddir)/build/win32/vs10/$(1).vcxproj.filters: $(top_builddir)/build/win32/vs9/$(1).vcproj
$(1).sourcefiles: $(top_builddir)/build/win32/vs9/$(1).vcproj
$(1).vs10.sourcefiles: $(top_builddir)/build/win32/vs9/$(1).vcproj
$(1).vs10.sourcefiles.filters: $(top_builddir)/build/win32/vs9/$(1).vcproj
$(top_builddir)/build/win32/vs9/$(1).vcproj:
-$(RM) $(top_builddir)/build/win32/vs9/$(1).vcproj
-$(RM) $(top_builddir)/build/win32/vs10/$(1).vcxproj
-$(RM) $(top_builddir)/build/win32/vs10/$(1).vcxproj.filters
for F in $(_proj_files); do \
case $$$$F in \
$(_proj_filters)) \
;; \
*.c|*.cpp|*.cc|*.cxx) \
echo ' <File RelativePath="..\..\..'$(_proj_subdir)$$$$F'" />' >>$(1).sourcefiles && \
echo ' <ClCompile Include="..\..\..'$(_proj_subdir)$$$$F'" />' >>$(1).vs10.sourcefiles && \
echo ' <ClCompile Include="..\..\..'$(_proj_subdir)$$$$F'"><Filter>Source Files</Filter></ClCompile>' >>$(1).vs10.sourcefiles.filters \
;; \
esac; \
done
$(CPP) -P - <$(top_srcdir)/build/win32/vs9/$(1).vcprojin >$(top_builddir)/build/win32/vs9/$(1).vcproj
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/$(1).vcxprojin >$(top_builddir)/build/win32/vs10/$(1).vcxproj
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/$(1).vcxproj.filtersin >$(top_builddir)/build/win32/vs10/$(1).vcxproj.filters
$(RM) $(1).sourcefiles
$(RM) $(1).vs10.sourcefiles
$(RM) $(1).vs10.sourcefiles.filters
$(top_builddir)/build/win32/vs10/$(1).vs10.headers: $(top_builddir)/build/win32/vs9/$(1).headers
$(top_builddir)/build/win32/vs9/$(1).headers:
-$(RM) $(top_builddir)/build/win32/vs9/$(1).headers
-$(RM) $(top_builddir)/build/win32/vs10/$(1).vs10.headers
for F in $(_proj_headers); do \
case $$$$F in \
$(_proj_headers_excludes)) \
;; \
*.h|*.hpp|*.hh|*.hxx) \
echo 'copy ..\..\..'$(_proj_subdir)$$$$F' $$$$(CopyDir)\include'$(_headers_destdir)'\'$$$$F'&#x0D;&#x0A;' >>$(top_builddir)/build/win32/vs9/$(1).headers && \
echo 'copy ..\..\..'$(_proj_subdir)$$$$F' $$$$(CopyDir)\include'$(_headers_destdir)'\'$$$$F >>$(top_builddir)/build/win32/vs10/$(1).vs10.headers \
;; \
esac; \
done
endef
$(foreach proj,$(MSVCPROJS),$(eval $(call msvcproj-builder,$(proj))))

View File

@@ -1,65 +0,0 @@
# Check to see we are configured to build with MSVC (MSDEVDIR, MSVCDIR or
# VCINSTALLDIR) or with the MS Platform SDK (MSSDK or WindowsSDKDir)
!if !defined(VCINSTALLDIR) && !defined(WINDOWSSDKDIR)
MSG = ^
This Makefile is only for Visual Studio 2008 and later.^
You need to ensure that the Visual Studio Environment is properly set up^
before running this Makefile.
!error $(MSG)
!endif
ERRNUL = 2>NUL
_HASH=^#
!if ![echo VCVERSION=_MSC_VER > vercl.x] \
&& ![echo $(_HASH)if defined(_M_IX86) >> vercl.x] \
&& ![echo PLAT=Win32 >> vercl.x] \
&& ![echo $(_HASH)elif defined(_M_AMD64) >> vercl.x] \
&& ![echo PLAT=x64 >> vercl.x] \
&& ![echo $(_HASH)endif >> vercl.x] \
&& ![cl -nologo -TC -P vercl.x $(ERRNUL)]
!include vercl.i
!if ![echo VCVER= ^\> vercl.vc] \
&& ![set /a $(VCVERSION) / 100 - 6 >> vercl.vc]
!include vercl.vc
!endif
!endif
!if ![del $(ERRNUL) /q/f vercl.x vercl.i vercl.vc]
!endif
!if $(VCVERSION) > 1499 && $(VCVERSION) < 1600
VSVER = 9
!elseif $(VCVERSION) > 1599 && $(VCVERSION) < 1700
VSVER = 10
!elseif $(VCVERSION) > 1699 && $(VCVERSION) < 1800
VSVER = 11
!elseif $(VCVERSION) > 1799 && $(VCVERSION) < 1900
VSVER = 12
!else
VSVER = 0
!endif
!if "$(VSVER)" == "0"
MSG = ^
This NMake Makefile set supports Visual Studio^
9 (2008) through 12 (2013). Your Visual Studio^
version is not supported.
!error $(MSG)
!endif
VALID_CFGSET = FALSE
!if "$(CFG)" == "release" || "$(CFG)" == "debug"
VALID_CFGSET = TRUE
!endif
!if "$(CFG)" == "release"
CFLAGS_ADD = /MD /O2
!else
CFLAGS_ADD = /MDd /Od /Zi
!endif
!if "$(PLAT)" == "x64"
LDFLAGS_ARCH = /machine:x64
!else
LDFLAGS_ARCH = /machine:x86
!endif

View File

@@ -1,100 +0,0 @@
#!/usr/bin/python
# vim: encoding=utf-8
# Generate the file lists for processing with g-ir-scanner
import os
import sys
import re
import string
import subprocess
import optparse
from msvcfiles import read_vars_from_AM
def gen_gdk_filelist(srcroot, subdir, dest):
vars = read_vars_from_AM(os.path.join(srcroot, subdir, 'Makefile.am'),
vars = {},
conds = {},
filters = ['gdk_h_sources', 'gdk_c_sources'])
vars['gdk_enums'] = 'gdkenumtypes.c gdkenumtypes.h'
files = vars['gdk_h_sources'].split() + \
vars['gdk_c_sources'].split() + \
vars['gdk_enums'].split()
sources = [i for i in files if (i != 'gdkkeysyms-compat.h')]
with open(dest, 'w') as d:
for i in sources:
d.write(srcroot + '\\' + subdir + '\\' + i.replace('/', '\\') + '\n')
def gen_gdkwin32_filelist(srcroot, subdir, dest):
vars = read_vars_from_AM(os.path.join(srcroot, subdir, 'Makefile.am'),
vars = {},
conds = {'HAVE_INTROSPECTION': True,
'OS_WIN32': True},
filters = ['w32_introspection_files'])
files = vars['w32_introspection_files'].split()
with open(dest, 'w') as d:
for i in files:
d.write(srcroot + '\\' + subdir + '\\' + i.replace('/', '\\') + '\n')
def gen_gtk_filelist(srcroot, subdir, dest):
vars = read_vars_from_AM(os.path.join(srcroot, 'gtk', 'Makefile.am'),
vars = {},
conds = {'USE_WIN32': True,
'USE_QUARTZ': False,
'USE_X11': False,
'USE_EXTERNAL_ICON_CACHE': False},
filters = ['gtkinclude_HEADERS',
'a11yinclude_HEADERS',
'deprecatedinclude_HEADERS',
'gtk_base_c_sources',
'gtk_clipboard_dnd_c_sources'])
vars_depr = read_vars_from_AM(os.path.join(srcroot, 'gtk', 'deprecated', 'Makefile.inc'),
vars = {},
conds = {},
filters = ['deprecated_h_sources',
'deprecated_c_sources'])
vars_a11y = read_vars_from_AM(os.path.join(srcroot, 'gtk', 'a11y', 'Makefile.inc'),
vars = {},
conds = {},
filters = ['a11y_h_sources',
'a11y_c_sources'])
vars['gtk_other_src'] = 'gtkprintoperation-win32.c gtktypebuiltins.h gtktypebuiltins.c'
files = vars['gtkinclude_HEADERS'].split() + \
vars_a11y['a11y_h_sources'].split() + \
vars_depr['deprecated_h_sources'].split() + \
vars['gtk_base_c_sources'].split() + \
vars_a11y['a11y_c_sources'].split() + \
vars_depr['deprecated_c_sources'].split() + \
vars['gtk_other_src'].split()
sources = [i for i in files \
if not (i.endswith('private.h')) \
and i != 'gtktextdisplay.h' \
and i != 'gtktextlayout.h' \
and i != 'gtkx.h']
with open(dest, 'w') as d:
for i in sources:
d.write(srcroot + '\\' + subdir + '\\' + i.replace('/', '\\') + '\n')
def main(argv):
srcroot = '..'
subdir_gdk = 'gdk'
subdir_gtk = 'gtk'
gen_gdk_filelist(srcroot, subdir_gdk, 'gdk_list')
gen_gdkwin32_filelist(srcroot, subdir_gdk, 'gdkwin32_list')
gen_gtk_filelist(srcroot, subdir_gtk, 'gtk_list')
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))

View File

@@ -1,101 +0,0 @@
# NMake Makefile to build Introspection Files for GTK+
!include detectenv_msvc.mak
APIVERSION = 3.0
CHECK_PACKAGE = gdk-pixbuf-2.0 atk pangocairo gio-2.0
built_install_girs = Gdk-$(APIVERSION).gir GdkWin32-$(APIVERSION).gir Gtk-$(APIVERSION).gir
built_install_typelibs = Gdk-$(APIVERSION).typelib GdkWin32-$(APIVERSION).typelib Gtk-$(APIVERSION).typelib
!include introspection-msvc.mak
!if "$(BUILD_INTROSPECTION)" == "TRUE"
all: setgirbuildnev $(built_install_girs) $(built_install_typelibs)
gdk_list gdkwin32_list gtk_list:
@-echo Generating Filelist to Introspect for GDK/GTK...
$(PYTHON2) gen-file-list-gtk.py
setgirbuildnev:
@set CC=$(CC)
@set PYTHONPATH=$(BASEDIR)\lib\gobject-introspection
@set PATH=win32\vs$(VSVER)\$(CFG)\$(PLAT)\bin;$(BASEDIR)\bin;$(PATH)
@set PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)
@set LIB=win32\vs$(VSVER)\$(CFG)\$(PLAT)\bin;$(LIB)
Gdk-$(APIVERSION).gir: gdk_list
@-echo Generating Gdk-$(APIVERSION).gir...
$(PYTHON2) $(G_IR_SCANNER) --verbose -I.. -I..\gdk \
-I$(BASEDIR)\include\glib-2.0 -I$(BASEDIR)\lib\glib-2.0\include \
-I$(BASEDIR)\include\pango-1.0 -I$(BASEDIR)\include\atk-1.0 \
-I$(BASEDIR)\include\gdk-pixbuf-2.0 -I$(BASEDIR)\include \
--namespace=Gdk --nsversion=3.0 \
--include=Gio-2.0 --include=GdkPixbuf-2.0 \
--include=Pango-1.0 --include=cairo-1.0 \
--no-libtool --library=gdk-3.0 \
--reparse-validate --add-include-path=$(G_IR_INCLUDEDIR) --add-include-path=. \
--pkg-export gdk-3.0 --warn-all --c-include="gdk/gdk.h" \
-DG_LOG_DOMAIN=\"Gdk\" -DGDK_COMPILATION \
--filelist=gdk_list -o $@
GdkWin32-$(APIVERSION).gir: gdkwin32_list
@-echo Generating GdkWin32-$(APIVERSION).gir...
$(PYTHON2) $(G_IR_SCANNER) --verbose -I.. -I..\gdk \
-I$(BASEDIR)\include\glib-2.0 -I$(BASEDIR)\lib\glib-2.0\include \
-I$(BASEDIR)\include\pango-1.0 -I$(BASEDIR)\include\atk-1.0 \
-I$(BASEDIR)\include\gdk-pixbuf-2.0 -I$(BASEDIR)\include \
--namespace=GdkWin32 --nsversion=3.0 \
--include=Gio-2.0 --include=GdkPixbuf-2.0 \
--include=Pango-1.0 --include-uninstalled=./Gdk-$(APIVERSION).gir \
--no-libtool --library=gdk-3.0 \
--reparse-validate --add-include-path=$(G_IR_INCLUDEDIR) --add-include-path=. \
--pkg-export gdk-win32-3.0 --warn-all --c-include="gdk/gdkwin32.h" \
-DG_LOG_DOMAIN=\"Gdk\" -DGDK_COMPILATION \
--filelist=gdkwin32_list -o $@
Gtk-$(APIVERSION).gir: gtk_list
$(PYTHON2) $(G_IR_SCANNER) --verbose -I.. -I..\gtk -I..\gdk \
-I$(BASEDIR)\include\glib-2.0 -I$(BASEDIR)\lib\glib-2.0\include \
-I$(BASEDIR)\include\pango-1.0 -I$(BASEDIR)\include\atk-1.0 \
-I$(BASEDIR)\include\gdk-pixbuf-2.0 -I$(BASEDIR)\include \
--namespace=Gtk --nsversion=3.0 \
--include=Atk-1.0 \
--include-uninstalled=./Gdk-$(APIVERSION).gir \
--no-libtool --library=gtk-3.0 --library=gdk-3.0 \
--reparse-validate --add-include-path=$(G_IR_INCLUDEDIR) --add-include-path=. \
--pkg-export gtk+-3.0 --warn-all --c-include="gtk/gtkx.h" \
-DG_LOG_DOMAIN=\"Gtk\" -DGTK_LIBDIR=\"/dummy/lib\" \
-DGTK_DATADIR=\"/dummy/share\" -DGTK_DATA_PREFIX=\"/dummy\" \
-DGTK_SYSCONFDIR=\"/dummy/etc\" -DGTK_VERSION=\"@GTK_VERSION@\" \
-DGTK_BINARY_VERSION=\"3.0.0\" -DGTK_HOST=\"i686-pc-vs$(VSVER)\" \
-DGTK_COMPILATION -DGTK_PRINT_BACKENDS=\"file\" \
-DGTK_PRINT_PREVIEW_COMMAND=\"undefined-gtk-print-preview-command\" \
-DGTK_FILE_SYSTEM_ENABLE_UNSUPPORTED -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED \
-DINCLUDE_IM_am_et -DINCLUDE_IM_cedilla -DINCLUDE_IM_cyrillic_translit \
-DINCLUDE_IM_ime -DINCLUDE_IM_inuktitut -DINCLUDE_IM_ipa \
-DINCLUDE_IM_multipress -DINCLUDE_IM_thai -DINCLUDE_IM_ti_er \
-DINCLUDE_IM_ti_et -DINCLUDE_IM_viqr --filelist=gtk_list \
-o $@
$(built_install_typelibs): $(built_install_girs)
@-echo Compiling $*.typelib...
@-$(G_IR_COMPILER) --includedir=. --debug --verbose $*.gir -o $@
install-introspection: setgirbuildnev $(built_install_girs) $(built_install_typelibs)
@-copy *.gir $(G_IR_INCLUDEDIR)
@-copy /b *.typelib $(G_IR_TYPELIBDIR)
!else
all:
@-echo $(ERROR_MSG)
!endif
clean:
@-del /f/q *.typelib
@-del /f/q *.gir
@-del /f/q gtk_list
@-del /f/q gdkwin32_list
@-del /f/q gdk_list
@-del /f/q *.pyc

View File

@@ -1,65 +0,0 @@
# Common Utility NMake Makefile Template
# Used to Generate Introspection files for various Projects
# Can Override with env vars as needed
# You will need to have built gobject-introspection for this to work.
# Change or pass in or set the following to suit your environment
BASEDIR = ..\..\vs$(VSVER)\$(PLAT)
GIR_SUBDIR = share\gir-1.0
GIR_TYPELIBDIR = lib\girepository-1.0
G_IR_SCANNER = $(BASEDIR)\bin\g-ir-scanner
G_IR_COMPILER = $(BASEDIR)\bin\g-ir-compiler.exe
G_IR_INCLUDEDIR = $(BASEDIR)\$(GIR_SUBDIR)
G_IR_TYPELIBDIR = $(BASEDIR)\$(GIR_TYPELIBDIR)
# Note: The PYTHON2 must be a Python 2.6.x or 2.7.x Interpretor!
# Either having python.exe from Python 2.6.x/2.7.x in your PATH will work
# or passing in PYTHON2=<full path to your Python 2.6.x/2.7.x interpretor> will do
# This is required, and gobject-introspection needs to be built
# before this can be successfully run.
PYTHON2=python
# Don't change anything following this line!
VALID_PKG_CONFIG_PATH = FALSE
VALID_GCC_INSTPATH = FALSE
MSG_INVALID_PKGCONFIG = You must set or specifiy a valid PKG_CONFIG_PATH
MSG_INVALID_CFG = You need to specify or set CFG to be release or debug to use this Makefile to build the Introspection Files
ERROR_MSG =
BUILD_INTROSPECTION = TRUE
!if ![pkg-config --print-errors --errors-to-stdout $(CHECK_PACKAGE) > pkgconfig.x] \
&& ![setlocal] \
&& ![set file="pkgconfig.x"] \
&& ![FOR %A IN (%file%) DO @echo PKG_CHECK_SIZE=%~zA > pkgconfig.chksize] \
&& ![del $(ERRNUL) /q/f pkgconfig.x]
!endif
!include pkgconfig.chksize
!if "$(PKG_CHECK_SIZE)" == "0"
VALID_PKG_CONFIG_PATH = TRUE
!else
VALID_PKG_CONFIG_PATH = FALSE
!endif
!if ![del $(ERRNUL) /q/f pkgconfig.chksize]
!endif
VALID_CFGSET = FALSE
!if "$(CFG)" == "release" || "$(CFG)" == "debug"
VALID_CFGSET = TRUE
!endif
!if "$(VALID_PKG_CONFIG_PATH)" != "TRUE"
BUILD_INTROSPECTION = FALSE
ERROR_MSG = $(MSG_INVALID_PKGCONFIG)
!endif
!if "$(VALID_CFGSET)" != "TRUE"
BUILD_INTROSPECTION = FALSE
ERROR_MSG = $(MSG_INVALID_CFG)
!endif

View File

@@ -1,261 +0,0 @@
#!/usr/bin/python
# vim: encoding=utf-8
#expand *.in files
import os
import sys
import re
import optparse
def parent_dir(path):
if not os.path.isabs(path):
path = os.path.abspath(path)
if os.path.isfile(path):
path = os.path.dirname(path)
return os.path.split(path)[0]
def check_output_type (btype):
print_bad_type = False
output_type = -1
if (btype is None):
output_type = -1
print_bad_type = False
elif (btype == "vs9"):
output_type = 1
elif (btype == "vs10"):
output_type = 2
elif (btype == "nmake-exe"):
output_type = 3
else:
output_type = -1
print_bad_type = True
if (output_type == -1):
if (print_bad_type is True):
print ("The entered output build file type '%s' is not valid" % btype)
else:
print ("Output build file type is not specified.\nUse -t <type> to specify the output build file type.")
print ("Valid output build file types are: nmake-exe, vs9 , vs10")
return output_type
def read_vars_from_AM(path, vars = {}, conds = {}, filters = None):
'''
path: path to the Makefile.am
vars: predefined variables
conds: condition variables for Makefile
filters: if None, all variables defined are returned,
otherwise, it is a list contains that variables should be returned
'''
cur_vars = vars.copy()
RE_AM_VAR_REF = re.compile(r'\$\((\w+?)\)')
RE_AM_VAR = re.compile(r'^\s*(\w+)\s*=(.*)$')
RE_AM_INCLUDE = re.compile(r'^\s*include\s+(\w+)')
RE_AM_VAR_ADD = re.compile(r'^\s*(\w+)\s*\+=(.*)$')
RE_AM_CONTINUING = re.compile(r'\\\s*$')
RE_AM_IF = re.compile(r'^\s*if\s+(\w+)')
RE_AM_IFNOT = re.compile(r'^\s*if\s!+(\w+)')
RE_AM_ELSE = re.compile(r'^\s*else')
RE_AM_ENDIF = re.compile(r'^\s*endif')
def am_eval(cont):
return RE_AM_VAR_REF.sub(lambda x: cur_vars.get(x.group(1), ''), cont)
with open(path, 'r') as f:
contents = f.readlines()
#combine continuing lines
i = 0
ncont = []
while i < len(contents):
line = contents[i]
if RE_AM_CONTINUING.search(line):
line = RE_AM_CONTINUING.sub('', line)
j = i + 1
while j < len(contents) and RE_AM_CONTINUING.search(contents[j]):
line += RE_AM_CONTINUING.sub('', contents[j])
j += 1
else:
if j < len(contents):
line += contents[j]
i = j
else:
i += 1
ncont.append(line)
#include, var define, var evaluation
i = -1
skip = False
oldskip = []
while i < len(ncont) - 1:
i += 1
line = ncont[i]
mo = RE_AM_IF.search(line)
if mo:
oldskip.append(skip)
skip = False if mo.group(1) in conds and conds[mo.group(1)] \
else True
continue
mo = RE_AM_IFNOT.search(line)
if mo:
oldskip.append(skip)
skip = False if mo.group(1) not in conds and conds[mo.group(1)] \
else True
continue
mo = RE_AM_ELSE.search(line)
if mo:
skip = not skip
continue
mo = RE_AM_ENDIF.search(line)
if mo:
if oldskip:
skip = oldskip.pop()
continue
if not skip:
mo = RE_AM_INCLUDE.search(line)
if mo:
cur_vars.update(read_vars_from_AM(am_eval(mo.group(1)), cur_vars, conds, None))
continue
mo = RE_AM_VAR.search(line)
if mo:
cur_vars[mo.group(1)] = am_eval(mo.group(2).strip())
continue
mo = RE_AM_VAR_ADD.search(line)
if mo:
try:
cur_vars[mo.group(1)] += ' '
except KeyError:
cur_vars[mo.group(1)] = ''
cur_vars[mo.group(1)] += am_eval(mo.group(2).strip())
continue
#filter:
if filters != None:
ret = {}
for i in filters:
ret[i] = cur_vars.get(i, '')
return ret
else:
return cur_vars
def process_include(src, dest, includes):
RE_INCLUDE = re.compile(r'^\s*#include\s+"(.*)"')
with open(src, 'r') as s:
with open(dest, 'w') as d:
for i in s:
mo = RE_INCLUDE.search(i)
if mo:
target = ''
for j in includes:
#print "searching in ", j
if mo.group(1) in os.listdir(j):
target = os.path.join(j, mo.group(1))
break
if not target:
raise Exception("Couldn't find include file %s" % mo.group(1))
else:
with open(target, 'r') as t:
for inc in t.readlines():
d.write(inc)
else:
d.write(i)
#Generate the source files listing that is used
def generate_src_list (srcroot, srcdir, filters_src, filter_conds, filter_c, mk_am_file):
mkfile = ''
if mk_am_file is None or mk_am_file == '':
mkfile = 'Makefile.am'
else:
mkfile = mk_am_file
vars = read_vars_from_AM(os.path.join(srcdir, mkfile),
vars = {'top_srcdir': srcroot},
conds = filter_conds,
filters = filters_src)
files = []
for src_filters_item in filters_src:
files += vars[src_filters_item].split()
if filter_c is True:
sources = [i for i in files if i.endswith('.c') ]
return sources
else:
return files
# Generate the Visual Studio 2008 Project Files from the templates
def gen_vs9_project (projname, srcroot, srcdir_name, sources_list):
vs_file_list_dir = os.path.join (srcroot, 'build', 'win32')
with open (os.path.join (vs_file_list_dir,
projname + '.sourcefiles'), 'w') as vs9srclist:
for i in sources_list:
vs9srclist.write ('\t\t\t<File RelativePath="..\\..\\..\\' + srcdir_name + '\\' + i.replace('/', '\\') + '" />\n')
process_include (os.path.join(srcroot, 'build', 'win32', 'vs9', projname + '.vcprojin'),
os.path.join(srcroot, 'build', 'win32', 'vs9', projname + '.vcproj'),
includes = [vs_file_list_dir])
os.unlink(os.path.join(srcroot, 'build', 'win32', projname + '.sourcefiles'))
# Generate the Visual Studio 2010 Project Files from the templates
def gen_vs10_project (projname, srcroot, srcdir_name, sources_list):
vs_file_list_dir = os.path.join (srcroot, 'build', 'win32')
with open (os.path.join (vs_file_list_dir,
projname + '.vs10.sourcefiles'), 'w') as vs10srclist:
for j in sources_list:
vs10srclist.write (' <ClCompile Include="..\\..\\..\\' + srcdir_name + '\\' + j.replace('/', '\\') + '" />\n')
with open (os.path.join (vs_file_list_dir,
projname + '.vs10.sourcefiles.filters'), 'w') as vs10srclist_filter:
for k in sources_list:
vs10srclist_filter.write (' <ClCompile Include="..\\..\\..\\' + srcdir_name + '\\' + k.replace('/', '\\') + '"><Filter>Source Files</Filter></ClCompile>\n')
process_include (os.path.join(srcroot, 'build', 'win32', 'vs10', projname + '.vcxprojin'),
os.path.join(srcroot, 'build', 'win32', 'vs10', projname + '.vcxproj'),
includes = [vs_file_list_dir])
process_include (os.path.join(srcroot, 'build', 'win32', 'vs10', projname + '.vcxproj.filtersin'),
os.path.join(srcroot, 'build', 'win32', 'vs10', projname + '.vcxproj.filters'),
includes = [vs_file_list_dir])
os.unlink(os.path.join(srcroot, 'build', 'win32', projname + '.vs10.sourcefiles'))
os.unlink(os.path.join(srcroot, 'build', 'win32', projname + '.vs10.sourcefiles.filters'))
def gen_vs_inst_list (projname, srcroot, srcdirs, inst_lists, destdir_names, isVS9):
vs_file_list_dir = os.path.join (srcroot, 'build', 'win32')
vsver = ''
vsprops_line_ending = ''
vsprops_file_ext = ''
if isVS9 is True:
vsver = '9'
vsprops_line_ending = '&#x0D;&#x0A;\n'
vsprops_file_ext = '.vsprops'
else:
vsver = '10'
vsprops_line_ending = '\n\n'
vsprops_file_ext = '.props'
with open (os.path.join (vs_file_list_dir,
projname + '.vs' + vsver + 'instfiles'), 'w') as vsinstlist:
for file_list, srcdir, dir_name in zip (inst_lists, srcdirs, destdir_names):
for i in file_list:
vsinstlist.write ('copy ..\\..\\..\\' +
srcdir + '\\' +
i.replace ('/', '\\') +
' $(CopyDir)\\' +
dir_name +
vsprops_line_ending)
process_include (os.path.join(srcroot, 'build', 'win32', 'vs' + vsver, projname + '-install' + vsprops_file_ext + 'in'),
os.path.join(srcroot, 'build', 'win32', 'vs' + vsver, projname + '-install' + vsprops_file_ext),
includes = [vs_file_list_dir])
os.unlink(os.path.join (vs_file_list_dir, projname + '.vs' + vsver + 'instfiles'))
def generate_nmake_makefiles(srcroot, srcdir, base_name, makefile_name, progs_list):
file_list_dir = os.path.join (srcroot, 'build', 'win32')
with open (os.path.join (file_list_dir,
base_name + '_progs'), 'w') as proglist:
for i in progs_list:
proglist.write ('\t' + i + '$(EXEEXT)\t\\\n')
process_include (os.path.join(srcdir, makefile_name + 'in'),
os.path.join(srcdir, makefile_name),
includes = [file_list_dir])
os.unlink(os.path.join (file_list_dir, base_name + '_progs'))

View File

@@ -1,13 +0,0 @@
include $(top_srcdir)/Makefile.decl
SUBDIRS = \
crypt \
vs9 \
vs10 \
vs11 \
vs12 \
vs14
EXTRA_DIST += process-in-win32.py
-include $(top_srcdir)/git.mk

View File

@@ -1,7 +0,0 @@
include $(top_srcdir)/Makefile.decl
EXTRA_DIST += \
crypt.h \
crypt3.c
-include $(top_srcdir)/git.mk

View File

@@ -1,32 +0,0 @@
/**************************************************************************
* Unix-like crypt(3) Algorithm for Password Encryption
*
* File : crypt3.h
* Purpose : Provides crypt(3) prototypes to ANSI C compilers
* without a need for the crypt library.
* Author : Fan, Chun-wei
* Date : June 24, 2013
*
* I am releasing the source that I have provided into public
* domain without any restrictions, warranties, or copyright
* claims of my own.
*
***************************************************************************/
#ifndef __ANSI_CRYPT_H__
#define __ANSI_CRYPT_H__
#ifdef __cplusplus
extern "C"
{
#endif
void encrypt (char *block, int edflag);
void setkey (char *key);
char* crypt (const char *key, const char *salt);
#ifdef __cplusplus
}
#endif
#endif /* __ANSI_CRYPT_H__ */

View File

@@ -1,460 +0,0 @@
/**************************************************************************
* Unix-like crypt(3) Algorithm for Password Encryption
*
* File : crypt3.c
* Purpose : Provides crypt(3) functionality to ANSI C compilers
* without a need for the crypt library.
* Author : Michael Dipperstein
* Date : November 3, 1998
*
***************************************************************************
* The source in this file is heavily borrowed from the crypt3.c file
* found on several ftp sites on the Internet. The original source
* claimed to be BSD, but was not distributed with any BSD license or
* copyright claims. I am releasing the source that I have provided into
* public domain without any restrictions, warranties, or copyright
* claims of my own.
*
* The code below has been cleaned and compiles correctly under, gcc,
* lcc, and Borland's bcc C compilers. A bug involving the left and
* right halves of the encrypted data block in the widely published
* crypt3.c source has been fixed by this version. All implicit register
* declarations have been removed, because they generated suboptimal code.
* All constant data has been explicitly declared as const and all
* declarations have been given a minimal scope, because I'm paranoid.
*
* Caution: crypt() returns a pointer to static data. I left it this way
* to maintain backward compatibility. The downside is that
* successive calls will cause previous results to be lost.
* This can easily be changed with only minor modifications to
* the function crypt().
**************************************************************************/
/* Initial permutation */
static const char IP[] =
{
58, 50, 42, 34, 26, 18, 10, 2,
60, 52, 44, 36, 28, 20, 12, 4,
62, 54, 46, 38, 30, 22, 14, 6,
64, 56, 48, 40, 32, 24, 16, 8,
57, 49, 41, 33, 25, 17, 9, 1,
59, 51, 43, 35, 27, 19, 11, 3,
61, 53, 45, 37, 29, 21, 13, 5,
63, 55, 47, 39, 31, 23, 15, 7,
};
/* Final permutation, FP = IP^(-1) */
static const char FP[] = {
40, 8, 48, 16, 56, 24, 64, 32,
39, 7, 47, 15, 55, 23, 63, 31,
38, 6, 46, 14, 54, 22, 62, 30,
37, 5, 45, 13, 53, 21, 61, 29,
36, 4, 44, 12, 52, 20, 60, 28,
35, 3, 43, 11, 51, 19, 59, 27,
34, 2, 42, 10, 50, 18, 58, 26,
33, 1, 41, 9, 49, 17, 57, 25,
};
/**************************************************************************
* Permuted-choice 1 from the key bits to yield C and D.
* Note that bits 8,16... are left out:
* They are intended for a parity check.
**************************************************************************/
static const char PC1_C[] =
{
57, 49, 41, 33, 25, 17, 9,
1, 58, 50, 42, 34, 26, 18,
10, 2, 59, 51, 43, 35, 27,
19, 11, 3, 60, 52, 44, 36,
};
static const char PC1_D[] =
{
63, 55, 47, 39, 31, 23, 15,
7, 62, 54, 46, 38, 30, 22,
14, 6, 61, 53, 45, 37, 29,
21, 13, 5, 28, 20, 12, 4,
};
/* Sequence of shifts used for the key schedule. */
static const char shifts[] =
{1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1};
/**************************************************************************
* Permuted-choice 2, to pick out the bits from the CD array that generate
* the key schedule.
**************************************************************************/
static const char PC2_C[] =
{
14, 17, 11, 24, 1, 5,
3, 28, 15, 6, 21, 10,
23, 19, 12, 4, 26, 8,
16, 7, 27, 20, 13, 2,
};
static const char PC2_D[] =
{
41, 52, 31, 37, 47, 55,
30, 40, 51, 45, 33, 48,
44, 49, 39, 56, 34, 53,
46, 42, 50, 36, 29, 32,
};
/* The C and D arrays used to calculate the key schedule. */
static char C[28];
static char D[28];
/* The key schedule. Generated from the key. */
static char KS[16][48];
/* The E bit-selection table. */
static char E[48];
static const char e2[] =
{
32, 1, 2, 3, 4, 5,
4, 5, 6, 7, 8, 9,
8, 9, 10, 11, 12, 13,
12, 13, 14, 15, 16, 17,
16, 17, 18, 19, 20, 21,
20, 21, 22, 23, 24, 25,
24, 25, 26, 27, 28, 29,
28, 29, 30, 31, 32, 1,
};
/**************************************************************************
* Function: setkey
*
* Description: Set up the key schedule from the encryption key.
*
* Inputs: char *key
* pointer to 64 character array. Each character represents a
* bit in the key.
*
* Returns: none
**************************************************************************/
void setkey(char *key)
{
int i, j, k, temp;
/**********************************************************************
* First, generate C and D by permuting the key. The low order bit of
* each 8-bit char is not used, so C and D are only 28 bits apiece.
**********************************************************************/
for(i = 0; i < 28; i++)
{
C[i] = key[PC1_C[i] - 1];
D[i] = key[PC1_D[i] - 1];
}
/**********************************************************************
* To generate Ki, rotate C and D according to schedule and pick up a
* permutation using PC2.
**********************************************************************/
for(i = 0; i < 16; i++)
{
/* rotate */
for(k = 0; k < shifts[i]; k++)
{
temp = C[0];
for(j = 0; j < 28 - 1; j++)
C[j] = C[j+1];
C[27] = temp;
temp = D[0];
for(j = 0; j < 28 - 1; j++)
D[j] = D[j+1];
D[27] = temp;
}
/* get Ki. Note C and D are concatenated */
for(j = 0; j < 24; j++)
{
KS[i][j] = C[PC2_C[j] - 1];
KS[i][j + 24] = D[PC2_D[j] - 28 -1];
}
}
/* load E with the initial E bit selections */
for(i=0; i < 48; i++)
E[i] = e2[i];
}
/**************************************************************************
* The 8 selection functions. For some reason, they give a 0-origin
* index, unlike everything else.
**************************************************************************/
static const char S[8][64] =
{
{
14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7,
0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8,
4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0,
15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13
},
{
15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10,
3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5,
0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15,
13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9
},
{
10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8,
13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1,
13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7,
1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12
},
{
7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15,
13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9,
10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4,
3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14
},
{
2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9,
14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6,
4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14,
11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3
},
{
12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11,
10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8,
9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6,
4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13
},
{
4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1,
13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6,
1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2,
6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12
},
{
13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7,
1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2,
7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8,
2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11
}
};
/**************************************************************************
* P is a permutation on the selected combination of the current L and key.
**************************************************************************/
static const char P[] =
{
16, 7, 20, 21,
29, 12, 28, 17,
1, 15, 23, 26,
5, 18, 31, 10,
2, 8, 24, 14,
32, 27, 3, 9,
19, 13, 30, 6,
22, 11, 4, 25,
};
/* The combination of the key and the input, before selection. */
static char preS[48];
/**************************************************************************
* Function: encrypt
*
* Description: Uses DES to encrypt a 64 bit block of data. Requires
* setkey to be invoked with the encryption key before it may
* be used. The results of the encryption are stored in block.
*
* Inputs: char *block
* pointer to 64 character array. Each character represents a
* bit in the data block.
*
* Returns: none
**************************************************************************/
void encrypt(char *block)
{
int i, ii, temp, j, k;
char left[32], right[32]; /* block in two halves */
char old[32];
char f[32];
/* First, permute the bits in the input */
for(j = 0; j < 32; j++)
left[j] = block[IP[j] - 1];
for(;j < 64; j++)
right[j - 32] = block[IP[j] - 1];
/* Perform an encryption operation 16 times. */
for(ii= 0; ii < 16; ii++)
{
i = ii;
/* Save the right array, which will be the new left. */
for(j = 0; j < 32; j++)
old[j] = right[j];
/******************************************************************
* Expand right to 48 bits using the E selector and
* exclusive-or with the current key bits.
******************************************************************/
for(j =0 ; j < 48; j++)
preS[j] = right[E[j] - 1] ^ KS[i][j];
/******************************************************************
* The pre-select bits are now considered in 8 groups of 6 bits ea.
* The 8 selection functions map these 6-bit quantities into 4-bit
* quantities and the results are permuted to make an f(R, K).
* The indexing into the selection functions is peculiar;
* it could be simplified by rewriting the tables.
******************************************************************/
for(j = 0; j < 8; j++)
{
temp = 6 * j;
k = S[j][(preS[temp + 0] << 5) +
(preS[temp + 1] << 3) +
(preS[temp + 2] << 2) +
(preS[temp + 3] << 1) +
(preS[temp + 4] << 0) +
(preS[temp + 5] << 4)];
temp = 4 * j;
f[temp + 0] = (k >> 3) & 01;
f[temp + 1] = (k >> 2) & 01;
f[temp + 2] = (k >> 1) & 01;
f[temp + 3] = (k >> 0) & 01;
}
/******************************************************************
* The new right is left ^ f(R, K).
* The f here has to be permuted first, though.
******************************************************************/
for(j = 0; j < 32; j++)
right[j] = left[j] ^ f[P[j] - 1];
/* Finally, the new left (the original right) is copied back. */
for(j = 0; j < 32; j++)
left[j] = old[j];
}
/* The output left and right are reversed. */
for(j = 0; j < 32; j++)
{
temp = left[j];
left[j] = right[j];
right[j] = temp;
}
/* The final output gets the inverse permutation of the very original. */
for(j = 0; j < 64; j++)
{
i = FP[j];
if (i < 33)
block[j] = left[FP[j] - 1];
else
block[j] = right[FP[j] - 33];
}
}
/**************************************************************************
* Function: crypt
*
* Description: Clone of Unix crypt(3) function.
*
* Inputs: char *pw
* pointer to 8 character encryption key (user password)
* char *salt
* pointer to 2 character salt used to modify the DES results.
*
* Returns: Pointer to static array containing the salt concatenated
* on to the encrypted results. Same as stored in passwd file.
**************************************************************************/
char *crypt(char *pw, char *salt)
{
int i, j, temp;
char c,
block[66]; /* 1st store key, then results */
static char iobuf[16]; /* encrypted results */
for(i = 0; i < 66; i++)
block[i] = 0;
/* break pw into 64 bits */
for(i = 0, c = *pw; c && (i < 64); i++)
{
for(j = 0; j < 7; j++, i++)
block[i] = (c >> (6 - j)) & 01;
pw++;
c = *pw;
}
/* set key based on pw */
setkey(block);
for(i = 0; i < 66; i++)
block[i] = 0;
for(i = 0; i < 2; i++)
{
/* store salt at beginning of results */
c = *salt++;
iobuf[i] = c;
if(c > 'Z')
c -= 6;
if(c > '9')
c -= 7;
c -= '.';
/* use salt to effect the E-bit selection */
for(j = 0; j < 6; j++)
{
if((c >> j) & 01)
{
temp = E[6 * i + j];
E[6 * i +j] = E[6 * i + j + 24];
E[6 * i + j + 24] = temp;
}
}
}
/* call DES encryption 25 times using pw as key and initial data = 0 */
for(i = 0; i < 25; i++)
encrypt(block);
/* format encrypted block for standard crypt(3) output */
for(i=0; i < 11; i++)
{
c = 0;
for(j = 0; j < 6; j++)
{
c <<= 1;
c |= block[6 * i + j];
}
c += '.';
if(c > '9')
c += 7;
if(c > 'Z')
c += 6;
iobuf[i + 2] = c;
}
iobuf[i + 2] = '\0';
/* prevent premature NULL terminator */
if(iobuf[1] == '\0')
iobuf[1] = iobuf[0];
return(iobuf);
}

View File

@@ -1,109 +0,0 @@
#!/usr/bin/python
# vim: encoding=utf-8
# expand Windows-specific *.in files
# for Visual Studio Builds
import os
import sys
import re
import string
import argparse
def open_compat(src, mode):
if (sys.version_info.major < 3):
return open(src, mode)
else:
return open(src, mode, encoding='utf-8', errors='surrogateescape')
def get_version(srcroot):
ver = {}
RE_VERSION = re.compile(r'^m4_define\(\[(gtk_\w+)\],\s*\[(\d+)\]\)')
RE_FLOAT_VERSION = re.compile(r'^m4_define\(\[(gtk_\w+)\],\s*\[(\d+\.\d*)\]\)')
with open(os.path.join(srcroot, 'configure.ac'), 'r') as ac:
for i in ac:
mo = RE_VERSION.search(i)
if mo:
ver[mo.group(1).upper()] = int(mo.group(2))
mo = RE_FLOAT_VERSION.search(i)
if mo:
ver[mo.group(1).upper()] = float(mo.group(2))
ver['GTK_BINARY_AGE'] = 100 * ver['GTK_MINOR_VERSION'] + ver['GTK_MICRO_VERSION']
ver['GTK_VERSION'] = '%d.%d.%d' % (ver['GTK_MAJOR_VERSION'],
ver['GTK_MINOR_VERSION'],
ver['GTK_MICRO_VERSION'])
ver['LT_RELEASE'] = '%d.%d' % (ver['GTK_MAJOR_VERSION'], ver['GTK_MINOR_VERSION'])
ver['LT_CURRENT'] = 100 * \
ver['GTK_MINOR_VERSION'] + \
ver['GTK_MICRO_VERSION'] - \
ver['GTK_INTERFACE_AGE']
ver['LT_REVISION'] = ver['GTK_INTERFACE_AGE']
ver['LT_AGE'] = ver['GTK_BINARY_AGE'] - ver['GTK_INTERFACE_AGE']
ver['LT_CURRENT_MINUS_AGE'] = ver['LT_CURRENT'] - ver['LT_AGE']
return ver
def process_in(src, dest, vars):
RE_VARS = re.compile(r'@(\w+?)@')
with open_compat(src, 'r') as s:
with open_compat(dest, 'w') as d:
for i in s:
i = RE_VARS.sub(lambda x: str(vars[x.group(1)]), i)
d.write(i)
def get_srcroot():
if not os.path.isabs(__file__):
path = os.path.abspath(__file__)
else:
path = __file__
dirname = os.path.dirname(path)
return os.path.abspath(os.path.join(dirname, '..', '..'))
def main(argv):
prog_desc = 'Create Various autogenerated Win32-specific Source Files'
parser = argparse.ArgumentParser(description=prog_desc)
parser.add_argument('--gtkwin32rc', dest='gtkwin32rc', action='store_const',
const=1,
help='Generate gtk-win32.rc')
parser.add_argument('--gtk3manifest', dest='gtk3manifest', action='store_const',
const=1,
help='Generate libgtk3.manifest')
args = parser.parse_args()
no_args = True
if args.gtkwin32rc is not None:
srcroot = get_srcroot()
ver = get_version(srcroot)
target = os.path.join(srcroot, 'gtk', 'gtk-win32.rc')
process_in(os.path.join(srcroot, 'gtk', 'gtk-win32.rc.in'),
target + '.intermediate',
ver)
fp_r = open_compat(target + '.intermediate', 'r')
lines = fp_r.readlines()
fp_r.close()
fp_w = open_compat(target, 'w')
fp_w.writelines([item for item in lines[:-1]])
fp_w.close()
os.unlink(target + '.intermediate')
no_args = False
if args.gtk3manifest is not None:
manifest = {}
manifest['EXE_MANIFEST_ARCHITECTURE'] = '*'
process_in(os.path.join(srcroot, 'gtk', 'libgtk3.manifest.in'),
os.path.join(srcroot, 'gtk', 'libgtk3.manifest'),
manifest)
no_args = False
if no_args is True:
raise SystemExit('Action argument required. Please see %s --help for details.' % __file__)
if __name__ == '__main__':
sys.exit(main(sys.argv))

View File

@@ -1,72 +0,0 @@
include $(top_srcdir)/Makefile.decl
GENERATED_ITEMS = \
gdk3-win32.vcxproj \
gdk3-win32.vcxproj.filters \
gdk3-broadway.vcxproj \
gdk3-broadway.vcxproj.filters \
broadwayd.vcxproj \
broadwayd.vcxproj.filters \
gdk-3.vcxproj \
gdk-3.vcxproj.filters \
gtk-3.vcxproj \
gtk-3.vcxproj.filters \
gtk3-demo.vcxproj \
gtk3-demo.vcxproj.filters \
gtk3-demo-application.vcxproj \
gtk3-demo-application.vcxproj.filters \
gtk3-icon-browser.vcxproj \
gtk3-icon-browser.vcxproj.filters \
gailutil-3.vcxproj \
gailutil-3.vcxproj.filters \
gtk3-install.props \
gtk3-version-paths.props
MSVC10_HEADERS_LISTS = \
gdk3-win32.vs10.headers \
gdk3-broadway.vs10.headers \
gdk-3.vs10.headers \
gtk-3.vs10.headers \
gailutil-3.vs10.headers
EXTRA_DIST += \
README.txt \
gtk+.sln \
gtk3-prebuild.vcxproj \
gdk3-win32.vcxprojin \
gdk3-win32.vcxproj.filtersin \
gdk3-broadway.vcxprojin \
gdk3-broadway.vcxproj.filtersin \
broadwayd.vcxprojin \
broadwayd.vcxproj.filtersin \
gdk-3.vcxprojin \
gdk-3.vcxproj.filtersin \
gtk-3.vcxprojin \
gtk-3.vcxproj.filtersin \
gtk-encode-symbolic-svg.vcxproj \
gtk-encode-symbolic-svg.vcxproj.filters \
gtk3-demo.vcxprojin \
gtk3-demo.vcxproj.filtersin \
gtk3-demo-application.vcxprojin \
gtk3-demo-application.vcxproj.filtersin \
gtk3-icon-browser.vcxprojin \
gtk3-icon-browser.vcxproj.filtersin \
gailutil-3.vcxprojin \
gailutil-3.vcxproj.filtersin \
gtk3-install.vcxproj \
gtk3-build-defines.props \
gtk3-copy-gdk-broadway.props \
gtk3-gen-srcs.props \
gtk3-ignore-broadway.props \
gtk3-install.propsin \
gtk3-version-paths.props.in \
$(GENERATED_ITEMS)
DISTCLEANFILES = \
$(GENERATED_ITEMS)
gtk3-install.props: $(top_srcdir)/build/win32/vs10/gtk3-install.propsin $(MSVC10_HEADERS_LISTS)
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/gtk3-install.propsin >$@
rm $(MSVC10_HEADERS_LISTS)
-include $(top_srcdir)/git.mk

View File

@@ -1,101 +0,0 @@
Please do not compile this package (GTK+) in paths that contain
spaces in them-as strange problems may occur during compilation or during
the use of the library.
A more detailed outline for instructions on building the GTK+ with Visual
C++ can be found in the following GNOME Live! page:
https://wiki.gnome.org/Projects/GTK+/Win32/MSVCCompilationOfGTKStack
This VS10 solution and the projects it includes are intented to be used
in a GTK+ source tree unpacked from a tarball. In a git checkout you
first need to use some Unix-like environment or manual work to expand
the files needed, like config.h.win32.in into config.h.win32 and the
.vcxprojin and .vcxproj.filtersin files here into corresponding actual
.vcxproj and vcxproj.filters files.
You will need the parts from below in the GTK+ stack: GDK-Pixbuf, Pango,
ATK and GLib. External dependencies are at least Cairo
(with Cairo-GObject support, meaning Cairo 1.10.x or later), zlib, libpng,
gettext-runtime, fontconfig*, freetype*, expat*. See the
build/win32/vs10/README.txt file in glib for details where to unpack them.
You will also need a Python 2.6+/3.x interpretor installed on your system,
which can be obtained from the official installers available from
http://www.python.org. Please note that the Python interpretor (python.exe)
either needs to be in your PATH before attempting the build of GTK+, or it
can be found in the path specified by PythonPath in gtk-version-paths.props.
If you happen to change the PythonPath setting in gtk-version-paths.props after
opening gtk+.sln with Visual Studio, you will need to close the gtk+.sln solution,
delete all the *.sdf, *.suo and *.user files before re-attempting the build.
It is recommended that one builds the dependencies with VS10 as far as
possible, especially those from and using the GTK+ stack (i.e. GLib,
Cairo, ATK, Pango, GDK-Pixbuf), so that crashes caused by mixing calls
to different CRTs can be kept at a minimum.
zlib, libpng, and Cairo do contain support for compiling under VS10
using VS project files and/or makefiles at this time of writing, For the
GTK+ stack, VS10 project files are either available under
$(srcroot)/build/vs10 in the case of GLib (stable/unstable), ATK
(stable/unstable) and GDK-Pixbuf (unstable), and should be in the next
unstable version of Pango. There is no known official VS10 build
support for fontconfig (along with freetype and expat) and
gettext-runtime, so please use the binaries from:
ftp://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/ (32 bit)
ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/ (64 bit)
Unzip the binaries obtained from ftp.gnome.org in <root>\vs10\<PlatformName>,
and build the following, if not already done so:
Note: put the resulting zlib, libpng, pcre and Cairo files as follows:
.dll files: <root>\vs10\<PlatformName>\bin
.lib files: <root>\vs10\<PlatformName>\lib
.h files: <root>\vs10\<PlatformName>\include
The recommended build order for these dependencies:
(first unzip any dependent binaries downloaded from the ftp.gnome.org
as described in the README.txt file in the build/win32/vs10 folder)
-zlib
-libpng
-(for GDK-Pixbuf, if not using GDI+) IJG JPEG or libjpeg-turbo
-(for GDK-Pixbuf, if not using GDI+) libtiff
[libtiff requires zlib and IJG JPEG or libjpeg-turbo]
-(for GDK-Pixbuf, if not using GDI+) jasper [jpeg-2000 library]
-(optional for GLib) PCRE (version 8.12 or later, use of CMake to
build PCRE is recommended-see build/win32/vs10/README.txt of GLib)
-GLib **
-Cairo (inclusive of Cairo-GObject)
-ATK**
-Pango**
-GDK-Pixbuf**
(note the last 3 dependencies are not interdependent, so the last 3
dependencies can be built in any order)
The "install" project will copy build results and headers into their
appropriate location under <root>\vs10\<PlatformName>. For instance,
built DLLs go into <root>\vs10\<PlatformName>\bin, built LIBs into
<root>\vs10\<PlatformName>\lib and GTK+ headers into
<root>\vs10\<PlatformName>\include\gtk-3.0. This is then from where
project files higher in the stack are supposed to look for them, not
from a specific GLib source tree.
Please note, as GTK+ uses the Adwaita theme for all platforms by default,
most icons used are not included with GTK+ (which *are* needed), so please see
https://live.gnome.org/GTK%2B/Win32/MSVCCompilationOfGTKStack (under the
GTK+ section) on how to get those icons set up for use with GTK+.
*About the dependencies marked with *: These dependencies are optional
as those are not compulsory components for building and running GTK+
itself, but note that they are needed for people running and building
GIMP or those who need complex script support via fontconfig. They
are referred to by components in Cairo and Pango mainly.
Decide whether you need fontconfig support prior to building Cairo
and Pango.
**:Put the sources of the packages marked with ** in <root>\<package-
source-tree>, and build with VS10 from there.
--Tor Lillqvist <tml@iki.fi>
--Updated by Chun-wei Fan <fanc999@yahoo.com.tw>

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Sources">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Headers">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
#include "broadwayd.vs10.sourcefiles.filters"
</ItemGroup>
</Project>

View File

@@ -1,179 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_Broadway|Win32">
<Configuration>Debug_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_Broadway|x64">
<Configuration>Debug_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|Win32">
<Configuration>Release_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|x64">
<Configuration>Release_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}</ProjectGuid>
<RootNamespace>broadwayd</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
#include "broadwayd.vs10.sourcefiles"
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gtk3-prebuild.vcxproj">
<Project>{b98fbe68-b03c-48e3-8f32-c3c010720d30}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Sources">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Headers">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
#include "gailutil-3.vs10.sourcefiles.filters"
</ItemGroup>
</Project>

View File

@@ -1,190 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A1FCED61-4E51-4015-A70C-5373404D1BA0}</ProjectGuid>
<RootNamespace>gailutil</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
#include "gailutil-3.vs10.sourcefiles"
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gdk-3.vcxproj">
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gtk-3.vcxproj">
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\gdk\win32\rc\gdk.rc"><Filter>Resource Files</Filter></ResourceCompile>
</ItemGroup>
<ItemGroup>
#include "gdk-3.vs10.sourcefiles.filters"
<ClCompile Include="..\..\..\gdk\gdkkeynames.c"><Filter>Source Files</Filter></ClCompile>
</ItemGroup>
</Project>

View File

@@ -1,337 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_Broadway|Win32">
<Configuration>Debug_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_Broadway|x64">
<Configuration>Debug_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|Win32">
<Configuration>Release_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|x64">
<Configuration>Release_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}</ProjectGuid>
<RootNamespace>gdk3</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-ignore-broadway.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-ignore-broadway.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-ignore-broadway.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-ignore-broadway.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-copy-gdk-broadway.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-copy-gdk-broadway.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-copy-gdk-broadway.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-copy-gdk-broadway.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>imm32.lib;winmm.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>imm32.lib;winmm.lib;ws2_32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>imm32.lib;winmm.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>imm32.lib;winmm.lib;ws2_32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>imm32.lib;winmm.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>imm32.lib;winmm.lib;ws2_32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>imm32.lib;winmm.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>imm32.lib;winmm.lib;ws2_32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\gdk\win32\rc\gdk.rc" />
</ItemGroup>
<ItemGroup>
#include "gdk-3.vs10.sourcefiles"
<ClCompile Include="..\..\..\gdk\gdkkeynames.c" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gdk3-broadway.vcxproj">
<Project>{1df4c475-4472-4ee4-ac2b-3ab5a4c1a453}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gdk3-win32.vcxproj">
<Project>{aba7685a-7cbb-4626-b5e5-6eeea5b489ef}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
#include "gdk3-broadway.vs10.sourcefiles.filters"
</ItemGroup>
</Project>

View File

@@ -1,131 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_Broadway|Win32">
<Configuration>Debug_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_Broadway|x64">
<Configuration>Debug_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|Win32">
<Configuration>Release_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|x64">
<Configuration>Release_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}</ProjectGuid>
<RootNamespace>gdkbroadway</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
#include "gdk3-broadway.vs10.sourcefiles"
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gtk3-prebuild.vcxproj">
<Project>{b98fbe68-b03c-48e3-8f32-c3c010720d30}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
#include "gdk3-win32.vs10.sourcefiles.filters"
</ItemGroup>
</Project>

View File

@@ -1,131 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}</ProjectGuid>
<RootNamespace>gdkwin32</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);INSIDE_GDK_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GdkDefines);INSIDE_GDK_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);INSIDE_GDK_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GdkDefines);INSIDE_GDK_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
#include "gdk3-win32.vs10.sourcefiles"
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gtk3-prebuild.vcxproj">
<Project>{b98fbe68-b03c-48e3-8f32-c3c010720d30}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,227 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-prebuild", "gtk3-prebuild.vcxproj", "{B98FBE68-B03C-48E3-8F32-C3C010720D30}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk3-win32", "gdk3-win32.vcxproj", "{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk3-broadway", "gdk3-broadway.vcxproj", "{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "broadwayd", "broadwayd.vcxproj", "{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk-3", "gdk-3.vcxproj", "{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk-3", "gtk-3.vcxproj", "{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcxproj", "{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo-application", "gtk3-demo-application.vcxproj", "{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-icon-browser", "gtk3-icon-browser.vcxproj", "{343333C4-D46C-4C97-A986-959CCA6F1DE0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk-encode-symbolic-svg", "gtk-encode-symbolic-svg.vcxproj", "{F280BF1A-777A-4FB5-8005-DFBE04621EDB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil-3", "gailutil-3.vcxproj", "{A1FCED61-4E51-4015-A70C-5373404D1BA0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-install", "gtk3-install.vcxproj", "{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug_Broadway|Win32 = Debug_Broadway|Win32
Debug|x64 = Debug|x64
Debug_Broadway|x64 = Debug_Broadway|x64
Release|Win32 = Release|Win32
Release_Broadway|Win32 = Release_Broadway|Win32
Release|x64 = Release|x64
Release_Broadway|x64 = Release_Broadway|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug|Win32.ActiveCfg = Debug|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug|Win32.Build.0 = Debug|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug|x64.ActiveCfg = Debug|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug|x64.Build.0 = Debug|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release|Win32.ActiveCfg = Release|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release|Win32.Build.0 = Release|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release|x64.ActiveCfg = Release|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release|x64.Build.0 = Release|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug|Win32.ActiveCfg = Debug|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug|Win32.Build.0 = Debug|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug|x64.ActiveCfg = Debug|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug|x64.Build.0 = Debug|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release|Win32.ActiveCfg = Release|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release|Win32.Build.0 = Release|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release|x64.ActiveCfg = Release|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release|x64.Build.0 = Release|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug_Broadway|x64.Build.0 = Debug|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release_Broadway|Win32.Build.0 = Release|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release_Broadway|x64.ActiveCfg = Release|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release_Broadway|x64.Build.0 = Release|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug|Win32.ActiveCfg = Debug_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug|x64.ActiveCfg = Debug_Broadway|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release|Win32.ActiveCfg = Release_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release|x64.ActiveCfg = Release_Broadway|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug|Win32.ActiveCfg = Debug_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug|x64.ActiveCfg = Debug_Broadway|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release|Win32.ActiveCfg = Release_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release|x64.ActiveCfg = Release_Broadway|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug|Win32.ActiveCfg = Debug|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug|Win32.Build.0 = Debug|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug|x64.ActiveCfg = Debug|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug|x64.Build.0 = Debug|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release|Win32.ActiveCfg = Release|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release|Win32.Build.0 = Release|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release|x64.ActiveCfg = Release|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release|x64.Build.0 = Release|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug|Win32.ActiveCfg = Debug|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug|Win32.Build.0 = Debug|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug|x64.ActiveCfg = Debug|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug|x64.Build.0 = Debug|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|Win32.ActiveCfg = Release|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|Win32.Build.0 = Release|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|x64.ActiveCfg = Release|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|x64.Build.0 = Release|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|x64.Build.0 = Debug|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|Win32.Build.0 = Release|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|x64.ActiveCfg = Release|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|x64.Build.0 = Release|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|Win32.ActiveCfg = Debug|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|Win32.Build.0 = Debug|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|x64.ActiveCfg = Debug|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|x64.Build.0 = Debug|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release|Win32.ActiveCfg = Release|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release|Win32.Build.0 = Release|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release|x64.ActiveCfg = Release|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release|x64.Build.0 = Release|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug_Broadway|x64.Build.0 = Debug|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release_Broadway|Win32.Build.0 = Release|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release_Broadway|x64.ActiveCfg = Release|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release_Broadway|x64.Build.0 = Release|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug|Win32.ActiveCfg = Debug|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug|Win32.Build.0 = Debug|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug|x64.ActiveCfg = Debug|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug|x64.Build.0 = Debug|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release|Win32.ActiveCfg = Release|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release|Win32.Build.0 = Release|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release|x64.ActiveCfg = Release|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release|x64.Build.0 = Release|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug_Broadway|x64.Build.0 = Debug|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release_Broadway|Win32.Build.0 = Release|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release_Broadway|x64.ActiveCfg = Release|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release_Broadway|x64.Build.0 = Release|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug|Win32.ActiveCfg = Debug|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug|Win32.Build.0 = Debug|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug|x64.ActiveCfg = Debug|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug|x64.Build.0 = Debug|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release|Win32.ActiveCfg = Release|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release|Win32.Build.0 = Release|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release|x64.ActiveCfg = Release|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release|x64.Build.0 = Release|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug|Win32.ActiveCfg = Debug|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug|Win32.Build.0 = Debug|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug|x64.ActiveCfg = Debug|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug|x64.Build.0 = Debug|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release|Win32.ActiveCfg = Release|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release|Win32.Build.0 = Release|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release|x64.ActiveCfg = Release|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release|x64.Build.0 = Release|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug_Broadway|x64.Build.0 = Debug|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release_Broadway|Win32.Build.0 = Release|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release_Broadway|x64.ActiveCfg = Release|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release_Broadway|x64.Build.0 = Release|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug|Win32.ActiveCfg = Debug|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug|Win32.Build.0 = Debug|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug|x64.ActiveCfg = Debug|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug|x64.Build.0 = Debug|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release|Win32.ActiveCfg = Release|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release|Win32.Build.0 = Release|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release|x64.ActiveCfg = Release|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release|x64.Build.0 = Release|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug_Broadway|x64.Build.0 = Debug|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release_Broadway|Win32.Build.0 = Release|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release_Broadway|x64.ActiveCfg = Release|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release_Broadway|x64.Build.0 = Release|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug|Win32.ActiveCfg = Debug|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug|Win32.Build.0 = Debug|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug|x64.ActiveCfg = Debug|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug|x64.Build.0 = Debug|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release|Win32.ActiveCfg = Release|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release|Win32.Build.0 = Release|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release|x64.ActiveCfg = Release|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release|x64.Build.0 = Release|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug_Broadway|x64.Build.0 = Debug|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|Win32.Build.0 = Release|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|x64.ActiveCfg = Release|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\gtk\gtk-win32.rc"><Filter>Resource Files</Filter></ResourceCompile>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\gtk\gtkdbusinterfaces.xml"><Filter>Resource Files</Filter></CustomBuild>
<CustomBuild Include="..\..\..\gtk\gtk-win32.rc.in"><Filter>Resource Files</Filter></CustomBuild>
</ItemGroup>
<ItemGroup>
#include "gtk-3.vs10.sourcefiles.filters"
<ClCompile Include="..\..\..\modules\input\gtkimcontextime.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\gtkimcontextmultipress.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\gtkimcontextthai.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\imam-et.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\imcedilla.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\imcyrillic-translit.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\imime.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\iminuktitut.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\imipa.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\immultipress.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\imthai.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\imti-er.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\imti-et.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\imviqr.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\modules\input\thai-charprop.c"><Filter>Source Files</Filter></ClCompile>
</ItemGroup>
<ItemGroup>
<Manifest Include="..\..\..\gtk\libgtk3.manifest"><Filter>Resource Files</Filter></Manifest>
</ItemGroup>
</Project>

View File

@@ -1,230 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
<WholeProgramOptimization>true</WholeProgramOptimization>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
<WholeProgramOptimization>true</WholeProgramOptimization>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}</ProjectGuid>
<RootNamespace>gtk3</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\gtk\gtkdbusinterfaces.xml">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating GTK+ DBus Sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateGtkDbusBuiltSources)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating GTK+ DBus Sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateGtkDbusBuiltSources)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating GTK+ DBus Sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateGtkDbusBuiltSources)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating GTK+ DBus Sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGtkDbusBuiltSources)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\..\..\gtk\gtk-win32.rc.in">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating GTK+ Win32 Version Resource...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateGtkWin32RC)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating GTK+ Win32 Version Resource...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateGtkWin32RC)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating GTK+ Win32 Version Resource...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateGtkWin32RC)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating GTK+ Win32 Version Resource...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGtkWin32RC)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\gtk\gtk-win32.rc" />
</ItemGroup>
<ItemGroup>
#include "gtk-3.vs10.sourcefiles"
<ClCompile Include="..\..\..\modules\input\gtkimcontextime.c" />
<ClCompile Include="..\..\..\modules\input\gtkimcontextmultipress.c" />
<ClCompile Include="..\..\..\modules\input\gtkimcontextthai.c" />
<ClCompile Include="..\..\..\modules\input\imam-et.c" />
<ClCompile Include="..\..\..\modules\input\imcedilla.c" />
<ClCompile Include="..\..\..\modules\input\imcyrillic-translit.c" />
<ClCompile Include="..\..\..\modules\input\imime.c" />
<ClCompile Include="..\..\..\modules\input\iminuktitut.c" />
<ClCompile Include="..\..\..\modules\input\imipa.c" />
<ClCompile Include="..\..\..\modules\input\immultipress.c" />
<ClCompile Include="..\..\..\modules\input\imthai.c" />
<ClCompile Include="..\..\..\modules\input\imti-er.c" />
<ClCompile Include="..\..\..\modules\input\imti-et.c" />
<ClCompile Include="..\..\..\modules\input\imviqr.c" />
<ClCompile Include="..\..\..\modules\input\thai-charprop.c" />
</ItemGroup>
<ItemGroup>
<Manifest Include="..\..\..\gtk\libgtk3.manifest" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gdk-3.vcxproj">
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,179 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F280BF1A-777A-4FB5-8005-DFBE04621EDB}</ProjectGuid>
<RootNamespace>gtkencodesymbolicsvg</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\gtk\encodesymbolic.c" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gdk-3.vcxproj">
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Sources">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Headers">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\gtk\encodesymbolic.c"><Filter>Sources</Filter></ClCompile>
</ItemGroup>
</Project>

View File

@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="gtk3-version-paths.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros">
<GtkBinaryVersion>3.0.0</GtkBinaryVersion>
<GtkDummyPrefix>/dummy</GtkDummyPrefix>
<GtkPrefixDefine>GTK_PREFIX=\"$(GtkDummyPrefix)\"</GtkPrefixDefine>
<GdkDefines>GDK_COMPILATION;G_LOG_DOMAIN="Gdk"</GdkDefines>
<GtkIncludedImmodulesDefines>INCLUDE_IM_am_et;INCLUDE_IM_cedilla;INCLUDE_IM_cyrillic_translit;INCLUDE_IM_ime;INCLUDE_IM_inuktitut;INCLUDE_IM_ipa;INCLUDE_IM_multipress;INCLUDE_IM_thai;INCLUDE_IM_ti_er;INCLUDE_IM_ti_et;INCLUDE_IM_viqr</GtkIncludedImmodulesDefines>
<GtkDefines>GTK_COMPILATION;G_LOG_DOMAIN="Gtk";GTK_HOST="i686-pc-vs$(VSVer)";GTK_PRINT_BACKENDS="file";GTK_PRINT_BACKEND_ENABLE_UNSUPPORTED;$(GtkIncludedImmodulesDefines);GTK_LIBDIR="$(GtkDummyPrefix)/lib";GTK_DATADIR="$(GtkDummyPrefix)/share";GTK_DATA_PREFIX="$(GtkDummyPrefix)";GTK_SYSCONFDIR="$(GtkDummyPrefix)/etc";MULTIPRESS_CONFDIR="$(GtkDummyPrefix)/etc/gtk-$(ApiVersion)";MULTIPRESS_LOCALEDIR="$(GtkDummyPrefix)/share/locale";GTK_VERSION="$(GtkVersion)/etc";GTK_BINARY_VERSION="$(GtkBinaryVersion)/etc";GDK_DISABLE_DEPRECATED;ISOLATION_AWARE_ENABLED</GtkDefines>
</PropertyGroup>
<PropertyGroup>
<_PropertySheetDisplayName>gtk3builddefinesprops</_PropertySheetDisplayName>
<OutDir>$(SolutionDir)$(Configuration)\$(PlatformName)\bin\</OutDir>
<IntDir>$(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>..\..\..;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>HAVE_CONFIG_H;G_DISABLE_SINGLE_INCLUDES;ATK_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>pangocairo-1.0.lib;cairo.lib;cairo-gobject.lib;pango-1.0.lib;gdk_pixbuf-2.0.lib;gio-2.0.lib;gmodule-2.0.lib;gobject-2.0.lib;glib-2.0.lib;intl.lib;epoxy.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<BuildMacro Include="GtkBinaryVersion">
<Value>$(GtkBinaryVersion)</Value>
</BuildMacro>
<BuildMacro Include="GtkDummyPrefix">
<Value>$(GtkDummyPrefix)</Value>
</BuildMacro>
<BuildMacro Include="GtkPrefixDefine">
<Value>$(GtkPrefixDefine)</Value>
</BuildMacro>
<BuildMacro Include="GdkDefines">
<Value>$(GdkDefines)</Value>
</BuildMacro>
<BuildMacro Include="GtkIncludedImmodulesDefines">
<Value>$(GtkIncludedImmodulesDefines)</Value>
</BuildMacro>
<BuildMacro Include="GtkDefines">
<Value>$(GtkDefines)</Value>
</BuildMacro>
</ItemGroup>
</Project>

View File

@@ -1,50 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup>
<_PropertySheetDisplayName>gtk3copygdkbroadwayprops</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<AdditionalOptions>/EXPORT:gdk_win32_display_manager_get_type</AdditionalOptions>
</Link>
<PostBuildEvent>
<Command>
if "$(Configuration)" == "Release" goto END
if "$(Configuration)" == "Debug" goto END
if "$(Configuration)" == "Release_Broadway" goto DoRelease
if "$(Configuration)" == "Debug_Broadway" goto DoDebug
:DoRelease
mkdir .\Release\$(Platform)\bin
copy /b $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll .\Release\$(Platform)\bin\
copy /b $(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib .\Release\$(Platform)\bin\
goto END
:DoDebug
mkdir .\Debug\$(Platform)\bin
copy /b $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll .\Debug\$(Platform)\bin\
copy /b $(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib .\Debug\$(Platform)\bin\
goto END
:END
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
</Project>

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Sources">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Headers">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
#include "gtk3-demo-application.vs10.sourcefiles.filters"
</ItemGroup>
</Project>

View File

@@ -1,175 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}</ProjectGuid>
<RootNamespace>gtk3demoapplication</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>false</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>false</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>false</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>false</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
#include "gtk3-demo-application.vs10.sourcefiles"
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gdk-3.vcxproj">
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gtk-3.vcxproj">
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
#include "gtk3-demo.vs10.sourcefiles.filters"
</ItemGroup>
</Project>

View File

@@ -1,189 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}</ProjectGuid>
<RootNamespace>gtk3demo</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<FunctionLevelLinking>false</FunctionLevelLinking>
<OptimizeReferences>false</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<FunctionLevelLinking>false</FunctionLevelLinking>
<OptimizeReferences>false</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
#include "gtk3-demo.vs10.sourcefiles"
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gdk-3.vcxproj">
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gtk-3.vcxproj">
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,93 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros">
<GenConfigH>
copy ..\..\..\config.h.win32 ..\..\..\config.h
</GenConfigH>
<GenGdkConfigHWin32>
if exist ..\..\..\MSVC_$(Configuration) goto DONE_GDKCONFIG_H
if exist ..\..\..\gdk\gdkconfig.h del ..\..\..\gdk\gdkconfig.h
if exist ..\..\..\GDK_BROADWAY_BUILD del ..\..\..\GDK_BROADWAY_BUILD
if exist ..\..\..\MSVC_$(Configuration)_Broadway del ..\..\..\MSVC_$(Configuration)_Broadway
if exist $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll del $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll
if exist $(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib del $(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib
if "$(Configuration)" == "Release" del ..\..\..\MSVC_Debug
if "$(Configuration)" == "Debug" del ..\..\..\MSVC_Release
copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h
copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\GDK_WIN32ONLY_BUILD
echo $(Configuration) &gt; ..\..\..\MSVC_$(Configuration)
:DONE_GDKCONFIG_H
</GenGdkConfigHWin32>
<GenGdkConfigHBroadway>
if exist ..\..\..\MSVC_$(Configuration)_Broadway goto DONE_GDKCONFIG_H
if exist ..\..\..\gdk\gdkconfig.h del ..\..\..\gdk\gdkconfig.h
if exist ..\..\..\GDK_WIN32ONLY_BUILD del ..\..\..\GDK_WIN32ONLY_BUILD
if exist ..\..\..\MSVC_Release del ..\..\..\MSVC_Release
if exist ..\..\..\MSVC_Debug del ..\..\..\MSVC_Debug
if "$(Configuration)" == "Release_Broadway" del ..\..\..\MSVC_Debug_Broadway
if "$(Configuration)" == "Debug_Broadway" del ..\..\..\MSVC_Release_Broadway
copy ..\..\..\gdk\gdkconfig.h.win32_broadway ..\..\..\gdk\gdkconfig.h
copy ..\..\..\gdk\gdkconfig.h.win32_broadway ..\..\..\GDK_BROADWAY_BUILD
echo $(Configuration) &gt; ..\..\..\MSVC_$(Configuration)_Broadway
:DONE_GDKCONFIG_H
</GenGdkConfigHBroadway>
<GenerateGtkDbusBuiltSources>
cd ..\..\..\gtk
$(PythonPath)\python $(GlibEtcInstallRoot)\bin\gdbus-codegen --interface-prefix org.Gtk. --c-namespace _Gtk --generate-c-code gtkdbusgenerated ./gtkdbusinterfaces.xml
cd $(SolutionDir)
</GenerateGtkDbusBuiltSources>
<GenerateGtkWin32RC>$(PythonPath)\python ..\process-in-win32.py --gtkwin32rc --gtk3manifest</GenerateGtkWin32RC>
<CopyDemosH>copy ..\..\..\demos\gtk-demo\demos.h.win32 ..\..\..\demos\gtk-demo\demos.h</CopyDemosH>
</PropertyGroup>
<PropertyGroup>
<_PropertySheetDisplayName>gtk3gensrcsprops</_PropertySheetDisplayName>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="GenConfigH">
<Value>$(GenConfigH)</Value>
</BuildMacro>
<BuildMacro Include="GenGdkConfigHWin32">
<Value>$(GenGdkConfigHWin32)</Value>
</BuildMacro>
<BuildMacro Include="GenGdkConfigHBroadway">
<Value>$(GenGdkConfigHBroadway)</Value>
</BuildMacro>
<BuildMacro Include="GenerateGtkDbusBuiltSources">
<Value>$(GenerateGtkDbusBuiltSources)</Value>
</BuildMacro>
<BuildMacro Include="GenerateGtkWin32RC">
<Value>$(GenerateGtkWin32RC)</Value>
</BuildMacro>
<BuildMacro Include="CopyDemosH">
<Value>$(CopyDemosH)</Value>
</BuildMacro>
</ItemGroup>
</Project>

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Sources">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Headers">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
#include "gtk3-icon-browser.vs10.sourcefiles.filters"
</ItemGroup>
</Project>

View File

@@ -1,179 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{343333C4-D46C-4C97-A986-959CCA6F1DE0}</ProjectGuid>
<RootNamespace>gtk3iconbrowser</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>false</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>false</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>false</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>false</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
#include "gtk3-icon-browser.vs10.sourcefiles"
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gdk-3.vcxproj">
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gtk-3.vcxproj">
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup>
<_PropertySheetDisplayName>gtk3ignorebroadwayprops</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<ProjectReference>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
</ProjectReference>
<Link>
<AdditionalDependencies>$(OutDir)\gdk3-win32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>/EXPORT:gdk_win32_display_manager_get_type</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
</Project>

View File

@@ -1,146 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="gtk3-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros">
<BinDir>$(SolutionDir)$(Configuration)\$(Platform)\bin</BinDir>
<InstalledDlls>$(BinDir)\$(GtkDllPrefix)gdk(GtkDllSuffix).dll;$(BinDir)\$(GtkDllPrefix)gtk(GtkDllSuffix).dll;$(BinDir)\$(GtkDllPrefix)gailutil(GtkDllSuffix).dll</InstalledDlls>
<InstalledBins>$(BinDir)\gtk3-demo.exe;$(BinDir)\gtk3-demo-application.exe;$(BinDir)\gtk3-icon-browser.exe;$(BinDir)\gtk-encode-symbolic-svg.exe</InstalledBins>
<InstalledBroadwayBins>$(BinDir)\broadwayd.exe</InstalledBroadwayBins>
<GtkDoInstallBin>
mkdir $(CopyDir)\bin
mkdir $(CopyDir)\lib
copy "$(BinDir)\$(GtkDllPrefix)gdk-3$(GtkDllSuffix).dll" $(CopyDir)\bin
copy "$(BinDir)\$(GtkDllPrefix)gdk-3$(GtkDllSuffix).pdb" $(CopyDir)\bin
copy "$(BinDir)\gdk-$(ApiVersion).lib" $(CopyDir)\lib
if "$(Configuration)" == "Release_Broadway" goto DO_BROADWAY_BIN
if "$(Configuration)" == "Debug_Broadway" goto DO_BROADWAY_BIN
copy "$(BinDir)\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).dll" $(CopyDir)\bin
copy "$(BinDir)\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).pdb" $(CopyDir)\bin
copy "$(BinDir)\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).dll" $(CopyDir)\bin
copy "$(BinDir)\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).pdb" $(CopyDir)\bin
copy "$(BinDir)\gtk-$(ApiVersion).lib" $(CopyDir)\lib
copy "$(BinDir)\gailutil-$(ApiVersion).lib" $(CopyDir)\lib
copy "$(BinDir)\gtk3-demo.exe" $(CopyDir)\bin
copy "$(BinDir)\gtk3-demo.pdb" $(CopyDir)\bin
copy "$(BinDir)\gtk3-demo-application.exe" $(CopyDir)\bin
copy "$(BinDir)\gtk3-demo-application.pdb" $(CopyDir)\bin
copy "$(BinDir)\gtk3-icon-browser.exe" $(CopyDir)\bin
copy "$(BinDir)\gtk3-icon-browser.pdb" $(CopyDir)\bin
copy "$(BinDir)\gtk-encode-symbolic-svg.exe" $(CopyDir)\bin
copy "$(BinDir)\gtk-encode-symbolic-svg.pdb" $(CopyDir)\bin
goto DONE_BIN
:DO_BROADWAY_BIN
copy "$(BinDir)\broadwayd.exe" $(CopyDir)\bin
copy "$(BinDir)\broadwayd.pdb" $(CopyDir)\bin
if "$(Configuration)" == "Release_Broadway" goto DO_BROADWAY_RELEASE
if "$(Configuration)" == "Debug_Broadway" goto DO_BROADWAY_DEBUG
:DO_BROADWAY_RELEASE
copy .\Release\$(Platform)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).dll $(CopyDir)\bin
copy .\Release\$(Platform)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).pdb $(CopyDir)\bin
copy .\Release\$(Platform)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).dll $(CopyDir)\bin
copy .\Release\$(Platform)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).pdb $(CopyDir)\bin
copy .\Release\$(Platform)\bin\gtk-$(ApiVersion).lib $(CopyDir)\lib
copy .\Release\$(Platform)\bin\gailutil-$(ApiVersion).lib $(CopyDir)\lib
copy .\Release\$(Platform)\bin\gtk3-demo.exe $(CopyDir)\bin
copy .\Release\$(Platform)\bin\gtk3-demo.pdb $(CopyDir)\bin
copy .\Release\$(Platform)\bin\gtk3-demo-application.exe $(CopyDir)\bin
copy .\Release\$(Platform)\bin\gtk3-demo-application.pdb $(CopyDir)\bin
copy .\Release\$(Platform)\bin\gtk3-icon-browser.exe $(CopyDir)\bin
copy .\Release\$(Platform)\bin\gtk3-icon-browser.pdb $(CopyDir)\bin
copy .\Release\$(Platform)\bin\gtk-encode-symbolic-svg.exe $(CopyDir)\bin
copy .\Release\$(Platform)\bin\gtk-encode-symbolic-svg.pdb $(CopyDir)\bin
goto DONE_BIN
:DO_BROADWAY_DEBUG
copy .\Debug\$(Platform)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).dll $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).pdb $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).dll $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).pdb $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\gtk-$(ApiVersion).lib $(CopyDir)\lib
copy .\Debug\$(Platform)\bin\gailutil-$(ApiVersion).lib $(CopyDir)\lib
copy .\Debug\$(Platform)\bin\gtk3-demo.exe $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\gtk3-demo.pdb $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\gtk3-demo-application.exe $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\gtk3-demo-application.pdb $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\gtk3-icon-browser.exe $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\gtk3-icon-browser.pdb $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\gtk-encode-symbolic-svg.exe $(CopyDir)\bin
copy .\Debug\$(Platform)\bin\gtk-encode-symbolic-svg.pdb $(CopyDir)\bin
:DONE_BIN
</GtkDoInstallBin>
<GtkDoInstall>
echo off
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\deprecated
copy ..\..\..\gdk\win32\gdkwin32.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
#include "gdk-3.vs10.headers"
#include "gdk3-win32.vs10.headers"
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated
#include "gtk-3.vs10.headers"
mkdir $(CopyDir)\include\gail-$(ApiVersion)\libgail-util
#include "gailutil-3.vs10.headers"
mkdir $(CopyDir)\share\icons\hicolor\16x16\apps
copy ..\..\..\demos\gtk-demo\data\16x16\gtk3-demo.png $(CopyDir)\share\icons\hicolor\16x16\apps
mkdir $(CopyDir)\share\icons\hicolor\22x22\apps
copy ..\..\..\demos\gtk-demo\data\22x22\gtk3-demo.png $(CopyDir)\share\icons\hicolor\22x22\apps
mkdir $(CopyDir)\share\icons\hicolor\24x24\apps
copy ..\..\..\demos\gtk-demo\data\24x24\gtk3-demo.png $(CopyDir)\share\icons\hicolor\24x24\apps
mkdir $(CopyDir)\share\icons\hicolor\32x32\apps
copy ..\..\..\demos\gtk-demo\data\32x32\gtk3-demo.png $(CopyDir)\share\icons\hicolor\32x32\apps
mkdir $(CopyDir)\share\icons\hicolor\48x48\apps
copy ..\..\..\demos\gtk-demo\data\48x48\gtk3-demo.png $(CopyDir)\share\icons\hicolor\48x48\apps
mkdir $(CopyDir)\share\icons\hicolor\256x256\apps
copy ..\..\..\demos\gtk-demo\data\256x256\gtk3-demo.png $(CopyDir)\share\icons\hicolor\256x256\apps
mkdir $(CopyDir)\share\glib-2.0\schemas
copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
copy ..\..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\schemas
copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas
echo "Compiling gsettings XML Files..."
$(GlibEtcInstallRoot)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas
</GtkDoInstall>
<GtkDoInstallBroadwayHeaders>
copy ..\..\..\gdk\broadway\gdkbroadway.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\broadway
#include "gdk3-broadway.vs10.headers"
</GtkDoInstallBroadwayHeaders>
</PropertyGroup>
<PropertyGroup>
<_PropertySheetDisplayName>gtk3installsprops</_PropertySheetDisplayName>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="BinDir">
<Value>$(BinDir)</Value>
</BuildMacro>
<BuildMacro Include="InstalledDlls">
<Value>$(InstalledDlls)</Value>
</BuildMacro>
<BuildMacro Include="InstalledBins">
<Value>$(InstalledBins)</Value>
</BuildMacro>
<BuildMacro Include="InstalledBroadwayBins">
<Value>$(InstalledBroadwayBins)</Value>
</BuildMacro>
<BuildMacro Include="GtkDoInstallBin">
<Value>$(GtkDoInstallBin)</Value>
</BuildMacro>
<BuildMacro Include="GtkDoInstall">
<Value>$(GtkDoInstall)</Value>
</BuildMacro>
<BuildMacro Include="GtkDoInstallBroadwayHeaders">
<Value>$(GtkDoInstallBroadwayHeaders)</Value>
</BuildMacro>
</ItemGroup>
</Project>

View File

@@ -1,222 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_Broadway|Win32">
<Configuration>Debug_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_Broadway|x64">
<Configuration>Debug_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|Win32">
<Configuration>Release_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|x64">
<Configuration>Release_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}</ProjectGuid>
<RootNamespace>gtkinstall</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-install.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-install.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-install.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-install.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-install.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-install.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-install.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-install.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\config.h.win32">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GtkDoInstallBin)$(GtkDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GtkDoInstallBin)$(GtkDoInstall)$(GtkDoInstallBroadwayHeaders)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(InstalledDlls);$(InstalledBins);$(InstalledBroadwayBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GtkDoInstallBin)$(GtkDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GtkDoInstallBin)$(GtkDoInstall)$(GtkDoInstallBroadwayHeaders)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(InstalledDlls);$(InstalledBins);$(InstalledBroadwayBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GtkDoInstallBin)$(GtkDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GtkDoInstallBin)$(GtkDoInstall)$(GtkDoInstallBroadwayHeaders)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(InstalledDlls);$(InstalledBins);$(InstalledBroadwayBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GtkDoInstallBin)$(GtkDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GtkDoInstallBin)$(GtkDoInstall)$(GtkDoInstallBroadwayHeaders)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(InstalledDlls);$(InstalledBins);$(InstalledBroadwayBins);%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gdk-3.vcxproj">
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gtk3-demo.vcxproj">
<Project>{bdae6de2-6bcc-4107-94f0-da12214a02de}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gtk-3.vcxproj">
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gailutil-3.vcxproj">
<Project>{a1fced61-4e51-4015-a70c-5373404d1ba0}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gtk3-demo-application.vcxproj">
<Project>{be6b4973-c6ff-4c8f-8e97-a47793c50f44}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gtk3-icon-browser.vcxproj">
<Project>{343333c4-d46c-4c97-a986-959cca6f1de0}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="broadwayd.vcxproj">
<Project>{e9687d21-e214-4a0c-9eb4-8b38ebb783e5}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="gtk-encode-symbolic-svg.vcxproj">
<Project>{f280bf1a-777a-4fb5-8005-dfbe04621edb}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,244 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_Broadway|Win32">
<Configuration>Debug_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_Broadway|x64">
<Configuration>Debug_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|Win32">
<Configuration>Release_Broadway</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Broadway|x64">
<Configuration>Release_Broadway</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B98FBE68-B03C-48E3-8F32-C3C010720D30}</ProjectGuid>
<RootNamespace>gtkprebuild</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="gtk3-gen-srcs.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" />
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GlibEtcInstallRoot)\</OutDir>
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\config.h.win32">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying config.h from config.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenConfigH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Copying config.h from config.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GenConfigH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying config.h from config.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenConfigH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\config.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Copying config.h from config.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GenConfigH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">..\..\..\config.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying config.h from config.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenConfigH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Copying config.h from config.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GenConfigH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying config.h from config.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenConfigH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\config.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Copying config.h from config.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GenConfigH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">..\..\..\config.h;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying gdkconfig from gdkconfig.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenGdkConfigHWin32)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying gdkconfig from gdkconfig.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenGdkConfigHWin32)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying gdkconfig from gdkconfig.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenGdkConfigHWin32)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying gdkconfig from gdkconfig.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenGdkConfigHWin32)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32_broadway">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Copying gdkconfig from gdkconfig.win32_broadway...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GenGdkConfigHBroadway)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(Configuration)_Broadway;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Copying gdkconfig from gdkconfig.win32_broadway...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GenGdkConfigHBroadway)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(Configuration)_Broadway;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Copying gdkconfig from gdkconfig.win32_broadway...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GenGdkConfigHBroadway)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(Configuration)_Broadway;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Copying gdkconfig from gdkconfig.win32_broadway...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GenGdkConfigHBroadway)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(Configuration)_Broadway;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\..\..\demos\gtk-demo\demos.h.win32">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying demos.h from demos.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyDemosH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Copying demos.h from demos.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(CopyDemosH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying demos.h from demos.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyDemosH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Copying demos.h from demos.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(CopyDemosH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying demos.h from demos.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyDemosH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Copying demos.h from demos.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(CopyDemosH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying demos.h from demos.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyDemosH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Copying demos.h from demos.h.win32...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(CopyDemosH)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="UserMacros">
<VSVer>10</VSVer>
<GlibEtcInstallRoot>$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
<CopyDir>..\..\..\..\vs$(VSVer)\$(Platform)</CopyDir>
<ApiVersion>3.0</ApiVersion>
<GtkVersion>@GTK_VERSION@</GtkVersion>
<GtkLibtoolCompatibleDllPrefix>lib</GtkLibtoolCompatibleDllPrefix>
<GtkLibtoolCompatibleDllSuffix>.0-0</GtkLibtoolCompatibleDllSuffix>
<GtkSeparateVSDllPrefix />
<GtkSeparateVSDllSuffix>-vs$(VSVer)</GtkSeparateVSDllSuffix>
<GtkDllPrefix>$(GtkSeparateVSDllPrefix)</GtkDllPrefix>
<GtkDllSuffix>$(GtkSeparateVSDllSuffix)</GtkDllSuffix>
<PythonPath>c:\python27</PythonPath>
</PropertyGroup>
<PropertyGroup>
<_PropertySheetDisplayName>gtk3versionpathsprops</_PropertySheetDisplayName>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="VSVer">
<Value>$(VSVer)</Value>
</BuildMacro>
<BuildMacro Include="GlibEtcInstallRoot">
<Value>$(GlibEtcInstallRoot)</Value>
</BuildMacro>
<BuildMacro Include="CopyDir">
<Value>$(CopyDir)</Value>
</BuildMacro>
<BuildMacro Include="ApiVersion">
<Value>$(ApiVersion)</Value>
</BuildMacro>
<BuildMacro Include="GtkVersion">
<Value>$(GtkVersion)</Value>
</BuildMacro>
<BuildMacro Include="GtkLibtoolCompatibleDllPrefix">
<Value>$(GtkLibtoolCompatibleDllPrefix)</Value>
</BuildMacro>
<BuildMacro Include="GtkLibtoolCompatibleDllSuffix">
<Value>$(GtkLibtoolCompatibleDllSuffix)</Value>
</BuildMacro>
<BuildMacro Include="GtkSeparateVSDllPrefix">
<Value>$(GtkSeparateVSDllPrefix)</Value>
</BuildMacro>
<BuildMacro Include="GtkSeparateVSDllSuffix">
<Value>$(GtkSeparateVSDllSuffix)</Value>
</BuildMacro>
<BuildMacro Include="GtkDllPrefix">
<Value>$(GtkDllPrefix)</Value>
</BuildMacro>
<BuildMacro Include="GtkDllSuffix">
<Value>$(GtkDllSuffix)</Value>
</BuildMacro>
<BuildMacro Include="PythonPath">
<Value>$(PythonPath)</Value>
</BuildMacro>
</ItemGroup>
</Project>

View File

@@ -1,43 +0,0 @@
include $(top_srcdir)/Makefile.decl
EXTRA_DIST += \
README.txt \
gtk+.sln \
gtk3-prebuild.vcxproj \
gdk3-win32.vcxproj \
gdk3-win32.vcxproj.filters \
gdk-3.vcxproj \
gdk-3.vcxproj.filters \
gtk-3.vcxproj \
gtk-3.vcxproj.filters \
gtk-encode-symbolic-svg.vcxproj \
gtk-encode-symbolic-svg.vcxproj.filters \
gtk3-demo.vcxproj \
gtk3-demo.vcxproj.filters \
gtk3-demo-application.vcxproj \
gtk3-demo-application.vcxproj.filters \
gtk3-icon-browser.vcxproj \
gtk3-icon-browser.vcxproj.filters \
gailutil-3.vcxproj \
gailutil-3.vcxproj.filters \
gtk3-install.vcxproj \
broadwayd.vcxproj \
broadwayd.vcxproj.filters \
gdk3-broadway.vcxproj \
gdk3-broadway.vcxproj.filters \
gtk3-build-defines.props \
gtk3-copy-gdk-broadway.props \
gtk3-gen-srcs.props \
gtk3-ignore-broadway.props \
gtk3-install.props \
gtk3-version-paths.props
DISTCLEANFILES = $(EXTRA_DIST)
MSVC_VER = 11
MSVC_FORMAT_VER = 12
MSVC_VER_LONG = 2012
include $(top_srcdir)/build/Makefile-newvs.am
-include $(top_srcdir)/git.mk

View File

@@ -1,43 +0,0 @@
include $(top_srcdir)/Makefile.decl
EXTRA_DIST += \
README.txt \
gtk+.sln \
gtk3-prebuild.vcxproj \
gdk3-win32.vcxproj \
gdk3-win32.vcxproj.filters \
gdk-3.vcxproj \
gdk-3.vcxproj.filters \
gtk-3.vcxproj \
gtk-3.vcxproj.filters \
gtk-encode-symbolic-svg.vcxproj \
gtk-encode-symbolic-svg.vcxproj.filters \
gtk3-demo.vcxproj \
gtk3-demo.vcxproj.filters \
gtk3-demo-application.vcxproj \
gtk3-demo-application.vcxproj.filters \
gtk3-icon-browser.vcxproj \
gtk3-icon-browser.vcxproj.filters \
gailutil-3.vcxproj \
gailutil-3.vcxproj.filters \
gtk3-install.vcxproj \
broadwayd.vcxproj \
broadwayd.vcxproj.filters \
gdk3-broadway.vcxproj \
gdk3-broadway.vcxproj.filters \
gtk3-build-defines.props \
gtk3-copy-gdk-broadway.props \
gtk3-gen-srcs.props \
gtk3-ignore-broadway.props \
gtk3-install.props \
gtk3-version-paths.props
DISTCLEANFILES = $(EXTRA_DIST)
MSVC_VER = 12
MSVC_FORMAT_VER = 12
MSVC_VER_LONG = 2013
include $(top_srcdir)/build/Makefile-newvs.am
-include $(top_srcdir)/git.mk

View File

@@ -1,43 +0,0 @@
include $(top_srcdir)/Makefile.decl
EXTRA_DIST += \
README.txt \
gtk+.sln \
gtk3-prebuild.vcxproj \
gdk3-win32.vcxproj \
gdk3-win32.vcxproj.filters \
gdk-3.vcxproj \
gdk-3.vcxproj.filters \
gtk-3.vcxproj \
gtk-3.vcxproj.filters \
gtk-encode-symbolic-svg.vcxproj \
gtk-encode-symbolic-svg.vcxproj.filters \
gtk3-demo.vcxproj \
gtk3-demo.vcxproj.filters \
gtk3-demo-application.vcxproj \
gtk3-demo-application.vcxproj.filters \
gtk3-icon-browser.vcxproj \
gtk3-icon-browser.vcxproj.filters \
gailutil-3.vcxproj \
gailutil-3.vcxproj.filters \
gtk3-install.vcxproj \
broadwayd.vcxproj \
broadwayd.vcxproj.filters \
gdk3-broadway.vcxproj \
gdk3-broadway.vcxproj.filters \
gtk3-build-defines.props \
gtk3-copy-gdk-broadway.props \
gtk3-gen-srcs.props \
gtk3-ignore-broadway.props \
gtk3-install.props \
gtk3-version-paths.props
DISTCLEANFILES = $(EXTRA_DIST)
MSVC_VER = 14
MSVC_FORMAT_VER = 12
MSVC_VER_LONG = 14
include $(top_srcdir)/build/Makefile-newvs.am
-include $(top_srcdir)/git.mk

View File

@@ -1,52 +0,0 @@
include $(top_srcdir)/Makefile.decl
MSVC_HEADERS_LISTS = \
gdk3-win32.headers \
gdk3-broadway.headers \
gdk-3.headers \
gtk-3.headers \
gailutil-3.headers
GENERATED_ITEMS = \
gdk3-win32.vcproj \
gdk3-broadway.vcproj \
broadwayd.vcproj \
gdk-3.vcproj \
gtk-3.vcproj \
gtk3-demo.vcproj \
gtk3-demo-application.vcproj \
gtk3-icon-browser.vcproj \
gailutil-3.vcproj \
gtk3-install.vsprops \
gtk3-version-paths.vsprops
EXTRA_DIST += \
README.txt \
gtk+.sln \
gtk3-prebuild.vcproj \
gdk3-win32.vcprojin \
gdk-3.vcprojin \
gtk-3.vcprojin \
gtk-encode-symbolic-svg.vcproj \
gtk3-demo.vcprojin \
gtk3-demo-application.vcprojin \
gtk3-icon-browser.vcprojin \
gailutil-3.vcprojin \
gtk3-install.vcproj \
broadwayd.vcprojin \
gdk3-broadway.vcprojin \
gtk3-build-defines.vsprops \
gtk3-copy-gdk-broadway.vsprops \
gtk3-gen-srcs.vsprops \
gtk3-ignore-broadway.vsprops \
gtk3-install.vspropsin \
gtk3-version-paths.vsprops.in \
$(GENERATED_ITEMS)
gtk3-install.vsprops: $(top_srcdir)/build/win32/vs9/gtk3-install.vspropsin $(MSVC_HEADERS_LISTS)
$(CPP) -P - <$(top_srcdir)/build/win32/vs9/gtk3-install.vspropsin >$@
rm $(MSVC_HEADERS_LISTS)
DISTCLEANFILES = $(GENERATED_ITEMS)
-include $(top_srcdir)/git.mk

View File

@@ -1,100 +0,0 @@
Please do not compile this package (GTK+) in paths that contain
spaces in them-as strange problems may occur during compilation or during
the use of the library.
A more detailed outline for instructions on building the GTK+ with Visual
C++ can be found in the following GNOME Live! page:
https://wiki.gnome.org/Projects/GTK+/Win32/MSVCCompilationOfGTKStack
This VS9 solution and the projects it includes are intented to be used
in a GTK+ source tree unpacked from a tarball. In a git checkout you
first need to use some Unix-like environment or manual work to expand
the files needed, like config.h.win32.in into config.h.win32 and the
.vcprojin files here into corresponding actual .vcproj files.
You will need the parts from below in the GTK+ stack: GDK-Pixbuf, Pango,
ATK and GLib. External dependencies are at least Cairo
(with Cairo-GObject support, meaning Cairo 1.10.x or later), zlib, libpng,
gettext-runtime, fontconfig*, freetype*, expat*. See the
build/win32/vs9/README.txt file in glib for details where to unpack them.
You will also need a Python 2.6+/3.x interpretor installed on your system,
which can be obtained from the official installers available from
http://www.python.org. Please note that the Python interpretor (python.exe)
either needs to be in your PATH before attempting the build of GTK+, or it
can be found in the path specified by PythonPath in gtk-version-paths.vsprops.
If you happen to change the PythonPath setting in gtk-version-paths.vsprops after
opening gtk+.sln with Visual Studio, you will need to close the gtk+.sln solution,
delete all the *.ncb, *.suo and *.user files before re-attempting the build.
It is recommended that one builds the dependencies with VS9 as far as
possible, especially those from and using the GTK+ stack (i.e. GLib,
Cairo, ATK, Pango, GDK-Pixbuf), so that crashes caused by mixing calls
to different CRTs can be kept at a minimum.
zlib, libpng, and Cairo do contain support for compiling under VS9
using VS project files and/or makefiles at this time of writing, For the
GTK+ stack, VS9 project files are either available under
$(srcroot)/build/vs9 in the case of GLib (stable/unstable), ATK
(stable/unstable) and GDK-Pixbuf (unstable), and should be in the next
unstable version of Pango. There is no known official VS9 build
support for fontconfig (along with freetype and expat) and
gettext-runtime, so please use the binaries from:
ftp://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/ (32 bit)
ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/ (64 bit)
Unzip the binaries obtained from ftp.gnome.org in <root>\vs9\<PlatformName>,
and build the following, if not already done so:
Note: put the resulting zlib, libpng, pcre and Cairo files as follows:
.dll files: <root>\vs9\<PlatformName>\bin
.lib files: <root>\vs9\<PlatformName>\lib
.h files: <root>\vs9\<PlatformName>\include
The recommended build order for these dependencies:
(first unzip any dependent binaries downloaded from the ftp.gnome.org
as described in the README.txt file in the build/win32/vs9 folder)
-zlib
-libpng
-(for GDK-Pixbuf, if not using GDI+) IJG JPEG or libjpeg-turbo
-(for GDK-Pixbuf, if not using GDI+) libtiff
[libtiff requires zlib and IJG JPEG or libjpeg-turbo]
-(for GDK-Pixbuf, if not using GDI+) jasper [jpeg-2000 library])
-(optional for GLib) PCRE (version 8.12 or later, use of CMake to
build PCRE is recommended-see build/win32/vs9/README.txt of GLib)
-GLib **
-Cairo (inclusive of Cairo-GObject)
-ATK**
-Pango**
-GDK-Pixbuf**
(note the last 3 dependencies are not interdependent, so the last 3
dependencies can be built in any order)
The "install" project will copy build results and headers into their
appropriate location under <root>\vs9\<PlatformName>. For instance,
built DLLs go into <root>\vs9\<PlatformName>\bin, built LIBs into
<root>\vs9\<PlatformName>\lib and GTK+ headers into
<root>\vs9\<PlatformName>\include\gtk-3.0. This is then from where
project files higher in the stack are supposed to look for them, not
from a specific GLib source tree.
Please note, as GTK+ uses the Adwaita theme for all platforms by default,
most icons used are not included with GTK+ (which *are* needed), so please see
https://live.gnome.org/GTK%2B/Win32/MSVCCompilationOfGTKStack (under the
GTK+ section) on how to get those icons set up for use with GTK+.
*About the dependencies marked with *: These dependencies are optional
as those are not compulsory components for building and running GTK+
itself, but note that they are needed for people running and building
GIMP or those who need complex script support via fontconfig. They
are referred to by components in Cairo and Pango mainly.
Decide whether you need fontconfig support prior to building Cairo
and Pango.
**:Put the sources of the packages marked with ** in <root>\<package-
source-tree>, and build with VS9 from there.
--Tor Lillqvist <tml@iki.fi>
--Updated by Chun-wei Fan <fanc999@yahoo.com.tw>

View File

@@ -1,176 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="broadwayd"
ProjectGUID="{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}"
RootNamespace="broadwayd"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug_Broadway|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\broadway"
PreprocessorDefinitions="_DEBUG;$(GdkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Release_Broadway|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\broadway"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="$(GdkDefines)"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ws2_32.lib"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Debug_Broadway|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\broadway"
PreprocessorDefinitions="_DEBUG;$(GdkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ws2_32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Release_Broadway|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\broadway"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="$(GdkDefines)"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ws2_32.lib"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Sources"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
#include "broadwayd.sourcefiles"
</Filter>
<Filter
Name="Headers"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,183 +0,0 @@
<?xml version="1.0" encoding="big5"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gailutil-3"
ProjectGUID="{A1FCED61-4E51-4015-A70C-5373404D1BA0}"
RootNamespace="gailutil3"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
AdditionalDependencies="atk-1.0.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
GenerateDebugInformation="true"
ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
SubSystem="2"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Debug|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="atk-1.0.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Release|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
AdditionalDependencies="atk-1.0.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
GenerateDebugInformation="true"
ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Release|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="atk-1.0.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="17"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Sources"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
#include "gailutil-3.sourcefiles"
</Filter>
<Filter
Name="Headers"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,304 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gdk-3"
ProjectGUID="{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}"
RootNamespace="gdk3"
Keyword="Win32Proj"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
InheritedPropertySheets=".\gtk3-ignore-broadway.vsprops"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="imm32.lib winmm.lib dwmapi.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Debug_Broadway|Win32"
InheritedPropertySheets=".\gtk3-copy-gdk-broadway.vsprops"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32;..\..\..\gdk\broadway"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="imm32.lib winmm.lib ws2_32.lib dwmapi.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Release|Win32"
InheritedPropertySheets=".\gtk3-ignore-broadway.vsprops"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="$(GdkDefines)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="imm32.lib winmm.lib dwmapi.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Release_Broadway|Win32"
InheritedPropertySheets=".\gtk3-copy-gdk-broadway.vsprops"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32;..\..\..\gdk\broadway"
PreprocessorDefinitions="$(GdkDefines)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="imm32.lib winmm.lib ws2_32.lib dwmapi.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Debug|x64"
InheritedPropertySheets=".\gtk3-ignore-broadway.vsprops"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="imm32.lib winmm.lib dwmapi.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Debug_Broadway|x64"
InheritedPropertySheets=".\gtk3-copy-gdk-broadway.vsprops"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32;..\..\..\gdk\broadway"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="imm32.lib winmm.lib ws2_32.lib dwmapi.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Release|x64"
InheritedPropertySheets=".\gtk3-ignore-broadway.vsprops"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="$(GdkDefines)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="imm32.lib winmm.lib dwmapi.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Release_Broadway|x64"
InheritedPropertySheets=".\gtk3-copy-gdk-broadway.vsprops"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32;..\..\..\gdk\broadway"
PreprocessorDefinitions="$(GdkDefines)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="imm32.lib winmm.lib ws2_32.lib dwmapi.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="17"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File RelativePath="..\..\..\gdk\win32\rc\gdk.rc" />
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
#include "gdk-3.sourcefiles"
<File RelativePath="..\..\..\gdk\gdkkeynames.c" />
</Filter>
</Files>
</VisualStudioProject>

View File

@@ -1,130 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gdk3-broadway"
ProjectGUID="{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}"
RootNamespace="gdk3broadway"
Keyword="Win32Proj"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug_Broadway|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\broadway"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
</Configuration>
<Configuration
Name="Release_Broadway|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\broadway"
PreprocessorDefinitions="$(GdkDefines)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
</Configuration>
<Configuration
Name="Debug_Broadway|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\broadway"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
</Configuration>
<Configuration
Name="Release_Broadway|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\broadway"
PreprocessorDefinitions="$(GdkDefines)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
#include "gdk3-broadway.sourcefiles"
</Filter>
</Files>
</VisualStudioProject>

View File

@@ -1,130 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gdk3-win32"
ProjectGUID="{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}"
RootNamespace="gdk3win32"
Keyword="Win32Proj"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);INSIDE_GDK_WIN32"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
</Configuration>
<Configuration
Name="Release|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="$(GdkDefines);INSIDE_GDK_WIN32"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
</Configuration>
<Configuration
Name="Debug|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);INSIDE_GDK_WIN32"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
</Configuration>
<Configuration
Name="Release|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="$(GdkDefines);INSIDE_GDK_WIN32"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
#include "gdk3-win32.sourcefiles"
</Filter>
</Files>
</VisualStudioProject>

View File

@@ -1,264 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-prebuild", "gtk3-prebuild.vcproj", "{B98FBE68-B03C-48E3-8F32-C3C010720D30}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk3-win32", "gdk3-win32.vcproj", "{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}"
ProjectSection(ProjectDependencies) = postProject
{B98FBE68-B03C-48E3-8F32-C3C010720D30} = {B98FBE68-B03C-48E3-8F32-C3C010720D30}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk3-broadway", "gdk3-broadway.vcproj", "{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}"
ProjectSection(ProjectDependencies) = postProject
{B98FBE68-B03C-48E3-8F32-C3C010720D30} = {B98FBE68-B03C-48E3-8F32-C3C010720D30}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "broadwayd", "broadwayd.vcproj", "{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}"
ProjectSection(ProjectDependencies) = postProject
{B98FBE68-B03C-48E3-8F32-C3C010720D30} = {B98FBE68-B03C-48E3-8F32-C3C010720D30}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk-3", "gdk-3.vcproj", "{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}"
ProjectSection(ProjectDependencies) = postProject
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF} = {ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453} = {1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk-3", "gtk-3.vcproj", "{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}"
ProjectSection(ProjectDependencies) = postProject
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcproj", "{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}"
ProjectSection(ProjectDependencies) = postProject
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8} = {95A4B53D-2773-4406-A2C1-8FD2840BBAD8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo-application", "gtk3-demo-application.vcproj", "{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}"
ProjectSection(ProjectDependencies) = postProject
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8} = {95A4B53D-2773-4406-A2C1-8FD2840BBAD8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk-encode-symbolic-svg", "gtk-encode-symbolic-svg.vcproj", "{F280BF1A-777A-4FB5-8005-DFBE04621EDB}"
ProjectSection(ProjectDependencies) = postProject
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-icon-browser", "gtk3-icon-browser.vcproj", "{343333C4-D46C-4C97-A986-959CCA6F1DE0}"
ProjectSection(ProjectDependencies) = postProject
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8} = {95A4B53D-2773-4406-A2C1-8FD2840BBAD8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil-3", "gailutil-3.vcproj", "{A1FCED61-4E51-4015-A70C-5373404D1BA0}"
ProjectSection(ProjectDependencies) = postProject
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8} = {95A4B53D-2773-4406-A2C1-8FD2840BBAD8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-install", "gtk3-install.vcproj", "{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}"
ProjectSection(ProjectDependencies) = postProject
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8} = {95A4B53D-2773-4406-A2C1-8FD2840BBAD8}
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE} = {BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}
{A1FCED61-4E51-4015-A70C-5373404D1BA0} = {A1FCED61-4E51-4015-A70C-5373404D1BA0}
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44} = {BE6B4973-C6FF-4C8F-8E97-A47793C50F44}
{343333C4-D46C-4C97-A986-959CCA6F1DE0} = {343333C4-D46C-4C97-A986-959CCA6F1DE0}
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5} = {E9687D21-E214-4A0C-9EB4-8B38EBB783E5}
{F280BF1A-777A-4FB5-8005-DFBE04621EDB} = {F280BF1A-777A-4FB5-8005-DFBE04621EDB}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug_Broadway|Win32 = Debug_Broadway|Win32
Debug|x64 = Debug|x64
Debug_Broadway|x64 = Debug_Broadway|x64
Release|Win32 = Release|Win32
Release_Broadway|Win32 = Release_Broadway|Win32
Release|x64 = Release|x64
Release_Broadway|x64 = Release_Broadway|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug|Win32.ActiveCfg = Debug|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug|Win32.Build.0 = Debug|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug|x64.ActiveCfg = Debug|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug|x64.Build.0 = Debug|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release|Win32.ActiveCfg = Release|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release|Win32.Build.0 = Release|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release|x64.ActiveCfg = Release|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release|x64.Build.0 = Release|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{B98FBE68-B03C-48E3-8F32-C3C010720D30}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug|Win32.ActiveCfg = Debug|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug|Win32.Build.0 = Debug|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug|x64.ActiveCfg = Debug|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug|x64.Build.0 = Debug|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release|Win32.ActiveCfg = Release|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release|Win32.Build.0 = Release|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release|x64.ActiveCfg = Release|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release|x64.Build.0 = Release|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Debug_Broadway|x64.Build.0 = Debug|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release_Broadway|Win32.Build.0 = Release|Win32
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release_Broadway|x64.ActiveCfg = Release|x64
{ABA7685A-7CBB-4626-B5E5-6EEEA5B489EF}.Release_Broadway|x64.Build.0 = Release|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug|Win32.ActiveCfg = Debug|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug|Win32.Build.0 = Debug|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug|x64.ActiveCfg = Debug|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug|x64.Build.0 = Debug|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release|Win32.ActiveCfg = Release|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release|Win32.Build.0 = Release|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release|x64.ActiveCfg = Release|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release|x64.Build.0 = Release|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug|Win32.ActiveCfg = Debug|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug|Win32.Build.0 = Debug|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug|x64.ActiveCfg = Debug|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug|x64.Build.0 = Debug|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|Win32.ActiveCfg = Release|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|Win32.Build.0 = Release|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|x64.ActiveCfg = Release|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|x64.Build.0 = Release|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|x64.Build.0 = Debug|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|Win32.Build.0 = Release|Win32
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|x64.ActiveCfg = Release|x64
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|x64.Build.0 = Release|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug|Win32.ActiveCfg = Debug|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug|Win32.Build.0 = Debug|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug|x64.ActiveCfg = Debug|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug|x64.Build.0 = Debug|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release|Win32.ActiveCfg = Release|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release|Win32.Build.0 = Release|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release|x64.ActiveCfg = Release|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release|x64.Build.0 = Release|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|Win32.ActiveCfg = Debug|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|Win32.Build.0 = Debug|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|x64.ActiveCfg = Debug|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|x64.Build.0 = Debug|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release|Win32.ActiveCfg = Release|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release|Win32.Build.0 = Release|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release|x64.ActiveCfg = Release|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release|x64.Build.0 = Release|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug_Broadway|x64.Build.0 = Debug|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release_Broadway|Win32.Build.0 = Release|Win32
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release_Broadway|x64.ActiveCfg = Release|x64
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Release_Broadway|x64.Build.0 = Release|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug|Win32.ActiveCfg = Debug|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug|Win32.Build.0 = Debug|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug|x64.ActiveCfg = Debug|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug|x64.Build.0 = Debug|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release|Win32.ActiveCfg = Release|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release|Win32.Build.0 = Release|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release|x64.ActiveCfg = Release|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release|x64.Build.0 = Release|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Debug_Broadway|x64.Build.0 = Debug|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release_Broadway|Win32.Build.0 = Release|Win32
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release_Broadway|x64.ActiveCfg = Release|x64
{A1FCED61-4E51-4015-A70C-5373404D1BA0}.Release_Broadway|x64.Build.0 = Release|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug|Win32.ActiveCfg = Debug|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug|Win32.Build.0 = Debug|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug|x64.ActiveCfg = Debug|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug|x64.Build.0 = Debug|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release|Win32.ActiveCfg = Release|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release|Win32.Build.0 = Release|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release|x64.ActiveCfg = Release|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release|x64.Build.0 = Release|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Debug_Broadway|x64.Build.0 = Debug|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release_Broadway|Win32.Build.0 = Release|Win32
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release_Broadway|x64.ActiveCfg = Release|x64
{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}.Release_Broadway|x64.Build.0 = Release|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug|Win32.ActiveCfg = Debug|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug|Win32.Build.0 = Debug|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug|x64.ActiveCfg = Debug|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug|x64.Build.0 = Debug|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release|Win32.ActiveCfg = Release|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release|Win32.Build.0 = Release|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release|x64.ActiveCfg = Release|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release|x64.Build.0 = Release|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Debug_Broadway|x64.Build.0 = Debug|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release_Broadway|Win32.Build.0 = Release|Win32
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release_Broadway|x64.ActiveCfg = Release|x64
{343333C4-D46C-4C97-A986-959CCA6F1DE0}.Release_Broadway|x64.Build.0 = Release|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug|Win32.ActiveCfg = Debug|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug|Win32.Build.0 = Debug|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug|x64.ActiveCfg = Debug|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug|x64.Build.0 = Debug|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release|Win32.ActiveCfg = Release|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release|Win32.Build.0 = Release|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release|x64.ActiveCfg = Release|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release|x64.Build.0 = Release|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug_Broadway|Win32.Build.0 = Debug|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug_Broadway|x64.ActiveCfg = Debug|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Debug_Broadway|x64.Build.0 = Debug|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|Win32.ActiveCfg = Release|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|Win32.Build.0 = Release|Win32
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|x64.ActiveCfg = Release|x64
{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -1,251 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gtk-3"
ProjectGUID="{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}"
RootNamespace="gtk3"
Keyword="Win32Proj"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GtkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="atk-1.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Release|Win32"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="$(GtkDefines)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="atk-1.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Debug|x64"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GtkDefines)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="atk-1.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Release|x64"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
PreprocessorDefinitions="$(GtkDefines)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="atk-1.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(TargetDir)$(ProjectName).0.lib"
TargetMachine="17"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File RelativePath="..\..\..\gtk\gtkdbusinterfaces.xml">
<FileConfiguration Name="Debug|Win32">
<Tool Name="VCCustomBuildTool"
Description="Generating GTK+ DBus Sources..."
CommandLine="$(GenerateGtkDbusBuiltSources)"
Outputs="..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32">
<Tool Name="VCCustomBuildTool"
Description="Generating GTK+ DBus Sources..."
CommandLine="$(GenerateGtkDbusBuiltSources)"
Outputs="..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h"
/>
</FileConfiguration>
<FileConfiguration Name="Debug|x64">
<Tool Name="VCCustomBuildTool"
Description="Generating GTK+ DBus Sources..."
CommandLine="$(GenerateGtkDbusBuiltSources)"
Outputs="..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release|x64">
<Tool Name="VCCustomBuildTool"
Description="Generating GTK+ DBus Sources..."
CommandLine="$(GenerateGtkDbusBuiltSources)"
Outputs="..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h"
/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\gtk\gtk-win32.rc.in">
<FileConfiguration Name="Debug|Win32">
<Tool Name="VCCustomBuildTool"
Description="Generating GTK+ Win32 Version Resource..."
CommandLine="$(GenerateGtkWin32RC)"
Outputs="..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest"
/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32">
<Tool Name="VCCustomBuildTool"
Description="Generating GTK+ Win32 Version Resource..."
CommandLine="$(GenerateGtkWin32RC)"
Outputs="..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest"
/>
</FileConfiguration>
<FileConfiguration Name="Debug|x64">
<Tool Name="VCCustomBuildTool"
Description="Generating GTK+ Win32 Version Resource..."
CommandLine="$(GenerateGtkWin32RC)"
Outputs="..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest"
/>
</FileConfiguration>
<FileConfiguration Name="Release|x64">
<Tool Name="VCCustomBuildTool"
Description="Generating GTK+ Win32 Version Resource..."
CommandLine="$(GenerateGtkWin32RC)"
Outputs="..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest"
/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\gtk\gtk-win32.rc" />
<File RelativePath="..\..\..\gtk\libgtk3.manifest" />
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
#include "gtk-3.sourcefiles"
<File RelativePath="..\..\..\modules\input\gtkimcontextime.c" />
<File RelativePath="..\..\..\modules\input\gtkimcontextmultipress.c" />
<File RelativePath="..\..\..\modules\input\gtkimcontextthai.c" />
<File RelativePath="..\..\..\modules\input\imam-et.c" />
<File RelativePath="..\..\..\modules\input\imcedilla.c" />
<File RelativePath="..\..\..\modules\input\imcyrillic-translit.c" />
<File RelativePath="..\..\..\modules\input\imime.c" />
<File RelativePath="..\..\..\modules\input\iminuktitut.c" />
<File RelativePath="..\..\..\modules\input\imipa.c" />
<File RelativePath="..\..\..\modules\input\immultipress.c" />
<File RelativePath="..\..\..\modules\input\imthai.c" />
<File RelativePath="..\..\..\modules\input\imti-er.c" />
<File RelativePath="..\..\..\modules\input\imti-et.c" />
<File RelativePath="..\..\..\modules\input\imviqr.c" />
<File RelativePath="..\..\..\modules\input\thai-charprop.c" />
</Filter>
</Files>
</VisualStudioProject>

View File

@@ -1,176 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gtk-encode-symbolic-svg"
ProjectGUID="{F280BF1A-777A-4FB5-8005-DFBE04621EDB}"
RootNamespace="gtkencodesymbolicsvg"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk"
PreprocessorDefinitions="_DEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Release|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\..\..\gdk"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions=""
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Debug|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk"
PreprocessorDefinitions="_DEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Release|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\..\..\gdk"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions=""
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Sources"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File RelativePath="..\..\..\gtk\encodesymbolic.c" />
</Filter>
<Filter
Name="Headers"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,46 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="gtk3builddefinesprops"
OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin"
IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\obj\$(ProjectName)\"
InheritedPropertySheets=".\gtk3-version-paths.vsprops"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0"
PreprocessorDefinitions="HAVE_CONFIG_H;G_DISABLE_SINGLE_INCLUDES;ATK_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES"
ForcedIncludeFiles="msvc_recommended_pragmas.h"
AdditionalOptions="/MP"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="gdk_pixbuf-2.0.lib pangocairo-1.0.lib pango-1.0.lib cairo-gobject.lib cairo.lib gio-2.0.lib gmodule-2.0.lib gobject-2.0.lib glib-2.0.lib intl.lib epoxy.lib"
AdditionalLibraryDirectories="$(GlibEtcInstallRoot)\lib"
/>
<UserMacro
Name="GtkBinaryVersion"
Value="3.0.0"
/>
<UserMacro
Name="GtkDummyPrefix"
Value="/dummy"
/>
<UserMacro
Name="GtkPrefixDefine"
Value="GTK_PREFIX=\&quot;$(GtkDummyPrefix)\&quot;"
/>
<UserMacro
Name="GdkDefines"
Value="GDK_COMPILATION;G_LOG_DOMAIN=\&quot;Gdk\&quot;"
/>
<UserMacro
Name="GtkIncludedImmodulesDefines"
Value="INCLUDE_IM_am_et;INCLUDE_IM_cedilla;INCLUDE_IM_cyrillic_translit;INCLUDE_IM_ime;INCLUDE_IM_inuktitut;INCLUDE_IM_ipa;INCLUDE_IM_multipress;INCLUDE_IM_thai;INCLUDE_IM_ti_er;INCLUDE_IM_ti_et;INCLUDE_IM_viqr"
/>
<UserMacro
Name="GtkDefines"
Value="GTK_COMPILATION;G_LOG_DOMAIN=\&quot;Gtk\&quot;;GTK_HOST=\&quot;i686-pc-vs$(VSVer)\&quot;;GTK_PRINT_BACKENDS=\&quot;file\&quot;;GTK_PRINT_BACKEND_ENABLE_UNSUPPORTED;$(GtkIncludedImmodulesDefines);GTK_LIBDIR=\&quot;$(GtkDummyPrefix)/lib\&quot;;GTK_DATADIR=\&quot;$(GtkDummyPrefix)/share\&quot;GTK_DATA_PREFIX=\&quot;$(GtkDummyPrefix)\&quot;;GTK_SYSCONFDIR=\&quot;$(GtkDummyPrefix)/etc\&quot;;MULTIPRESS_CONFDIR=\&quot;$(GtkDummyPrefix)/etc/gtk-$(ApiVersion)\&quot;;MULTIPRESS_LOCALEDIR=\&quot;$(GtkDummyPrefix)/share/locale\&quot;;GTK_VERSION=\&quot;$(GtkVersion)/etc\&quot;;GTK_BINARY_VERSION=\&quot;$(GtkBinaryVersion)/etc\&quot;;GDK_DISABLE_DEPRECATED;ISOLATION_AWARE_ENABLED"
/>
</VisualStudioPropertySheet>

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="gtk3copygdkbroadwayprops"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:gdk_win32_display_manager_get_type"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="
if &quot;$(ConfigurationName)&quot; == &quot;Release_Broadway&quot; goto DoRelease&#x0D;&#x0A;
if &quot;$(ConfigurationName)&quot; == &quot;Debug_Broadway&quot; goto DoDebug&#x0D;&#x0A;
:DoRelease&#x0D;&#x0A;
mkdir .\Release\$(PlatformName)\bin&#x0D;&#x0A;
copy /b $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll .\Release\$(PlatformName)\bin\&#x0D;&#x0A;
copy /b $(ConfigurationName)\$(PlatformName)\bin\gdk-$(ApiVersion).lib .\Release\$(PlatformName)\bin\&#x0D;&#x0A;
goto END&#x0D;&#x0A;
:DoDebug&#x0D;&#x0A;
mkdir .\Debug\$(PlatformName)\bin&#x0D;&#x0A;
copy /b $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll .\Debug\$(PlatformName)\bin\&#x0D;&#x0A;
copy /b $(ConfigurationName)\$(PlatformName)\bin\gdk-$(ApiVersion).lib .\Debug\$(PlatformName)\bin\&#x0D;&#x0A;
goto END&#x0D;&#x0A;
:END&#x0D;&#x0A;
"
/>
</VisualStudioPropertySheet>

View File

@@ -1,168 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gtk3-demo-application"
ProjectGUID="{BE6B4973-C6FF-4C8F-8E97-A47793C50F44}"
RootNamespace="gtk3demoapplication"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="_DEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Release|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions=""
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="1"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Debug|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="_DEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Release|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions=""
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="1"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Sources"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
#include "gtk3-demo-application.sourcefiles"
</Filter>
<Filter
Name="Headers"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,174 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gtk3-demo"
ProjectGUID="{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}"
RootNamespace="gtk3demo"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gtk"
PreprocessorDefinitions="_DEBUG;$(GtkPrefixDefine)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Debug|x64"
ConfigurationType="1"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gtk"
PreprocessorDefinitions="_DEBUG;$(GtkPrefixDefine)"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
CompileAs="1"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Release|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gtk"
PreprocessorDefinitions="$(GtkPrefixDefine)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
CompileAs="1"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="1"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Release|x64"
ConfigurationType="1"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gtk"
PreprocessorDefinitions="$(GtkPrefixDefine)"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
CompileAs="1"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="1"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
#include "gtk3-demo.sourcefiles"
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,73 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="gtk3gensrcsprops"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
>
<UserMacro
Name="GenConfigH"
Value="
copy ..\..\..\config.h.win32 ..\..\..\config.h
"
/>
<UserMacro
Name="GenGdkConfigHWin32"
Value="
if exist ..\..\..\MSVC_$(ConfigurationName) goto DONE_GDKCONFIG_H&#x0D;&#x0A;
if exist ..\..\..\gdk\gdkconfig.h del ..\..\..\gdk\gdkconfig.h&#x0D;&#x0A;
if exist ..\..\..\GDK_BROADWAY_BUILD del ..\..\..\GDK_BROADWAY_BUILD&#x0D;&#x0A;
if exist ..\..\..\MSVC_$(ConfigurationName)_Broadway del ..\..\..\MSVC_$(ConfigurationName)_Broadway&#x0D;&#x0A;
if exist $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll del $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll&#x0D;&#x0A;
if exist $(ConfigurationName)\$(PlatformName)\bin\gdk-$(ApiVersion).lib del $(ConfigurationName)\$(PlatformName)\bin\gdk-$(ApiVersion).lib&#x0D;&#x0A;
if &quot;$(ConfigurationName)&quot; == &quot;Release&quot; del ..\..\..\MSVC_Debug&#x0D;&#x0A;
if &quot;$(ConfigurationName)&quot; == &quot;Debug&quot; del ..\..\..\MSVC_Release&#x0D;&#x0A;
copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h&#x0D;&#x0A;
copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\GDK_WIN32ONLY_BUILD&#x0D;&#x0A;
echo $(ConfigurationName) &gt; ..\..\..\MSVC_$(ConfigurationName)&#x0D;&#x0A;
:DONE_GDKCONFIG_H&#x0D;&#x0A;
"
/>
<UserMacro
Name="GenGdkConfigHBroadway"
Value="
if exist ..\..\..\MSVC_$(ConfigurationName)_Broadway goto DONE_GDKCONFIG_H&#x0D;&#x0A;
if exist ..\..\..\gdk\gdkconfig.h del ..\..\..\gdk\gdkconfig.h&#x0D;&#x0A;
if exist ..\..\..\GDK_WIN32ONLY_BUILD del ..\..\..\GDK_WIN32ONLY_BUILD&#x0D;&#x0A;
if exist ..\..\..\MSVC_Release del ..\..\..\MSVC_Release&#x0D;&#x0A;
if exist ..\..\..\MSVC_Debug del ..\..\..\MSVC_Debug&#x0D;&#x0A;
if &quot;$(ConfigurationName)&quot; == &quot;Release_Broadway&quot; del ..\..\..\MSVC_Debug_Broadway&#x0D;&#x0A;
if &quot;$(ConfigurationName)&quot; == &quot;Debug_Broadway&quot; del ..\..\..\MSVC_Release_Broadway&#x0D;&#x0A;
copy ..\..\..\gdk\gdkconfig.h.win32_broadway ..\..\..\gdk\gdkconfig.h&#x0D;&#x0A;
copy ..\..\..\gdk\gdkconfig.h.win32_broadway ..\..\..\GDK_BROADWAY_BUILD&#x0D;&#x0A;
echo $(ConfigurationName) &gt; ..\..\..\MSVC_$(ConfigurationName)_Broadway&#x0D;&#x0A;
:DONE_GDKCONFIG_H&#x0D;&#x0A;
"
/>
<UserMacro
Name="GenerateGtkDbusBuiltSources"
Value="
cd ..\..\..\gtk&#x0D;&#x0A;
$(PythonPath)\python $(GlibEtcInstallRoot)\bin\gdbus-codegen --interface-prefix org.Gtk. --c-namespace _Gtk --generate-c-code gtkdbusgenerated ./gtkdbusinterfaces.xml&#x0D;&#x0A;
cd $(SolutionDir)&#x0D;&#x0A;
"
/>
<UserMacro
Name="GenerateGtkWin32RC"
Value="$(PythonPath)\python ..\process-in-win32.py --gtkwin32rc --gtk3manifest"
/>
<UserMacro
Name="CopyDemosH"
Value="copy ..\..\..\demos\gtk-demo\demos.h.win32 ..\..\..\demos\gtk-demo\demos.h"
/>
</VisualStudioPropertySheet>

View File

@@ -1,176 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gtk3-icon-browser"
ProjectGUID="{343333C4-D46C-4C97-A986-959CCA6F1DE0}"
RootNamespace="gtk3iconbrowser"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\demos\icon-browser"
PreprocessorDefinitions="_DEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Release|Win32"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\demos\icon-browser"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions=""
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="1"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
</Configuration>
<Configuration
Name="Debug|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\demos\icon-browser"
PreprocessorDefinitions="_DEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="17"
/>
</Configuration>
<Configuration
Name="Release|x64"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\demos\icon-browser"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions=""
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies=""
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="1"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Sources"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
#include "gtk3-icon-browser.sourcefiles"
</Filter>
<Filter
Name="Headers"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="gtk3ignorebroadwayprops"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
>
<Tool
Name="VCLinkerTool"
LinkLibraryDependencies="false"
AdditionalDependencies="$(OutDir)\gdk3-win32.lib"
AdditionalOptions="/EXPORT:gdk_win32_display_manager_get_type"
/>
</VisualStudioPropertySheet>

View File

@@ -1,140 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gtk3-install"
ProjectGUID="{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}"
RootNamespace="gtk3install"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(GlibEtcInstallRoot)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-install.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(GtkDoInstallBin)$(GtkDoInstall)"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(GlibEtcInstallRoot)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-install.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(GtkDoInstallBin)$(GtkDoInstall)"
/>
</Configuration>
<Configuration
Name="Debug_Broadway|Win32"
OutputDirectory="$(GlibEtcInstallRoot)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-install.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(GtkDoInstallBin)$(GtkDoInstall)$(GtkDoInstallBroadwayHeaders)"
/>
</Configuration>
<Configuration
Name="Debug_Broadway|x64"
OutputDirectory="$(GlibEtcInstallRoot)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-install.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(GtkDoInstallBin)$(GtkDoInstall)$(GtkDoInstallBroadwayHeaders)"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(GlibEtcInstallRoot)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-install.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(GtkDoInstallBin)$(GtkDoInstall)"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(GlibEtcInstallRoot)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-install.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(GtkDoInstallBin)$(GtkDoInstall)"
/>
</Configuration>
<Configuration
Name="Release_Broadway|Win32"
OutputDirectory="$(GlibEtcInstallRoot)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-install.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(GtkDoInstallBin)$(GtkDoInstall)$(GtkDoInstallBroadwayHeaders)"
/>
</Configuration>
<Configuration
Name="Release_Broadway|x64"
OutputDirectory="$(GlibEtcInstallRoot)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-install.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="$(GtkDoInstallBin)$(GtkDoInstall)$(GtkDoInstallBroadwayHeaders)"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,126 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="gtkinstallprops"
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
>
<UserMacro
Name="GtkDoInstallBin"
Value="
mkdir $(CopyDir)\bin&#x0D;&#x0A;
mkdir $(CopyDir)\lib&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk-3$(GtkDllSuffix).dll $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk-3$(GtkDllSuffix).pdb $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gdk-$(ApiVersion).lib $(CopyDir)\lib&#x0D;&#x0A;
if &quot;$(ConfigurationName)&quot; == &quot;Release_Broadway&quot; goto DO_BROADWAY_BIN&#x0D;&#x0A;
if &quot;$(ConfigurationName)&quot; == &quot;Debug_Broadway&quot; goto DO_BROADWAY_BIN&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).dll $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).pdb $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).dll $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).pdb $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gtk-$(ApiVersion).lib $(CopyDir)\lib&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gailutil-$(ApiVersion).lib $(CopyDir)\lib&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gtk3-demo.exe $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gtk3-demo.pdb $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gtk3-demo-application.exe $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gtk3-demo-application.pdb $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gtk3-icon-browser.exe $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gtk3-icon-browser.pdb $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gtk-encode-symbolic-svg.exe $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\gtk-encode-symbolic-svg.pdb $(CopyDir)\bin&#x0D;&#x0A;
goto DONE_BIN&#x0D;&#x0A;
:DO_BROADWAY_BIN&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\broadwayd.exe $(CopyDir)\bin&#x0D;&#x0A;
copy $(ConfigurationName)\$(PlatformName)\bin\broadwayd.pdb $(CopyDir)\bin&#x0D;&#x0A;
if &quot;$(ConfigurationName)&quot; == &quot;Release_Broadway&quot; goto DO_BROADWAY_RELEASE&#x0D;&#x0A;
if &quot;$(ConfigurationName)&quot; == &quot;Debug_Broadway&quot; goto DO_BROADWAY_DEBUG&#x0D;&#x0A;
:DO_BROADWAY_RELEASE&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).dll $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).dll $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gtk-$(ApiVersion).lib $(CopyDir)\lib&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gailutil-$(ApiVersion).lib $(CopyDir)\lib&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gtk3-demo.exe $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gtk3-demo.pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gtk3-demo-application.exe $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gtk3-demo-application.pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gtk3-icon-browser.exe $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gtk3-icon-browser.pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gtk-encode-symbolic-svg.exe $(CopyDir)\bin&#x0D;&#x0A;
copy .\Release\$(PlatformName)\bin\gtk-encode-symbolic-svg.pdb $(CopyDir)\bin&#x0D;&#x0A;
goto DONE_BIN&#x0D;&#x0A;
:DO_BROADWAY_DEBUG&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).dll $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\$(GtkDllPrefix)gtk-3$(GtkDllSuffix).pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).dll $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\$(GtkDllPrefix)gailutil-3$(GtkDllSuffix).pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gtk-$(ApiVersion).lib $(CopyDir)\lib&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gailutil-$(ApiVersion).lib $(CopyDir)\lib&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gtk3-demo.exe $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gtk3-demo.pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gtk3-demo-application.exe $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gtk3-demo-application.pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gtk3-icon-browser.exe $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gtk3-icon-browser.pdb $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gtk-encode-symbolic-svg.exe $(CopyDir)\bin&#x0D;&#x0A;
copy .\Debug\$(PlatformName)\bin\gtk-encode-symbolic-svg.pdb $(CopyDir)\bin&#x0D;&#x0A;
:DONE_BIN&#x0D;&#x0A;
"
/>
<UserMacro
Name="GtkDoInstall"
Value="
echo off&#x0D;&#x0A;
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32&#x0D;&#x0A;
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\deprecated&#x0D;&#x0A;
copy ..\..\..\gdk\win32\gdkwin32.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk&#x0D;&#x0A;
#include "gdk-3.headers"
#include "gdk3-win32.headers"
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y&#x0D;&#x0A;
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated&#x0D;&#x0A;
#include "gtk-3.headers"
mkdir $(CopyDir)\include\gail-$(ApiVersion)\libgail-util&#x0D;&#x0A;
#include "gailutil-3.headers"
mkdir $(CopyDir)\share\icons\hicolor\16x16\apps&#x0D;&#x0A;
copy ..\..\..\demos\gtk-demo\data\16x16\gtk3-demo.png $(CopyDir)\share\icons\hicolor\16x16\apps\&#x0D;&#x0A;
mkdir $(CopyDir)\share\icons\hicolor\22x22\apps&#x0D;&#x0A;
copy ..\..\..\demos\gtk-demo\data\22x22\gtk3-demo.png $(CopyDir)\share\icons\hicolor\22x22\apps\&#x0D;&#x0A;
mkdir $(CopyDir)\share\icons\hicolor\24x24\apps&#x0D;&#x0A;
copy ..\..\..\demos\gtk-demo\data\24x24\gtk3-demo.png $(CopyDir)\share\icons\hicolor\24x24\apps\&#x0D;&#x0A;
mkdir $(CopyDir)\share\icons\hicolor\32x32\apps&#x0D;&#x0A;
copy ..\..\..\demos\gtk-demo\data\32x32\gtk3-demo.png $(CopyDir)\share\icons\hicolor\32x32\apps\&#x0D;&#x0A;
mkdir $(CopyDir)\share\icons\hicolor\48x48\apps&#x0D;&#x0A;
copy ..\..\..\demos\gtk-demo\data\48x48\gtk3-demo.png $(CopyDir)\share\icons\hicolor\48x48\apps\&#x0D;&#x0A;
mkdir $(CopyDir)\share\icons\hicolor\256x256\apps&#x0D;&#x0A;
copy ..\..\..\demos\gtk-demo\data\256x256\gtk3-demo.png $(CopyDir)\share\icons\hicolor\256x256\apps\&#x0D;&#x0A;
mkdir $(CopyDir)\share\glib-2.0\schemas&#x0D;&#x0A;
copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas&#x0D;&#x0A;
copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas&#x0D;&#x0A;
copy ..\..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\schemas&#x0D;&#x0A;
copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas&#x0D;&#x0A;
echo &quot;Compiling gsettings XML Files...&quot;&#x0D;&#x0A;
$(GlibEtcInstallRoot)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas&#x0D;&#x0A;
"
/>
<UserMacro
Name="GtkDoInstallBroadwayHeaders"
Value="
copy ..\..\..\gdk\broadway\gdkbroadway.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk&#x0D;&#x0A;
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\broadway&#x0D;&#x0A;
#include "gdk3-broadway.headers"
"
/>
</VisualStudioPropertySheet>

View File

@@ -1,282 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="gtk3-prebuild"
ProjectGUID="{B98FBE68-B03C-48E3-8F32-C3C010720D30}"
RootNamespace="gtk3prebuild"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
>
</Configuration>
<Configuration
Name="Debug|x64"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
>
</Configuration>
<Configuration
Name="Debug_Broadway|Win32"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
>
</Configuration>
<Configuration
Name="Debug_Broadway|x64"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
>
</Configuration>
<Configuration
Name="Release|Win32"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
WholeProgramOptimization="1"
>
</Configuration>
<Configuration
Name="Release|x64"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
WholeProgramOptimization="1"
>
</Configuration>
<Configuration
Name="Release_Broadway|Win32"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
WholeProgramOptimization="1"
>
</Configuration>
<Configuration
Name="Release_Broadway|x64"
ConfigurationType="10"
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
CharacterSet="2"
DeleteExtensionsOnClean=""
WholeProgramOptimization="1"
>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File RelativePath="..\..\..\config.h.win32">
<FileConfiguration Name="Debug|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying config.h from config.h.win32..."
CommandLine="$(GenConfigH)"
Outputs="..\..\..\config.h"
/>
</FileConfiguration>
<FileConfiguration Name="Debug_Broadway|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying config.h from config.h.win32..."
CommandLine="$(GenConfigH)"
Outputs="..\..\..\config.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying config.h from config.h.win32..."
CommandLine="$(GenConfigH)"
Outputs="..\..\..\config.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release_Broadway|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying config.h from config.h.win32..."
CommandLine="$(GenConfigH)"
Outputs="..\..\..\config.h"
/>
</FileConfiguration>
<FileConfiguration Name="Debug|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying config.h from config.h.win32..."
CommandLine="$(GenConfigH)"
Outputs="..\..\..\config.h"
/>
</FileConfiguration>
<FileConfiguration Name="Debug_Broadway|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying config.h from config.h.win32..."
CommandLine="$(GenConfigH)"
Outputs="..\..\..\config.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying config.h from config.h.win32..."
CommandLine="$(GenConfigH)"
Outputs="..\..\..\config.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release_Broadway|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying config.h from config.h.win32..."
CommandLine="$(GenConfigH)"
Outputs="..\..\..\config.h"
/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\gdk\gdkconfig.h.win32">
<FileConfiguration Name="Debug|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying gdkconfig.h from gdkconfig.h.win32..."
CommandLine="$(GenGdkConfigHWin32)"
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(ConfigurationName)"
/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying gdkconfig.h from gdkconfig.h.win32..."
CommandLine="$(GenGdkConfigHWin32)"
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(ConfigurationName)"
/>
</FileConfiguration>
<FileConfiguration Name="Debug|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying gdkconfig.h from gdkconfig.h.win32..."
CommandLine="$(GenGdkConfigHWin32)"
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(ConfigurationName)"
/>
</FileConfiguration>
<FileConfiguration Name="Release|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying gdkconfig.h from gdkconfig.h.win32..."
CommandLine="$(GenGdkConfigHWin32)"
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(ConfigurationName)"
/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\gdk\gdkconfig.h.win32_broadway">
<FileConfiguration Name="Debug_Broadway|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying gdkconfig.h from gdkconfig.h.win32_broadway..."
CommandLine="$(GenGdkConfigHBroadway)"
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(ConfigurationName)_Broadway"
/>
</FileConfiguration>
<FileConfiguration Name="Release_Broadway|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying gdkconfig.h from gdkconfig.h.win32_broadway..."
CommandLine="$(GenGdkConfigHBroadway)"
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(ConfigurationName)_Broadway"
/>
</FileConfiguration>
<FileConfiguration Name="Debug_Broadway|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying gdkconfig.h from gdkconfig.h.win32_broadway..."
CommandLine="$(GenGdkConfigHBroadway)"
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(ConfigurationName)_Broadway"
/>
</FileConfiguration>
<FileConfiguration Name="Release_Broadway|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying gdkconfig.h from gdkconfig.h.win32_broadway..."
CommandLine="$(GenGdkConfigHBroadway)"
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(ConfigurationName)_Broadway"
/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\demos\gtk-demo\demos.h.win32">
<FileConfiguration Name="Debug|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying demos.h from demos.h.win32..."
CommandLine="$(CopyDemosH)"
Outputs="..\..\..\demos\gtk-demo\demos.h"
/>
</FileConfiguration>
<FileConfiguration Name="Debug_Broadway|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying demos.h from demos.h.win32..."
CommandLine="$(CopyDemosH)"
Outputs="..\..\..\demos\gtk-demo\demos.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying demos.h from demos.h.win32..."
CommandLine="$(CopyDemosH)"
Outputs="..\..\..\demos\gtk-demo\demos.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release_Broadway|Win32">
<Tool Name="VCCustomBuildTool"
Description="Copying demos.h from demos.h.win32..."
CommandLine="$(CopyDemosH)"
Outputs="..\..\..\demos\gtk-demo\demos.h"
/>
</FileConfiguration>
<FileConfiguration Name="Debug|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying demos.h from demos.h.win32..."
CommandLine="$(CopyDemosH)"
Outputs="..\..\..\demos\gtk-demo\demos.h"
/>
</FileConfiguration>
<FileConfiguration Name="Debug_Broadway|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying demos.h from demos.h.win32..."
CommandLine="$(CopyDemosH)"
Outputs="..\..\..\demos\gtk-demo\demos.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying demos.h from demos.h.win32..."
CommandLine="$(CopyDemosH)"
Outputs="..\..\..\demos\gtk-demo\demos.h"
/>
</FileConfiguration>
<FileConfiguration Name="Release_Broadway|x64">
<Tool Name="VCCustomBuildTool"
Description="Copying demos.h from demos.h.win32..."
CommandLine="$(CopyDemosH)"
Outputs="..\..\..\demos\gtk-demo\demos.h"
/>
</FileConfiguration>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,57 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="gtk3versionpathsprops"
>
<UserMacro
Name="VSVer"
Value="9"
/>
<UserMacro
Name="GlibEtcInstallRoot"
Value="$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(PlatformName)"
/>
<UserMacro
Name="CopyDir"
Value="..\..\..\..\vs$(VSVer)\$(PlatformName)"
/>
<UserMacro
Name="ApiVersion"
Value="3.0"
/>
<UserMacro
Name="GtkVersion"
Value="@GTK_VERSION@"
/>
<UserMacro
Name="GtkLibtoolCompatibleDllPrefix"
Value="lib"
/>
<UserMacro
Name="GtkLibtoolCompatibleDllSuffix"
Value=".0-0"
/>
<UserMacro
Name="GtkSeparateVSDllPrefix"
Value=""
/>
<UserMacro
Name="GtkSeparateVSDllSuffix"
Value="-vs$(VSVer)"
/>
<!-- Change these two to GtkLibtoolCompatibleDllPrefix and
GtkLibtoolCompatibleDllSuffix if that is what you want -->
<UserMacro
Name="GtkDllPrefix"
Value="$(GtkSeparateVSDllPrefix)"
/>
<UserMacro
Name="GtkDllSuffix"
Value="$(GtkSeparateVSDllSuffix)"
/>
<UserMacro
Name="PythonPath"
Value="c:\python27"
/>
</VisualStudioPropertySheet>

317
config.h.meson Normal file
View File

@@ -0,0 +1,317 @@
/* config.h.in. Generated from configure.ac by autoheader. */
/* always defined to indicate that i18n is enabled */
#define ENABLE_NLS 1
/* The prefix for our gettext translation domains. */
#mesondefine GETTEXT_PACKAGE
/* Disable deprecation warnings from glib */
#mesondefine GLIB_DISABLE_DEPRECATION_WARNINGS
/* Define the location where the catalogs will be installed */
#mesondefine GTK_LOCALEDIR
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#mesondefine HAVE_BIND_TEXTDOMAIN_CODESET
/* Have the cloudproviders library */
#mesondefine HAVE_CLOUDPROVIDERS
/* define if we have colord */
#mesondefine HAVE_COLORD
/* Define to 1 if you have the <crt_externs.h> header file. */
#mesondefine HAVE_CRT_EXTERNS_H
/* Define to 1 if CUPS 1.6 API is available */
#mesondefine HAVE_CUPS_API_1_6
/* Define to 1 if you have the `dcgettext' function. */
#mesondefine HAVE_DCGETTEXT
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
*/
#mesondefine HAVE_DECL_ISINF
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
*/
#mesondefine HAVE_DECL_ISNAN
/* Define to 1 if you have the <dlfcn.h> header file. */
#mesondefine HAVE_DLFCN_H
/* Have the ffmpeg library */
#mesondefine HAVE_FFMPEG
/* Define to 1 if you have the <ftw.h> header file. */
#mesondefine HAVE_FTW_H
/* Define to 1 if you have the `getpagesize' function. */
#mesondefine HAVE_GETPAGESIZE
/* Define to 1 if you have the `getresuid' function. */
#mesondefine HAVE_GETRESUID
/* Define if gio-unix is available */
#mesondefine HAVE_GIO_UNIX
/* Define if GStreamer support is available */
#mesondefine HAVE_GSTREAMER
/* Define to 1 if you have the `httpGetAuthString' function. */
#mesondefine HAVE_HTTPGETAUTHSTRING
/* Define if cups http_t authstring field is accessible */
#mesondefine HAVE_HTTP_AUTHSTRING
/* Define to 1 if you have the <inttypes.h> header file. */
#mesondefine HAVE_INTTYPES_H
/* Define to 1 if the system has the type `IPrintDialogCallback'. */
#mesondefine HAVE_IPRINTDIALOGCALLBACK
/* Define to 1 if you have the <locale.h> header file. */
#mesondefine HAVE_LOCALE_H
/* Define to 1 if you have the `lstat' function. */
#mesondefine HAVE_LSTAT
/* Define to 1 if you have the `mallinfo' function. */
#mesondefine HAVE_MALLINFO
/* Define to 1 if you have the <memory.h> header file. */
#mesondefine HAVE_MEMORY_H
/* Define to 1 if you have the `mkstemp' function. */
#mesondefine HAVE_MKSTEMP
/* Define to 1 if you have a working `mmap' system call. */
#mesondefine HAVE_MMAP
/* Define to 1 if you have the `nearbyint' function. */
#mesondefine HAVE_NEARBYINT
/* Define to 1 if you have the `posix_fallocate' function. */
#mesondefine HAVE_POSIX_FALLOCATE
/* Have the Xrandr extension library */
#mesondefine HAVE_RANDR
/* Have the Xrandr 1.5 extension library */
#mesondefine HAVE_RANDR15
/* Define to 1 if you have the `rint' function. */
#mesondefine HAVE_RINT
/* Define to 1 if you have the `round' function. */
#mesondefine HAVE_ROUND
/* Define to 1 if you have the `sincos' function. */
#mesondefine HAVE_SINCOS
/* Define to 1 if you have the `log2` function */
#mesondefine HAVE_LOG2
/* Define to 1 if you ahve the `exp2` function */
#mesondefine HAVE_EXP2
/* Define to 1 if you have the <stdint.h> header file. */
#mesondefine HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#mesondefine HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#mesondefine HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#mesondefine HAVE_STRING_H
/* Define to 1 if you have the <sys/mman.h> header file. */
#mesondefine HAVE_SYS_MMAN_H
/* Define to 1 if you have the <sys/param.h> header file. */
#mesondefine HAVE_SYS_PARAM_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#mesondefine HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/time.h> header file. */
#mesondefine HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#mesondefine HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#mesondefine HAVE_UNISTD_H
/* Have the XCOMPOSITE X extension */
#mesondefine HAVE_XCOMPOSITE
/* Have the Xcursor library */
#mesondefine HAVE_XCURSOR
/* Have the XDAMAGE X extension */
#mesondefine HAVE_XDAMAGE
/* Have the XFIXES X extension */
#mesondefine HAVE_XFIXES
/* Define to 1 if XFree Xinerama is available */
#mesondefine HAVE_XFREE_XINERAMA
/* Have XGenericEvent */
#mesondefine HAVE_XGENERICEVENTS
/* Define to use XKB extension */
#mesondefine HAVE_XKB
/* Have the SYNC extension library */
#mesondefine HAVE_XSYNC
/* Define to 1 if you have the `_lock_file' function */
#mesondefine HAVE__LOCK_FILE
/* Define to 1 if you have the `flockfile' function */
#mesondefine HAVE_FLOCKFILE
/* Define if _NL_MEASUREMENT_MEASUREMENT is available */
#mesondefine HAVE__NL_MEASUREMENT_MEASUREMENT
/* Define if _NL_PAPER_HEIGHT is available */
#mesondefine HAVE__NL_PAPER_HEIGHT
/* Define if _NL_PAPER_WIDTH is available */
#mesondefine HAVE__NL_PAPER_WIDTH
/* Define if _NL_TIME_FIRST_WEEKDAY is available */
#mesondefine HAVE__NL_TIME_FIRST_WEEKDAY
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#mesondefine LT_OBJDIR
/* Define if <X11/extensions/XIproto.h> needed for xReply */
#mesondefine NEED_XIPROTO_H_FOR_XREPLY
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#mesondefine NO_MINUS_C_MINUS_O
/* Define to the address where bug reports for this package should be sent. */
#mesondefine PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#mesondefine PACKAGE_NAME
/* Define to the full name and version of this package. */
#mesondefine PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#mesondefine PACKAGE_TARNAME
/* Define to the home page for this package. */
#mesondefine PACKAGE_URL
/* Define to the version of this package. */
#mesondefine PACKAGE_VERSION
/* Use NSBundle functions to determine load paths for libraries, translations,
etc. */
#mesondefine QUARTZ_RELOCATION
/* Define to 1 if you have the ANSI C header files. */
#mesondefine STDC_HEADERS
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif
/* Define to 1 if XInput 2.0 is available */
#mesondefine XINPUT_2
/* Define to 1 if XInput 2.2 is available */
#mesondefine XINPUT_2_2
/* Define to 1 if the X Window System is missing or not being used. */
#mesondefine X_DISPLAY_MISSING
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
#mesondefine _FILE_OFFSET_BITS
/* defines how to decorate public symbols while building */
#mesondefine _GDK_EXTERN
/* Define for large files, on AIX-style hosts. */
#mesondefine _LARGE_FILES
/* Define to 1 if on MINIX. */
#mesondefine _MINIX
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
#mesondefine _POSIX_1_SOURCE
/* Define to 1 if you need to in order for `stat' and other things to work. */
#mesondefine _POSIX_SOURCE
/* Define to `int' if <sys/types.h> doesn't define. */
#mesondefine gid_t
/* Define to `int' if <sys/types.h> doesn't define. */
#mesondefine uid_t
/* Define to 1 if linux/memfd.h exists */
#mesondefine HAVE_LINUX_MEMFD_H
#mesondefine HAVE_LINUX_INPUT_H
#mesondefine HAVE_DEV_EVDEV_INPUT_H
#mesondefine GTK_SYSCONFDIR
#mesondefine GTK_LOCALEDIR
#mesondefine GTK_DATADIR
#mesondefine GTK_LIBDIR
#mesondefine GTK_PRINT_BACKENDS
#mesondefine HAVE_HARFBUZZ
#mesondefine HAVE_PANGOFT
#mesondefine ISO_CODES_PREFIX
#mesondefine MALLOC_IS_ALIGNED16
#mesondefine HAVE_POSIX_MEMALIGN
#mesondefine HAVE_MEMALIGN
#mesondefine HAVE_ALIGNED_ALLOC
#mesondefine HAVE__ALIGNED_MALLOC

View File

@@ -1,321 +0,0 @@
/* config.h.win32.in. Merged from two versions generated by configure for gcc and MSVC. */
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.in by autoheader. */
/* always defined to indicate that i18n is enabled */
#define ENABLE_NLS 1
/* define to enable packagekit */
/* #undef ENABLE_PACKAGEKIT */
/* The prefix for our gettext translation domains. */
#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
/* Disable deprecation warnings from glib */
/* #undef GLIB_DISABLE_DEPRECATION_WARNINGS */
/* Define if debugging is enabled */
#define GTK_COMPILED_WITH_DEBUGGING "yes"
/* Define the location where the catalogs will be installed */
#define GTK_LOCALEDIR "NONE/share/locale"
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
/* define if we have colord */
/* #undef HAVE_COLORD */
/* Define to 1 if you have the <crt_externs.h> header file. */
/* #undef HAVE_CRT_EXTERNS_H */
/* Define to 1 if CUPS 1.2 API is available */
/* #undef HAVE_CUPS_API_1_2 */
/* Define to 1 if you have the `dcgettext' function. */
#define HAVE_DCGETTEXT 1
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
*/
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_DECL_ISINF 1
#endif
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
*/
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_DECL_ISNAN 1
#endif
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
/* Define to 1 if you have the <ftw.h> header file. */
/* #undef HAVE_FTW_H */
/* Define to 1 if you have the `getpagesize' function. */
#ifndef _MSC_VER
#define HAVE_GETPAGESIZE 1
#else
/* #undef HAVE_GETPAGESIZE */
#endif
/* Define to 1 if you have the `getresuid' function. */
/* #undef HAVE_GETRESUID */
/* Define if the GNU gettext() function is already present or preinstalled. */
#define HAVE_GETTEXT 1
/* Define if gio-unix is available */
/* #undef HAVE_GIO_UNIX */
/* Have GNU ftw */
/* #undef HAVE_GNU_FTW */
/* Define to 1 if you have the `httpGetAuthString' function. */
/* #undef HAVE_HTTPGETAUTHSTRING */
/* Define if cups http_t authstring field is accessible */
/* #undef HAVE_HTTP_AUTHSTRING */
/* Define to 1 if you have the <inttypes.h> header file. */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_INTTYPES_H 1
#else
/* #undef HAVE_INTTYPES_H */
#endif
/* Define to 1 if the system has the type `IPrintDialogCallback'. */
#define HAVE_IPRINTDIALOGCALLBACK 1
/* Define if your <locale.h> file defines LC_MESSAGES. */
/* #undef HAVE_LC_MESSAGES */
/* Define to 1 if you have the `m' library (-lm). */
#ifndef _MSC_VER
#define HAVE_LIBM 1
#endif
/* Define to 1 if you have the <locale.h> header file. */
#define HAVE_LOCALE_H 1
/* Define to 1 if you have the `localtime_r' function. */
/* #undef HAVE_LOCALTIME_R */
/* Define to 1 if you have the `lstat' function. */
/* #undef HAVE_LSTAT */
/* Define to 1 if you have the `mallinfo' function. */
/* #undef HAVE_MALLINFO */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mkstemp' function. */
/* #undef HAVE_MKSTEMP */
/* Define to 1 if you have a working `mmap' system call. */
/* #undef HAVE_MMAP */
/* Define to 1 if nearbyint() is available */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_NEARBYINT 1
#endif
/* Define to 1 if libpapi available */
/* #undef HAVE_PAPI */
/* Define to 1 if you have the <pwd.h> header file. */
/* #undef HAVE_PWD_H */
/* Have the Xrandr extension library */
/* #undef HAVE_RANDR */
/* Define to 1 if rint() is available */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_RINT 1
#endif
/* Define to 1 if round() is available */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_ROUND 1
#endif
/* Define to 1 if sincos() is available */
/* #undef HAVE_SINCOS */
/* Have the sockaddr_un.sun_len member */
/* #undef HAVE_SOCKADDR_UN_SUN_LEN */
/* Define to 1 if solaris xinerama is available */
/* #undef HAVE_SOLARIS_XINERAMA */
/* Define to 1 if you have the <stdint.h> header file. */
#ifndef _MSC_VER
#define HAVE_STDINT_H 1
#else
#if (_MSC_VER >= 1600) /* VS 2010+ ships with stdint.h */
#define HAVE_STDINT_H 1
#endif
/* #undef HAVE_STDINT_H */
#endif
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#ifndef _MSC_VER
#define HAVE_STRINGS_H 1
#endif
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/mman.h> header file. */
/* #undef HAVE_SYS_MMAN_H */
/* Define to 1 if you have the <sys/param.h> header file. */
/* #undef HAVE_SYS_PARAM_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if sys/sysinfo.h is available */
/* #undef HAVE_SYS_SYSINFO_H */
/* Define to 1 if sys/systeminfo.h is available */
/* #undef HAVE_SYS_SYSTEMINFO_H */
/* Define to 1 if you have the <sys/time.h> header file. */
#ifndef _MSC_VER
#define HAVE_SYS_TIME_H 1
#else /* _MSC_VER */
/* #undef HAVE_SYS_TIME_H */
#endif
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#ifndef _MSC_VER
#define HAVE_UNISTD_H 1
#else
/* #undef HAVE_UNISTD_H */
#endif
/* Have the XCOMPOSITE X extension */
/* #undef HAVE_XCOMPOSITE */
/* Have the Xcursor library */
/* #undef HAVE_XCURSOR */
/* Have the XDAMAGE X extension */
/* #undef HAVE_XDAMAGE */
/* Have the XFIXES X extension */
/* #undef HAVE_XFIXES */
/* Define to 1 if XFree Xinerama is available */
/* #undef HAVE_XFREE_XINERAMA */
/* Have XGenericEvent */
/* #undef HAVE_XGENERICEVENTS */
/* Define to 1 if xinerama is available */
/* #undef HAVE_XINERAMA */
/* Define to use XKB extension */
/* #undef HAVE_XKB */
/* Have the SYNC extension library */
/* #undef HAVE_XSYNC */
/* Define if _NL_MEASUREMENT_MEASUREMENT is available */
/* #undef HAVE__NL_MEASUREMENT_MEASUREMENT */
/* Define if _NL_PAPER_HEIGHT is available */
/* #undef HAVE__NL_PAPER_HEIGHT */
/* Define if _NL_PAPER_WIDTH is available */
/* #undef HAVE__NL_PAPER_WIDTH */
/* Define if _NL_TIME_FIRST_WEEKDAY is available */
/* #undef HAVE__NL_TIME_FIRST_WEEKDAY */
/* Define to 1 if you have the `_NSGetEnviron' function. */
/* #undef HAVE__NSGETENVIRON */
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#define LT_OBJDIR ".libs/"
/* Define if <X11/extensions/XIproto.h> needed for xReply */
/* #undef NEED_XIPROTO_H_FOR_XREPLY */
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#ifndef _MSC_VER
/* #undef NO_MINUS_C_MINUS_O */
#else
#define NO_MINUS_C_MINUS_O 1
#endif
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B"
/* Define to the full name of this package. */
#define PACKAGE_NAME "gtk+"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "gtk+ @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@GTK_MICRO_VERSION@"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gtk+"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@GTK_MICRO_VERSION@"
/* Use NSBundle functions to determine load paths for libraries, translations,
etc. */
/* #undef QUARTZ_RELOCATION */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define to 1 if gmodule works and should be used */
#define USE_GMODULE 1
/* Define to 1 if XInput 2.0 is available */
/* #undef XINPUT_2 */
/* Define to 1 if XInput 2.2 is available */
/* #undef XINPUT_2_2 */
/* Define to 1 if the X Window System is missing or not being used. */
/* #undef X_DISPLAY_MISSING */
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
/* # define _DARWIN_USE_64_BIT_INODE 1 */
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* defines how to decorate public symbols while building */
#ifdef _MSC_VER
#define _GDK_EXTERN __declspec (dllexport) extern
#else
#define _GDK_EXTERN __attribute__((visibility("default"))) __declspec (dllexport) extern
#endif
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to `int' if <sys/types.h> doesn't define. */
#define gid_t int
/* Define to `int' if <sys/types.h> doesn't define. */
#define uid_t int

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
## Makefile.am for gtk+/demos
include $(top_srcdir)/Makefile.decl
SUBDIRS = gtk-demo widget-factory icon-browser
-include $(top_srcdir)/git.mk

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