Hello community, here is the log from the commit of package gsequencer for openSUSE:Factory checked in at 2018-01-10 23:34:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gsequencer (Old) and /work/SRC/openSUSE:Factory/.gsequencer.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gsequencer" Wed Jan 10 23:34:55 2018 rev:5 rq:562773 version:1.3.6 Changes: -------- --- /work/SRC/openSUSE:Factory/gsequencer/gsequencer.changes 2018-01-07 17:23:46.446523228 +0100 +++ /work/SRC/openSUSE:Factory/.gsequencer.new/gsequencer.changes 2018-01-10 23:34:57.736602576 +0100 @@ -1,0 +2,19 @@ +Tue Jan 9 03:32:04 UTC 2018 - [email protected] + +- new upstream v1.3.6 fixes the most annoying bug ever. The + "clipping" issue of GtkPaned was solved by a GtkViewport. + +------------------------------------------------------------------- +Mon Jan 8 20:37:02 UTC 2018 - [email protected] + +- new upstream v1.3.5 minor fixes, increased functional test's + timeout in order to run more reliable on low power systems. + +------------------------------------------------------------------- +Mon Jan 8 01:35:46 UTC 2018 - [email protected] + +- new upstream v1.3.4 fixes to the notation and automation editor. + It is considered to be important to update. Since unexpected + behaviour can occur. + +------------------------------------------------------------------- Old: ---- gsequencer-1.3.3.tar.gz New: ---- gsequencer-1.3.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gsequencer.spec ++++++ --- /var/tmp/diff_new_pack.2Y4JyB/_old 2018-01-10 23:34:58.312575550 +0100 +++ /var/tmp/diff_new_pack.2Y4JyB/_new 2018-01-10 23:34:58.316575362 +0100 @@ -18,7 +18,7 @@ %define libagssonumber 1 %define libgsequencersonumber 0 Name: gsequencer -Version: 1.3.3 +Version: 1.3.6 Release: 0 Summary: Audio processing engine License: GPL-3.0+ AND AGPL-3.0+ AND GFDL-1.3 ++++++ gsequencer-1.3.3.tar.gz -> gsequencer-1.3.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ChangeLog new/gsequencer-1.3.6/ChangeLog --- old/gsequencer-1.3.3/ChangeLog 2018-01-06 06:48:45.000000000 +0100 +++ new/gsequencer-1.3.6/ChangeLog 2018-01-09 04:19:31.000000000 +0100 @@ -1,3 +1,21 @@ +ags (1.3.6) + + [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ] + * improved use of paned widgets to use GtkViewport + +ags (1.3.5) + + [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ] + * fixed ags_notation.c and ags_automation.c to always match timestamp + * increased timeouts of functional tests because build environment might have not much power + +ags (1.3.4) + + [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ] + * fixed paste only as within defined offset of AgsNotation and AgsAutomation + * fixed ags_notation_edit_draw_selection() to use vscrollbar to determine y offset + * improved selection to select only within area + ags (1.3.3) [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/X/ags_automation_editor.c new/gsequencer-1.3.6/ags/X/ags_automation_editor.c --- old/gsequencer-1.3.3/ags/X/ags_automation_editor.c 2018-01-04 13:57:27.000000000 +0100 +++ new/gsequencer-1.3.6/ags/X/ags_automation_editor.c 2018-01-09 04:20:08.000000000 +0100 @@ -184,6 +184,7 @@ void ags_automation_editor_init(AgsAutomationEditor *automation_editor) { + GtkViewport *viewport; GtkScrolledWindow *scrolled_window; GtkTable *table; @@ -217,11 +218,18 @@ 0); /* machine selector */ - scrolled_window = (GtkScrolledWindow *) gtk_scrolled_window_new(NULL, NULL); + viewport = gtk_viewport_new(NULL, + NULL); + g_object_set(viewport, + "shadow-type", GTK_SHADOW_NONE, + NULL); gtk_paned_pack1((GtkPaned *) automation_editor->paned, - (GtkWidget *) scrolled_window, + (GtkWidget *) viewport, FALSE, TRUE); + scrolled_window = (GtkScrolledWindow *) gtk_scrolled_window_new(NULL, NULL); + gtk_container_add(viewport, + scrolled_window); automation_editor->machine_selector = g_object_new(AGS_TYPE_MACHINE_SELECTOR, "homogeneous", FALSE, "spacing", 0, @@ -242,10 +250,18 @@ automation_editor->selected_machine = NULL; /* notebook audio, output, input */ - automation_editor->notebook = (GtkNotebook *) gtk_notebook_new(); + viewport = gtk_viewport_new(NULL, + NULL); + g_object_set(viewport, + "shadow-type", GTK_SHADOW_NONE, + NULL); gtk_paned_pack2((GtkPaned *) automation_editor->paned, - (GtkWidget *) automation_editor->notebook, - TRUE, FALSE); + (GtkWidget *) viewport, + TRUE, TRUE); + + automation_editor->notebook = (GtkNotebook *) gtk_notebook_new(); + gtk_container_add(viewport, + automation_editor->notebook); /* audio */ table = (GtkTable *) gtk_table_new(4, 3, @@ -1699,16 +1715,158 @@ gint first_x, last_x; gboolean paste_from_position; + auto gint ags_automation_editor_paste_automation_all(xmlNode *automation_node, + AgsTimestamp *timestamp, + gboolean match_line, gboolean no_duplicates); auto gint ags_automation_editor_paste_automation(xmlNode *audio_node); + + gint ags_automation_editor_paste_automation_all(xmlNode *automation_node, + AgsTimestamp *timestamp, + gboolean match_line, gboolean no_duplicates) + { + AgsAutomation *automation; + + GList *list_automation; + + guint first_x; + guint current_x; + gint i; + + first_x = -1; + + /* */ + i = 0; + + while(notebook == NULL || + (i = ags_notebook_next_active_tab(notebook, + i)) != -1){ + list_automation = ags_automation_find_near_timestamp_extended(machine->audio->automation, i, + automation_editor->focused_automation_edit->channel_type, automation_editor->focused_automation_edit->control_name, + timestamp); + + if(list_automation == NULL){ + automation = ags_automation_new(machine->audio, + i, + automation_editor->focused_automation_edit->channel_type, + automation_editor->focused_automation_edit->control_name); + automation->timestamp->timer.ags_offset.offset = timestamp->timer.ags_offset.offset; + machine->audio->automation = ags_automation_add(machine->audio->automation, + automation); + }else{ + automation = AGS_AUTOMATION(list_automation->data); + } + + if(paste_from_position){ + xmlNode *child; + + guint x_boundary; + + ags_automation_insert_from_clipboard_extended(automation, + automation_node, + TRUE, position_x, + TRUE, position_y, + match_line, no_duplicates); + + /* get boundaries */ + child = automation_node->children; + current_x = 0; + + while(child != NULL){ + if(child->type == XML_ELEMENT_NODE){ + if(!xmlStrncmp(child->name, + "note", + 5)){ + guint tmp; + + tmp = g_ascii_strtoull(xmlGetProp(child, + "x"), + NULL, + 10); + + if(tmp > current_x){ + current_x = tmp; + } + } + } + + child = child->next; + } + + x_boundary = g_ascii_strtoull(xmlGetProp(automation_node, + "x_boundary"), + NULL, + 10); + + + if(first_x == -1 || x_boundary < first_x){ + first_x = x_boundary; + } + + if(position_x > x_boundary){ + current_x += (position_x - x_boundary); + }else{ + current_x -= (x_boundary - position_x); + } + + if(current_x > last_x){ + last_x = current_x; + } + }else{ + xmlNode *child; + + ags_automation_insert_from_clipboard(automation, + automation_node, + FALSE, 0, + FALSE, 0); + + /* get boundaries */ + child = automation_node->children; + current_x = 0; + + while(child != NULL){ + if(child->type == XML_ELEMENT_NODE){ + if(!xmlStrncmp(child->name, + "note", + 5)){ + guint tmp; + + tmp = g_ascii_strtoull(xmlGetProp(child, + "x"), + NULL, + 10); + + if(tmp > current_x){ + current_x = tmp; + } + } + } + + child = child->next; + } + + if(current_x > last_x){ + last_x = current_x; + } + } + + if(notebook == NULL){ + break; + } + + i++; + } + + return(first_x); + } gint ags_automation_editor_paste_automation(xmlNode *audio_node){ AgsTimestamp *timestamp; - - GList *list_automation; guint first_x; gboolean match_line, no_duplicates; + first_x = -1; + match_line = ((AGS_AUTOMATION_EDITOR_PASTE_MATCH_LINE & (automation_editor->flags)) != 0) ? TRUE: FALSE; no_duplicates = ((AGS_AUTOMATION_EDITOR_PASTE_NO_DUPLICATES & (automation_editor->flags)) != 0) ? TRUE: FALSE; @@ -1734,12 +1892,8 @@ if(!xmlStrncmp(automation_node->name, "automation", 9)){ - AgsAutomation *automation; + guint64 offset; - guint offset; - guint current_x; - gint i; - timestamp_node = automation_node->children; offset = 0; @@ -1760,130 +1914,20 @@ timestamp_node = timestamp_node->next; } + /* 1st attempt */ + timestamp->timer.ags_offset.offset = offset; - /* */ - i = 0; + first_x = ags_automation_editor_paste_automation_all(automation_node, + timestamp, + match_line, no_duplicates); + + /* 2nd attempt */ + timestamp->timer.ags_offset.offset = offset + AGS_AUTOMATION_DEFAULT_OFFSET; + + ags_automation_editor_paste_automation_all(automation_node, + timestamp, + match_line, no_duplicates); - while(notebook == NULL || - (i = ags_notebook_next_active_tab(notebook, - i)) != -1){ - timestamp->timer.ags_offset.offset = offset; - - list_automation = ags_automation_find_near_timestamp_extended(machine->audio->automation, i, - automation_editor->focused_automation_edit->channel_type, automation_editor->focused_automation_edit->control_name, - timestamp); - - if(list_automation == NULL){ - automation = ags_automation_new(machine->audio, - i, - automation_editor->focused_automation_edit->channel_type, - automation_editor->focused_automation_edit->control_name); - AGS_TIMESTAMP(automation->timestamp)->timer.ags_offset.offset = offset; - machine->audio->automation = ags_automation_add(machine->audio->automation, - automation); - }else{ - automation = AGS_AUTOMATION(list_automation->data); - } - - if(paste_from_position){ - xmlNode *child; - - guint x_boundary; - - ags_automation_insert_from_clipboard_extended(automation, - automation_node, - TRUE, position_x, - TRUE, position_y, - match_line, no_duplicates); - - /* get boundaries */ - child = automation_node->children; - current_x = 0; - - while(child != NULL){ - if(child->type == XML_ELEMENT_NODE){ - if(!xmlStrncmp(child->name, - "note", - 5)){ - guint tmp; - - tmp = g_ascii_strtoull(xmlGetProp(child, - "x"), - NULL, - 10); - - if(tmp > current_x){ - current_x = tmp; - } - } - } - - child = child->next; - } - - x_boundary = g_ascii_strtoull(xmlGetProp(automation_node, - "x_boundary"), - NULL, - 10); - - - if(first_x == -1 || x_boundary < first_x){ - first_x = x_boundary; - } - - if(position_x > x_boundary){ - current_x += (position_x - x_boundary); - }else{ - current_x -= (x_boundary - position_x); - } - - if(current_x > last_x){ - last_x = current_x; - } - }else{ - xmlNode *child; - - ags_automation_insert_from_clipboard(automation, - automation_node, - FALSE, 0, - FALSE, 0); - - /* get boundaries */ - child = automation_node->children; - current_x = 0; - - while(child != NULL){ - if(child->type == XML_ELEMENT_NODE){ - if(!xmlStrncmp(child->name, - "note", - 5)){ - guint tmp; - - tmp = g_ascii_strtoull(xmlGetProp(child, - "x"), - NULL, - 10); - - if(tmp > current_x){ - current_x = tmp; - } - } - } - - child = child->next; - } - - if(current_x > last_x){ - last_x = current_x; - } - } - - if(notebook == NULL){ - break; - } - - i++; - } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/X/ags_notation_editor.c new/gsequencer-1.3.6/ags/X/ags_notation_editor.c --- old/gsequencer-1.3.3/ags/X/ags_notation_editor.c 2018-01-04 13:57:27.000000000 +0100 +++ new/gsequencer-1.3.6/ags/X/ags_notation_editor.c 2018-01-09 04:19:59.000000000 +0100 @@ -190,6 +190,7 @@ void ags_notation_editor_init(AgsNotationEditor *notation_editor) { + GtkViewport *viewport; GtkScrolledWindow *scrolled_window; GtkTable *table; @@ -220,11 +221,19 @@ TRUE, TRUE, 0); /* machine selector */ - scrolled_window = (GtkScrolledWindow *) gtk_scrolled_window_new(NULL, NULL); + viewport = gtk_viewport_new(NULL, + NULL); + g_object_set(viewport, + "shadow-type", GTK_SHADOW_NONE, + NULL); gtk_paned_pack1((GtkPaned *) notation_editor->paned, - (GtkWidget *) scrolled_window, + (GtkWidget *) viewport, FALSE, TRUE); + scrolled_window = (GtkScrolledWindow *) gtk_scrolled_window_new(NULL, NULL); + gtk_container_add(viewport, + scrolled_window); + notation_editor->machine_selector = g_object_new(AGS_TYPE_MACHINE_SELECTOR, "homogeneous", FALSE, "spacing", 0, @@ -247,11 +256,19 @@ notation_editor->selected_machine = NULL; /* table */ + viewport = gtk_viewport_new(NULL, + NULL); + g_object_set(viewport, + "shadow-type", GTK_SHADOW_NONE, + NULL); + gtk_paned_pack2((GtkPaned *) notation_editor->paned, + (GtkWidget *) viewport, + TRUE, TRUE); + table = (GtkTable *) gtk_table_new(3, 2, FALSE); - gtk_paned_pack2((GtkPaned *) notation_editor->paned, - (GtkWidget *) table, - TRUE, FALSE); + gtk_container_add(viewport, + table); /* notebook */ notation_editor->notebook = g_object_new(AGS_TYPE_NOTEBOOK, @@ -607,7 +624,7 @@ timestamp->flags &= (~AGS_TIMESTAMP_UNIX); timestamp->flags |= AGS_TIMESTAMP_OFFSET; - timestamp->timer.ags_offset.offset = AGS_NOTATION_DEFAULT_OFFSET * floor(note->x[0] / AGS_NOTATION_DEFAULT_OFFSET); + timestamp->timer.ags_offset.offset = (guint64) AGS_NOTATION_DEFAULT_OFFSET * floor((double) note->x[0] / (double) AGS_NOTATION_DEFAULT_OFFSET); pthread_mutex_lock(audio_mutex); @@ -1146,19 +1163,154 @@ gint first_x, last_x; gboolean paste_from_position; + auto gint ags_notation_editor_paste_notation_all(xmlNode *notation_node, + AgsTimestamp *timestamp, + gboolean match_channel, gboolean no_duplicates); auto gint ags_notation_editor_paste_notation(xmlNode *audio_node); + + gint ags_notation_editor_paste_notation_all(xmlNode *notation_node, + AgsTimestamp *timestamp, + gboolean match_channel, gboolean no_duplicates) + { + AgsNotation *notation; + + GList *list_notation; + + gint first_x; + guint current_x; + gint i; + + first_x = -1; + + /* */ + i = 0; + + while((i = ags_notebook_next_active_tab(notation_editor->notebook, + i)) != -1){ + list_notation = ags_notation_find_near_timestamp(machine->audio->notation, i, + timestamp); + + if(list_notation == NULL){ + notation = ags_notation_new(machine->audio, + i); + notation->timestamp->timer.ags_offset.offset = timestamp->timer.ags_offset.offset; + machine->audio->notation = ags_notation_add(machine->audio->notation, + notation); + }else{ + notation = AGS_NOTATION(list_notation->data); + } + + if(paste_from_position){ + xmlNode *child; + + guint x_boundary; + + ags_notation_insert_from_clipboard_extended(notation, + notation_node, + TRUE, position_x, + TRUE, position_y, + match_channel, no_duplicates); + + /* get boundaries */ + child = notation_node->children; + current_x = 0; + + while(child != NULL){ + if(child->type == XML_ELEMENT_NODE){ + if(!xmlStrncmp(child->name, + "note", + 5)){ + guint tmp; + + tmp = g_ascii_strtoull(xmlGetProp(child, + "x1"), + NULL, + 10); + + if(tmp > current_x){ + current_x = tmp; + } + } + } + + child = child->next; + } + + x_boundary = g_ascii_strtoull(xmlGetProp(notation_node, + "x_boundary"), + NULL, + 10); + + + if(first_x == -1 || x_boundary < first_x){ + first_x = x_boundary; + } + + if(position_x > x_boundary){ + current_x += (position_x - x_boundary); + }else{ + current_x -= (x_boundary - position_x); + } + + if(current_x > last_x){ + last_x = current_x; + } + }else{ + xmlNode *child; + + ags_notation_insert_from_clipboard(notation, + notation_node, + FALSE, 0, + FALSE, 0); + + /* get boundaries */ + child = notation_node->children; + current_x = 0; + + while(child != NULL){ + if(child->type == XML_ELEMENT_NODE){ + if(!xmlStrncmp(child->name, + "note", + 5)){ + guint tmp; + + tmp = g_ascii_strtoull(xmlGetProp(child, + "x1"), + NULL, + 10); + + if(tmp > current_x){ + current_x = tmp; + } + } + } + + child = child->next; + } + + if(current_x > last_x){ + last_x = current_x; + } + } + + i++; + } + + return(first_x); + } gint ags_notation_editor_paste_notation(xmlNode *audio_node){ AgsTimestamp *timestamp; - - GList *list_notation; - guint first_x; + gint first_x; gboolean match_channel, no_duplicates; + first_x = -1; + match_channel = ((AGS_NOTATION_EDITOR_PASTE_MATCH_AUDIO_CHANNEL & (notation_editor->flags)) != 0) ? TRUE: FALSE; no_duplicates = ((AGS_NOTATION_EDITOR_PASTE_NO_DUPLICATES & (notation_editor->flags)) != 0) ? TRUE: FALSE; + /* timestamp */ timestamp = ags_timestamp_new(); timestamp->flags &= (~AGS_TIMESTAMP_UNIX); @@ -1181,12 +1333,8 @@ if(!xmlStrncmp(notation_node->name, "notation", 9)){ - AgsNotation *notation; + guint64 offset; - guint offset; - guint current_x; - gint i; - timestamp_node = notation_node->children; offset = 0; @@ -1206,123 +1354,20 @@ timestamp_node = timestamp_node->next; } - - - /* */ - i = 0; - - while((i = ags_notebook_next_active_tab(notation_editor->notebook, - i)) != -1){ - timestamp->timer.ags_offset.offset = offset; - - list_notation = ags_notation_find_near_timestamp(machine->audio->notation, i, - timestamp); - if(list_notation == NULL){ - notation = ags_notation_new(machine->audio, - i); - AGS_TIMESTAMP(notation->timestamp)->timer.ags_offset.offset = offset; - machine->audio->notation = ags_notation_add(machine->audio->notation, - notation); - }else{ - notation = AGS_NOTATION(list_notation->data); - } - - if(paste_from_position){ - xmlNode *child; - - guint x_boundary; - - ags_notation_insert_from_clipboard_extended(notation, - notation_node, - TRUE, position_x, - TRUE, position_y, - match_channel, no_duplicates); - - /* get boundaries */ - child = notation_node->children; - current_x = 0; - - while(child != NULL){ - if(child->type == XML_ELEMENT_NODE){ - if(!xmlStrncmp(child->name, - "note", - 5)){ - guint tmp; - - tmp = g_ascii_strtoull(xmlGetProp(child, - "x1"), - NULL, - 10); - - if(tmp > current_x){ - current_x = tmp; - } - } - } - - child = child->next; - } - - x_boundary = g_ascii_strtoull(xmlGetProp(notation_node, - "x_boundary"), - NULL, - 10); - - - if(first_x == -1 || x_boundary < first_x){ - first_x = x_boundary; - } - - if(position_x > x_boundary){ - current_x += (position_x - x_boundary); - }else{ - current_x -= (x_boundary - position_x); - } - - if(current_x > last_x){ - last_x = current_x; - } - }else{ - xmlNode *child; - - ags_notation_insert_from_clipboard(notation, - notation_node, - FALSE, 0, - FALSE, 0); - - /* get boundaries */ - child = notation_node->children; - current_x = 0; - - while(child != NULL){ - if(child->type == XML_ELEMENT_NODE){ - if(!xmlStrncmp(child->name, - "note", - 5)){ - guint tmp; - - tmp = g_ascii_strtoull(xmlGetProp(child, - "x1"), - NULL, - 10); - - if(tmp > current_x){ - current_x = tmp; - } - } - } - - child = child->next; - } - - if(current_x > last_x){ - last_x = current_x; - } - } - - i++; - } + /* 1st attempt */ + timestamp->timer.ags_offset.offset = offset; + + first_x = ags_notation_editor_paste_notation_all(notation_node, + timestamp, + match_channel, no_duplicates); + + /* 2nd attempt */ + timestamp->timer.ags_offset.offset = offset + AGS_NOTATION_DEFAULT_OFFSET; + + ags_notation_editor_paste_notation_all(notation_node, + timestamp, + match_channel, no_duplicates); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/X/ags_window.c new/gsequencer-1.3.6/ags/X/ags_window.c --- old/gsequencer-1.3.3/ags/X/ags_window.c 2018-01-06 05:35:49.000000000 +0100 +++ new/gsequencer-1.3.6/ags/X/ags_window.c 2018-01-09 04:14:34.000000000 +0100 @@ -191,6 +191,7 @@ ags_window_init(AgsWindow *window) { GtkVBox *vbox; + GtkViewport *viewport; GtkWidget *scrolled_window; gchar *str; @@ -246,12 +247,23 @@ /* vpaned and scrolled window */ window->paned = (GtkVPaned *) gtk_vpaned_new(); - gtk_box_pack_start((GtkBox*) vbox, (GtkWidget*) window->paned, TRUE, TRUE, 0); - - scrolled_window = (GtkWidget *) gtk_scrolled_window_new(NULL, NULL); + gtk_box_pack_start((GtkBox*) vbox, + (GtkWidget*) window->paned, + TRUE, TRUE, + 0); + + viewport = gtk_viewport_new(NULL, + NULL); + g_object_set(viewport, + "shadow-type", GTK_SHADOW_NONE, + NULL); gtk_paned_pack1((GtkPaned *) window->paned, - scrolled_window, + viewport, TRUE, TRUE); + + scrolled_window = (GtkWidget *) gtk_scrolled_window_new(NULL, NULL); + gtk_container_add(viewport, + scrolled_window); /* machines rack */ window->machines = (GtkVBox *) gtk_vbox_new(FALSE, 0); @@ -262,13 +274,21 @@ window->selected = NULL; /* editor */ + viewport = gtk_viewport_new(NULL, + NULL); + g_object_set(viewport, + "shadow-type", GTK_SHADOW_NONE, + NULL); + gtk_paned_pack2((GtkPaned *) window->paned, + (GtkWidget *) viewport, + TRUE, TRUE); + window->notation_editor = g_object_new(AGS_TYPE_NOTATION_EDITOR, "homogeneous", FALSE, "spacing", 0, NULL); - gtk_paned_pack2((GtkPaned *) window->paned, - (GtkWidget *) window->notation_editor, - TRUE, TRUE); + gtk_container_add(viewport, + window->notation_editor); /* navigation */ window->navigation = g_object_new(AGS_TYPE_NAVIGATION, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/X/editor/ags_automation_edit.c new/gsequencer-1.3.6/ags/X/editor/ags_automation_edit.c --- old/gsequencer-1.3.3/ags/X/editor/ags_automation_edit.c 2018-01-06 05:20:47.000000000 +0100 +++ new/gsequencer-1.3.6/ags/X/editor/ags_automation_edit.c 2018-01-08 13:24:01.000000000 +0100 @@ -1653,7 +1653,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) automation_toolbar->zoom)); /* get offset */ - x = ((double) automation_edit->cursor_position_x) - GTK_RANGE(automation_edit->hscrollbar)->adjustment->value; + x = ((double) automation_edit->cursor_position_x) - (GTK_RANGE(automation_edit->hscrollbar)->adjustment->value * zoom_factor); if((AGS_AUTOMATION_EDIT_LOGARITHMIC & (automation_edit->flags)) != 0){ y = GTK_WIDGET(automation_edit->drawing_area)->allocation.height - ((((double) exp(automation_edit->cursor_position_y) / c_range) * GTK_WIDGET(automation_edit->drawing_area)->allocation.height) - GTK_RANGE(automation_edit->vscrollbar)->adjustment->value); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/X/editor/ags_automation_edit_callbacks.c new/gsequencer-1.3.6/ags/X/editor/ags_automation_edit_callbacks.c --- old/gsequencer-1.3.3/ags/X/editor/ags_automation_edit_callbacks.c 2018-01-06 01:48:00.000000000 +0100 +++ new/gsequencer-1.3.6/ags/X/editor/ags_automation_edit_callbacks.c 2018-01-08 13:24:01.000000000 +0100 @@ -80,7 +80,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) automation_toolbar->zoom)); /* cursor position */ - automation_edit->cursor_position_x = (guint) zoom_factor * ((event->x + GTK_RANGE(automation_edit->hscrollbar)->adjustment->value) / automation_edit->control_width); + automation_edit->cursor_position_x = (guint) (zoom_factor * (event->x + GTK_RANGE(automation_edit->hscrollbar)->adjustment->value)) / automation_edit->control_width; if((AGS_AUTOMATION_EDIT_LOGARITHMIC & (automation_edit->flags)) != 0){ automation_edit->cursor_position_y = log(((GTK_WIDGET(automation_edit->drawing_area)->allocation.height - event->y) / g_range) * c_range); @@ -114,7 +114,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) automation_toolbar->zoom)); /* acceleration */ - acceleration->x = (guint) zoom_factor * ((event->x + GTK_RANGE(automation_edit->hscrollbar)->adjustment->value)); + acceleration->x = (guint) (zoom_factor * (event->x + GTK_RANGE(automation_edit->hscrollbar)->adjustment->value)); if((AGS_AUTOMATION_EDIT_LOGARITHMIC & (automation_edit->flags)) != 0){ acceleration->y = log(((GTK_WIDGET(automation_edit->drawing_area)->allocation.height - event->y) / g_range) * c_range); @@ -209,7 +209,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) automation_toolbar->zoom)); /* cursor position */ - automation_edit->cursor_position_x = (guint) zoom_factor * ((event->x + GTK_RANGE(automation_edit->hscrollbar)->adjustment->value) / automation_edit->control_width); + automation_edit->cursor_position_x = (guint) (zoom_factor * (event->x + GTK_RANGE(automation_edit->hscrollbar)->adjustment->value)) / automation_edit->control_width; if((AGS_AUTOMATION_EDIT_LOGARITHMIC & (automation_edit->flags)) != 0){ automation_edit->cursor_position_y = log(((GTK_WIDGET(automation_edit->drawing_area)->allocation.height - event->y) / g_range) * c_range); @@ -248,7 +248,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) automation_toolbar->zoom)); /* acceleration */ - acceleration->x = (guint) zoom_factor * ((event->x + GTK_RANGE(automation_edit->hscrollbar)->adjustment->value)); + acceleration->x = (guint) (zoom_factor * (event->x + GTK_RANGE(automation_edit->hscrollbar)->adjustment->value)); if((AGS_AUTOMATION_EDIT_LOGARITHMIC & (automation_edit->flags)) != 0){ acceleration->y = log(((GTK_WIDGET(automation_edit->drawing_area)->allocation.height - event->y) / g_range) * c_range); @@ -352,6 +352,8 @@ event->button == 1){ if(automation_edit->mode == AGS_AUTOMATION_EDIT_POSITION_CURSOR){ ags_automation_edit_drawing_area_button_release_position_cursor(); + + automation_edit->mode = AGS_AUTOMATION_EDIT_NO_EDIT_MODE; }else if(automation_edit->mode == AGS_AUTOMATION_EDIT_ADD_ACCELERATION){ ags_automation_edit_drawing_area_button_release_add_acceleration(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/X/editor/ags_notation_edit.c new/gsequencer-1.3.6/ags/X/editor/ags_notation_edit.c --- old/gsequencer-1.3.3/ags/X/editor/ags_notation_edit.c 2018-01-06 05:20:47.000000000 +0100 +++ new/gsequencer-1.3.6/ags/X/editor/ags_notation_edit.c 2018-01-08 13:24:01.000000000 +0100 @@ -1338,7 +1338,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) notation_toolbar->zoom)); /* get offset */ - x = ((double) notation_edit->cursor_position_x * (double) notation_edit->control_width) - GTK_RANGE(notation_edit->hscrollbar)->adjustment->value; + x = ((double) notation_edit->cursor_position_x * (double) notation_edit->control_width) - (GTK_RANGE(notation_edit->hscrollbar)->adjustment->value * zoom_factor); y = ((double) notation_edit->cursor_position_y * (double) notation_edit->control_height) - GTK_RANGE(notation_edit->vscrollbar)->adjustment->value; width = (double) notation_edit->control_width; @@ -1427,15 +1427,17 @@ } if(notation_edit->selection_y0 < notation_edit->selection_y1){ - y = ((double) notation_edit->selection_y0) - GTK_RANGE(notation_edit->hscrollbar)->adjustment->value; + y = ((double) notation_edit->selection_y0) - GTK_RANGE(notation_edit->vscrollbar)->adjustment->value; height = ((double) notation_edit->selection_y1 - (double) notation_edit->selection_y0); }else{ - y = ((double) notation_edit->selection_y1) - GTK_RANGE(notation_edit->hscrollbar)->adjustment->value; + y = ((double) notation_edit->selection_y1) - GTK_RANGE(notation_edit->vscrollbar)->adjustment->value; height = ((double) notation_edit->selection_y0 - (double) notation_edit->selection_y1); } /* clip */ if(x < 0.0){ + width += x; + x = 0.0; }else if(x > GTK_WIDGET(notation_edit->drawing_area)->allocation.width){ cairo_destroy(cr); @@ -1448,6 +1450,8 @@ } if(y < 0.0){ + height += y; + y = 0.0; }else if(y > GTK_WIDGET(notation_edit->drawing_area)->allocation.height){ cairo_destroy(cr); @@ -1640,6 +1644,7 @@ ags_notation_edit_draw_notation(AgsNotationEdit *notation_edit) { AgsNotationEditor *notation_editor; + AgsNotationToolbar *notation_toolbar; GtkStyle *notation_edit_style; @@ -1649,7 +1654,8 @@ GList *list_notation; GList *list_note; - + + gdouble zoom; guint x0, x1; guint y0, y1; guint offset; @@ -1666,6 +1672,7 @@ notation_editor = gtk_widget_get_ancestor(notation_edit, AGS_TYPE_NOTATION_EDITOR); + notation_toolbar = notation_editor->notation_toolbar; if(notation_editor->selected_machine == NULL){ return; @@ -1691,9 +1698,12 @@ return; } + /* zoom */ + zoom = exp2((double) gtk_combo_box_get_active((GtkComboBox *) notation_toolbar->zoom) - 2.0); + /* get visisble region */ x0 = GTK_RANGE(notation_edit->hscrollbar)->adjustment->value / notation_edit->control_width; - x1 = (GTK_RANGE(notation_edit->hscrollbar)->adjustment->value + GTK_WIDGET(notation_edit->drawing_area)->allocation.width) / notation_edit->control_width; + x1 = (GTK_RANGE(notation_edit->hscrollbar)->adjustment->value / notation_edit->control_width) + (GTK_WIDGET(notation_edit->drawing_area)->allocation.width * zoom); y0 = GTK_RANGE(notation_edit->vscrollbar)->adjustment->value / notation_edit->control_height; y1 = (GTK_RANGE(notation_edit->vscrollbar)->adjustment->value + GTK_WIDGET(notation_edit->drawing_area)->allocation.height) / notation_edit->control_height; @@ -1719,7 +1729,7 @@ notation = AGS_NOTATION(list_notation->data); if(notation->timestamp != NULL && - AGS_TIMESTAMP(notation->timestamp)->timer.ags_offset.offset > x1){ + AGS_TIMESTAMP(notation->timestamp)->timer.ags_offset.offset > x1){ break; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/X/editor/ags_notation_edit_callbacks.c new/gsequencer-1.3.6/ags/X/editor/ags_notation_edit_callbacks.c --- old/gsequencer-1.3.3/ags/X/editor/ags_notation_edit_callbacks.c 2017-12-21 01:30:44.000000000 +0100 +++ new/gsequencer-1.3.6/ags/X/editor/ags_notation_edit_callbacks.c 2018-01-08 13:24:01.000000000 +0100 @@ -70,7 +70,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) notation_toolbar->zoom)); /* cursor position */ - notation_edit->cursor_position_x = (guint) zoom_factor * ((event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value) / notation_edit->control_width); + notation_edit->cursor_position_x = (guint) (zoom_factor * (event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value)) / notation_edit->control_width; notation_edit->cursor_position_x = zoom_factor * floor(notation_edit->cursor_position_x / zoom_factor); notation_edit->cursor_position_y = (guint) ((event->y + GTK_RANGE(notation_edit->vscrollbar)->adjustment->value) / notation_edit->control_height); @@ -91,7 +91,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) notation_toolbar->zoom)); /* note */ - note->x[0] = (guint) zoom_factor * ((event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value) / notation_edit->control_width); + note->x[0] = (guint) (zoom_factor * (event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value)) / notation_edit->control_width; note->x[0] = zoom_factor * floor(note->x[0] / zoom_factor); if((AGS_NOTATION_EDITOR_PATTERN_MODE & (notation_editor->flags)) == 0){ @@ -178,7 +178,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) notation_toolbar->zoom)); /* cursor position */ - notation_edit->cursor_position_x = (guint) zoom_factor * ((event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value) / notation_edit->control_width); + notation_edit->cursor_position_x = (guint) (zoom_factor * (event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value)) / notation_edit->control_width; notation_edit->cursor_position_x = zoom_factor * floor(notation_edit->cursor_position_x / zoom_factor); notation_edit->cursor_position_y = (guint) ((event->y + GTK_RANGE(notation_edit->vscrollbar)->adjustment->value) / notation_edit->control_height); @@ -205,7 +205,7 @@ /* new x[1] */ if((AGS_NOTATION_EDITOR_PATTERN_MODE & (notation_editor->flags)) == 0){ - new_x = (guint) zoom_factor * ((event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value) / notation_edit->control_width); + new_x = (guint) (zoom_factor * (event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value)) / notation_edit->control_width; new_x = zoom_factor * floor((new_x + zoom_factor) / zoom_factor); if(new_x >= note->x[0] + zoom_factor){ @@ -236,7 +236,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) notation_toolbar->zoom)); /* note */ - x = (guint) zoom_factor * ((event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value) / notation_edit->control_width); + x = (guint) (zoom_factor * (event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value)) / notation_edit->control_width; x = zoom_factor * floor(x / zoom_factor); y = (guint) ((event->y + GTK_RANGE(notation_edit->vscrollbar)->adjustment->value) / notation_edit->control_height); @@ -255,13 +255,11 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) notation_toolbar->zoom)); /* region */ - x0 = (guint) zoom_factor * (notation_edit->selection_x0 / notation_edit->control_width); - x0 = zoom_factor * floor(x0 / zoom_factor); + x0 = (guint) (zoom_factor * notation_edit->selection_x0) / notation_edit->control_width; y0 = (guint) (notation_edit->selection_y0 / notation_edit->control_height); - x1 = (guint) zoom_factor * ((event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value) / notation_edit->control_width); - x1 = zoom_factor * floor(x1 / zoom_factor); + x1 = (guint) (zoom_factor * (event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value)) / notation_edit->control_width; y1 = (guint) ((event->y + GTK_RANGE(notation_edit->vscrollbar)->adjustment->value) / notation_edit->control_height); @@ -280,6 +278,8 @@ event->button == 1){ if(notation_edit->mode == AGS_NOTATION_EDIT_POSITION_CURSOR){ ags_notation_edit_drawing_area_button_release_position_cursor(); + + notation_edit->mode = AGS_NOTATION_EDIT_NO_EDIT_MODE; }else if(notation_edit->mode == AGS_NOTATION_EDIT_ADD_NOTE){ ags_notation_edit_drawing_area_button_release_add_note(); @@ -317,7 +317,7 @@ zoom_factor = exp2(6.0 - (double) gtk_combo_box_get_active((GtkComboBox *) notation_toolbar->zoom)); /* cursor position */ - notation_edit->cursor_position_x = (guint) zoom_factor * ((event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value) / notation_edit->control_width); + notation_edit->cursor_position_x = (guint) (zoom_factor * (event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value)) / notation_edit->control_width; notation_edit->cursor_position_x = zoom_factor * floor(notation_edit->cursor_position_x / zoom_factor); notation_edit->cursor_position_y = (guint) ((event->y + GTK_RANGE(notation_edit->vscrollbar)->adjustment->value) / notation_edit->control_height); @@ -348,7 +348,7 @@ /* new x[1] */ if((AGS_NOTATION_EDITOR_PATTERN_MODE & (notation_editor->flags)) == 0){ - new_x = (guint) zoom_factor * ((event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value) / notation_edit->control_width); + new_x = (guint) (zoom_factor * (event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value)) / notation_edit->control_width; new_x = zoom_factor * floor((new_x + zoom_factor) / zoom_factor); if(new_x >= note->x[0] + zoom_factor){ @@ -368,9 +368,17 @@ void ags_notation_edit_drawing_area_motion_notify_select_note() { - notation_edit->selection_x1 = (guint) event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value; + if(event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value >= 0.0){ + notation_edit->selection_x1 = (guint) event->x + GTK_RANGE(notation_edit->hscrollbar)->adjustment->value; + }else{ + notation_edit->selection_x1 = 0.0; + } - notation_edit->selection_y1 = (guint) event->y + GTK_RANGE(notation_edit->vscrollbar)->adjustment->value; + if(event->y + GTK_RANGE(notation_edit->vscrollbar)->adjustment->value >= 0.0){ + notation_edit->selection_y1 = (guint) event->y + GTK_RANGE(notation_edit->vscrollbar)->adjustment->value; + }else{ + notation_edit->selection_y1 = 0.0; + } gtk_widget_queue_draw(notation_edit); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/audio/ags_automation.c new/gsequencer-1.3.6/ags/audio/ags_automation.c --- old/gsequencer-1.3.3/ags/audio/ags_automation.c 2018-01-04 13:57:27.000000000 +0100 +++ new/gsequencer-1.3.6/ags/audio/ags_automation.c 2018-01-08 13:51:14.000000000 +0100 @@ -1690,6 +1690,8 @@ gboolean from_y_offset, guint y_offset, gboolean match_line, gboolean no_duplicates) { + gboolean match_timestamp; + auto void ags_automation_insert_from_clipboard_version_0_4_3(); void ags_automation_insert_from_clipboard_version_0_4_3() @@ -1833,25 +1835,29 @@ } /* check duplicate */ - if(ags_automation_find_point(automation, + if(no_duplicates && + ags_automation_find_point(automation, x_val, y_val, FALSE) != NULL){ continue; } /* add acceleration */ - acceleration = ags_acceleration_new(); - - acceleration->x = x_val; - acceleration->y = y_val; + if(!match_timestamp || + x_val < automation->timestamp->timer.ags_offset.offset + AGS_AUTOMATION_DEFAULT_OFFSET){ + acceleration = ags_acceleration_new(); + + acceleration->x = x_val; + acceleration->y = y_val; #ifdef AGS_DEBUG - g_message("adding acceleration at: [%u|%f]\n", x_val, y_val); + g_message("adding acceleration at: [%u|%f]\n", x_val, y_val); #endif - - ags_automation_add_acceleration(automation, - acceleration, - FALSE); + + ags_automation_add_acceleration(automation, + acceleration, + FALSE); + } } } } @@ -1860,9 +1866,13 @@ return; } + match_timestamp = TRUE; + if(!xmlStrncmp("0.4.3", version, 6)){ ags_automation_insert_from_clipboard_version_0_4_3(); }else if(!xmlStrncmp("1.3.0", version, 6)){ + match_timestamp = TRUE; + if(match_line && automation->line != g_ascii_strtoull(xmlGetProp(root_node, "line"), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/audio/ags_notation.c new/gsequencer-1.3.6/ags/audio/ags_notation.c --- old/gsequencer-1.3.3/ags/audio/ags_notation.c 2018-01-04 13:57:27.000000000 +0100 +++ new/gsequencer-1.3.6/ags/audio/ags_notation.c 2018-01-08 13:51:27.000000000 +0100 @@ -1650,6 +1650,8 @@ gboolean reset_y_offset, guint y_offset, gboolean match_channel, gboolean no_duplicates) { + gboolean match_timestamp; + auto void ags_notation_insert_native_piano_from_clipboard_version_0_3_12(); void ags_notation_insert_native_piano_from_clipboard_version_0_3_12() @@ -1865,7 +1867,8 @@ } /* check duplicate */ - if(ags_notation_find_point(notation, + if(no_duplicates && + ags_notation_find_point(notation, x0_val, y_val, FALSE) != NULL){ node = node->next; @@ -1874,37 +1877,24 @@ } /* add note */ - note = ags_note_new(); + if(!match_timestamp || + x0_val < notation->timestamp->timer.ags_offset.offset + AGS_NOTATION_DEFAULT_OFFSET){ + note = ags_note_new(); - note->x[0] = x0_val; - note->x[1] = x1_val; + note->x[0] = x0_val; + note->x[1] = x1_val; - note->y = y_val; + note->y = y_val; #ifdef AGS_DEBUG - g_message("adding note at: [%u,%u|%u]\n", x0_val, x1_val, y_val); + g_message("adding note at: [%u,%u|%u]\n", x0_val, x1_val, y_val); #endif - - ags_notation_add_note(notation, - note, - FALSE); - } - }else if(!xmlStrncmp("timestamp", - node->name, - 10)){ - /* retrieve timer offset */ - offset = xmlGetProp(node, "offset"); - - if(notation->timestamp == NULL){ - notation->timestamp = ags_timestamp_new(); - - AGS_TIMESTAMP(notation->timestamp)->flags &= (~AGS_TIMESTAMP_UNIX); - AGS_TIMESTAMP(notation->timestamp)->flags |= AGS_TIMESTAMP_OFFSET; + + ags_notation_add_note(notation, + note, + FALSE); + } } - - AGS_TIMESTAMP(notation->timestamp)->timer.ags_offset.offset = g_ascii_strtoull(offset, - NULL, - 10); } node = node->next; @@ -1914,6 +1904,8 @@ if(!AGS_IS_NOTATION(notation)){ return; } + + match_timestamp = TRUE; if(!xmlStrncmp("0.3.12", version, 7)){ ags_notation_insert_native_piano_from_clipboard_version_0_3_12(); @@ -1922,6 +1914,8 @@ ags_notation_insert_native_piano_from_clipboard_version_0_3_12(); }else if(!xmlStrncmp("1.2.0", version, 7)){ /* changes contain only optional informations */ + match_timestamp = TRUE; + if(match_channel && notation->audio_channel != g_ascii_strtoull(xmlGetProp(root_node, "audio-channel"), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/test/X/ags_functional_test_util.c new/gsequencer-1.3.6/ags/test/X/ags_functional_test_util.c --- old/gsequencer-1.3.3/ags/test/X/ags_functional_test_util.c 2018-01-04 13:57:27.000000000 +0100 +++ new/gsequencer-1.3.6/ags/test/X/ags_functional_test_util.c 2018-01-08 13:50:05.000000000 +0100 @@ -32,8 +32,8 @@ #include <pthread.h> -#define AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME (125000) -#define AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME_LONG (500000) +#define AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME (1000000) +#define AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME_LONG (2000000) gboolean ags_functional_test_util_driver_prepare(GSource *source, gint *timeout_); @@ -66,7 +66,7 @@ }; struct timespec ags_functional_test_util_default_timeout = { - 20, + 59, 0, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/ags/widget/ags_scrolled_piano.c new/gsequencer-1.3.6/ags/widget/ags_scrolled_piano.c --- old/gsequencer-1.3.3/ags/widget/ags_scrolled_piano.c 2018-01-04 13:57:27.000000000 +0100 +++ new/gsequencer-1.3.6/ags/widget/ags_scrolled_piano.c 2018-01-09 00:21:51.000000000 +0100 @@ -333,7 +333,7 @@ } gtk_widget_size_allocate((GtkWidget *) scrolled_piano->viewport, - allocation); + &child_allocation); } void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/configure new/gsequencer-1.3.6/configure --- old/gsequencer-1.3.3/configure 2018-01-06 06:25:21.000000000 +0100 +++ new/gsequencer-1.3.6/configure 2018-01-09 00:45:24.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for gsequencer 1.3.3. +# Generated by GNU Autoconf 2.69 for gsequencer 1.3.6. # # Report bugs to <[email protected]>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='gsequencer' PACKAGE_TARNAME='gsequencer' -PACKAGE_VERSION='1.3.3' -PACKAGE_STRING='gsequencer 1.3.3' +PACKAGE_VERSION='1.3.6' +PACKAGE_STRING='gsequencer 1.3.6' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1473,7 +1473,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gsequencer 1.3.3 to adapt to many kinds of systems. +\`configure' configures gsequencer 1.3.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1548,7 +1548,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gsequencer 1.3.3:";; + short | recursive ) echo "Configuration of gsequencer 1.3.6:";; esac cat <<\_ACEOF @@ -1741,7 +1741,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gsequencer configure 1.3.3 +gsequencer configure 1.3.6 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2218,7 +2218,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gsequencer $as_me 1.3.3, which was +It was created by gsequencer $as_me 1.3.6, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3085,7 +3085,7 @@ # Define the identity of the package. PACKAGE='gsequencer' - VERSION='1.3.3' + VERSION='1.3.6' cat >>confdefs.h <<_ACEOF @@ -19597,7 +19597,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gsequencer $as_me 1.3.3, which was +This file was extended by gsequencer $as_me 1.3.6, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19663,7 +19663,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -gsequencer config.status 1.3.3 +gsequencer config.status 1.3.6 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/configure.ac new/gsequencer-1.3.6/configure.ac --- old/gsequencer-1.3.3/configure.ac 2018-01-06 06:25:08.000000000 +0100 +++ new/gsequencer-1.3.6/configure.ac 2018-01-09 00:44:47.000000000 +0100 @@ -6,7 +6,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([gsequencer],[1.3.3],[[email protected]]) +AC_INIT([gsequencer],[1.3.6],[[email protected]]) AM_INIT_AUTOMAKE([subdir-objects]) AC_CONFIG_SRCDIR([ags/config.h.in]) AC_CONFIG_HEADERS([ags/config.h]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.3.3/po/gsequencer.pot new/gsequencer-1.3.6/po/gsequencer.pot --- old/gsequencer-1.3.3/po/gsequencer.pot 2018-01-06 06:49:22.000000000 +0100 +++ new/gsequencer-1.3.6/po/gsequencer.pot 2018-01-09 04:21:39.000000000 +0100 @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gsequencer 1.3.3\n" +"Project-Id-Version: gsequencer 1.3.6\n" "Report-Msgid-Bugs-To: [email protected]\n" -"POT-Creation-Date: 2018-01-06 06:49+0100\n" +"POT-Creation-Date: 2018-01-09 04:21+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <[email protected]>\n" @@ -37,24 +37,24 @@ msgid "connect sink" msgstr "" -#: ags/X/ags_automation_editor.c:231 +#: ags/X/ags_automation_editor.c:239 msgid "automation" msgstr "" -#: ags/X/ags_automation_editor.c:255 ags/X/ags_preferences.c:179 +#: ags/X/ags_automation_editor.c:271 ags/X/ags_preferences.c:179 msgid "audio" msgstr "" -#: ags/X/ags_automation_editor.c:326 ags/X/ags_connection_editor.c:217 +#: ags/X/ags_automation_editor.c:342 ags/X/ags_connection_editor.c:217 #: ags/X/ags_machine_editor.c:217 msgid "output" msgstr "" -#: ags/X/ags_automation_editor.c:351 ags/X/ags_automation_editor.c:435 +#: ags/X/ags_automation_editor.c:367 ags/X/ags_automation_editor.c:451 msgid "line" msgstr "" -#: ags/X/ags_automation_editor.c:410 ags/X/ags_machine_editor.c:224 +#: ags/X/ags_automation_editor.c:426 ags/X/ags_machine_editor.c:224 msgid "input" msgstr "" @@ -239,7 +239,7 @@ msgid "engine mode" msgstr "" -#: ags/X/ags_line.c:721 ags/X/ags_line.c:729 ags/X/ags_notation_editor.c:260 +#: ags/X/ags_line.c:721 ags/X/ags_line.c:729 ags/X/ags_notation_editor.c:277 msgid "channel" msgstr "" @@ -405,7 +405,7 @@ msgid "loop R" msgstr "" -#: ags/X/ags_notation_editor.c:236 +#: ags/X/ags_notation_editor.c:245 msgid "notation" msgstr ""
