Gimp/app/display/meson.build
Jehan 3598562472 app, libgimpwidgets: drop the thumbnail icon feature.
From years of discussions, it turns out that:
- The thumbnailed-Wilber icon replacing the generic icon of GIMP often
  makes the application harder to spot in the icon list of running
  processes.
- In single-window mode in particular, it makes even less sense as we
  just show the one active image anyway.
- Even in multi-window mode, nowadays many OSes or desktop group windows
  of a same application under one icon. So we end up with several image
  windows under a thumbnail only showing the top image. This happens in
  KDE, GNOME, Cinnamon and Windows at least apparently (as far as is
  being reported).
- Some platforms would just use only the OS-declared icon and not care
  about runtime-declared ones. This is apparently the case on macOS, and
  also on GNOME when the desktop file is seen by the desktop
  environment. So all our code about generating thumbnailed icon is
  wasted on these platform anyway.
- When intensively testing the current behavior, I had cases when the
  icon was not properly updated. We could of course investigate and fix
  the issues, but considering all the previous points, it might make
  more sense to simply drop the feature which is mostly useless, or
  worse bothersome, hence simplify the code greatly.
- Finally API to set icons from GdkPixbuf data has been removed in GTK4.
  So long term, trying to keep this whole machinery feels like just
  making our life difficult for a feature which all OSes seem to
  deprecate and which might not be possible anymore soon (or just get
  harder and harder to implement).

Note that I don't use gtk_window_set_default_icon_name() because it
would use the icon from our theme, yet so far we are not sure it makes
sense for the application icon which we probably always want to be the
same, whatever the chosen theme. Finally I just list various common icon
sizes because GTK API doesn't seem to be clever enough yet. I can't just
give it 1 SVG image (e.g. with gtk_window_set_default_icon_from_file())
and hope it does the resizing at the last minute. It turns out it
doesn't and we get an extra-small icon. So instead, let's generate
common sizes ourselves from the same SVG.
2021-07-06 11:21:37 +02:00

119 lines
3.1 KiB
Meson

appdisplayenums = custom_target('display-enums.c',
input : [ 'display-enums.h', ],
output: [ 'display-enums.c', ],
command: [
gimp_mkenums,
'--fhead','#include "config.h"\n'
+ '#include <gio/gio.h>\n'
+ '#include "libgimpbase/gimpbase.h"\n'
+ '#include "@basename@"\n'
+ '#include "gimp-intl.h"\n',
app_mkenums_custom_target_commonargs,
'@INPUT@',
],
capture: true,
)
libappdisplay_sources = [
'gimpcanvas-style.c',
'gimpcanvas.c',
'gimpcanvasarc.c',
'gimpcanvasboundary.c',
'gimpcanvasbufferpreview.c',
'gimpcanvascanvasboundary.c',
'gimpcanvascorner.c',
'gimpcanvascursor.c',
'gimpcanvasgrid.c',
'gimpcanvasgroup.c',
'gimpcanvasguide.c',
'gimpcanvashandle.c',
'gimpcanvasitem-utils.c',
'gimpcanvasitem.c',
'gimpcanvaslayerboundary.c',
'gimpcanvaslimit.c',
'gimpcanvasline.c',
'gimpcanvaspassepartout.c',
'gimpcanvaspath.c',
'gimpcanvaspen.c',
'gimpcanvaspolygon.c',
'gimpcanvasprogress.c',
'gimpcanvasproxygroup.c',
'gimpcanvasrectangle.c',
'gimpcanvasrectangleguides.c',
'gimpcanvassamplepoint.c',
'gimpcanvastextcursor.c',
'gimpcanvastransformguides.c',
'gimpcanvastransformpreview.c',
'gimpcursorview.c',
'gimpdisplay-foreach.c',
'gimpdisplay-handlers.c',
'gimpdisplay.c',
'gimpdisplayshell-actions.c',
'gimpdisplayshell-appearance.c',
'gimpdisplayshell-autoscroll.c',
'gimpdisplayshell-callbacks.c',
'gimpdisplayshell-close.c',
'gimpdisplayshell-cursor.c',
'gimpdisplayshell-dnd.c',
'gimpdisplayshell-draw.c',
'gimpdisplayshell-expose.c',
'gimpdisplayshell-filter-dialog.c',
'gimpdisplayshell-filter.c',
'gimpdisplayshell-grab.c',
'gimpdisplayshell-handlers.c',
'gimpdisplayshell-items.c',
'gimpdisplayshell-layer-select.c',
'gimpdisplayshell-profile.c',
'gimpdisplayshell-progress.c',
'gimpdisplayshell-render.c',
'gimpdisplayshell-rotate-dialog.c',
'gimpdisplayshell-rotate.c',
'gimpdisplayshell-rulers.c',
'gimpdisplayshell-scale-dialog.c',
'gimpdisplayshell-scale.c',
'gimpdisplayshell-scroll.c',
'gimpdisplayshell-scrollbars.c',
'gimpdisplayshell-selection.c',
'gimpdisplayshell-title.c',
'gimpdisplayshell-tool-events.c',
'gimpdisplayshell-transform.c',
'gimpdisplayshell-utils.c',
'gimpdisplayshell.c',
'gimpimagewindow.c',
'gimpmotionbuffer.c',
'gimpmultiwindowstrategy.c',
'gimpnavigationeditor.c',
'gimpscalecombobox.c',
'gimpsinglewindowstrategy.c',
'gimpstatusbar.c',
'gimptoolcompass.c',
'gimptooldialog.c',
'gimptoolfocus.c',
'gimptoolgui.c',
'gimptoolgyroscope.c',
'gimptoolhandlegrid.c',
'gimptoolline.c',
'gimptoolpath.c',
'gimptoolpolygon.c',
'gimptoolrectangle.c',
'gimptoolrotategrid.c',
'gimptoolsheargrid.c',
'gimptooltransform3dgrid.c',
'gimptooltransformgrid.c',
'gimptoolwidget.c',
'gimptoolwidgetgroup.c',
appdisplayenums,
gitversion_h,
appcoremarshal[1],
]
libappdisplay = static_library('appdisplay',
libappdisplay_sources,
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Display"',
dependencies: [
gegl, gtk3,
],
)