fix for undo compression bug, fix for 'o' in recsources win, titler alias=smooth
authorGood Guy <good1.2guy@gmail.com>
Fri, 30 Mar 2018 22:41:45 +0000 (16:41 -0600)
committerGood Guy <good1.2guy@gmail.com>
Fri, 30 Mar 2018 22:41:45 +0000 (16:41 -0600)
cinelerra-5.1/cinelerra/undostack.C
cinelerra-5.1/cinelerra/undostack.h
cinelerra-5.1/guicast/bclistbox.C
cinelerra-5.1/plugins/titler/titler.h
cinelerra-5.1/plugins/titler/titlerwindow.C

index 4adef936fbae44f3b31d974eaf2da6e7a136b1e5..59eadada8047ecd3cdf7c02670037515754b4141 100644 (file)
@@ -257,9 +257,9 @@ UndoHash *UndoHashTable::add(char *txt, int len)
        return hp;
 }
 
-UndoLine::UndoLine(UndoHash *hash)
+UndoLine::UndoLine(UndoHash *hash, char *tp)
 {
-       this->txt = 0;  this->len = 0;
+       this->txt = tp;  this->len = 0;
        this->hash = hash;
        hash->occurs[va] = hash->occurs[vb] = 1;
 }
@@ -280,7 +280,6 @@ int UndoLine::eq(UndoLine *ln)
 
 void UndoVersion::scan_lines(UndoHashTable *hash, char *sp, char *ep)
 {
-       append(new UndoLine(hash->bof));
        for( int line=1; sp<ep; ++line ) {
                char *txt = sp;
                while( sp<ep && *sp++ != '\n' );
@@ -289,7 +288,6 @@ void UndoVersion::scan_lines(UndoHashTable *hash, char *sp, char *ep)
                ++ln->hash->occurs[ver];
                append(ln);
        }
-       append(new UndoLine(hash->eof));
 }
 
 
@@ -334,13 +332,21 @@ void UndoStackItem::set_data(char *data)
                UndoVersion alines(va), blines(vb);
                char *asp = data, *aep = asp + data_size-1;
                char *bsp = prev, *bep = bsp + prev_size-1;
+               alines.append(new UndoLine(hash.bof, asp));
+               blines.append(new UndoLine(hash.bof, bsp));
                alines.scan_lines(&hash, asp, aep);
                blines.scan_lines(&hash, bsp, bep);
-// trim suffix
                int asz = alines.size(), bsz = blines.size();
+// trim matching suffix
                while( asz > 0 && bsz > 0 && alines[asz-1]->eq(blines[bsz-1]) ) {
-                       --asz;  --bsz;
+                       aep = alines[--asz]->txt;  alines.remove_object();
+                       bep = blines[--bsz]->txt;  blines.remove_object();
                }
+// include for matching last item
+               alines.append(new UndoLine(hash.eof, aep));
+               blines.append(new UndoLine(hash.eof, bep));
+               hash.eof->line[va] = asz++;
+               hash.eof->line[vb] = bsz++;
 
                int ai = 0, bi = 0;
                while( ai < asz || bi < bsz ) {
index 17bf1284bea8e8dda421dd59a97e5fa48402166f..8c39d8be71455a2490986a7b467af735e0b98c18 100644 (file)
@@ -63,7 +63,7 @@ public:
 class UndoLine
 {
 public:
-       UndoLine(UndoHash *hash);
+       UndoLine(UndoHash *hash, char *tp);
        UndoLine(UndoHashTable *hash, char *txt, int len);
        ~UndoLine();
        int eq(UndoLine *ln);
index 7c032b6a0bbb9b31cde88505fd9d8da70864c9e0..23c4e185accd27c9477060d7581c14bfd8e7048e 100644 (file)
@@ -3505,7 +3505,7 @@ int BC_ListBox::keypress_event()
                break;
 
        default:
-               if( !ctrl_down() ) {
+               if( show_query && !ctrl_down() ) {
                        int query_len = strlen(query);
                        if( query_len < (int)sizeof(query)-1 &&
                            top_level->get_keypress() > 30 &&
@@ -3519,12 +3519,10 @@ int BC_ListBox::keypress_event()
                                if( query_len > 0 ) query[--query_len] = 0;
                                new_selection = query_list();
                        }
-                       if( show_query ) {
-                               if( query_len > 0 )
-                                       show_tooltip(query);
-                               else
-                                       hide_tooltip();
-                       }
+                       if( query_len > 0 )
+                               show_tooltip(query);
+                       else
+                               hide_tooltip();
                        redraw = 1;
                        result = 1;
                }
index e1d30ac88fac9faae5e8dab4236fa201880a126b..5835f8e59c8d81f223ce96ef678862c9cf7d65ae 100644 (file)
@@ -34,7 +34,7 @@
 #define KW_UL     _("ul")
 #define KW_BLINK  _("blink")
 #define KW_FIXED  _("fixed")
-#define KW_ALIAS  _("alias")
+#define KW_ALIAS  _("smooth")
 #define KW_SUP    _("sup")
 #define KW_PNG    _("png")
 
index d3f20d2a651e2b46cc77cebc67285ccb61903cba..f03f8a0817026953d6c3fdd818aee291a8566e1c 100644 (file)
@@ -270,7 +270,7 @@ void TitleWindow::create_objects()
        if( alias->get_w() > w1 ) w1 = drag->get_w();
 
        x += w1 + margin;
-       add_tool(justify_title = new BC_Title(x, y, _("Justify:")));
+       add_tool(justify_title = new BC_Title(x+50, y, _("Justify:")));
        add_tool(left = new TitleLeft(client, this, x, y + 20));
        w1 = left->get_w();
        add_tool(center = new TitleCenter(client, this, x, y + 50));
@@ -847,7 +847,7 @@ int TitleSizeTumble::handle_down_event()
 }
 
 TitleAlias::TitleAlias(TitleMain *client, TitleWindow *window, int x, int y)
- : BC_CheckBox(x, y, client->config.style & FONT_ALIAS, _("Alias"))
+ : BC_CheckBox(x, y, client->config.style & FONT_ALIAS, _("Smooth"))
 {
        this->client = client;
        this->window = window;