Commit Graph

2243 Commits

Author SHA1 Message Date
e03a25caeb app: add virtual function gboolean GimpCanvasItem::hit()
and implement it for GimpCanvasHandle and GimpCanvasGroup.
2011-03-28 18:54:02 +02:00
b529d556fa app: add and use more GimpCanvasItem setters 2011-03-28 15:15:43 +02:00
d96091d514 app: port GimpMagnifyTool away from draw_tool_pause()/resume() 2011-03-28 12:22:29 +02:00
accc12a3ca app: change GimpCanvasItem setters to take GimpCanvasItem*
not GimpCanvasLine* etc. We keep them around as items, and their
constructors return items, and it's getting more code anyway when
porting away from pause/resume, so let's keep the casting minimal at
least.
2011-03-28 12:20:36 +02:00
aa5d2f8082 app: port GimpBlendTool to pause()/resume()-less drawing
Instead, keep around the created GimpCanvasItems, and update them when
the blend coordiates change. Add setters to GipmCanvasLine and
GimpCanvasHandle which take care of calling begin_change() and
end_change() on the items around the change, so thes invalidate
properly.
2011-03-28 11:08:40 +02:00
eb4f01039a app: add utility function gimp_transform_polygon_is_convex()
and use it in GimpTransformTool and GimpCanvasTransformPreview.
2011-03-27 22:04:33 +02:00
8a09fd1f34 app: refactor GimpCanvasTransformPreview to not know GimpTransformTool any more
Instead, add drawable, transform, x1, y1 etc. properties. This is
cleaner and has the nice side effect of not leaving artifacts, because
the changed state of the transform tool doesn't affect the extents
calculation any longer.
2011-03-27 21:19:38 +02:00
1d9f95ac98 app: code cleanup and streamlining in GimpCanvasTransformPreview 2011-03-27 16:54:21 +02:00
f09be52c1b app: turn the transform preview into a GimpCanvasItem
And remove all the complicated handling code entirely. This makes
GimpTransformTool a lot less complex. As a nice side effect, the
preview is now always 100% in sync with the grid and handles.
2011-03-27 16:40:41 +02:00
a5549ece52 app: don't pause/resume the shell (and the active tool) around expose()
This was only there to make sure XOR drawing works, and is now
complete overhead since cairo drawing is done *in* expose, and not in
some hack around it.
2011-03-25 21:28:21 +01:00
4149452279 Bug 643155 - Tool dialogs don't stay on top of the image window
Change the "GtkWidget *parent" parameter of GimpToolDialog to
"GimpDisplayShell". Also add API gimp_tool_dialog_set_shell() so an
existing dialog can be used on different images. Make sure the dialog
closes when the shell is unmapped (like when switching tabs in SWM),
and make the dialog transient for the toplevel GimpImageWindow.

Change all tool dialog users accordingly.
2011-03-20 18:15:42 +01:00
1f5e180334 app: move GimpToolDialog from app/widgets/ to app/display/
Zero logic changes yet, just a rename.
2011-03-20 13:34:03 +01:00
166c76b62d Bug 630069 - In single-window mode, canvas badly positioned in all successive tabs
The problem is that gimp_image_window_keep_canvas_pos() connects a
signal handler too early, with data not yet valid, the handler is
executed after the canvas position is computed correctly and so
invalid data overrides the valid.

Checks the return value of gtk_widget_translate_coordinates() to avoid
connecting handlers when their execution is considered harmful.
2011-03-09 07:34:27 +01:00
fcfb7cf160 Use the new g_[s]list_free_full() instead of foreach() and free() 2011-03-07 17:11:28 +01:00
7a47e36c63 app: fix "grabbing" of extended devices
If grabbing fails with GDK_GRAB_ALREADY_GRABBED (which it always
does), simply silently ignore that and assume the grab succeesed
anyway (puke).
2011-03-03 22:38:50 +01:00
ebe4b4102f Bug 643587 - Opening two xcf with vectors crashes gimp
Fix the crash and the warning pointed out in the bug.
2011-03-01 17:05:58 +01:00
145db8d57c Bug 639305 - Image tabs pushes toolbox to left
Set the notebook to scrollable. Not a final fix, but enough to fix the
immediate problem.
2011-03-01 00:56:23 +01:00
ee844c6395 app: GimpDeviceManager refactoring part two
- change gimp_devices_get_list() to gimp_devices_get_manager()
- remove gimp_devices_get_current()
- let GimpDeviceStatus connect to the manager's "notify::current-device"
  directly and remove device status updating code from gui.c
- cleanup in gimpdevices.c
2011-02-28 14:37:00 +01:00
d136b9f7d2 app: redo the last commit and call proximity_in() at all logical places
Keep the comment at the place where calling it isn't immediately
obvious, and add checks to proximity_in() and out() so they bail out
when the proximity state is already set correctly.
2011-02-27 12:16:51 +01:00
75add92218 app: add utility functions proximity_in() and proximity_out()
and use them instead of manually setting proximity. Also add comments
about why we call the proximity functions where we call them (instead
of calling them where it seems more logical).
2011-02-27 12:08:09 +01:00
955fecc3cd app: replace a wrong G_LIKELY() by G_UNLIKELY() in tool_events() 2011-02-27 11:08:36 +01:00
85af450b3c app: forgot to #include "widgets/gimpwidgets-utils.h" 2011-02-24 16:54:39 +01:00
c11b0d2a79 app: move tool event debug output to a utility function
to reduce clutter in gimp_display_shell_canvas_tool_events().
2011-02-24 12:34:57 +01:00
ef905d4b9e app: pick another GDK_KEY_foo key name commit from gtk3-port 2011-02-24 03:29:12 +01:00
de8a07703a app: name display scrollbar callbacks like the signal they are handling
instead of calling them all foo_update() which means absolutely nothing.
Also rename nav_button_press() to navigation_button_press().
2011-02-24 02:15:53 +01:00
3c0453b3c0 app: clean up static functions in the new tool-events.c file 2011-02-24 02:15:53 +01:00
c09ad998a4 app: split tool event handling out into an own file
it was simply getting too hairy in the callbacks.c file.
2011-02-24 02:15:53 +01:00
09947733d6 app: use some of the new GDK_KEY_foo #defines from GTK+ 2.22
and use them in gimpdisplayshell-callbacks.c so I can do some
refactoring there without making rebasing the gtk3-port branch almost
impossible.
2011-02-24 02:15:53 +01:00
ac9ffde880 app: formatting and other minor cleanups 2011-02-22 16:27:18 +01:00
4030e3f446 app: make gimp_display_shell_flush_event_queue() private 2011-02-20 16:58:37 +01:00
9151899aab app: move variable to local scope in gimp_display_shell_canvas_tool_events() 2011-02-20 16:33:46 +01:00
36cc10c4dc app: rename gimp_display_shell_[un]transform_coordiante() to _coords() 2011-02-20 16:29:20 +01:00
4bf3a136e0 app: factor out GimpDisplayShell tool event retrieval and untransforming 2011-02-20 16:23:17 +01:00
7bb58aedf9 app: make input GimpCoords const in gimpdisplayshell-transform.[ch] 2011-02-20 16:11:20 +01:00
d300882401 app: factor out GimpDisplayShell cursor updating to a utility function 2011-02-20 15:38:58 +01:00
f7bb5f460c app: rename the functions dealing with GimpDisplayShell's software cursor
to gimp_display_shell_foo_software_cursor() in order to remove
confusion with the functions that deal with the windowing system's
cursor.
2011-02-20 14:46:52 +01:00
b338aa0e71 app: forgot precondition checks in gimpdisplayshell-grab.c 2011-02-20 13:16:46 +01:00
d504eeb048 app: move GimpDisplayShell pointer/keyboard grabbing to utility functions
Spit warnings in the functions if grabbing fails and return a boolean
success value. Bail out in the callers upon grab failure instead of
assuming that grabbing always succeeds and running into an
inconsistent state that can cause all sorts of problems.
2011-02-20 12:12:48 +01:00
9e3aa5c1d2 app: Clean up event eval 2011-02-08 22:10:34 +02:00
f0f47e8d47 app: Remove a bit of code from event eval 2011-02-08 21:21:16 +02:00
8d8c6bb9ea configure: build with DISABLE_DEPRECATED also for GTK+ 2.24
Bump the "too new" test to GTK+ 2.26 which will never be released, but
this way we can keep the configure check around for later reuse after
the switch to GTK+ 3.x. Also bump the "too new" GLib and Pango
versions to really future versions so we early-catch deprecations
in the current development cycle.
2011-02-06 12:50:14 +01:00
f4af9b549e Globally switch to saying "window_id" instead of just "window"
when dealing with native window handles. Also get rid of using
GdkNativeWindow and simply consistently use guint32 all over the
place. This is more obvious and consistent and keeps the diff to the
gtk3-port branch smaller.
2011-02-06 12:07:55 +01:00
b370a0ebe6 app: Support building with GTK 2.24 for gimpscalecombobox.h 2011-02-02 22:29:37 +01:00
366cddc856 app: gimp_image_get/set_imported/exported/save_a_copy_uri()
Add more proper core API for GimpImage URI management.
2011-02-02 22:28:46 +01:00
8d61a61c0e app: Remove GIMP_FILE_EXPORT_TO_URI_KEY
Remove GIMP_FILE_EXPORT_TO_URI_KEY which is always identical to
GIMP_FILE_EXPORT_URI_KEY.
2011-02-02 22:28:46 +01:00
480d6e0cf2 app: Add and use gimp_image_get_uri() 2011-01-26 08:19:39 +01:00
ac773489e4 app: gimp_image_get_uri() -> gimp_image_get_uri_or_untitled() 2011-01-26 07:55:14 +01:00
5cae0bf65c Bug 630748 - display filters do not work
Create and use Cairo-compatible API for display filters. Also
includes logic changes to the display filters to deal with cairo's
ARGB32 pre-multiplied buffer format.
2011-01-25 20:24:42 +01:00
d155be622d libgimpwidgets: fix ruler motion event tracking on offscreen overlays
Add a list of "track widgets" to GimpRuler and connect to their
motion-notify-event. Correctly translate the motion event's x/y to the
ruler's coordinate system when updating the marker.
2011-01-20 20:26:35 +01:00
c1b3575648 app: implement GObject::constructed() instead of ::constructor() 2011-01-12 23:06:03 +01:00