Remove files in /tmp after tests so that other users on the same
machine (like buildbots) also can run make distcheck without getting
"can't overwrite file" errors.
Add a configure check for xvfb-run and run tests with that if
available. This makes it possible to easily run UI tests in headless
environments such as a server that does nightly builds; one just needs
to make sure xvfb-run is available.
Eventually we might want to be more strict, but I think it will be
fine to depend on UI headers in non-UI tests. Non-UI tests just means
we don't need to initalize the UI.
Make gimp_ui_get_ui_manager() a global test util and make
gimp_test_utils_create_image() return void, clients can reach the new
image and display from the Gimp instance.
Increase GIMP_UI_WINDOW_POSITION_EPSILON, we had a nightly build that
failed with
assertion failed ((int)abs (y_before_hide - y_after_show) <=
GIMP_UI_WINDOW_POSITION_EPSILON): (21 <= 10)
so appearently we need to be more liberal.
Add a "pre-clicked" signal to GimpCellRendererViewable that can
prevent a selection from happening. Move the Alt-Click code in
GimpLayerTreeView to this signal and if a layer is Alt-Clicked, don't
go ahead and make the layer active. Also add a test for this use case.
Remove two GIMP initializations by putting
"gimp-window-management/window_roles" into "gimp-ui" and removing
"gimp-layer-groups/add_layer" which we already have in
"gimp-layers". And we can have layer group tests there too.
Add a regression test that makes sure its possible to Alt-Click on a
layer in the layers dockable to create a selection from it.
Change sessionrc to have only one page in the GimpDockbook to
avoid problems with gtk_test_find_widget().
When we are going to open new image windows, unset the transient
window. We don't need it since we will use gdk_window_raise() to
keep the dialog on top. And if we don't do it, then the dialog
will pull the image window it was invoked from on top of all the
new opened image windows, and we don't want that to happen.
Patch heavily inspiried by hack from Massimo Valentini.
Also add a manual test case for the fix. (I don't think there is GTK+
API to automate it).
Make gimp_ui_synthesize_plus_key_event() generic and implement it with
gdk_test_simulate_key(). We can't use gtk_test_widget_send_key()
because its input window logic doesn't seem to work very well.
Apparently, $(abs_top_srcdir) and $(abs_top_builddir) aren't set as
shell variables any longer. Instead, use @abs_top_srcdir@ and
@abs_top_builddir@ so they get substituted at configure time.
Introduce a few pixels of error margin in sessionrc, otherwise the
tests are too fragile, widgets have a tendency to change size a bit
and window managers have a tendency to move windows a bit.
Still needs more work, should probably do the same on book positions
too...
Remove the dockable drag handle and move the menu button it hosts up
to the GimpDockbook, with the gtk_notebook_set_action_widget() API.
This frees up quite a lot of screen estate which can be used for the
content of dockables instead.
Add support for a new type of Tab Style called 'Automatic'. This tab
style makes the GimpDockbook use the biggest actual tab style it can
for its auto tab style dockables, based on its widget allocation.
The tab style candidates for auto tab style are "Status + Blurb",
"Status + Text" and "Status". A docked widget can also say that it
wants to use "Icon" instead of "Status" for its auto tab style. The
'Tool Options' dockable does this. This is to be as backwards
compatible with the old tab style setup, we make 'automatic' the
default everywhere.
We have quite a bit of dependency to internal layout code in
GtkNotebook, but the current code should be pixel perfect and rather
complete.
Also add a basic regression test.
We need to be able to pass a GimpUIManager to
gimp_dialog_factory_dialog_new(), so make that possible. Also make
sure to set ui_manager in gimp_dialog_factory_dialog_new_internal()
when we create both a dock window and a dock, so tooltips works in
toolboxes created from scratch.