Commit Graph

2636 Commits

Author SHA1 Message Date
16817c666f libgimpwidgets: add gtk_scrollbar_new() to gimp3migration.[ch]
and use it all over the place.
2011-10-02 14:36:41 +02:00
3e336199b9 app: use gtk_box_new() 2011-09-30 11:29:11 +02:00
d92cd2f6c8 Add gimp_button_event_triggers_context_menu() and use it
instead of checking for event->button == 3, so context menus
work correctly on the Mac. Didn't change the image menu yet
because thet requires some more refactoring.
2011-09-19 00:47:23 +02:00
ed00cff9d3 app: don't use image_window->menubar if it's NULL 2011-09-16 23:24:49 +02:00
9cfa0a5dde app: use a smaller icon for the image tabs' close button
Also make sure the visibility of the icon doesn't depend on
GTK+ settings by packing it manually.
2011-09-15 09:04:38 +02:00
8b8e67ffe2 Bug 656129: Warnings: render_image_tile_fault: assertion `tile[4]... 2011-09-08 18:37:28 +02:00
9f1187f6a5 app: Prefix TileManager functions
read_pixel_data() -> tile_manager_read_pixel_data()
write_pixel_data() -> tile_manager_write_pixel_data()
read_pixel_data_1() -> tile_manager_read_pixel_data_1()
write_pixel_data_1() -> tile_manager_write_pixel_data_1()

for consistency.
2011-09-07 12:08:43 +02:00
a11989542a app: Add a close button to image window tabs
It takes a bit more space, but it needs to be easy to close images.
2011-08-24 23:02:19 +02:00
b9ccf189b4 Bug 650348 - Window unmaximizes when a document is closed
Refactor GimpImageWindow session management. As far as session
management goes, there are four states and four transitions that are
interesting.

The states are:

 State    Window mode     Images opened
 ------------------------------------------
  s1          swm               0
  s2          swm              >0
  s3          mwm               0
  s4          mwm              >0

The transitions are:

  Transition     Description
 -------------------------------------------
      t1         Enter single-window mode (swm)
      t2         Enter multi-window mwm (mwm)
      t3         Open an image
      t4         Close an image

When thinking of it like this, it is pretty easy to see when to call
gimp_image_window_session_clear() and when to call
gimp_image_window_session_apply(). So kill
gimp_image_window_set_entry_id() and handle all transitions in
gimp_image_window_session_update().
2011-08-09 20:25:06 +02:00
dbf6b4d944 app: Fix warning 2011-08-05 01:51:56 +02:00
3ce4c49314 app: Handle special case "Toolbox" in GimpSingleWindowStrategy
The special case isn't pretty, but the current design can't handle it
nicely. This is not the first special case for the toolbox.
2011-07-20 16:36:36 +02:00
421ca4114e Bug 641187 - GIMP needs a left-handed cursor option
Add a cursor-handedness setting and flip the cursor when it's set to
left-handed.
2011-07-24 22:09:21 +02:00
6b78436f56 app: implement all rectangle guides options for the transform guides 2011-07-24 19:07:51 +02:00
c2e6f24687 app: add GimpCanvasTransformGuides and use them in the transform tool
which removes a lot of code from the transform tool, and reduces the
number of canvas items used for the transform grid from possibly
gazillions to one.
2011-07-24 18:42:13 +02:00
be5c0df173 app: add "n-lines" property to GimpCanvasRectangleGuides
and add handling of the N_LINES guides type. Hardcode "4" in
GimpdrawTool for now, it's currently unused anyway.
2011-07-24 17:49:31 +02:00
f7a390d5d0 app: add N_LINES and SPACING to enum GimpGuidesType
but don't show them in the rectangle options UI, this is just a step
towards unifying the enums.
2011-07-24 17:47:08 +02:00
008a845aea app: Undeprecate GimpNavigationEditor 2011-07-05 22:13:18 +02:00
07556242b0 app: Make positioning of new dockables depend on window mode
Add GimpWindowingStrategy with create_dockable_dialog() and use it in
dialogs_create_dockable_cmd_callback(). There are two implementations:
GimpSingleWindowStrategy and GimpMultiWindowStrategy. Depending on the
window mode, we want new dockables to appear in different places when
created. In single-window mode, they should appear inside the single
image window. In multi-window mode, a new dock window is created.
2011-07-03 21:20:36 +02:00
a410716503 app: Remove unused variable 2011-07-03 16:38:37 +02:00
8b57ef51cc app: clean up the new brush outline stuff a bit 2011-06-30 09:27:43 +02:00
3c3657f780 app: Refactor path code to support styles and add outline style for use in brush outline 2011-06-29 23:05:14 +03:00
b1a2c736bf app: guard against crash due to quitting while DND is processed
In gimp_display_shell_drop_uri_list(), shell->display is dereferenced in
some places without checking that it's still there. It can be set to
NULL if the user quits the application while a drag and drop action is
being processed and the main loop is iterated during execution of this
function. (Bug #652280)
2011-06-10 18:12:33 +02:00
bb39703c7a app: Update appearance after adding dock
Since gimp_display_shell_appearance_update() depends on docks being
present, call it in gimp_image_window_add_dock(). Otherwise the resize
handle will be present when starting in single-window mode.
2011-06-06 16:07:25 +02:00
ea27c7bc83 app: add the MIN4() and MAX4() macros to gimp-utils.h
instead of having them in 5 .c files.
2011-06-04 17:16:21 +02:00
42c2c747d8 Bug 603848 - Single-window mode is not properly session managed yet
Make GimpImageWindow implement GimpDockContainer and
GimpSessionManaged so that GIMP can be started in single-window mode.
2011-06-04 12:22:20 +02:00
75259bf4bb app: Call gimp_image_window_session_update() early
Call gimp_image_window_session_update() at the end of
gimp_image_window_constructed() so that if GIMP is closed right after
being started, the image window session info has the widget
initialized (and also so that the correct size is setup initially).
2011-06-04 12:22:20 +02:00
1bff2c8df2 app: sprinkle const qualifiers in the tool event callback functions 2011-05-31 23:18:11 +02:00
da18c1114b app: gimpdisplayshell-tool-events.c: move Tab handling to a utility function
instead of having separate utility functions for the different
functions triggered by various Tab combinations.
2011-05-31 09:24:14 +02:00
8e5f18fb9e app: make Alt+Tab and Alt+Shift+Tab cycle through all open displays
in both multi- and single-window mode. This is useful especially in
multi-window mode because in single-window we can already cycle
through all tabs with Ctrl+PageUp/Down.
2011-05-30 23:46:50 +02:00
1371602383 app: call cairo_surface_flush before drawing directly 2011-05-26 20:17:08 +02:00
a6a6dd880a app: use hline/vline utility functions in GimpCanvasRectangleGuides 2011-05-25 10:23:02 +02:00
c1c20e4c38 app: fix GimpCanvasRectangleGuides' extents 2011-05-24 20:49:49 +02:00
4e6f43a890 app: add new item class GimpCanvasRectangleGuides and use it
Removes a lot of code from the rectangle tool and fixes off-by-one
drawing problems because in image coordinates, lines can't be aligned
correctly with rectangles.
2011-05-22 22:09:09 +02:00
0dcdfe9e80 app: move enum GimpRectangleGuide from tools/ to display/
and rename it to enum GimpGuidesType.
2011-05-20 19:41:48 +02:00
3efa2062c5 Bug 650426 - Missing call to cairo_surface_flush
app: before drawing directly on the surface.
2011-05-18 08:41:10 +02:00
ab0b88b5db app: replace the last GtkObject members by GtkAdjustment
Also get rid of some unneeded GTK_ADJUSTMENT() casts and replace some
local GtkObject veriables by GtkAdjustment.
2011-05-15 17:00:41 +02:00
1ebd2b5113 Revert "app: Make alt+[number] switch tabs in single-window mode"
This reverts commit 110b3daa97.
2011-05-07 23:54:54 +02:00
d7b8f8e81f app: formatting in gimpdisplayshell-selection.c 2011-05-07 22:33:05 +02:00
c35ff719a7 app/libgimp*: remove stuff found by -Wunused-but-set-variable 2011-05-01 23:23:19 +02:00
99df9e114e app: GimpCanvasLayerBoundary: actually use the figured "edit_mask" boolean
instead of always passing FALSE when changing to a different
layer. For some reason we were displaying the right state anyway,
which can only mean that we do things redundantly here and call this
function twice.
2011-05-01 22:36:25 +02:00
cc47b2a600 libgimpwidgets/color: move the cairo color utility functions to libgimpcolor
Add CAIRO_CFLAGS to a lot of Makefiles to make this possible, and
because they pull in cairo via the libgimp headers.
2011-04-28 15:50:39 +02:00
81911a7b02 app: allow to drop buffers and components to empty displays
and simply create new images from them.
2011-04-28 01:59:38 +02:00
69d3aa5b36 Bug 648820 - drag and drop grayscale/greyscale image causes image corruption
gimp_display_shell_drop_pixbuf(): use the image's type to create the
layer, not the dropped pixbuf's.
2011-04-28 01:44:48 +02:00
85509f4ffb app: GimpScaleComboBox: don't derive from GtkComboBoxEntry
because it's deprecated. Derive from GtkComboBox directly, use the
"has-entry" property and move the setup code from init() to
constructed().
2011-04-18 21:49:23 +02:00
5b14564d8e app: GimpMotionBuffer: remove empty constructed()
and move buffer destruction from dispose() to finalize().
2011-04-18 15:54:03 +02:00
534b48cb0d app: add gimp_motion_buffer_get_last_motion_time() and use it
The last poking into the buffer is gone now.
2011-04-18 13:13:51 +02:00
d305d000ff app: struct GimpMotionBufferClass: parent_class had the wrong type 2011-04-18 11:35:51 +02:00
e028195cf3 app: rename process_stroke() and process_hover() to request_foo()
Because that's what we are doing by calling the functions: requesting
the emission of "stroke" and "hover" signals.
2011-04-18 11:32:10 +02:00
3fbbb9b333 app: GimpMotionBuffer API cleanup and refactoring
- start_stroke()/finih_stroke() -> begin_stroke()/end_stroke()
- process_event_queue() -> process_stroke()
- GimpMotionBuffer::motion() -> GimpMotionBuffer::stroke()
- add GimpMotionBuffer::hover() and process_hover()
- remove push_event_history() and pop_event_queue() from API

The thing works like this:

- Motion events are continuously fed into the buffer using motion_event()
- begin_stroke()/end_stroke() correspond to BUTTON_PRESS/BUTTON_RELEASE,
  the period between them is a "stroke"
- If motion_event() returns TRUE, we request "stroke" signals by calling
  process_stroke() and "hover" signals by calling process_hover()
2011-04-18 11:08:24 +02:00
d62cf65030 app: rename gimp_motion_buffer_eval_event() to motion_event()
because it's feeding it motion events.
2011-04-18 01:09:57 +02:00