for (i=0; i < NUM_STROKE_TOOLS; i++) {
b = &(ui.brushes[j][i]);
b->tool_type = i;
- b->color_rgba = predef_colors_rgba[b->color_no];
- if (i == TOOL_HIGHLIGHTER) {
- b->color_rgba &= ui.hiliter_alpha_mask;
+ if (b->color_no>=0) {
+ b->color_rgba = predef_colors_rgba[b->color_no];
+ if (i == TOOL_HIGHLIGHTER) {
+ b->color_rgba &= ui.hiliter_alpha_mask;
+ }
}
b->thickness = predef_thickness[i][b->thickness_no];
}
g_memmove(ui.default_brushes+i, &(ui.brushes[0][i]), sizeof(struct Brush));
ui.cur_mapping = 0;
+ ui.which_unswitch_button = 0;
reset_recognizer();
GTK_TOGGLE_TOOL_BUTTON(GET_COMPONENT("buttonFullscreen")), TRUE);
gtk_window_fullscreen(GTK_WINDOW(winMain));
}
+ gtk_button_set_relief(GTK_BUTTON(GET_COMPONENT("buttonColorChooser")), GTK_RELIEF_NONE);
allow_all_accels();
add_scroll_bindings();
+ // prevent interface items from stealing focus
+ // glade doesn't properly handle can_focus, so manually set it
+ gtk_combo_box_set_focus_on_click(GTK_COMBO_BOX(GET_COMPONENT("comboLayer")), FALSE);
+ g_signal_connect(GET_COMPONENT("spinPageNo"), "activate",
+ G_CALLBACK(handle_activate_signal), NULL);
+ gtk_container_forall(GTK_CONTAINER(winMain), unset_flags, (gpointer)GTK_CAN_FOCUS);
+ GTK_WIDGET_SET_FLAGS(GTK_WIDGET(canvas), GTK_CAN_FOCUS);
+ GTK_WIDGET_SET_FLAGS(GTK_WIDGET(GET_COMPONENT("spinPageNo")), GTK_CAN_FOCUS);
+
+ // install hooks on button/key/activation events to make the spinPageNo lose focus
+ gtk_container_forall(GTK_CONTAINER(winMain), install_focus_hooks, NULL);
+
// set up and initialize the canvas
gtk_widget_show (GTK_WIDGET (canvas));
dev_list = gdk_devices_list();
while (dev_list != NULL) {
device = (GdkDevice *)dev_list->data;
- if (device != gdk_device_get_core_pointer()) {
+ if (device != gdk_device_get_core_pointer() && device->num_axes >= 2) {
/* get around a GDK bug: map the valuator range CORRECTLY to [0,1] */
#ifdef ENABLE_XINPUT_BUGFIX
gdk_device_set_axis_use(device, 0, GDK_AXIS_IGNORE);
gdk_device_set_axis_use(device, 1, GDK_AXIS_IGNORE);
#endif
gdk_device_set_mode(device, GDK_MODE_SCREEN);
- if (g_str_has_suffix(device->name, "eraser"))
+ if (g_strrstr(device->name, "raser"))
gdk_device_set_source(device, GDK_SOURCE_ERASER);
can_xinput = TRUE;
}
gtk_widget_set_sensitive(GET_COMPONENT("optionsUseXInput"), FALSE);
ui.use_xinput = ui.allow_xinput && can_xinput;
- ui.need_emergency_disable_xinput = FALSE;
- gtk_check_menu_item_set_active(
- GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsAntialiasBG")), ui.antialias_bg);
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsProgressiveBG")), ui.progressive_bg);
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsPrintRuling")), ui.print_ruling);
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsAutoloadPdfXoj")), ui.autoload_pdf_xoj);
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsLeftHanded")), ui.left_handed);
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsShortenMenus")), ui.shorten_menus);
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsAutoSavePrefs")), ui.auto_save_prefs);
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsButtonSwitchMapping")), ui.button_switch_mapping);
hide_unimplemented();
gtk_widget_show (winMain);
update_cursor();
-
+
/* this will cause extension events to get enabled/disabled, but
we need the windows to be mapped first */
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsUseXInput")), ui.use_xinput);
- /* fix a bug in GTK+ 2.16 and beyond: scrollbars shouldn't get extended
+ /* fix a bug in GTK+ 2.16 and 2.17: scrollbars shouldn't get extended
input events from pointer motion when cursor moves into main window */
-#if GTK_CHECK_VERSION(2,14,0)
+
if (!gtk_check_version(2, 16, 0)) {
g_signal_connect (
GET_COMPONENT("menubar"),
(gpointer)(gtk_scrolled_window_get_hscrollbar(GTK_SCROLLED_WINDOW(w))),
"event", G_CALLBACK (filter_extended_events),
NULL);
- g_signal_connect (
- GET_COMPONENT("comboLayer"),
- "notify::popup-shown", G_CALLBACK (combobox_popup_disable_xinput),
- NULL);
}
-#endif
// load the MRU
init_mru();
-
+
// and finally, open a file specified on the command line
// (moved here because display parameters weren't initialized yet...)