Asepriteのマウスポインタを固定する

個人的にドット絵を描くならAsepriteが一番使いやすいと思っているのですが、
マウスポインタがよく消えたり見えにくかったりするのが難点だと感じていました。
つい最近ソースが公開されている事を知ったので、ソースに手をいれて強制的に固定するようにしてみました。

まずは普通にcloneして最新のv1.1.1のタグに切り替えます

git clone --recursive https://github.com/aseprite/aseprite.git
cd aseprite
git checkout v1.1.1

そして、下記の2ファイルを変更します

  • src/ui/system.cpp 109行目付近
       case ui::kSizeWCursor: nativeCursor = she::kSizeWCursor; break;
       case ui::kSizeNWCursor: nativeCursor = she::kSizeNWCursor; break;
     }
+    nativeCursor = she::kArrowCursor;
   }
  • src/ui/window.cpp 411行目付近
           case HitTestBorderS: cursor = kSizeSCursor; break;
         }

+        cursor = kArrowCursor;
         set_mouse_cursor(cursor);
         return true;
       }

これでasepriteをビルドします。(INSTALL.mdをご参考ください)
Visual Studioの開発者用コマンドプロンプトから、下記の通り実行します。

mkdir build
cd build
cmake .. -G "NMake Makefiles"
nmake aseprite

Visual Studio 2015 Community (Update 1) をインストールした Windows 10 でビルド成功を確認しました。
成果物として build/bin/aseprite.exe が出力されるので、これを起動して動作確認します。
メニューバーに “WARNING” と表示される場合は、設定ファイルとバイナリのバージョン差異があるため、src/config.h の25行目付近を書き換えます。

 // General information
 #define PACKAGE "Aseprite"
-#define VERSION "1.1.1-dev"
+#define VERSION "1.1.1"

 #ifdef CUSTOM_WEBSITE_URL
 #define WEBSITE                 CUSTOM_WEBSITE_URL // To test web server

マウスポインタの切り替えがなくなり、見えなくなる事もなくなってより使いやすくなった気がします。
ただ、見ての通り無理矢理固定するので、ドット絵なマウスポインタと切り替えたりはできなくなります。
また、拡大縮小ツールを使った時や、アプリ内ウィンドウの端っこをつかむときもカーソルが変化しなくなる為、部分的には使いにくくなります。
それでも個人的にはこの方が作業ストレスが減るので、しばらくこのまま使ってみようと思います。