summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* wip: subsurface window typewip/matthiasc/subsurfaceMatthias Clasen2018-01-289-64/+151
| | | | | | | | | Make subsurfaces for X11 as follows: - toplevel - override-redirect - moves with the parent Attempt to use subsurfaces for popovers again This does not quite work yet
* inspector: Actually call the pick() vfunc when pickingTimm Bäder2018-01-261-1/+1
| | | | | Otherwise, overridden pick vfuncs don't work and we e.g. pick widgets scrolled away in a viewport.
* entry: Remove unused struct membersTimm Bäder2018-01-261-2/+0
|
* menu: Simplify popup_at_rectTimm Bäder2018-01-261-5/+1
| | | | | No need to keep a separate current_event variable around, we don't use it anyway.
* gdk: Stop referring to ::key-press/release-eventMatthias Clasen2018-01-241-5/+2
| | | | | These signals are going away, don't mention them in the docs.
* entry completion: Stop using key-press/release-eventMatthias Clasen2018-01-241-25/+12
| | | | We can use the existing ::event handler for this.
* gsk: Add test case for last commitTimm Bäder2018-01-233-0/+1
|
* gl renderer: Fix outset shadow outline transformTimm Bäder2018-01-231-12/+5
| | | | This fixes hidpi blurred outset shadows
* Enforce UTF-8 encoding when opening C filesEmmanuele Bassi2018-01-232-2/+2
| | | | | | | | 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
* Widget: Don’t call reset() on NULL EventControllerDaniel Boles2018-01-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Update Esperanto translationGNOME Translation Robot2018-01-221-1517/+1378
| | | | (cherry picked from commit 814c55d473c6a7ab9f930421aad5612a351ba68d)
* GtkGestureMultiPress: check event state before emiting released signalJuan Pablo Ugarte2018-01-221-1/+3
| | | | | Fix bug 771986 "Inconsistent 'row-activated' signal emission before \ drag'n'drop, 'activate-on-single-click'=TRUE, 'reorderable'=TRUE"
* widget: Only initialize bounds rect if necessaryTimm Bäder2018-01-211-9/+16
| | | | | We only use the graphene_rect_t version of the offset_clip for the fallback cairo nodes.
* vulkan: Fix release buildsTimm Bäder2018-01-211-1/+4
|
* combobox: Remove some unneeded includesTimm Bäder2018-01-211-4/+0
|
* Set GDK_WINDOW_STATE_TILED if any edge is tiledSimon McVittie2018-01-202-7/+21
| | | | | | | | | | | 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
* display-x11: Unset tiled state if _GTK_EDGE_CONSTRAINTS is supportedGeorges Basile Stavracas Neto2018-01-201-4/+2
| | | | | | | | | | | | | 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
* entrycompletion: Realize toplevel before attempting a grabTimm Bäder2018-01-191-0/+1
| | | | | | 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.
* tests: Remove some unneeded gtk_widget_show callsMatthias Clasen2018-01-195-36/+1
| | | | Widgets are visible by default now.
* iconview: Fix updates with filter modelsMatthias Clasen2018-01-191-0/+6
| | | | | | | 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.
* Add a test for ::row-changed vs node refsMatthias Clasen2018-01-191-0/+71
| | | | | | | | 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.
* gtkwindow: Disconnect GdkSeat::device-removed callback on finalizeCarlos Garnacho2018-01-191-0/+4
| | | | Otherwise dangling callbacks may lead to crashes.
* gl renderer: Fix shadow node child offsetTimm Bäder2018-01-191-5/+6
| | | | | | 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.
* testsuite: Add another gl renderer test caseTimm Bäder2018-01-193-1/+2
|
* linkbutton: Only set widget cursor onceTimm Bäder2018-01-191-14/+1
|
* inspector: Allow picking insensitive widgetsTimm Bäder2018-01-193-6/+53
| | | | | The default gtk_widget_contains/gtk_widget_pick don't consider insensitive widgets.
* csswidgetnode: Avoid some unnecessary workTimm Bäder2018-01-191-0/+3
| | | | The later code would just ref both styles and not do anything else.
* widget-factory: Fix some layout issuesTimm Bäder2018-01-191-1/+2
| | | | | | 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.
* textview: Remove some stray debugging outputTimm Bäder2018-01-191-3/+0
| | | | Leftover from 7046463b880c79b227594a2b35a6c625119d286e
* Simplify all ui files againMatthias Clasen2018-01-1846-2061/+942
| | | | Now even simpler!
* builder-tool: Try harder to find typesMatthias Clasen2018-01-181-2/+7
| | | | | If g_type_from_name fails, try gtk_builder_get_type_from_name before giving up. This fixes cases like GtkPrinterOptionWidget.
* window: Ignore gtk_window_close calls from close-request handlersTimm Bäder2018-01-181-0/+12
|
* widget: Always assign values to out parameter in translate_coordinatesTimm Bäder2018-01-181-1/+7
| | | | | safe guard against people using the returned coordinate values without checking the return value of gtk_widget_translate_coordinates.
* widget: Initialize a local variableTimm Bäder2018-01-181-1/+1
| | | | | We will later pass this variable on to some other functions, so be safe against them using the value.
* aboutdialog: Only close on delete eventsTimm Bäder2018-01-181-4/+8
| | | | Clicking on the Credits button should not close the dialog.
* fontchooswerwidget: Center spinbutton next to scales verticallyTimm Bäder2018-01-181-0/+2
|
* gl renderer: Render GL textures upside downTimm Bäder2018-01-181-4/+31
| | | | | These come from an FBO so we need to flip the texture coords on the y axis, just like we do everywhere else.
* Revert "inspector: Stop adding event controllers to the object tree"Matthias Clasen2018-01-171-0/+23
| | | | | | | This reverts commit 8f3cb2658a79d20912b6f2ec96bc7e6bbdaeb067. This didn't quite work out, since being in the object tree is a prerequisite for showing up in the property editor.
* Document new texture apiMatthias Clasen2018-01-172-0/+35
|
* Use the new api to release resourcesMatthias Clasen2018-01-171-0/+4
| | | | | When we unrealize a GL area with outstanding textures, call gdk_texture_release_gl on them to avoid later crashes.
* Add a way to release GL resourcesMatthias Clasen2018-01-172-6/+69
| | | | | | | | | | 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.
* glarea: Drop the dispose vfuncMatthias Clasen2018-01-171-12/+0
| | | | | | | | 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
* glarea: Always delete textures on unrealizeMatthias Clasen2018-01-171-7/+3
| | | | | We need to make the context current for deleting textures as well, so just do it unconditionally.
* glarea: Avoid a crashMatthias Clasen2018-01-171-2/+5
| | | | We must only delete the texture if it is not NULL.
* gdkgears: add a way to remove gearsMatthias Clasen2018-01-171-1/+16
| | | | | This is needed to test the GL resource cleanup code paths.
* glarea: Add a pool for GL texturesMatthias Clasen2018-01-171-39/+151
| | | | | | | 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.
* inspector: Don't leak recordingsMatthias Clasen2018-01-171-0/+5
| | | | | | 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.
* rendernodeimpl: Fix a crashTimm Bäder2018-01-171-1/+1
| | | | We may get a NULL renderer here.
* applicationwindow: Fix measure implementationTimm Bäder2018-01-171-1/+2
| | | | Really calculate the menubar height, not the width.
* sizerequest: Fix for_size adjustmentTimm Bäder2018-01-171-17/+13
| | | | | We need to pull the proper size from the size request cache and adjust it accordingly.