ui.selection->new_x1 = ui.selection->bbox.left;
ui.selection->new_x2 = ui.selection->bbox.right;
gnome_canvas_item_set(ui.selection->canvas_item, "dash", NULL, NULL);
+ update_cursor_for_resize(pt);
return TRUE;
}
return FALSE;
}
p+= 2*item->path->num_points*sizeof(double);
if (item->brush.variable_width) {
- g_memmove(p, item->widths, (item->path->num_points-1)*sizeof(double));
+ item->widths = g_memdup(p, (item->path->num_points-1)*sizeof(double));
p+= (item->path->num_points-1)*sizeof(double);
}
else item->widths = NULL;
gtk_selection_data_free(sel_data);
update_copy_paste_enabled();
+ update_color_menu();
+ update_thickness_buttons();
+ update_color_buttons();
+ update_font_button();
+ update_cursor(); // FIXME: can't know if pointer is within selection!
}
// modify the color or thickness of pen strokes in a selection
get_pointer_coords(event, pt);
ui.cur_item_type = ITEM_TEXT;
+ // HACK TO BYPASS GTK+ 2.17 issues
+ if (!gtk_check_version(2, 17, 0)) {
+ /* first we make *all* canvas subwindows become XInput aware,
+ so that it'll be safe to disable XInput later on... (!!!) */
+ gtk_widget_set_extension_events(GTK_WIDGET (canvas),
+ ui.use_xinput?GDK_EXTENSION_EVENTS_ALL:GDK_EXTENSION_EVENTS_NONE);
+ /* then we ask the canvas's leave-notify handler to disable
+ xinput when it's safe to do so... */
+ ui.need_emergency_disable_xinput = TRUE;
+ }
+
if (item==NULL) {
item = g_new(struct Item, 1);
item->text = NULL;
GnomeCanvasItem *tmpitem;
if (ui.cur_item_type!=ITEM_TEXT) return; // nothing for us to do!
+
+ // HACK TO BYPASS GTK+ 2.17 issues
+ if (!gtk_check_version(2, 17, 0)) {
+ // re-enable XInput if needed (we disabled it during text edition)
+ gdk_input_set_extension_events(GTK_WIDGET(canvas)->window,
+ GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK,
+ ui.use_xinput?GDK_EXTENSION_EVENTS_ALL:GDK_EXTENSION_EVENTS_NONE);
+ }
// finalize the text that's been edited...
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ui.cur_item->widget));