Commit Graph

2469 Commits

Author SHA1 Message Date
Michael Natterer fb078df6fb Bug 704432 - Warning occurs when using a tool with a GimpToolGui
gimp_tool_gui_update_buttons(): set the alternative order on the
buttons only if it was already provided.
2013-07-23 08:55:13 +02:00
Jehan 816f651b82 Bug 675436 - Tabs always present when docks shown and absent when docks hidden
The main change is that even with only 1 image in single window mode,
there is now a tab.
Also whatever the number of images when you hide docks with Tab, no tabs
are shown.
2013-07-22 01:19:32 +09:00
Michael Natterer de8dc1c96a app: simplify config access in GimpImageWindow
We have a "gimp" member, no need to go via factory->context->gimp.
2013-07-20 15:25:33 +02:00
Michael Natterer 5b39be5605 Bug 679195 - Foreground Select Tool Mask Inverted
gimp_display_shell_render(): invert the mask so it masks what is *not*
the foreground object.
2013-07-15 01:57:00 +02:00
Jehan 7e513faa50 Bug 703787 - Crash during switch from multi to single window mode
Shells can now travel from one window to another. Canvas position code
should therefore not keep track of the image window for a specific shell
but must use whatever is the current window for this shell (even though
it may be a different one before and after the size-allocate).
This also partly fixes some positioning issue during mode switch.
2013-07-13 09:15:21 +09:00
Jehan 112fa53730 Bug 703736: when switching from multi to single window mode, tab order is lost. 2013-07-08 09:34:09 +09:00
Michael Natterer 31e9cc2ad9 Bug 702369 - foreground selection doesnt work with image precision >8 bit
This removes the obsolete check which makes the tool fail from
gimp_display_shell_set_mask(). Also change the foreground select tool
and the display mask from using GimpChannel to GeglBuffer, because
that's what it needs, simply buffers. Most changed files simply newly
include <gegl.h> because a GeglBuffer appeared in two headers.
2013-06-22 22:26:46 +02:00
Téo Mazars 7a0f8ad78e Bug 701410 - Small artifacts appear when performing a selection
Do not allow negative radius.
2013-06-21 20:17:01 +02:00
Michael Natterer 6ad70e33e6 app: gimp_display_shell_selection_init(): fix declaration after statement 2013-06-21 14:37:56 +02:00
Mikael Magnusson cfd360aa03 app: g_return_if_fail (shell_selection) on the public API in gimpdisplayshell-selection.c, move free null check to gimpdisplayshell's dispose() 2013-06-16 20:21:32 +02:00
Michael Natterer 934edb75ab app: redo commit "make sure overlay widgets are keyboard navigatable"
Letting just tab presses bubble up when an overlay canvas child didn't
handle a key event isn't enough. Instead, let all key presses and
releases bubble up if the canvas itself doesn't have the focus.
Read: don't make assumptions.
2013-06-08 17:27:05 +02:00
Michael Natterer 25cc5922b6 app: add gimp_tool_gui_set_focus_on_map() and use it 2013-06-08 15:34:23 +02:00
Michael Natterer 2d68b1d4f9 app: make sure overlay widgets are keyboard navigatable
Tab key events are not handled by the widget itself, they are supposed
to bubble up until they hit the generic keyboard navigation code
that knows about the focus chain, therefore:

gimp_display_shell_canvas_tool_events(): if an overlay widget is
focussed, don't handle Tab events and toggle dock visibility. Instead,
simply bail out with FALSE so the event reaches te keyboard navigation
code.

Also treat GDK_KEY_KP_Tab like GDK_KEY_Tab all over the place.
2013-06-08 15:27:14 +02:00
Michael Natterer 1982cf1db7 app: add gimp_tool_gui_set,get_overlay()
which allow to toggle embedded and dialog style gui.
2013-06-08 01:32:34 +02:00
Michael Natterer ad8d12ed69 app: add "response" signal to GimpToolGui
and connect to it instead of to gimp_tool_gui_get_dialog()'s signal.
One more step towards on-the-fly embedding/detaching.
2013-06-07 23:45:11 +02:00
Michael Natterer e7bb2805c2 app: keep around all settable stuff in GimpToolGui
so the gui can be recreated when switching from embedded to detached
or vice versa.
2013-06-07 23:20:20 +02:00
Michael Natterer 0afa7d30f0 app: add gimp_tool_gui_set_description() and use it 2013-06-07 17:01:39 +02:00
Michael Natterer 9a811d276e app: add gimp_tool_gui_set_alternative_button_order() and use it
Also make some of GimpToolGui's memory management proper, there was
no leak but it needs to be proper in order to add runtime switching
between dialog and overlay.
2013-06-07 15:18:24 +02:00
Michael Natterer 170b987b99 app: put tool overlays into the canvas upper-right corner 2013-06-07 12:21:38 +02:00
Michael Natterer 88387d6e8d app: remove the "shell" parameter from gimp_tool_dialog_new() and gui_new() 2013-06-07 12:19:42 +02:00
Michael Natterer 3def3a1ade app: raise the dialog if already visible in gimp_tool_gui_show() 2013-06-07 12:12:28 +02:00
Michael Natterer 60b7dc15f1 app: add gimp_tool_gui_set_default_response() 2013-06-07 11:39:24 +02:00
Michael Natterer 761ddf0835 app: add gimp_tool_gui_set_response_sensitive() 2013-06-07 11:02:42 +02:00
Michael Natterer ebde92ccb6 app: allow a NULL shell in gimp_tool_dialog_set_shell() 2013-06-07 10:26:34 +02:00
Michael Natterer 2876e43d00 app: add new helper object GimpToolGui
which delegates a tool's dialog to either a GimpToolDialog or an
embedded GimpOverlayDialog.
2013-06-07 10:24:51 +02:00
Michael Natterer ec786816bb */Makefile.am: merge INCLUDES into AM_CPPFLAGS
automake-1.13 finally warns about this anachronism.
2013-06-05 20:48:37 +02:00
Michael Natterer a078ca3f5f app: change serialization of the right docks width in SWM (again)
Use "right-docks-width" and always a positive value instead of
"right-docks-position" (as opponsed to "left-docks-width", that
distinction is a GtkPaned implementation detail and does not belong
into a config file). Parse all old values too. Also fix a glitch in
the deserialization code which might fix bug #700147.
2013-05-13 00:00:57 +02:00
Jehan 6008c2019b Bug 664584: WM DELETE event in single window mode is synonym to file-quit.
In multi-window mode, closing an image window is only meant to close
the current image (unless this is the last empty window).
In single window mode though, you are meaning to close the whole program.

Thanks to Niels Martignène for the original patch.
2013-05-12 04:56:15 +09:00
Massimo Valentini 8940b25c6d app: don't crash when adjusting quality during an export to jpeg
with preview enabled
2013-05-04 18:13:19 +02:00
Michael Natterer 5bdadcc17d app: whitespace fix in gimpcanvaspen.h 2013-04-30 17:18:28 +02:00
Michael Natterer c7879266d4 app: fix GimpDisplayShell mask drawing, again 2013-04-29 23:15:37 +02:00
Michael Natterer 87584d2f82 Bug 699100 - Move tool: space-bar inhibits function of Move tool
Don't try to switch to the move tool if the move tool is already active.
Also never bail out early from gimp_display_shell_space_pressed() so we
don't end up in an inconsistent state.
2013-04-28 15:28:18 +02:00
Michael Natterer 77e70f3550 app: remove the manual double buffering from the canvas
It is messing with overlay widgets. Is was effectively disabled since
cairo tool drawing was introduced, but not completely.
2013-04-28 14:56:07 +02:00
Michael Natterer 915b0f3eec app: re-enable and port the display shell mask rendering code
for the ported foreground select tool. Untested!
2013-04-26 10:33:10 +02:00
Michael Natterer 89081075f3 app: don't subtract the offset twice in zoom_xy() and transform_xy() 2013-04-25 09:13:30 +02:00
Michael Natterer 5d0450e4ea app: draw guides across the entire canvas also when rotated 2013-04-25 09:12:35 +02:00
Michael Natterer 37d589335f app: consolidate all transform API in gimpdisplayshell-transform.[ch]
Added complete API for zoom/unzoom (scale and scroll) and
rotate/unrotate, with the same set of functions as the existing
transform/untransform. Moved some special case functions to the
namespaces they belong.
2013-04-25 00:29:58 +02:00
Michael Natterer aea94211b1 app: add an unrotated canvas item group to GimpDisplayShell
and put the software cursor and the tool progress there.
2013-04-24 00:01:01 +02:00
Michael Natterer a4d8ce6d11 app: update the rotate dialog's spinbutton when the view is rotated 2013-04-22 23:18:27 +02:00
Michael Natterer 3643551280 Bug 697530 - zoom during mouse-pan focuses on wrong location
Block all key events while middle-mouse panning, to prevent
accelerators from being invoked.
2013-04-21 20:00:28 +02:00
Michael Natterer 3972da5256 app: add signal GimpDisplayShell::rotated and use it to update the menu 2013-04-21 03:15:22 +02:00
Michael Natterer b4a2cf9432 app: remove useless real_new_scale variable from gimp_display_shell_scale() 2013-04-21 03:14:36 +02:00
Michael Natterer ca9a9fb498 app: reset the rotation to zero when the shell is emptied
so the next image doesn't appear rotated.
2013-04-21 02:46:17 +02:00
Michael Natterer 81e293cb06 app: don't leak the rotate transform matrices when destroying the shell 2013-04-21 02:40:41 +02:00
Michael Natterer ee2e5fb517 app: fix image rendering atifacts in rotated views
- stroke around the drawn area to work around the impossibility of
  tiling antialiased stuff.
- don't use the display xfer stuff because if we overdraw we must
  not have anything in the source pattern outside the drawn region
2013-04-21 02:10:36 +02:00
Michael Natterer e98013af34 app: make the rotate angle spinner wrap around, and add a reset button 2013-04-20 23:54:55 +02:00
Michael Natterer 977a194923 app: add a rotate dialog to rotate to exact degrees 2013-04-20 23:22:14 +02:00
Michael Natterer 855fa3aa4a app: add gimp_display_shell_rotate() and rotate_to() 2013-04-20 22:14:30 +02:00
Michael Natterer 296284fe38 app: rotate cursors that indicate a direction with the view
- reorder enum GimpCursorType to be in angular order
- add gimp_cursor_rotate(cursor_type, angle)
- rotate the shell's cursors automatically in the setter
2013-04-20 17:21:01 +02:00
Michael Natterer 3a75ec3283 app: keep the view rotate angle within [0..360[ 2013-04-20 17:20:18 +02:00