Commit Graph

198 Commits

Author SHA1 Message Date
Michael Natterer b5cc2a977f Bug 768966 - Keyboard Shortcut hint disappears from tooltips...
...after entering single window mode

In GimpToolPalette, implement GtkWidget::hierarchy_changed() and
re-set the tooltips using the new toplevel's actions.

In gimp_widget_set_accel_help(), make sure we don't connect to the
same action twice, and make sure we disconnect everything if either
the widget or the accel_group go away.
2016-09-10 00:26:23 +02:00
Michael Natterer ae1fdd9eeb app: fix the new gimp_color_profile_store_add_defaults()
A NULL profile is only an error if it's NULL because opening
the .icc failed, not just because none is configured...
2016-05-22 13:24:20 +02:00
Michael Natterer 57d497b486 app: add gimp_color_profile_store_add_defaults()
which adds default profiles for an image type/precision.
2016-05-22 01:19:18 +02:00
Michael Natterer 6b246ff6c2 app: remove ancient utility function gimp_toggle_button_set_visible()
and use g_object_bind_property() instead.
2016-05-21 14:28:11 +02:00
Michael Natterer 9f3052583b app: remove gimp_session_write_position()
and un-overengineer the session position accuracy code a bit.
2016-05-21 00:00:07 +02:00
Michael Natterer ace40d125d Bug 735891 - color areas in the color picker info window are half transparent
Add code to GimpOverlayChild which can render arbitrary children of
the widget fully opaque, ignoring the configured opacity.

Add gimp_widget_get,set_fully_opaque() which gets/sets a per-widget
boolean flag to trigger that code.

Set the color picker's and the text tool style widget's color areas to
fully opaque.
2015-10-27 21:41:32 +01:00
Michael Natterer 7ec04e4afe app: get rid of hardcoding GDK_SHIFT_MASK in tools/
gimp_suggest_modifiers(): change "shift_format" and "control_format"
parameters to "extend_selection_format" and "toggle_behavior_format",
which fixes the longstanding problem that the function did the right
thing only by accident.

tools: use gimp_get_extend_selection_mask() instead of GDK_SHIFT_MASK
which is not 100% semantically correct in all cases, but at least a
step in the right direction to make the tool modifiers easier to
improve.
2015-10-17 15:31:08 +02:00
Michael Natterer 6b0b774302 libgimpwidgets: add gimpwidgetsutils.[ch]
Move some functions from libgimpwidgets/gimpwidgets.[ch]
and from app/widgets/gimpwidgets-utils.[ch]. Newly add
gimp_widget_get_color_profile() which is extracted from
modules/display-filter-lcms.c.
2015-05-06 22:15:30 +02:00
Michael Natterer 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
Michael Natterer 88f29d468c app: fix formatting of two console error messages 2014-05-08 12:12:19 +02:00
Michael Natterer 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
Michael Natterer 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
Michael Natterer ff74c76aac app: pushed the wrong version of the last commit 2014-05-03 21:46:19 +02:00
Michael Natterer bb3ab4c506 app: fix gimp_widget_get_monitor()
Do the right thing for widgets that have a window when the widget is
realized, and simply call gimp_get_monitor_at_pointer() if it's not
realized.
2014-05-03 21:40:59 +02:00
Michael Natterer a07f2301bb app: s/g_warning/g_printerr/ when GDK returns a bogus resolution
This is not a programming error, so no g_warning() must be used.
2014-05-03 17:19:10 +02:00
Michael Natterer 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
Mukund Sivaraman d79b7e1329 app: Remove unused variable 2014-05-02 23:27:55 +05:30
Michael Natterer 051374a1b6 app: add gimp_get_monitor_at_pointer()
and use it instead of duplicating that code several times.
2014-05-02 13:23:25 +02:00
Michael Natterer 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
Michael Natterer 65066ff46b app: add gimp_get_primary_accelerator_mask() to gimpwidgets-utils 2013-11-08 10:00:20 +01:00
Michael Natterer 3e119c5af7 libgimpcolor: add gimp_rgb[a]_set,get_pixel()
which converts from/to any pixel format using Babl. Added tons of
includes and CFLAGS now that libgimpcolor publically uses Babl.
2012-05-02 17:50:43 +02:00
Michael Natterer fffd1920e2 app: don't hardcode MOD2 in GimpContainerTreeView either
Add new utility function gimp_get_all_modifiers_mask() which returns
all modifiers used for "useful" things on the current platform, like
in the commit below.
2011-10-10 00:17:20 +02:00
Michael Natterer efd9906e85 app: remove gimp_get_mod_separator(), it's unused now 2011-10-07 00:34:43 +02:00
Michael Natterer c7d9988a7f app: make gimp_suggest_modifiers() work on OSX
by checking for gimp_get_toggle_behavior_mask() instead of
GDK_CONTROL_MASK. This is a total hack but happens to simply
do the right thing on all platforms.
2011-10-06 22:56:05 +02:00
Michael Natterer 6d1b5c4241 app: pull virtual modifier replacement into gimp_get_mod_string()
and remove it from all other places. We only want to have the virtual
modifiers when displaying a modifier string (and in some other cases,
but these are all handled internally by GTK+).
2011-10-06 22:56:05 +02:00
Michael Natterer f4141d6942 app: add a utility function that returns the "constrain" modifier 2011-10-06 16:42:42 +02:00
Michael Natterer c0610697cb app: remove widget parameter from gimp_modifiers_to_channel_op()
and simply use the default keymap.
2011-10-06 16:33:05 +02:00
Michael Natterer 10a9c660f8 app: add utility functions which return modifier masks
Simply get the masks from the default display's keymap, since
the widget makes absolutely no difference here.
2011-10-06 16:33:05 +02:00
Michael Natterer fdf103ce08 app: add more modifier utility functions to gimpwidgets-utils.[ch]
- gimp_modifiers_to_channel_op() translates a modifier state to REPLACE,
  ADD, SUBTRACT or INTERSECT.

- gimp_replace_virtual_modifiers() uses gdk_keymap_add_virtual_modifiers()
  to replace the physical bits in a modifier state to their virtual
  counterparts (and not just adds the virtual ones like the GDK
  function).
2011-10-05 19:26:53 +02:00
Michael Natterer f45cccbc82 app: make gimp_get_mod_string() a bit nicer 2011-10-05 18:47:37 +02:00
Michael Natterer 3982ddc39b app: implement gimp_get_mod_string() using gtk_accelerator_get_label()
so it can handle all modifiers (also Mac ones).
Remove gimp_get_mod_name_shift,control,alt().
2011-10-05 01:30:59 +02:00
Michael Natterer 3e336199b9 app: use gtk_box_new() 2011-09-30 11:29:11 +02:00
Michael Natterer 97c5a2817d app: s/GTK_IS_VBOX/GTK_IS_BOX/ to simplify the gtk3-port branch 2011-07-27 20:21:58 +02:00
Martin Nordholts bed298be13 app: Remember column width in multi-column dock windows 2011-05-31 23:15:39 +02:00
Martin Nordholts ab1b50ad4a app: Add GimpDockContainer::get_ui_manager()
Add GimpDockContainer::get_ui_manager() and make GimpDockWindow
implement it. Primary client is session restoration code.
2011-05-13 18:56:41 +02:00
Michael Natterer 3184c0f339 app: use g_object_bind_property() to set sensitivity here too 2011-05-11 11:43:19 +02:00
Michael Natterer 24ee3370b8 Depend on GTK+ >= 2.24.3, cairo >= 1.20.1, gdk-pixbuf >= 2.22.1
and completely separate configure and sanity checks for gdk-pixbuf
from GTK+, because it's now distributed as a separate package. Remove
all sorts of conditional compiling based on GDK_CHECK_VERSION() and
CAIRO_VERSION.
2011-04-06 19:58:24 +02:00
Michael Natterer 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
Michael Natterer ac9ffde880 app: formatting and other minor cleanups 2011-02-22 16:27:18 +01:00
Michael Natterer 7a8600e6bd app: use gdk_flush() in gimp_widget_flush_expose()
instead of a completely bogus event processing loop which had no
effect but flushing the event queue implicitly.
2011-02-22 15:07:17 +01:00
Michael Natterer 8333dfde7b Add some #if GTK_CHECK_VERSION (2, 24, 0) for creating foreign window
so we don't use deprecated API and make the gtk3 port simpler.
2011-02-16 22:51:02 +01:00
Michael Natterer 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
Michael Natterer 1741d39d8b app: gimp_widget_flush_expose() return if the widget is not drawable 2010-11-10 00:13:07 +01:00
Michael Natterer cacf8b550f app: add gimp_widget_flush_expose() utility function
which flushes all pending exposes for a widget without running the
main loop. Useful for updating progress bars without returning to the
main loop.
2010-11-09 19:33:15 +01:00
Martin Nordholts 48690d60e1 app: Add gimp_tools_get/set_tool_options_gui()
Add gimp_tools_get_tool_options_gui() and
gimp_tools_set_tool_options_gui() widgets utility functions.
2010-10-31 13:05:15 +01:00
Martin Nordholts 501f97b54b Add gimp_preview_tab_style_to_icon() utility function
Also fix wrong conversion from PREVIEW_NAME to ICON_BLURB
2010-06-12 00:15:13 +02:00
Martin Nordholts d7dc2dc1ab app: Make tooltips in the toolbox work again
We need to be able to pass a GimpUIManager to
gimp_dialog_factory_dialog_new(), so make that possible. Also make
sure to set ui_manager in gimp_dialog_factory_dialog_new_internal()
when we create both a dock window and a dock, so tooltips works in
toolboxes created from scratch.
2010-05-16 12:19:18 +02:00
Michael Natterer a2c70822d4 Use accessors from GTK+ 2.20 instead of using sealed members directly 2010-04-19 19:21:07 +02:00
Michael Natterer 1aeb315ecf undef GTK_DISABLE_DEPRECATED in many places which undef GSEAL_ENABLE
because the widget flag access macros (e.g. GTK_WIDGET_REALIZED) are
now deprecated in GTK+ master.
2010-03-06 23:14:29 +01:00
Michael Natterer 0b4bdc5613 app: add GimpTextBuffer, a GtkTextBuffer subclass
Pull all text buffer utility functions as methods and use
GimpTextBuffer all over the place instead of GtkTextBuffer.
Some actually usefuly features coming soon...
2010-02-25 17:41:10 +01:00