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.
119 lines
3.1 KiB
Meson
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,
|
|
],
|
|
)
|