}
else {
curtime = time(NULL);
- strftime(stime, 30, "%F-Note-%H-%M.xoj", localtime(&curtime));
+ strftime(stime, 30, "%Y-%m-%d-Note-%H-%M.xoj", localtime(&curtime));
if (ui.default_path!=NULL)
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (dialog), ui.default_path);
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), stime);
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), g_basename(in_fn));
} else {
curtime = time(NULL);
- strftime(stime, 30, "%F-Note-%H-%M.pdf", localtime(&curtime));
+ strftime(stime, 30, "%Y-%m-%d-Note-%H-%M.pdf", localtime(&curtime));
if (ui.default_path!=NULL)
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (dialog), ui.default_path);
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), stime);
gpointer user_data)
{
end_text();
- process_papercolor_activate(menuitem, COLOR_WHITE);
+ process_papercolor_activate(menuitem, COLOR_WHITE, predef_bgcolors_rgba[COLOR_WHITE]);
}
gpointer user_data)
{
end_text();
- process_papercolor_activate(menuitem, COLOR_YELLOW);
+ process_papercolor_activate(menuitem, COLOR_YELLOW, predef_bgcolors_rgba[COLOR_YELLOW]);
}
gpointer user_data)
{
end_text();
- process_papercolor_activate(menuitem, COLOR_RED);
+ process_papercolor_activate(menuitem, COLOR_RED, predef_bgcolors_rgba[COLOR_RED]);
}
gpointer user_data)
{
end_text();
- process_papercolor_activate(menuitem, COLOR_ORANGE);
+ process_papercolor_activate(menuitem, COLOR_ORANGE, predef_bgcolors_rgba[COLOR_ORANGE]);
}
gpointer user_data)
{
end_text();
- process_papercolor_activate(menuitem, COLOR_BLUE);
+ process_papercolor_activate(menuitem, COLOR_BLUE, predef_bgcolors_rgba[COLOR_BLUE]);
}
gpointer user_data)
{
end_text();
- process_papercolor_activate(menuitem, COLOR_GREEN);
+ process_papercolor_activate(menuitem, COLOR_GREEN, predef_bgcolors_rgba[COLOR_GREEN]);
}
on_papercolorOther_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
-
+ GtkWidget *dialog;
+ GtkColorSelection *colorsel;
+ gint result;
+ guint rgba;
+ GdkColor gdkcolor;
+
+ end_text();
+ dialog = gtk_color_selection_dialog_new(_("Pick a Paper Color"));
+ colorsel = GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(dialog)->colorsel);
+ if (ui.cur_page->bg->type == BG_SOLID) rgba = ui.cur_page->bg->color_rgba;
+ else rgba = ui.default_page.bg->color_rgba;
+ rgb_to_gdkcolor(rgba, &gdkcolor);
+ gtk_color_selection_set_current_color(colorsel, &gdkcolor);
+
+ if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
+ gtk_color_selection_get_current_color(colorsel, &gdkcolor);
+ process_papercolor_activate(menuitem, COLOR_OTHER, gdkcolor_to_rgba(gdkcolor, 0xffff));
+ }
+ gtk_widget_destroy(dialog);
}
aboutDialog = create_aboutDialog ();
labelTitle = GTK_LABEL(g_object_get_data(G_OBJECT(aboutDialog), "labelTitle"));
gtk_label_set_markup(labelTitle,
- "<span size=\"xx-large\" weight=\"bold\">Xournal " VERSION "</span>");
+ "<span size=\"xx-large\" weight=\"bold\">Xournal " VERSION_STRING "</span>");
gtk_dialog_run (GTK_DIALOG(aboutDialog));
gtk_widget_destroy(aboutDialog);
}
}
if ((event->state & (GDK_CONTROL_MASK|GDK_MOD1_MASK)) != 0) return FALSE;
// no control-clicking or alt-clicking
+ if (!is_core) gdk_device_get_state(event->device, event->window, event->axes, NULL);
+ // synaptics touchpads send bogus axis values with ButtonDown
if (!is_core)
fix_xinput_coords((GdkEvent *)event);
ui.which_mouse_button = event->button;
switch_mapping(mapping);
+#ifdef WIN32
+ update_cursor();
+#endif
// in text tool, clicking in a text area edits it
if (ui.toolno[mapping] == TOOL_TEXT) {
GdkEventCrossing *event,
gpointer user_data)
{
+ GList *dev_list;
+ GdkDevice *dev;
+#ifdef INPUT_DEBUG
+ printf("DEBUG: enter notify\n");
+#endif
+ /* re-enable input devices after they've been emergency-disabled
+ by leave_notify */
+ if (!gtk_check_version(2, 17, 0)) {
+ for (dev_list = gdk_devices_list(); dev_list != NULL; dev_list = dev_list->next) {
+ dev = GDK_DEVICE(dev_list->data);
+ gdk_device_set_mode(dev, GDK_MODE_SCREEN);
+ }
+ ui.is_corestroke = ui.saved_is_corestroke;
+ }
return FALSE;
}
GdkEventCrossing *event,
gpointer user_data)
{
+ GList *dev_list;
+ GdkDevice *dev;
+
#ifdef INPUT_DEBUG
- printf("DEBUG: leave notify\n");
+ printf("DEBUG: leave notify (mode=%d, details=%d)\n", event->mode, event->detail);
#endif
- if (ui.need_emergency_disable_xinput) {
- gtk_widget_set_extension_events(GTK_WIDGET (canvas), GDK_EXTENSION_EVENTS_NONE);
- ui.need_emergency_disable_xinput = FALSE;
+ /* emergency disable XInput to avoid segfaults (GTK+ 2.17) or
+ interface non-responsiveness (GTK+ 2.18) */
+ if (!gtk_check_version(2, 17, 0)) {
+ for (dev_list = gdk_devices_list(); dev_list != NULL; dev_list = dev_list->next) {
+ dev = GDK_DEVICE(dev_list->data);
+ gdk_device_set_mode(dev, GDK_MODE_DISABLED);
+ }
+ ui.saved_is_corestroke = ui.is_corestroke;
+ ui.is_corestroke = TRUE;
}
return FALSE;
}
else if (ui.cur_item_type == ITEM_RESIZESEL) {
finalize_resizesel();
}
+ else if (ui.cur_item_type == ITEM_HAND) {
+ ui.cur_item_type = ITEM_NONE;
+ }
switch_mapping(0);
return FALSE;
}
non-responsive).
*/
+#ifndef WIN32
if (!gtk_check_version(2, 17, 0)) {
+#endif
/* GTK+ 2.17 and later: everybody shares a single native window,
so we'll never get any core events, and we might as well set
extension events the way we're supposed to. Doing so helps solve
events in 2.18 */
gtk_widget_set_extension_events(GTK_WIDGET (canvas),
ui.use_xinput?GDK_EXTENSION_EVENTS_ALL:GDK_EXTENSION_EVENTS_NONE);
+#ifndef WIN32
} else {
+#endif
/* GTK+ 2.16 and earlier: we only activate extension events on the
canvas's parent GdkWindow. This allows us to keep receiving core
events. */
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);
+#ifndef WIN32
}
+#endif
update_mappings_menu();
}
}
void
-on_optionsDiscardCore_activate (GtkMenuItem *menuitem,
+on_optionsAutoloadPdfXoj_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
end_text();
- ui.discard_corepointer =
- gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
- update_mappings_menu();
+ ui.autoload_pdf_xoj = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
}
void