Completed mouse support.
[rodin/chimara.git] / libchimara / mouse.c
index f6c23b229e3b595114e26fa3b21c9991c1f46c06..98d522ff795d603359830fbef37d2b34d8defc31 100644 (file)
@@ -6,7 +6,7 @@ glk_request_mouse_event(winid_t win)
 {
        VALID_WINDOW(win, return);
        g_return_if_fail(win != NULL);
-       g_return_if_fail(win->type == wintype_TextBuffer || win->type == wintype_TextGrid);
+       g_return_if_fail(win->type == wintype_TextGrid);
 
        g_signal_handler_unblock(win->widget, win->button_press_event_handler);
 }
@@ -16,7 +16,7 @@ glk_cancel_mouse_event(winid_t win)
 {
        VALID_WINDOW(win, return);
        g_return_if_fail(win != NULL);
-       g_return_if_fail(win->type == wintype_TextBuffer || win->type == wintype_TextGrid);
+       g_return_if_fail(win->type == wintype_TextGrid);
 
        g_signal_handler_block(win->widget, win->button_press_event_handler);
 }
@@ -27,8 +27,7 @@ on_window_button_press(GtkWidget *widget, GdkEventButton *event, winid_t win)
        ChimaraGlk *glk = CHIMARA_GLK(gtk_widget_get_ancestor(win->widget, CHIMARA_TYPE_GLK));
        g_assert(glk);
 
-       /* TODO: calculate coordinates in proper metric */
-       event_throw(glk, evtype_MouseInput, win, event->x, event->y);
+       event_throw(glk, evtype_MouseInput, win, event->x/win->unit_width, event->y/win->unit_height);
 
        return TRUE;
 }