Commit Graph

2636 Commits

Author SHA1 Message Date
d0a6d95dad app: remove a bunch of file-utils.h includes 2014-07-08 00:23:34 +02:00
ff6ea69569 app: change the image's various URIs to GFiles
which gets rid of a lot of temporarily added GFile code again because
we don't need to convert between URI and GFile any longer.
2014-07-07 23:58:11 +02:00
0f8d84d5e9 app: port all file_open() and file_save() functions to GFile 2014-07-07 23:58:11 +02:00
52032961c2 app: add (disabled) code that blits the image directly from the graph
bypassing the projection buffer.
2014-07-03 20:52:02 +02:00
c88800e840 app: add gimp-priorities.h and keep the most important priorities there
also add comments with all predefined priorities as documentation.
2014-07-02 04:47:24 +02:00
2d2bdbd48f app: implement GimpCanvasItem::hit() in GimpCanvasProgress
Allow hits only on the progress text. Hackish proof-of-concept hack.
2014-06-30 03:40:34 +02:00
2ac5ab7dc3 app: don't use the projection in gimpdisplayshell-render.c
The image implements the GimpPickable interface too.
2014-06-29 23:11:53 +02:00
34dd127ace app: don't include gimpprojection.h in gimpdisplayshell-scroll.c
It's not needed.
2014-06-29 23:11:12 +02:00
2e3e4597ef app: Slight cleanup in gimpdisplayshell-rotate-dialog.c 2014-06-29 14:58:12 -04:00
78bc7ac94e app: improve and clean up the canvas rotation dialog
Make the action area buttons behave less unexpected, and add and angle
dial.
2014-06-26 13:48:12 +02:00
a665c30823 app: gimp_spin_button_new() -> gtk_spin_button_new() 2014-06-21 22:39:37 +02:00
921bd34495 app: fix GimpCanvasProgress' extents for short progress texts 2014-06-19 23:29:00 +02:00
3af1fff5af app: make the first image jump to the center of the canvas before rendering
Make GIMP_DISPLAY_SHELL_FILL_IDLE_PRIORITY a bit higher than
GIMP_PROJECTION_IDLE_PRIORITY which is the priority of chunk
rendering.
2014-06-17 23:29:24 +02:00
21a8f9c96b app: add boolean "mask_inverted" to GimpDisplayShell
and to gimp_display_shell_set_mask(). It allows to choose whether the
mask is drawn inverted, instead of always drawing it inverted.
2014-06-11 21:33:57 +02:00
cd479ce04e app: add an "auto overlay" API to GimpToolGui
which makes tool dialogs auto-overlay if the canvas is large
enough. Set all tools dialogs except GimpImageMapTool's dialog to
auto.
2014-06-09 03:08:43 +02:00
17bd4d2c28 app: make GimpOverlayDialog's title and icon-name settable after construction 2014-06-09 01:42:09 +02:00
8e948d29e0 app: properly disconnect from the old shell in gimp_tool_dialog_set_shell()
Also clean up the function a bit.
2014-06-05 22:19:23 +02:00
69b7cda375 app: fix projection and display render chunk-size envvars 2014-06-04 02:07:08 +02:00
2c4d5e4391 app: make projection chunk size and display render chunk size configurable
Set the GIMP_PROJECTION_CHUNK_SIZE and GIMP_DISPLAY_RENDER_BUF_SIZE
environment variables to "WIDTHxHEIGHT".
2014-06-04 01:23:41 +02:00
c78d82a43c app: render/update the visible part of the image first
Set the active display's viewport as priority rectangle on the image.

Update the rectangle in the default implementations of
GimpDisplayShell::scaled(), ::scrolled() and ::rotated(), which isn't
entirely correct yet but much better than before, and the only "bad"
thing that can happen with a bogus priority rectangle is that the
image is updated as out-of-viewport as before, just differently.
2014-05-31 02:36:25 +02:00
9b341d05bb app: remove GimpArea and use cairo_region_t instead
This may or may not remove some logic that avoids drawing tiny update
regions, and may or may not improve things or make them worse. Will
add code that actually tile-aligns update areas later.
2014-05-31 01:26:06 +02:00
bb8d65bcee Bug 730862 - Preview frozen while dragging selection tools...
...(crop, rectangle, etc) in large image zoomed-to-fit

Introduce a hash of the last 16 used icons in GimpStatusbar, it was
loading icons at a very high frequency. Found by Massimo.
2014-05-30 19:40:11 +02:00
dd0098524f app: add a little hint about reporting bugs against unstable git 2014-05-27 21:58:10 +02:00
6923f49b0d app: Fix broken header guards. 2014-05-25 20:50:56 -04:00
453882c81e app: add gimp_tool_gui_set_icon_name() 2014-05-22 23:29:24 +02:00
d3966c2c90 app: add more accessors to GimpGrid and use them instead of grid->foo 2014-05-21 21:44:28 +02:00
5e2ded5020 app: add gimp_grid_get_spacing() and gimp_grid_get_offset()
and do the rounding to integer there instead of in several places.
2014-05-21 21:25:41 +02:00
08c6aefa23 Bug 588512 - Grid Spacing errors depending on unit
Always round grid spacings and offsets to integer precision when
using them for snapping and grid drawing. While we might *want* to
have subpixel precision grids, all the UI is pretending it to be
on pixel boundaries. Make that pretense an fact.
2014-05-21 20:43:05 +02:00
bbf01ebabf libgimpwidgets, app: add gdk_screen_get_monitor_workarea()
to the gimp3migration hack and use it where appropriate, so in the
gtk3-port branch windows will not overlap with docks, panels etc.
2014-05-19 14:37:32 +02:00
65a65947d9 app, libgimp: replace GTK_STOCK_FOO by icon names
unless it's a stock ID used for an action button, will address that
later.
2014-05-11 22:49:22 +02:00
7d0b326359 app: add gimp_widget_load_icon() as replacement for gtk_widget_render_icon()
...and use it instead.
2014-05-08 09:11:31 +02:00
0d2d1c3752 app: port most of app's GUI from stock IDs to icon names
There is still quite some stock ID rendering around, stay tuned...
2014-05-07 15:30:38 +02:00
23037b5230 app: convert all stock IDs kept around by the core by icon names
Particularly GimpViewable's stock_id. Make sure old config files
containing stock IDs are still properly parsed.
2014-05-07 01:01:56 +02:00
4202d29347 app: update GimpDisplayShell's monitor resolution when changing monitors
so the image size adapts when dot-for-dot is off.
2014-05-03 17:19:10 +02:00
c7f8ccb4e1 app: make sure image windows end up on the intended monitor
In gimp_image_window_new(), place the window on the right
monitor manually if we are not in single-window-mode.

In gimp_image_window_switch_page(), make sure we don't use an
unrealized new window's monitor for updating the session info, because
the monitor of an unrealized window is always where the pointer is.
2014-05-03 09:40:54 +02:00
8356003fa2 app: pass the startup monitor to displays opened from the copmmand line
Change gimp_get_display_name() to also return the screen, and its
implementation in the GUI to return the initial monitor during
startup. Retrieve that information in app.c using a weird callback
construct and pass the monitor to file_open_from_command_line().

Half-related, add screen and monitor parameters to GimpDisplayShell
and use these initial values for calculating the canvas's initial
extents.

The image windows still don't position themselves correctly though
because we have no mechanism for that whatsoever just yet, but we now
at least pass the needed monitor information to the right objects.
2014-05-03 00:54:20 +02:00
7cdede6dec app: rename gimp_get_screen_resolution() to get_monitor_resolution()
Add a "monitor" parameter and return something reasonable, instead
of a useless resolution average of all the screen's monitors. Also
require a screen to be passed now.
2014-05-02 23:58:14 +02:00
7f23fbec34 app: add screen and monitor to all display and image window constructors
so they appear on the proper monitor as well.
2014-05-02 20:21:41 +02:00
843866e7e7 app: make things behave more reasonable with multiple monitors
There is now a preference option that determines whether windows
should be opened on the same monitor as before. It should be disabled
when the machine gets monitors plugged/unplugged dynamically ("laptop")
and enabled when there is a static multi-monitor setup ("wokstation").
This is merely the current simplistic policy on top of the newly added
underlying infrastructure:

- pass integer monitor numbers around in all places where we already
  pass around a GdkScreen. Pass the "current" monitor to these changed
  APIs, where "current" is either the monitor where the action-triggering
  widget is, or if that is unavailable the monitor where the mouse is.

- add gimp_widget_get_monitor() in order to easily get to the monitor,
  just like gtk_widget_get_screen().

- add screen and monitor parameters in some places that were missed
  before.

- in sessionrc, save all window positions relative to the window's
  monitor, and save the monitor separately, if it's not the screen's
  primary monitor.

- when restoring window positions, use the stored monitor when the new
  prefs options says so (use the screen's primary monitor if there is
  no stored monitor), otherwise use current monitor that is now passed
  around.
2014-05-02 03:01:23 +02:00
f04b2d4a19 app: remove GimpBucketFillMode from gimp_display_shell_dnd_bucket_fill()
because it's not used any longer, and rename the function to
gimp_display_shell_dnd_fill().
2014-04-29 00:25:02 +02:00
2088c3efdf app: move some more stuff out of the "now" part of gimp_display_shell_flush()
so it's not needlessly called during painting.
2014-04-21 23:57:57 +02:00
a6339dccd2 app: clenup and fixes in gimp_display_shell_format_title()
Get the active drawable once instead of several times and always check
if it exists before using it. Also fix an xres/yres confusion.
2014-04-21 16:15:49 +02:00
bb172b52c8 Implements Title bar codes for Layer dimensions
Implements codes %x, %y and %X, %Y to display
a layer's size in title and status bars
for image windows.
Addresses request at bug #728493
2014-04-21 00:30:49 -03:00
051a3e4af4 Bug 681968 - Disabling 'Dot for Dot' glitches display
Enhance the existing but unused display scaling (hidpi/retina) support
to work independently in x and y direction, and adjust the scaling
factors accordingly when dot-for-dot is off and xres != yres.

Increase GIMP_DISPLAY_RENDER_MAX_SCALE from 2.0 to 4.0 and adjust the
rendering chunk size dynamically so we never render chunks that do
not fit into the GimpDisplayXfer buffers.
2014-04-20 22:01:57 +02:00
2381bf87c7 app: Use ABYSS_CLAMP for display_shell_render() (bug 709708) 2014-03-14 13:21:47 -07:00
a894f2a689 app: some formatting cleanup in GimpImageWindow 2014-03-13 22:39:03 +01:00
8607486237 app: make sure GimpImageWindow notifies all its shells of monitor changes
Call gimp_color_managed_profile_changed() on all newly added shells,
and on all shells in GimpWindow::monitor_changed().
2014-03-13 22:39:03 +01:00
91bb872d26 app: write "Unstable Development Version" across the empty image window 2014-03-07 11:33:14 +01:00
a059c0e7eb app: Fix on canvas widgets ignoring clicks from tablets - bug 614441
Disable extended input events when the cursor moves to a child of
the canvas widget. Otherwise GTK will try and fail to deliver an
extended event to the child widget, and end up sending it to the
canvas instead.
2014-02-10 22:28:08 +01:00
5054241ca6 Bug 722034 - Incorrect snapping behaviour for scale tool
Always snap to the center of transform tool handles.
2014-01-29 23:40:35 +01:00