Commit Graph

1331 Commits

Author SHA1 Message Date
c2d63da7d9 Bug 771851 - Vertical ruler shows artifacts if the status bar isn't showing
gimp_ruler_draw_pos(): when remembering the just drawn rectangle's
position, don't just unconditionally overwrite the previous position's
rectangle. Instead, if the previous position's rectangle has not been
cleared yet (has a non-zero size), remember the union of old and new
rectangle.

Why this only happened to the vertical ruler with statusbar off is
beyond my mind, it should have always produced artifacts.

Unrelated: make sure the idle function is removed if we decide to
immediately redraw in gimp_ruler_set_position().

(cherry picked from commit e909b77969)
2016-09-22 23:11:04 +02:00
853c57a2cb libgimpwidgets: call gimp_file_entry_set_filename() with filename encoding
GimpPathEditor wass passing an UTF-8 string.

(cherry picked from commit 9317952375)
2016-09-02 20:46:11 +02:00
fd9554d6cd Bug 753175 - color picker locks down the GUI
Disable the color pickers buttons on OS X, they are unfixable in 2.8.
2016-03-31 22:15:37 +02:00
978a394efe libgimpwidgets: Disconnect ruler's idle handler in dispose
As discussed on irc, this is more appropriate than finalize because
we shouldn't be making any gtk calls after dispose.

(cherry picked from commit 8c02b360fb)
2015-09-06 17:53:34 -04:00
a8b596b078 libgimpwidgets: Avoid updating the rulers too often.
Ever since 72617e42b, whenever the user generated a lot of mouse
input, we would constantly queue redraws to the rulers. These redraws
had a higher idle priority than updating the canvas, so we would
rarely get around to canvas updates, which made certain tools
(painting with dynamics, the blend tool) feel very unresponsive.

This fixes it by only redrawing the rulers if the mouse has moved
far from the last location, or if there are no idle handlers with
a priority above LOW.

(cherry picked from commit 3233a70bae)
2015-09-06 17:53:21 -04:00
597fae39b4 Bug 736411 - Ruler updates cause slowdown when painting
We now avoid drawing rulers in the position property setter and use
gtk's region invalidation instead. Previously, we were basically
redrawing the ruler inside the mouse event handler, which is pure evil.

(cherry picked from commit 72617e42b4)
2015-08-13 11:46:16 -04:00
8fdbb5b5a3 libgimpwidgets: fix registration of GimpRuler's "unit" property
Install it with the PROP_UNIT id not PROP_LOWER (probably a copy &
paste mess). Spotted by John Cuppit.

(cherry picked from commit affef350e7)
2015-06-14 23:02:02 +02:00
677ccd4246 Bug 745126 - gimp_preview_area_blend() fails for RGBA image...
...if buf1 and buf2 have same alpha value

Fix a misplaced } that was causing the final write to the destination
buffer to be executed only for the case where the alphas are
different. Thanks to Jonathan Tait.

(cherry picked from commit 36548fd1ad)
2015-02-27 09:53:08 +01:00
8de8583064 Bug 736411 - Ruler updates cause slowdown when painting
Reuse the cairo_t from expose() in gimp_ruler_draw_pos() instead of
creating a new one.

(cherry picked from commit 20863440fb)
2015-01-10 23:40:00 +01:00
440a045986 Bug 742202 - new layer/path dialog opens always in the upper left corner
gimp_dialog_set_property(): when setting a non-toplevel parent widget,
don't just set the dialog's screen, also set the window position to
GTK_WIN_POS_MOUSE, so the window opens at the mouse position.

(cherry picked from commit 1dd2752949)
2015-01-08 21:19:23 +01:00
04c26457e3 Bug 742229 - "pixels" entries get added to unit menus on each popup
_gimp_unit_store_sync_units(): don't trigger a sync of newly added
units if we encounter GIMP_UNIT_PERCENT, it has a special value that
is always larger than any other unit. All unit menus containing
"percent" were broken the same way.

(cherry picked from commit 9df726cbad)
2015-01-03 17:25:39 +01:00
d6c18b2a99 libgimpwidgets: make GimpColorSelection's main_hbox expand vertically
so the color dialogs become properly resizable again. This must have
been broken for ages.

(cherry picked from commit aafc2368cd)
2014-11-29 12:54:46 +01:00
9b7827482f Bug 731765 - "Value Propagate" dialog's "Propagating rate" spinbuttons...
...are much too quick

In gimp_scale_entry_new(), set the spinbutton's climb_rate to the same
value as step_increment instead of hardcoding 1.0. This should make
many spinbuttons behave better.

(cherry picked from commit b9265ebfb9)
2014-06-21 16:54:25 +02:00
71e90afd96 Bug 605872 - Units dropdown list is not updated
Add private API _gimp_unit_store_sync_units() which emits
"row-inserted" on each unit that didn't exist when the GimpUnitStore
was created, or when sync_units() was called the last time.

In GimpUnitComboBox, call sync_units() each time the combo is popped
up, or a unit is set on the combo.

(cherry picked from commit 66298ba869)
2014-03-10 00:18:21 +01:00
8b6b6add69 Bug 723177 - After opening an ICC profile with a long description...
...dialogs are too wide

Ellipsize GimpColorProfileComboBox' label.

(cherry picked from commit 219bf35299)
2014-01-28 18:56:08 +01:00
abd16f9b1e libgimpwidets: don't pick transparent colors in gimp_pick_button_pick()
Full opacity in gimp_rgba_set_uchar() is 255, not 1.0.

(cherry picked from commit f489ef2c5a)
2013-11-16 22:54:46 +01:00
b8f05cdb55 libgimpwidgets: return an opaque color from gimp_pick_button_pick()'s OSX code
and fiddle with whitespace a bit.

(cherry picked from commit 5466caa064)
2013-10-11 22:54:40 +02:00
e2f93a7779 Use the Quartz core graphics API to implement gimp_pick_button_pick when building with GDK Quartz.
Signed-off-by: Clayton Walker <clayton.m.walker@gmail.com>
2013-10-11 13:53:19 -06:00
333b05be02 Bug 656522 - Scaled Image Rounds Up To Nearest Pixel
Prevent gimp_coordinates_callback () to be called recursively
when x and y are chained.

One call puts all values in a consistent state, a recusive call can
cause side effects (calculations with rounded values)
(cherry picked from commit 24a2113170)
2013-03-27 01:05:29 +01:00
cad5827b37 Bug 694477 - GimpSizeEntry input validation doesn't snap to min/max values
gimp_size_entry_eevl_input_callback(): CLAMP() the input value before
passing it back to GtkSpinButton, or it will revert too large/small
inputs back to the old value, instead of using the field's max/min
values.
(cherry picked from commit d1503ead83)
2013-02-22 21:23:33 +01:00
258a61d70a libgimpwidgets: set a min size of 8 chars on GimpColorHexEntry
because GtkEntry's default min size is way too large for this use
case.
(cherry picked from commit 0bbc2b6231)
2013-02-06 23:25:04 +01:00
34f70ad192 libgimpwidgets: remove all item width logic from GimpPageSelector
It seems GtkIconView got fixed, and now the pile of code I added to
make the layout nice has exactly the opposite effect. Get rid of the
pile.
(cherry picked from commit f1c785fb37)
2012-11-23 23:31:45 +01:00
9c36859511 Bug 688305: drag and drop for guides broken 2012-11-15 19:02:43 +01:00
908a71c4cf Bug 684003 - When using the main window in secondary monitor...
If gimp_window_set_transient_for() fails (due to platform
restrictions), at least set GTK_WIN_POS_CENTER on the window, so it
gets centered on the monitor where the mouse is. This also removes the
need for OSX specific centering code in GimpDialog (bug 677776).
(cherry picked from commit 9e5ed1e70a)
2012-11-11 21:13:54 +01:00
f3de4b4a24 Bug 677776 - filter popup windows get hidden behind main image window
On OSX, call [NSApp activateIgnoringOtherApps] when a plug-in dialog
is shown, so the plug-in process becomes the active app, and the
dialog gets focussed.

In order to avoid doing this in GimpDialog (which is also used in
the core), do it in gimp_ui_init() which all interactive plug-ins
call, and when gimp_temp_proc_run() is called interactively, to
catch repeated activation of an already running plug-in.

Also, set GimpDialog's initial position to GTK_WIN_POS_CENTER,
or they will pop up in the top left corner.

Inspired by patches from Simone Karin Lehmann and Daniel Sabo.
(cherry picked from commit 0b56aa0d13)
2012-11-07 23:54:30 +01:00
fef53f6064 libgimpwidgets: make GimpIntStore behave a bit nicer (don't warn)
when used in "unexpected" ways. Where "unexpected" is as simple as
removing an item from the store.
(cherry picked from commit 85ea7771d5)
2012-10-08 21:35:30 +02:00
027c744227 Bug 684698 - Preferences-Folders: only 15 folder items accepted
Raise "max_paths" from 16 to 256 in all calls to gimp_path_parse().
(cherry picked from commit 2a30a2bb74)
2012-09-26 23:31:48 +02:00
2414301799 Review the last few commits and apply some style fanaticism
some completely unrelated,
2012-02-07 20:36:55 +01:00
39368a410d plugged memory leaks 2012-02-07 17:32:02 +01:00
056e09a6cb Remove the makefile.msc build system, it is unmaintained since 2008 2011-12-16 15:53:56 +01:00
94c322ff70 libgimpwidgets: set GimpColorSelector's config to NULL in dispose()
so the subclasses have a chance to release their stuff.
2011-12-11 02:43:14 +01:00
12a8eec444 libgimpwidgets: keep GimpColorNotebook->selectors in a consistent state
by connecting to the notebook's "remove" signal and updating the list
in the callback, so the list is consistent during the widget's
destruction.
2011-12-11 02:41:01 +01:00
180cb656ae Remove more gdk_pointer_grab() where they are not strictly needed
and replace them by gtk_grab_add()/remove().
2011-12-10 21:51:05 +01:00
ebbad40885 Doc fixes in both source comments and gtk-doc files 2011-11-25 21:39:55 +01:00
324ad1e426 libgimpwidgets: Drop redundant assignment 2011-10-12 17:21:23 +05:30
6bee9df474 libgimpwidgets: don't hardcode GDK_MOD2_MASK for extended clicked
Instead, check for all sorts of modifiers from the new
gtk_widget_get_modifier_mask(), which are always right
on the current platform.
2011-10-09 23:59:40 +02:00
9fff65f1b2 libgimpwidgets: emit GimpButton::extended-clicked() also on MOD2-click
it doesn't hurt on Win/X11 and is needed on OSX for Command-click.
2011-10-06 22:56:04 +02:00
643dceec02 libgimpwidgets: Add missing symbols to gimpwidgets.def 2011-10-05 09:25:21 +05:30
6e6a70b7f8 libgimpwidgets: add some modifier abstraction API to gimp3migration.[ch]
Work in progress and unused, will help to make things proper on OSX.
2011-10-04 23:09:09 +02:00
0afe030552 libgimpwidgets: Remove dead assignments 2011-10-04 14:33:42 +05:30
60d2536bd1 libgimpwidgets: Sort gimpwidgets.def
For make distcheck.
2011-10-03 07:07:10 +02:00
f1d4dde36a libgimpwidgets: add gdk_event_triggers_context_menu() to gimp3migration.[ch]
and remove gimp_button_event_triggers_context_menu() again. Update
all callers to use the new function.
2011-10-02 16:23:59 +02:00
f007ce352d libgimpwidgets: add gtk_separator_new() to gimp3migration.[ch]
and use it all over the place.
2011-10-02 14:36:42 +02:00
2c175b068d libgimpwidgets: add gtk_paned_new() to gimp3migration.[ch]
and use it all over the place.
2011-10-02 14:36:42 +02:00
19b9bfd189 libgimpwidgets: add gtk_scale_new() to gimp3migration.[ch]
and use it all over the place. Also change some GtkObject* variables
to GtkAdjustment*.
2011-10-02 14:36:41 +02:00
16817c666f libgimpwidgets: add gtk_scrollbar_new() to gimp3migration.[ch]
and use it all over the place.
2011-10-02 14:36:41 +02:00
f342b50483 libgimpwidgets: add gtk_button_box_new() to gimp3migration.[ch]
and use it all over the place.
2011-09-30 15:44:33 +02:00
83eb6fdc9e libgimpwidgets: use gtk_box_new() 2011-09-30 10:50:50 +02:00
030413b9f6 libgimpwidgets: add gimp3migration.[ch] to help the gtk3-port branch
This is such a hack, but entirely safe when linking against GTK+ 2.x.
Please ignore the uglyness.
2011-09-30 10:45:00 +02:00
bc4fa9a8c4 libgimpwidgets: support GtkCellRendererToggle's "inconsistent" state
and strike out GimpCellRendererToggle's icon in the inconsistent case.
2011-09-23 23:42:09 +02:00