Commit graph

5327 commits

Author SHA1 Message Date
Michael Natterer
a20e926630 app: undeprecate styling of GimpComboTagEntry and GimpTagPopup
this looks correct now, but I doubt it still works 100% as with GTK+
2.x when the tag popup starts scrolling, we still measure the popup
size wrongly imo.
2018-06-04 21:10:12 +02:00
Michael Natterer
3f954350d9 app: don't let gtk_tree_store_clear() mess with our selected item
gimp_container_tree_view_clear_items(): GTK+ 3.x always keeps the row
with the cursor selected, so we get a gazillion selection changed
during gtk_tree_store_clear(), block our selection changed handler
during the clear.
2018-06-03 21:45:16 +02:00
Michael Natterer
e88fb8e9c7 app: remove all old font management code, switch to GimpFontFactory[View]
Biggest change in this commit is reordering stuff in GimpContext
because GimpFont is now a first class citizen.
2018-06-03 01:27:06 +02:00
Michael Natterer
d153c7489e app: add GimpFontFactoryView as replacement for GimpFontView 2018-06-03 01:25:25 +02:00
Michael Natterer
9dc5c7767d app: GimpDataFactoryView: don't add buttons for actions which don't exist 2018-06-03 01:25:25 +02:00
Michael Natterer
1b7d63cce9 Use g_set_object() in a lot of places, and splrinkle some g_clear_object() 2018-06-01 12:59:52 +02:00
Ell
e5e998e9c5 app: hide container-editor busy box when clearing async-set binding 2018-05-31 05:00:28 -04:00
Ell
f847796943 app, libgimpwidgets: add generated cursor files to CLEANFILES
Needed after commit a9592a59c8.
2018-05-31 02:56:07 -04:00
Jehan
6aebd30de1 app: remove icon sizing preferences.
With GTK+3, high or low density is taken care by the screen scale
factor. Having a separate preferences for this is redundant, and likely
even wrong.
It may be interesting though to have a new preference later, which would
allow smaller scale icon sizing since some people like their icon
slightly smaller or bigger, and also when you are using screens whose
density is at a limit scale factor. Right now, this can be done through
themes, but a GUI settings may be interesting. If I add such feature,
let's just do it from scratch later.
2018-05-31 04:12:05 +02:00
Jehan
b4df21785a app: fix gimp_widget_load_icon() to work with symbolic icons too.
There is more work to be done, especially when scaling icons. But that's
a first step to prevent getting a gimp-wilber-eek icon all over the
place.
2018-05-30 11:57:30 +02:00
Michael Natterer
23a718c1dc app: remove all size negotiation/allocation code from GimpDockable
GtkBin does just the right thing.
2018-05-30 00:36:30 +02:00
Michael Natterer
b11aac154b app: remove useless "return" in GimpSpinScale 2018-05-30 00:35:18 +02:00
Ell
dd096d3ce5 app: show indication during font loading in text tool and font views
While fonts are loading, show a GimpBusyBox with an appropriate
message above the text tool options, and make the options
themselves insensitive, and in font views, such as in the fonts
dialog (through gimp_container_editor_bind_to_async_set(), added in
the previous commit).
2018-05-29 16:04:28 -04:00
Ell
03983f9547 app: add gimp_container_editor_bind_to_async_set()
... which takes a GimpAsyncSet and a message, and shows a
GimpBusyBox with that message, instead of the container view, while
the async set is nonempty.

We're going to use this for font-loading indication in font views,
such as in the fonts dialog.
2018-05-29 16:04:28 -04:00
Michael Natterer
e332ba008b app: fix setting dock window size from GimpSessionInfo
In gimp_session_info_apply_geometry(), use gtk_window_resize() instead
of gtk_window_set_default_size() which magically fixes things. Leave a
big comment there because set_default_size() should just work.
2018-05-29 21:11:26 +02:00
Michael Natterer
a9592a59c8 Merge request 4 - Generated .c sources are used as headers...
...Generate .h files instead.

Generate proper .c and .h files for color-picker and tool cursors in
the directories where they are built, and stop including them in other
.c files.
2018-05-28 17:25:18 +02:00
Jehan
d4ff504735 app: fix broken debug output on gitlab.
The GIMP version string and the backtrace both look completely wrong
when pasted as-is on gitlab. Somehow all linefeed are gone.

This can be fixed by surrounding these as blocks (triple backticks),
using markdown syntax. Of course now the debug content is not for our
tracker only since packagers are encouraged to replace with their own
tracker URL, but this small markdown syntax is simple enough that it
should not break formatting on other platforms (as far as I know).
2018-05-28 06:26:46 +02:00
Ell
cdd96059f7 app: port all interfaces to G_DEFINE_INTERFACE()
... instead of calling g_type_register_static() ourselves.
2018-05-27 05:56:34 -04:00
Michael Natterer
baaa2cd7ca app: remove the entire dockable tab auto-sizing code
It was totally broken and could never work like this in GTK+ 3.x, and
if it can be reimplemented it should be started from scratch.
2018-05-26 16:28:58 +02:00
Michael Natterer
d57ab7faf2 libgimpwidgets: move all GimpSizeEntry members to private 2018-05-25 19:15:00 +02:00
Ell
08ff2ac8c8 app: use gimp_gegl_buffer_copy() all over the place
Replace all uses of gegl_buffer_copy() in app/ with
gimp_gegl_buffer_copy(), added in the previous commit.
2018-05-25 08:12:27 -04:00
Michael Natterer
9d5fc680f8 app: actually set the color frames to "not dirty" after updating them 2018-05-24 01:52:29 +02:00
Michael Natterer
3e45427a36 app: fix drawing of GimpColorFrame's number
simply draw FG with alpha and remove the "number-color" style property.
2018-05-24 00:09:24 +02:00
Michael Natterer
47cdb11c44 app: fix setting a NULL image in gimp_menu_item_set_image()
hbox and label were attached to the wrong widget.
2018-05-23 22:24:08 +02:00
Michael Natterer
d9b97f2923 app: get rid of the dnd_window in GimpPanedBox
and draw a drop highlight like gimp_highlight_widget() does.
2018-05-23 19:47:24 +02:00
Michael Natterer
4eb50f8a64 app: fix gimp_highlight_widget() to not draw multiple highlights 2018-05-23 19:45:03 +02:00
Michael Natterer
38ef1054d1 app: handle GIMP_ZOOM_SMOOTH in gimp_palette_editor_zoom() 2018-05-23 12:41:46 +02:00
Michael Natterer
69bff16555 app: undeprecate GimpMeter 2018-05-23 10:07:59 +02:00
Michael Natterer
dba00b031b app: remove insane sizing hacks and boxes from GimpThumbBox
and set the widget's width the right way.
2018-05-23 02:21:38 +02:00
Michael Natterer
e92419707f app: fix GimpMessageBox size negotiation
Also remove obsolete get_path_for_child() impl. and set a max width of
80 chars on the labels.
2018-05-23 01:44:09 +02:00
Michael Natterer
d86dc8a5b4 app: undeprecation in GimpOverlayBox
and some size negotiation changes that have no effect at all, just
some hacking in the direction of making it a general-purpose
container, for whatever reason.
2018-05-23 00:42:41 +02:00
Michael Natterer
9647afc7e0 app: fix size negotiation of GimpOverlayDialog
so its contents are not cut off any longer.
2018-05-23 00:41:57 +02:00
Michael Natterer
db1cc4afc3 app: use gtk_widget_get_preferred_size() not get_requisition() in GimpView 2018-05-22 16:46:55 +02:00
Michael Natterer
2152bdc588 app: remove almost all code from GimpOverlayFrame
Let the parent GtkBin handle size request and allocation, and steal
the CDD style from GtkPopover.
2018-05-22 00:35:04 +02:00
Michael Natterer
7381bb1660 app: make GimpFgBgView draw within the focus rectangle
At least the code seems to have that effect, I have no clue what I'm
doing...
2018-05-21 23:07:22 +02:00
Jehan
eb7d59d327 app: gtk_icon_info_free() deprecated since GTK+3.8. 2018-05-21 22:31:34 +02:00
Michael Natterer
15ec52eab4 app: undeprecate GimpThumbBox
and cheat around to trick CSS into believing it's a treeview with
a header that says "Preview". Setting its width so it won't jump
around is still broken.
2018-05-21 19:59:38 +02:00
Michael Natterer
6f6ec64fa9 app: the return value of gdk_device_get_has_cursor() has become meaningless
so for now assume that all devices except floating ones move the
pointer, and figure out the details once multiple masters actually
exits.
2018-05-20 21:06:35 +02:00
Michael Natterer
9d4d68aa91 app: remove GimpScaleButton, it has not been used in ages 2018-05-20 21:06:35 +02:00
Michael Natterer
ecb99ab445 app: add the new distance, rotation and slider axes to GimpCoords
and add code to get them from events and devices.
2018-05-20 21:06:35 +02:00
Michael Natterer
4703a195bb app: remove GimpHighlightableButton
and use gimp_button_set_suggested() and _set_destructive() instead.
2018-05-20 21:06:35 +02:00
Michael Natterer
f102ceb63f app: add gimp_button_set_suggested,destructive() to gimpwidgets-utils
which set/unset the "suggested-action" and "destructive-action" style
classes and make sure the button relief is right.
2018-05-20 21:06:35 +02:00
Michael Natterer
602dfb9a38 app: the last s/GdkDeviceManager/GdkSeat/ 2018-05-20 21:06:35 +02:00
Michael Natterer
d2edafbf16 app: use GdkDeviceTool properties to GimpDeviceInfo
and display the current tool's info in GimpDeviceInfoEditor.
2018-05-20 21:06:35 +02:00
Michael Natterer
9a4c9b6650 app: add "source", "vendor-id" and "product-id" to GimpDeviceInfo
and display them in GimpDeviceInfoEditor.
2018-05-20 21:06:35 +02:00
Michael Natterer
89a4ea85ef app: port GimpDeviceManager and GimpDeviceInfo to GdkSeat
and also be smarter about what devices we enable by default: enable
all tablet devices and disable all things mouse, they can still be
enabled in the device dialog.
2018-05-20 21:06:35 +02:00
Jehan
24d0886f57 app: extended device concept does not seem to exist in GTK+3.
We were keeping around a flag telling us if coordinates are extended or
not. In GTK+2, a device indeed had to be enabled. In GTK+3, I can see
that device with extended inputs are enabled by default (they always
have pressure, etc.). This flag is made useless.
2018-05-20 21:06:35 +02:00
Michael Natterer
19caf4add8 app: undeprecate GimpDeviceStatus. don't use gtk_widget_set_state()
Use the same code as GimpPrefsBox to make the active device look like
a selected list item.
2018-05-20 21:06:35 +02:00
Jehan
e0b3e893d2 app: GTK+3 has more GdkAxisUse values.
This fixes a crash when we were looping until GDK_AXIS_LAST, but our
existing code was expecting less values.

Also I note that GTK+3 has an additional GDK_AXIS_ROTATION since version
3.22, even though we were told that some pens with rotation support
would report rotation values with same valuator as for the wheel (at
least, the Wacom Art Pen would apparently use the same 6th valuator).
For proper support, it would be really worth testing such pens.
2018-05-20 21:06:35 +02:00
Michael Natterer
f3f61379f7 app: remove the option to enable tearoff menus 2018-05-20 21:06:35 +02:00
Michael Natterer
00c6047108 app: undeprecate gimp_highlight_widget_draw()
by stealing the few lines of code from gtk-inspector. Looks better, too :)
2018-05-20 21:06:35 +02:00
Michael Natterer
71523b20cb app: add the help button the proper way in GimpFileDialog
Removes deprecated API usage and brings back the button.
2018-05-20 21:06:34 +02:00
Michael Natterer
1fcebb5a73 app: don't use gtk_widget_modify_text() in GimpContainerEntry
Instead, show an EEK wilber icon if an object with the entered name
doesn't exist.
2018-05-20 21:06:34 +02:00
Michael Natterer
465300f0ae app: undeprecate GimpDashEditor 2018-05-20 21:06:34 +02:00
Michael Natterer
d7e7020a32 app: undeprecate GimpDessionInfo and fix remembering size and position
Don't mix GtkWindow/GdkWindow/GdkEventConfigure values, always use
GtkWindow API. This seems to fix everything, probably because it
properly takes client-side window decorations into account.
2018-05-20 21:06:34 +02:00
Michael Natterer
2dd2f1509b Enable and fix smooth scrolling and zooming
- Fix gimp_scroll_adjustment_values() for smooth scroll events
- Set GDK_SMOOTH_SCROLL_MASK on all widgets where we set GDK_SCROLL_MASK
- Add GIMP_ZOOM_SMOOTH to enum GimpZoomType
- Add "gdouble delta" to gimp_zoom_model_step()
- Change the meaning of the "scale" parameter to "scale or delta" in
  all functions that take GimpZoomType and a scale factor.
2018-05-20 21:06:34 +02:00
Michael Natterer
e4d05a4758 app: use gimp_scroll_adjustment_values() in GimpNavigationEditor
and change signature of GimpNavigationView::scroll() to have
a GdkEventScroll instead of a GdkScrollDirection.
2018-05-20 21:06:34 +02:00
Michael Natterer
fa3abc957b app: set GDK_SCROLL_MASK on widgets that need scroll events 2018-05-20 21:06:34 +02:00
Michael Natterer
a072a5b789 app: get rid of gdk_keymap_get_default(), use get_for_display() instead 2018-05-20 21:06:34 +02:00
Michael Natterer
7d151002b0 app: fix button order in GimpColorDialog 2018-05-20 21:06:34 +02:00
Michael Natterer
cb9651cf73 app: use the passed parent's toplevel in gimp_color_dialog_new() 2018-05-20 21:06:34 +02:00
Michael Natterer
389e86fff8 app: use GTK_ICON_SIZE_MENU for GimpColorEditor's page switching icons 2018-05-20 21:06:34 +02:00
Michael Natterer
bdbec7941c Use the new macros from the last commit in all files
...and gone are the annoying warnings.
2018-05-20 21:06:34 +02:00
Michael Natterer
dfb4d26611 Use gtk_show_uri_on_window(), gtk_show_uri() is deprecated 2018-05-20 21:06:34 +02:00
Michael Natterer
4e7eead7e3 app: set all GtkPaned widgets to have wide handles
the narrow handles' event areas did overlap with our own widgets close
to the handle.
2018-05-20 21:06:34 +02:00
Michael Natterer
407603326f app: follow preferences changes/improvements in GimpDeviceEditor 2018-05-20 21:06:34 +02:00
Michael Natterer
126c9347e6 app: behold unseen fancy shit in preferences 2018-05-20 21:06:34 +02:00
Michael Natterer
1d8696cd80 Get rid of gdk_flush() globally, use gdk_display_flush() 2018-05-20 21:06:34 +02:00
Michael Natterer
b5d78ee98a app: fix themeing of GimpHistogramView and GimpCurveView
by simply getting rid of all earlier added style properties
and instead using the style of the "view" CSS class.
2018-05-20 21:06:33 +02:00
Michael Natterer
bb2a9d119f libgimpconfig: move all GimpColorConfig members to private 2018-05-20 21:06:33 +02:00
Michael Natterer
73af1873a7 app: gdk_screen_get_monitor_workarea() -> gdk_monitor_get_workarea() 2018-05-20 21:06:33 +02:00
Michael Natterer
885f66158a app: kill all except one GtkAlignment, the tag popup one is a bit tricky 2018-05-20 21:06:33 +02:00
Michael Natterer
369b273157 libgimpwidgets: move GimpEnumStore.enum_class to private 2018-05-20 21:06:33 +02:00
Simon Budig
9cb67fa992 app: kill the last GtkTables. 2018-05-20 21:06:33 +02:00
Simon Budig
8e900d1867 app/widgets: port the toolbox indicator area to GtkGrid 2018-05-20 21:06:33 +02:00
Simon Budig
9954030487 app/widgets: port the gimpstrokeeditor to GtkGrid 2018-05-20 21:06:33 +02:00
Simon Budig
5e475d67bd app/widgets: port gimpdashboard to GtkGrid 2018-05-20 21:06:33 +02:00
Michael Natterer
534c02d590 app: fix GimpPrefsBox' page titles to look like selected rows again 2018-05-20 21:06:33 +02:00
Michael Natterer
18c4a288ee app: properly align frame children in GimpGridEditor 2018-05-20 21:06:33 +02:00
Michael Natterer
affec75898 app: pack the content vbox expanding in GimpPrefsBox 2018-05-20 21:06:33 +02:00
Jehan
7642715c17 app: allow setting parent for dialogs created by GimpDialogFactory.
Fixes a bunch of:
> Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
2018-05-20 21:06:33 +02:00
Simon Budig
4bf50c23ea app/widgets: port GimpImagePropView to GtkGrid 2018-05-20 21:06:33 +02:00
Simon Budig
6452afb7e0 app/widgets: get rid of GtkTable in GimpTemplateEditor 2018-05-20 21:06:33 +02:00
Michael Natterer
960b530d03 app: put back two lines that got lost in earlier GTK+ 3.0 porting 2018-05-20 21:06:32 +02:00
Michael Natterer
807e98b46c app: make spinscale much more bearable by fixing some coords 2018-05-20 21:06:32 +02:00
Simon Budig
72e63887ba libgimpwidgets: convert GimpSizeEntry to a GtkGrid. 2018-05-20 21:06:32 +02:00
Timm Bäder
509813c1a9 spinscale: Decrease height 2018-05-20 21:06:32 +02:00
Michael Natterer
44b9bfe613 spinscale: remove our own border drawing 2018-05-20 21:06:32 +02:00
Timm Bäder
fde2df5539 spinscale: Fix styling 2018-05-20 21:06:32 +02:00
Timm Bäder
1fda8e1963 fgbgvew: Pass correct state to GtkStyleContext api 2018-05-20 21:06:32 +02:00
Timm Bäder
1198a7e5af dockbook: chain up at end of size-allocate 2018-05-20 21:06:32 +02:00
Michael Natterer
b2dd892eb4 app: set the right "use-header-bar" on all (?) dialogs 2018-05-20 21:06:32 +02:00
Michael Natterer
ebe528aca8 app: port most menu items that want images to gimp_menu_item_set_image()
or remove the item setting completely.
2018-05-20 21:06:30 +02:00
Michael Natterer
0c05ec63f6 app: add utility functions gimp_widget_get,set_image()
as replacement for the deprecated GtkImageMenuItem, for the few cases
where we really want an icon/image in a menu item.
2018-05-20 21:06:30 +02:00
Michael Natterer
10e3a968c1 app: remove the unused GimpContainerGridView 2018-05-20 21:06:30 +02:00
Michael Natterer
2f1a4fdc67 app: gimp_ui_manager_ui_popup_at_pointer() and use it where appropriate
Only one call to gimp_ui_manager_ui_popup() left...
2018-05-20 21:06:30 +02:00
Michael Natterer
b28228d911 app: add gimp_ui_manager_ui_popup_at_widget()
and use it where we used to pass gimp_button_menu_position() to
gimp_ui_manager_up_popup(), remove gimp_button_menu_position() because
it's now unused.
2018-05-20 21:06:30 +02:00
Michael Natterer
4a6388b265 app: use gtk_menu_popup_at_widget() in GimpIconPicker 2018-05-20 21:06:30 +02:00
Michael Natterer
6c8cf7876a Replace lots of deprecated gtk_menu_popup(), only GimpUIManager left 2018-05-20 21:06:30 +02:00
Michael Natterer
251d2f494e app: port some stuff to gdk_seat_grab/ungrab 2018-05-20 21:06:30 +02:00