Commit Graph

42051 Commits

Author SHA1 Message Date
Matthias Clasen
2984dcdbe5 tooltip: Minor cleanup
Preserve the symmetry in gtk_tooltip_set_last_window.
2015-03-22 23:01:42 -04:00
Matthias Clasen
111a84bd1c search bar: Clean up weak pointer handling
Break out a setter that manages the weak pointer, and
use it in finalize. This also fixes a bug where we were
forgetting to disconnect the right signal handler in
some cases.
2015-03-22 23:01:41 -04:00
Matthias Clasen
32c4bcbd3e mount operation: Minor formatting cleanup
The pattern for g_object_add_weak_pointer calls is to
have the same expression in both arguments.
2015-03-22 23:00:53 -04:00
Matthias Clasen
31252c1fe4 menu button: Minor cleanup
Preserve the symmetry in set_align_widget_pointer.
2015-03-22 23:00:48 -04:00
Matthias Clasen
dd09993f37 Clean up some unfortunate formatting
"if (...) do" just looks wrong.
2015-03-22 23:00:40 -04:00
Matthias Clasen
c0727abccc dnd: Introduce a helper to manage the weak pointer
Introduce a setter that takes care of updating the weak ref
whenever we assign info->widget. Just a cleanup of the previous patch.
2015-03-22 23:00:25 -04:00
Tom Hughes
9a27dca38f DND: Clean up weak pointers when they are no longer needed
Failure to do so leads to memory corruption down the road.
This was introduced in commit 650c25e06c.

https://bugzilla.gnome.org/show_bug.cgi?id=746602
2015-03-22 23:00:18 -04:00
Matthias Clasen
ca3c79e997 radio-menu-item: Allow arguments to be NULL
Some arguments, like the group and the label of a RadioMenuItem, can be
NULL: the RadioMenuItem has all the code to deal with them. The argument
validation is too strict, though, for instance doing:

  return_if_fail (IS_RADIO_MENU_ITEM (foo))

  if (foo != NULL)
    set_foo (foo)

Which is obviously incorrect.

This commit also modifies the annotations of the API, to ensure that
language bindings do the right thing.

https://bugzilla.gnome.org/show_bug.cgi?id=671362
2015-03-22 23:00:09 -04:00
Emmanuele Bassi
1d24014a8b radio-menu-item: Handle a !NULL group
If we create a RadioMenuItem without a group, and then set a group, the
menu item will still be set as active, which means an inconsistently
drawn radio menu item - as the RadioMenuItem will set the active flag on
itself, but then it won't reset it when it gets a new group.

https://bugzilla.gnome.org/show_bug.cgi?id=671362
2015-03-22 23:00:02 -04:00
Olivier Fourdan
9da241b2d0 Improve CSD decorations without a compositor
It turned out that using mwm hints to instruct wms to
create border-only decorations is not really working
universally. So, instead of doing this, render a solid
frame without shadow on the client-side to handle this
case.

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

Signed-off-by: Olivier Fourdan <fourdan@xfce.org>
2015-03-22 22:59:37 -04:00
Matthias Clasen
fef7d65685 image: Optimize non-resize changes
When the image content is changed, only queue a resize
if the size is actually changing, otherwise just a
redraw. Suggested by Owen in

https://bugzilla.gnome.org/show_bug.cgi?id=613833
2015-03-22 22:59:30 -04:00
Christian Hergert
0230fff141 a11y: handle atk race condition where widget has been destroyed
If the widget has been destroyed since a DBus message had been sent,
we could be in a condition that the widget pointer exists but it does
not have a window.

This bails as if the widget didn't exist if there is no available
GdkWindow.

We also set the extents to 0 to be defensive since this is a vfunc
implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=746586
2015-03-22 22:59:21 -04:00
Alexander Larsson
da5cbcaf86 box-shadow: For top/bottom and left/right parts, repeat a single line
Since these part really are the same in all of the x or y direction
and we don't blur in that direction we can just blur one line and
repeat it during drawing.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-22 22:59:04 -04:00
Alexander Larsson
0707a2fa0e shadow-box: Blur only horizontally/vertically for the non-corner parts
There is no need to e.g. blur in the x-direction for the top part
of a box shadow. Also, there is no need to extend the mask in the
non-blurred direction.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-22 22:58:54 -04:00
Alexander Larsson
d370d130fb shadow-box: Bail out blur early if radius is 1px
For radius 1px the current implementation rounds down to a 1 px box
filter which is a no-op. Rather than creating useless shadow masks
in this case we bail out blurring early.

Another alternative would be to make radius 1px round up to a 2 px box
filter, but that would change the rendering of Adwaita which is probably
not a great idea this late in the cycle.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-22 22:58:46 -04:00
Alexander Larsson
c96df5a350 gtkcairoblur: Unroll inner loop for common radius values
This unrolls the inner blur loop for radius 1-10, allowing
the compiler to use a divide-by-constant operation instead
of a generic division.

Here is the blur-performance output before:

Radius  1: 124.95 msec, 32.01 kpixels/msec:
Radius  2: 117.27 msec, 34.11 kpixels/msec:
Radius  3: 123.57 msec, 32.37 kpixels/msec:
Radius  4: 118.17 msec, 33.85 kpixels/msec:
Radius  5: 119.32 msec, 33.52 kpixels/msec:
Radius  6: 124.17 msec, 32.21 kpixels/msec:
Radius  7: 121.04 msec, 33.05 kpixels/msec:
Radius  8: 130.64 msec, 30.62 kpixels/msec:
Radius  9: 119.47 msec, 33.48 kpixels/msec:
Radius 10: 117.95 msec, 33.91 kpixels/msec:
Radius 11: 122.38 msec, 32.68 kpixels/msec:
Radius 12: 121.92 msec, 32.81 kpixels/msec:
Radius 13: 125.45 msec, 31.89 kpixels/msec:
Radius 14: 121.63 msec, 32.89 kpixels/msec:
Radius 15: 120.18 msec, 33.28 kpixels/msec:

And after:

Radius  1: 42.26 msec, 94.65 kpixels/msec:
Radius  2: 59.15 msec, 67.62 kpixels/msec:
Radius  3: 60.29 msec, 66.35 kpixels/msec:
Radius  4: 64.53 msec, 61.99 kpixels/msec:
Radius  5: 60.07 msec, 66.59 kpixels/msec:
Radius  6: 62.43 msec, 64.07 kpixels/msec:
Radius  7: 60.36 msec, 66.27 kpixels/msec:
Radius  8: 59.59 msec, 67.13 kpixels/msec:
Radius  9: 76.17 msec, 52.51 kpixels/msec:
Radius 10: 79.41 msec, 50.37 kpixels/msec:
Radius 11: 118.92 msec, 33.64 kpixels/msec:
Radius 12: 121.31 msec, 32.97 kpixels/msec:
Radius 13: 118.30 msec, 33.81 kpixels/msec:
Radius 14: 116.82 msec, 34.24 kpixels/msec:
Radius 15: 116.99 msec, 34.19 kpixels/msec:

I.e. almost double performance for the unrolled radius values.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-22 22:58:39 -04:00
Alexander Larsson
41e863a0f0 gtkcairoblur: Minor restructure
This just moves get_box_filter_size to the top and makes
it a macro (so it can be used as a constant later).

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-22 22:58:33 -04:00
Alexander Larsson
9bc2bbf782 Add performance test for gtkcairoblur
This just creates a large cairo surface and times bluring it
at various values of radius.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-22 22:58:27 -04:00
Matthias Clasen
586cdb63e4 HighContrast: Fix a typo
Commit 0a39d7d9 introduced a selected_bg_color with a missing $
in front of it.
2015-03-22 22:58:19 -04:00
Matthias Clasen
2506683cc3 reftests: Add a way to compare different runs
gtk-reftest already had an --output=DIR option to tell it where
to save all the resulting images. Now you can combine this with
the --compare-with=DIR option in a second run to make gtk-reftest
compare the .out.png files from the first run with the .out.png
files of the current run, instead of producing .ref.png files.

The intended use for this is to verify that changes do not affect
the generated output.
2015-03-22 22:58:09 -04:00
Matthias Clasen
bcfa4eec25 gtk-demo: Plug a memory leak 2015-03-22 22:57:13 -04:00
Matthias Clasen
59674ba8f4 widget-factory: Fix toolbar on page 3
Set toolbar-style to 'icons' to avoid rectangular buttons.
2015-03-22 22:57:05 -04:00
Vadim Rutkovsky
e497363d60 inspector: show accessible name and description 2015-03-22 22:56:55 -04:00
Bastien Nocera
e166747170 inspector: Make it easier to cut'n'paste advice message
The message says "Enable statistics with GOBJECT_DEBUG=instance-count"
but the message itself isn't selectable, making it hard to cut'n'paste.

https://bugzilla.gnome.org/show_bug.cgi?id=746391
2015-03-22 22:56:41 -04:00
Benjamin Otte
79ab6c8963 notebook: Protect against invalid allocations
A widget can be mapped but not have a size allocated yet. In that case
avoid computing a broken rectangle.

https://bugzilla.gnome.org/show_bug.cgi?id=746301
2015-03-22 22:55:57 -04:00
Christian Hergert
2d5b801a28 textview: add support for underline and strikethrough colors
This commit adds the GtkTextTag:underline-rgba and :strikethrough-rgba
properties and the necessary plumbing to apply these colors in GtkTextLayout.
With this change, you can alter the color of underlines including those
of type PANGO_UNDERLINE_ERROR.

You might want to alter the underline color to differentiate between
spelling and grammer mistakes. In code editors, it is convenient to
differentiate between errors and warnings.

Note that the GtkTextAppearance struct is public ABI and has no spare
room for new fields, so we are resorting to some tricky packing to store
the colors in the unused pixel field of the fg_color and bg_color structs.
This packing is accomplished by the macros in gtktextattributesprivate.h.

Signed-off-by: Christian Hergert <christian@hergert.me>

https://bugzilla.gnome.org/show_bug.cgi?id=402168
2015-03-22 22:55:29 -04:00
Matthias Clasen
beb19b389b GtkRange: Fix scroll wheel direction for horizontal ranges
The expected behavior here is that scrolling up goes towards
larger values, ie to the right. This matches e.g. volume
sliders in gnome-shell.

https://bugzilla.gnome.org/show_bug.cgi?id=737175
2015-03-22 22:55:17 -04:00
Matthias Clasen
539caa897a scrolled window: Use shift to modify scroll direction
It has been a long-standing request to interpret scroll events
with Shift held down as horizontal instead of vertical, and
some applications are already doing this on their own.

https://bugzilla.gnome.org/show_bug.cgi?id=132197
2015-03-22 22:55:06 -04:00
Matthias Clasen
a816ccd496 3.16.0 3.16.0 2015-03-22 21:50:55 -04:00
Matthias Clasen
3a2f5634ee Updates 2015-03-22 21:50:55 -04:00
Andika Triwidada
4cee145764 Updated Indonesian translation 2015-03-23 00:06:08 +00:00
Jiro Matsuzawa
14289cfb3e l10n: Update Japanese translation 2015-03-23 02:54:19 +09:00
Andika Triwidada
9c45420bd8 Updated Indonesian translation 2015-03-22 09:30:19 +00:00
Samir Ribic
b4c6fb6334 Updated Bosnian translation 2015-03-22 07:54:46 +00:00
Muhammet Kara
686fec77cb Updated Turkish translation 2015-03-21 21:29:43 +00:00
Inaki Larranaga Murgoitio
f5051cca83 Updated Basque language 2015-03-21 17:01:29 +01:00
Inaki Larranaga Murgoitio
6f748c31ca Updated Basque language 2015-03-21 16:57:50 +01:00
Matthias Clasen
56583717fe HighContrast: Fix a typo
Commit 0a39d7d9 introduced a selected_bg_color with a missing $
in front of it.
2015-03-20 20:50:55 -04:00
Gábor Kelemen
1d93297a3a Updated Hungarian translation 2015-03-20 23:20:39 +00:00
Rico Tzschichholz
7c63374093 mir: Fix version annotation, the mir-backend is available since 3.16 2015-03-20 20:18:44 +01:00
Jakub Steiner
0a39d7d91e HighContrast: fix insensitive and backdrop states
- checkboxes, labels, menus/modelbuttons and buttons were
  a mixed bag for :insensitive and :backdrop

https://bugzilla.gnome.org/show_bug.cgi?id=746188
2015-03-20 13:08:17 +01:00
Carlos Garnacho
139ed7409f wayland: Silence warnings on clipboard data sending cancellation
During copy/paste, it may be common that we receive several property changes
around the selection atom, this results in warnings when cancelling the previous
write attempt. We already honor the last request properly, so we should just
cancel silently.
2015-03-19 20:15:55 -04:00
Carlos Garnacho
e995c0d1bf wayland: Ensure we re-request the target if the fd changes
If we receive wl_data_source.target before .send, the target would already
be cached, but we'd take no action on the new fd.
2015-03-19 20:15:55 -04:00
Carlos Garnacho
9ec5b3f9a1 wayland: Don't accept the "TARGETS" target on the wl_data_offer
This is handled separately through the data already cached from the
wl_data_offer.offer handler, we can avoid this request entirely then.
2015-03-19 20:15:55 -04:00
Kjartan Maraas
223209ecaa Updated Norwegian bokmål translation. 2015-03-19 21:26:44 +01:00
Милош Поповић
8d6b19533f Updated Serbian translation 2015-03-19 13:23:10 +00:00
Carlos Garnacho
17b65d3c8a wayland: Fix thinko in wl_data_source.cancelled handler
The wl_data_source may be the clipboard's. Looking up the drag context in
order to get the display isn't going to fare well there. So, just use the
default display, and only look up the drag context when we know we need it.

https://bugzilla.gnome.org/show_bug.cgi?id=746386
2015-03-18 12:13:18 +01:00
Chao-Hsiung Liao
847a79c5f9 Updated Chinese (Taiwan) translation 2015-03-18 01:54:29 +00:00
Chao-Hsiung Liao
24db6d5518 Updated Chinese (Taiwan) translation 2015-03-18 01:51:13 +00:00
Matthias Clasen
00544e9090 HighContrast: Fix calendar selection
The selected day was not differentiated from other
days at all. Render it white on black instead.

https://bugzilla.gnome.org/show_bug.cgi?id=746369
2015-03-17 19:38:18 -04:00