
Ubuntu日本語フォーラム

ログインしていません。
お世話になります。
マウスのモーションに合わせて点を描くプログラムを作成しています。
マウスのモーションイベントを感知するためにmotion_notify_event()を使っています。
点を描くためにgdk_draw_point()を使っています。
描画のソースは以下のとおりです
gboolean cb_motion_notify_event
(GtkWidget *widget, GdkEventMotion *event, gpointer user_data)
{
GdkGC *gc = widget->style->black_gc;
gint x = (gint)event->x;
gint y = (gint)event->y;
gdk_draw_point(pixmap,gc,x,y);
gdk_draw_drawable(widget->window,gc,pixmap,0,0,0,0,-1,-1);
}
この二つの関数を組み合わせると、
どうも(x-1, y-1)の位置に点を再描画してしまい、二重に点を描いてしまいます。
何かお気づきになられたことがありましたら、アドバイスよろしくお願いします。
オフライン
二重描画の件ですが、
調査したところ、環境によっては正常に描画できることが確認できました。
正常に動作した環境:ネイティブなOSとして起動したubuntu 9.04
二重描画してしまう環境:windowsXP(SP3)から仮想化して起動したubuntu9.04 (仮想化マシン:Sun VirtualBox 2.2.0)
仮想化した場合とネイティブ環境とでは動作が異なるという現象は起きるものなのでしょうか?
オフライン