diff options
author | est31 <est31@users.noreply.github.com> | 2016-08-20 21:26:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-20 21:26:44 +0200 |
commit | f092dac9793b80c29a669b0d676ee3e4f55f682e (patch) | |
tree | 75bb3a5c4f9d82fc6c18f4481f3b8a662ea481c3 /src | |
parent | 6590140260d0338ab5a0fd2bbcd4c72f07dd963d (diff) | |
download | minetest-f092dac9793b80c29a669b0d676ee3e4f55f682e.tar.gz minetest-f092dac9793b80c29a669b0d676ee3e4f55f682e.tar.bz2 minetest-f092dac9793b80c29a669b0d676ee3e4f55f682e.zip |
Also support X11 icon for minetest copies installed via make install (#4407)
Fixes #4323.
Diffstat (limited to 'src')
-rw-r--r-- | src/client/clientlauncher.cpp | 3 | ||||
-rw-r--r-- | src/cmake_config.h.in | 1 | ||||
-rw-r--r-- | src/porting.cpp | 19 | ||||
-rw-r--r-- | src/porting.h | 4 |
4 files changed, 23 insertions, 4 deletions
diff --git a/src/client/clientlauncher.cpp b/src/client/clientlauncher.cpp index aa3c2d548..6145e3dde 100644 --- a/src/client/clientlauncher.cpp +++ b/src/client/clientlauncher.cpp @@ -114,8 +114,7 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args) porting::setXorgClassHint(video_driver->getExposedVideoData(), PROJECT_NAME_C); - porting::setXorgWindowIcon(device, - porting::path_share + "/misc/minetest-xorg-icon-128.png"); + porting::setXorgWindowIcon(device); /* This changes the minimum allowed number of vertices in a VBO. diff --git a/src/cmake_config.h.in b/src/cmake_config.h.in index 50f34a0b8..4b731020a 100644 --- a/src/cmake_config.h.in +++ b/src/cmake_config.h.in @@ -14,6 +14,7 @@ #define STATIC_SHAREDIR "@SHAREDIR@" #define STATIC_LOCALEDIR "@LOCALEDIR@" #define BUILD_TYPE "@CMAKE_BUILD_TYPE@" +#define ICON_DIR "@ICONDIR@" #cmakedefine01 RUN_IN_PLACE #cmakedefine01 USE_GETTEXT #cmakedefine01 USE_CURL diff --git a/src/porting.cpp b/src/porting.cpp index acd047232..ae9114ac8 100644 --- a/src/porting.cpp +++ b/src/porting.cpp @@ -611,7 +611,24 @@ void setXorgClassHint(const video::SExposedVideoData &video_data, #endif } -bool setXorgWindowIcon(IrrlichtDevice *device, +bool setXorgWindowIcon(IrrlichtDevice *device) +{ +#if RUN_IN_PLACE + return setXorgWindowIconFromPath(device, + path_share + "/misc/" PROJECT_NAME "-xorg-icon-128.png"); +#else + // We have semi-support for reading in-place data if we are + // compiled with RUN_IN_PLACE. Don't break with this and + // also try the path_share location. + return + setXorgWindowIconFromPath(device, + ICON_DIR "/hicolor/128x128/apps/" PROJECT_NAME ".png") || + setXorgWindowIconFromPath(device, + path_share + "/misc/" PROJECT_NAME "-xorg-icon-128.png"); +#endif +} + +bool setXorgWindowIconFromPath(IrrlichtDevice *device, const std::string &icon_file) { #ifdef XORG_USED diff --git a/src/porting.h b/src/porting.h index 40f6b4dc3..f5c7efcb2 100644 --- a/src/porting.h +++ b/src/porting.h @@ -367,7 +367,9 @@ inline const char *getPlatformName() void setXorgClassHint(const video::SExposedVideoData &video_data, const std::string &name); -bool setXorgWindowIcon(IrrlichtDevice *device, +bool setXorgWindowIcon(IrrlichtDevice *device); + +bool setXorgWindowIconFromPath(IrrlichtDevice *device, const std::string &icon_file); // This only needs to be called at the start of execution, since all future |