| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Following a similar change in GLib a while ago.
'bla' may by stupid, but it looks less dumb than `bla'.
|
| |
|
| |
|
|
|
|
|
| |
Remove widgets from their size groups in dispose, without connecting
to ::destroy. The signal handler is not necessary.
|
|
|
|
|
|
| |
There is no particular reason why we should have to ref the
widgets if they are in a size group - we are not reffing them
in the simple case either.
|
|
|
|
|
|
|
| |
Instead of handling the horizontal and vertical peers separately
(and often, duplicatively), collect all peers in one go. At the
same time, avoid creating and destroying hash tables more often
than necessary.
|
|
|
|
| |
It can be long, and we don't want the inspector to grow excessively.
|
| |
|
| |
|
|
|
|
| |
Avoid recalculation the entire label layout when nothing changed.
|
|
|
|
|
| |
Nobody outside gtkscale.c is using these functions, so make
them static.
|
|
|
|
|
| |
GtkAssistant is just a regular composite widget nowadays,
no need to manually queue resizes.
|
|
|
|
| |
Use g_set_object for setting the frame clock.
|
|
|
|
|
|
|
| |
The visibility of the 'no apps' placeholder is managed by
the dialog, it should not be affected by gtk_widget_show_all.
https://bugzilla.gnome.org/show_bug.cgi?id=748080
|
|
|
|
|
|
|
|
|
|
| |
At the time we populate the model "initially" in constructed(),
it has already been filled and cleared a couple of times (we do
that every time one of the construct properties gets set). So
we can't assume that the model is empty, and have to clear it
first. Otherwise, we add duplicates to the list.
https://bugzilla.gnome.org/show_bug.cgi?id=748080
|
|
|
|
| |
Fix a GtkPlacesView crash in the test suite, _again_.
|
| |
|
|
|
|
|
| |
We can't modify the lists returned from gdk_window_peek_children,
instead use get_children().
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
gestures"
This reverts commit 13873d2c507783042df55ad2c48f37a346121fd0.
|
|
|
|
|
|
| |
unrealize/destroy"
This reverts commit 3aaf730901d04a3e4a102cb95e769a48ec5027e3.
|
|
|
|
| |
This reverts commit 63e255e7b5326888e83bf84f1147012938c81000.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This changes nothing, but makes the code a bit easier to read
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to rename the projects so that when these projects are added
into an all-in-one solution file that will build the GTK+ 2/3 stack,
the names of the projects will not collide with the GTK+-2.x ones,
especially as GTK+-2.x and GTK+-3.x are done to co-exist on the same
system. This is due to the case that the MSVC projects are directly
carried over from the GTK+-2.x ones and was then updated for 3.x.
We still need to update the GUIDs of the projects, so that they won't
conflict with the GTK+-2.x ones.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the common automake module from the previous commit in the
Makefile.am's, which means that the Makefile.am's in gdk/ and gtk/ can be
cleaned up as a result. As a side effect, the property sheet that is used
to "install" the build results and headers can now be generated in terms of
the listing of headers to copy during 'make dist', where we can acquire
most of the list of headers to "install", so that we can largely avoid the
situation where the property sheet files are not updated in time for this,
causing missing headers when this build of GTK+ is being used.
Also use the Visual Studio Project file generation for the following
projects:
gtk3-demo
gtk3-demo-application
gtk3-icon-browser
gdk-win32
gdk-broadway
gail-util
So that the maintenace of these project files can be simplified as well.
https://bugzilla.gnome.org/show_bug.cgi?id=681965
|
|
|
|
|
|
| |
_gtk_container_queue_resize() is a private function and probably
shouldn't have even been used in 1999 when this call was originally
added.
|
|
|
|
|
|
| |
This allows selecting newly added random objects.
https://bugzilla.gnome.org/show_bug.cgi?id=754987
|
|
|
|
|
|
|
| |
This reverts commit 9ebebd48b00092446cdbeee03b49f149725c9868.
This change broke the templates testcase, and I don't have time
to poke at why, right now.
|
|
|
|
|
| |
We were notifying can-focus when can-default changes.
Unit tests save the day.
|
|
|
|
|
|
|
| |
This ensures the animation is cancelled if the child widget happens to
GDK_EVENT_STOP scroll events.
https://bugzilla.gnome.org/show_bug.cgi?id=745315
|
|
|
|
|
| |
This interferes with a well-loved firefox shortcut, and we
are more interested in a gtk3 firefox than in legacy keybindings.
|
|
|
|
|
|
|
| |
The GtkEventController event mask is private, and set early by GtkGesture
implementations. Being this private data, there is no corresponding
property, so this code is a no-op, there is just no need to listen to
changes there.
|
|
|
|
|
|
|
|
|
|
|
|
| |
We use to rely on grab broken events for most of the event sequence
lifetime, this breaks though on GDK_BUTTON_RELEASE/GDK_TOUCH_END, as there's
no longer a grab at that time.
For these cases (and all others where there's destroy/unrealize calls
involved during event dispatching), catch this on the late
WIDGET_REALIZED_FOR_EVENT calls on widget event handling functions.
https://bugzilla.gnome.org/show_bug.cgi?id=754098
|
|
|
|
|
|
|
| |
This "cancel sequence across widget hierarchy" code will be useful
in other places, so take it out to a separate function.
https://bugzilla.gnome.org/show_bug.cgi?id=754098
|
|
|
|
|
|
|
| |
This reverts commit 4e56dfad0e33187d019c44ecfb5e7e99cf2da535.
It turns out that GtkToolButton is playing games with the class
pointer inside instance_init, so leave it alone.
|
|
|
|
|
|
| |
These classes have different defaults for ::expand than GtkBox,
which is not reflected in the declared default, so we have to
blacklist it.
|
|
|
|
| |
This avoids all the overhead of signal emissions when it is not used.
|
|
|
|
|
|
|
|
|
| |
This avoids a lot of overhead in the common case where a signal
is not connected and we're just using the class vfunc (which is true
for all in-libgtk widgets). Additionally it makes backtraces in
debuggers and profiles much much nicer to look at.
https://bugzilla.gnome.org/show_bug.cgi?id=754986
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These days exposure happens only on the native windows (generally the
toplevel window) and is propagated down recursively. The expose event
is only useful for backwards compat, and in fact, for double buffered
widgets we totally ignore the event (and non-double buffering breaks
on wayland).
So, by not setting the mask we avoid emitting these events and then
later ignoring them.
We still keep it on eventbox, fixed and layout as these are used
in weird ways that want backwards compat.
|