Commit Graph

44076 Commits

Author SHA1 Message Date
Alexander Larsson
d29c48815c widget: get_widget_windows() don't modify window child lists
We can't modify the lists returned from gdk_window_peek_children,
instead use get_children().
2015-09-21 16:59:51 +02:00
Carlos Garnacho
b323252c14 widget: Make sure we only run controllers on realized widgets
The default event bubbling paths are prone to just running event controllers
even after the widget was potentially unrealized/destroyed in an event
handler callback, so bail out early if that's the case.

https://bugzilla.gnome.org/show_bug.cgi?id=755352
2015-09-21 15:55:33 +02:00
Carlos Garnacho
defa1e9c0d gesture: strengthen against destroyed windows
Bail out when we receive an event with an already destroyed window,
we'll hopefully get reset/cancelled afterwards on grab broken events.

https://bugzilla.gnome.org/show_bug.cgi?id=755352
2015-09-21 15:53:28 +02:00
Carlos Garnacho
e3d21accd0 window: cancel unclaimed sequences after GtkEventController::handle_event.
To GtkGesture machinery, if an event triggers a controller/gesture signal,
and gesture reset/cancellation as a result, the event has been managed
after all.

Commit e3bd895667 effectively changed the return value of the
wrapping gtk_event_controller_handle_event() function, which broke some
paths (eg. gtk_popover_button_press() wouldn't while the GTK+ grab was
active for this reason because the button press event was consumed early
on gtk_window_check_handle_wm_event()).

That patch is not too off-track given potential child widgets' behavior,
we want nonetheless to distinguish the denied vs cancelled paths here
(because GtkWindow itself relies on the GtkGesture behavior described in
the first paragraph on the begin_move/resize paths), so just reset
gestures after the event has already gone through the GtkEventController
so the return value is unaffected.
2015-09-21 14:32:44 +02:00
Baurzhan Muftakhidinov
6fe44d3320 Updated Kazakh translation 2015-09-21 12:09:49 +00:00
Chun-wei Fan
a3ba6f7475 MSVC Builds: Update Project GUIDs
This updates the Visual Studio Project GUIDs so that they don't repeat with
the GTK+-2.24.x ones, as the 3.x projects can be used with the 2.24.x in a
all-in-one solution file (such as when one wants to use a complete GTK+2
and GTK+3 stack when porting Windows applications from GTK+2 to GTK+3), and
each project in a solution file is expected to have an unique GUID.
2015-09-21 16:50:00 +08:00
Kjartan Maraas
5e51277c1f Updated Norwegian bokmål translation. 2015-09-20 22:19:19 +02:00
Ask Hjorth Larsen
3226f846a5 Updated Danish translation 2015-09-20 18:55:04 +00:00
Ask Hjorth Larsen
87e3fcd94d Updated Danish translation 2015-09-20 20:37:39 +02:00
Rūdolfs Mazurs
fc6c917a8d Updated Latvian translation 2015-09-20 21:19:32 +03:00
Anders Jonsson
620fec17d7 Updated Swedish translation 2015-09-20 17:32:36 +00:00
Matthias Clasen
e0d72c5376 test-simplify: Explicitly use bash
The script uses bash features, after all.

https://bugzilla.gnome.org/show_bug.cgi?id=755274
2015-09-20 12:18:35 -04:00
Jiro Matsuzawa
0d54d7d419 Updated Japanese translation 2015-09-21 01:03:34 +09:00
Ask Hjorth Larsen
7e05524009 Updated Danish translation 2015-09-20 14:47:36 +00:00
Josef Andersson
a39ccc0228 Updated Swedish translation 2015-09-20 10:09:25 +00:00
Tom Tryfonidis
054b92fe15 Updated Greek translation 2015-09-20 10:09:06 +00:00
Hajime Taira
60926c5744 Updated Japanese translation 2015-09-20 17:38:08 +09:00
Rafael Fontenelle
69e5aea58b Updated Brazilian Portuguese translation 2015-09-19 21:20:41 +00:00
Rafael Fontenelle
7093834d42 Updated Brazilian Portuguese translation 2015-09-19 18:17:16 +00:00
Timm Bäder
7f673122d5 gtkdemo: Plug leaks in listbox demo 2015-09-19 20:04:37 +02:00
Ask Hjorth Larsen
d6aafbe786 Updated Danish translation 2015-09-19 16:53:52 +00:00
Rafael Fontenelle
601909283a Updated Brazilian Portuguese translation 2015-09-19 12:26:08 +00:00
Felipe Braga
b008afdba0 Updated Brazilian Portuguese translation 2015-09-19 10:37:26 +00:00
Stas Solovey
183e71a950 Updated Russian translation 2015-09-18 22:05:39 +00:00
Stas Solovey
980d273c05 Updated Russian translation 2015-09-18 21:12:42 +00:00
Carlos Garnacho
f860afc92e Revert "gtkwidget: Ensure unrealization during event dispatching cancels gestures"
This reverts commit 13873d2c50.
2015-09-18 12:59:00 +02:00
Carlos Garnacho
bdb854d92c Revert "widget: Fix propagation of gesture cancellation on widget unrealize/destroy"
This reverts commit 3aaf730901.
2015-09-18 12:57:26 +02:00
Carlos Garnacho
9577266d34 Revert "widget: Cancel also denied sequences"
This reverts commit 63e255e7b5.
2015-09-18 12:57:04 +02:00
Carlos Garnacho
e3bd895667 window: Reset on unhandled gestures right away
Traditionally a sequence is set to GTK_EVENT_SEQUENCE_DENIED state when
it is to be ignored, which means it is dormant, but still managed by the
gesture (accounting, "denied" sequences still make "slots" in multitouch
gesture busy, etc...).

This gesture will run for all button presses and releases in the window
though when presses happen on the "window content" region, and we can't
account for every children to be as educated as setting the proper mask
on every window, or ensuring events will be propagated as they should.

In order to cater for this, just reset the gestures, we can live without
such accounting in these specific GtkGestureSingle gestures.

https://bugzilla.gnome.org/show_bug.cgi?id=754098
2015-09-18 12:51:22 +02:00
Benjamin Otte
15d043c5d2 gdk: Mark window surfaces as dirty before reading from them
We do not know what happened to this surface outside of GDK.
Especially for foreign windows, they will have been modified
by external applications.

So be on the safe side and tell Cairo to clear all its caches.

https://bugzilla.gnome.org/show_bug.cgi?id=754952
2015-09-18 02:06:01 +02:00
Muhammet Kara
3ac8a120fe Updated Turkish translation 2015-09-17 18:05:49 +00:00
Aurimas Černius
0573837fc8 Updated Lithuanian translation 2015-09-17 20:28:47 +03:00
Balázs Úr
0c44f5f1d6 Updated Hungarian translation 2015-09-17 14:02:09 +00:00
Chun-wei Fan
78d2db383d MSVC Builds: Make Re-use Comment in Autotools Module Clearer 2015-09-17 09:19:10 +08:00
Christian Hergert
e55a8b6aef pixelcache: use factor instead of margin
Instead of using a fixed size, use a factor of the surface size. This
helps in situations where animations of surrounding widgets are used
and cause a rapid rate of surface destroy/create cycles.
2015-09-16 11:24:29 -07:00
Claude Paroz
28484e3a39 Updated French translation 2015-09-16 19:55:25 +02:00
Carlos Garnacho
603ea3b3e7 wayland: Avoid running stale cursor animation timeouts
gdk_wayland_device_update_window_cursor() is inconsistently returning
TRUE/FALSE, despite the timeout being always replaced for new cursor
frames. This could end up in these timeouts being "leaked" and running
as long as the window has an animated cursor.

Fix this by making it really sure we return G_SOURCE_REMOVE, although
now we keep track of animation delays, so the timeout will be reused
for constant time animations.
2015-09-16 19:19:49 +02:00
Carlos Garnacho
63e255e7b5 widget: Cancel also denied sequences
It makes no sense to skip denied sequences here, the gestures are
still carrying out the accounting for these, which must be also put
to an end if we're possibly not receiving any further events from
this sequence.

https://bugzilla.gnome.org/show_bug.cgi?id=754098
2015-09-16 19:16:39 +02:00
Carlos Garnacho
3aaf730901 widget: Fix propagation of gesture cancellation on widget unrealize/destroy
At the time event_check_cancel_sequence_on_hierarchy() is called, the widget
has been already unparented. Given the widget itself is being destroyed,
cancellation on it is impending in one way or another, we still must
propagate cancellation across all parents, so retrieve it early before
possible widget destruction.

https://bugzilla.gnome.org/show_bug.cgi?id=754098
2015-09-16 19:14:10 +02:00
Carlos Garnacho
5b6360ebb2 scrolledwindow: Set the scrollbar as "over" immediately during slider grabs
Otherwise it's attempted through a timeout, which gets cancelled early after,
and the slider disappears after a while with no mouse activity despite the
ongoing implicit grab.

Once the grab is finished, check_update_scrollbar_proximity() will be called
again on both scrollbars, and the fade out animation will be triggered as a
result.

https://bugzilla.gnome.org/show_bug.cgi?id=754745
2015-09-16 19:14:10 +02:00
Matthias Clasen
450056cdfe file chooser: Avoid a crash
When right-clicking in an empty folder, you should get a context
menu, not a crash. The code for positioning the popover was not
handling the eventuality of no row under the pointer. Just position
the popover right at the click location in this case.

https://bugzilla.gnome.org/show_bug.cgi?id=755021
2015-09-16 07:41:02 -07:00
Matthias Clasen
ee8eb91523 widget path: Don't leak sibling paths 2015-09-15 19:33:49 -04:00
Matthias Clasen
28c9f3d5da Plug another memory leak 2015-09-15 19:33:49 -04:00
Matthias Clasen
3db98fe23c Plug a memory leak 2015-09-15 19:33:49 -04:00
Arash Mousavi
e14990ba57 Update Persian translation 2015-09-15 21:15:46 +04:30
Arash Mousavi
283ac9dc98 Update Persian translation 2015-09-15 21:09:21 +04:30
Alexander Larsson
d8d0188e86 css shadows: Cache blured masks for the corners of outset shadows
A lot of time was spend rendering the shadows on windows with CSD, in
particular the corner pieces, since they are the largest parts. This
patch catches this particular case and caches the pre-rendered blur
masks.

This makes the shadow code go from 25% to 8% of the time when resizing
gtk3-demo.
2015-09-15 16:05:50 +02:00
Alexander Larsson
f31e20247f css shadows: Break out side & corner shadows into helper functions
This changes nothing, but makes the code a bit easier to read
2015-09-15 16:05:50 +02:00
Timm Bäder
9a33e531c5 ui: Remove border from dialogs again 2015-09-15 14:07:47 +02:00
Chun-wei Fan
9a4990f4ca MSVC Builds: "Add" Visual Studio 2015 Projects
"Add" Visual Studio 2015 projects by what we did before: Copy the Visual
Studio 2010 project files and replace the items in there as needed, as
the formats of the 2010 and 2015 projects are largely the same.
2015-09-15 19:59:14 +08:00