*/}}
Parcourir la source

Read bug fixes including ignore

Yiming Wu il y a 2 ans
Parent
commit
5d6a32c33e
6 fichiers modifiés avec 16 ajouts et 5 suppressions
  1. 2 1
      la_data.c
  2. 1 0
      la_interface.h
  3. 2 0
      la_kernel.c
  4. 1 1
      la_util.c
  5. 7 2
      resources/la_properties.c
  6. 3 1
      resources/la_widgets.c

+ 2 - 1
la_data.c

@@ -3147,6 +3147,7 @@ int la_ExtractProp(laUDF *udf, laManagedUDF* mUDF, laPropPack *pp, void *ParentI
                     SubPP.RawThis = pp;
                     SubPP.RawThis = pp;
                     SubPS.p = subp;
                     SubPS.p = subp;
                     SubPS.UseInstance = Instance;
                     SubPS.UseInstance = Instance;
+                    if ((!subp) ||subp->UDFIgnore){la_ExtractFakeProp(udf); continue;}
                     if (subp&&!subp->SubProp){ subp->SubProp = la_ContainerLookup(((laSubProp *)subp)->TargetID); }
                     if (subp&&!subp->SubProp){ subp->SubProp = la_ContainerLookup(((laSubProp *)subp)->TargetID); }
                     if (subp&& Parent && subp->PropertyType == LA_PROP_SUB){
                     if (subp&& Parent && subp->PropertyType == LA_PROP_SUB){
                         if (!subp->UDFIsRefer && !IsExceptionNode){
                         if (!subp->UDFIsRefer && !IsExceptionNode){
@@ -3224,7 +3225,7 @@ int la_ExtractProp(laUDF *udf, laManagedUDF* mUDF, laPropPack *pp, void *ParentI
                             u64bit ThisSeek;
                             u64bit ThisSeek;
                             la_ReadString(udf, buf);
                             la_ReadString(udf, buf);
                             subp = la_PropLookup(&pc->Props, buf);
                             subp = la_PropLookup(&pc->Props, buf);
-                            if (!subp || subp->UDFIgnore) la_ExtractFakeProp(udf);
+                            if ((!subp) || subp->UDFIgnore) la_ExtractFakeProp(udf);
                             else{
                             else{
                                 int result; laUDFContentNode *ucn;
                                 int result; laUDFContentNode *ucn;
                                 ThisSeek = la_Tell(udf);
                                 ThisSeek = la_Tell(udf);

+ 1 - 0
la_interface.h

@@ -957,6 +957,7 @@ STRUCTURE(laWidget){
 #define LA_TEXT_ONE_LINE       (1<<23)
 #define LA_TEXT_ONE_LINE       (1<<23)
 #define LA_UI_FLAGS_NO_SCROLL_INACTIVE (1<<24)
 #define LA_UI_FLAGS_NO_SCROLL_INACTIVE (1<<24)
 #define LA_UI_FLAGS_COLOR_SPACE_CLAY (1<<25)
 #define LA_UI_FLAGS_COLOR_SPACE_CLAY (1<<25)
+#define LA_UI_FLAGS_EXIT_WHEN_TRIGGERED LA_UI_FLAGS_COLOR_SPACE_CLAY
 
 
 #define LA_UI_FLAGS_INT_ICON  (LA_UI_FLAGS_NO_DECAL|LA_UI_FLAGS_NO_EVENT|LA_UI_FLAGS_ICON)
 #define LA_UI_FLAGS_INT_ICON  (LA_UI_FLAGS_NO_DECAL|LA_UI_FLAGS_NO_EVENT|LA_UI_FLAGS_ICON)
 #define LA_UI_FLAGS_PLAIN     (LA_UI_FLAGS_NO_DECAL|LA_UI_FLAGS_NO_EVENT)
 #define LA_UI_FLAGS_PLAIN     (LA_UI_FLAGS_NO_DECAL|LA_UI_FLAGS_NO_EVENT)

+ 2 - 0
la_kernel.c

@@ -6100,6 +6100,8 @@ static void la_RecordWacomMotions(XIRawEvent *event)
     int IsStylus=event->deviceid==MAIN.WacomDeviceStylus;
     int IsStylus=event->deviceid==MAIN.WacomDeviceStylus;
     if(!IsStylus) MAIN.PointerIsEraser = 1; else MAIN.PointerIsEraser = 0;
     if(!IsStylus) MAIN.PointerIsEraser = 1; else MAIN.PointerIsEraser = 0;
 
 
+    printf("--- %d dev %d  s%d e%d\n",MAIN.PointerIsEraser,event->deviceid,MAIN.WacomDeviceStylus,MAIN.WacomDeviceEraser );
+
     //Window root_return, child_return;
     //Window root_return, child_return;
     //int root_x_return, root_y_return;
     //int root_x_return, root_y_return;
     //int win_x_return, win_y_return;
     //int win_x_return, win_y_return;

+ 1 - 1
la_util.c

@@ -1661,7 +1661,7 @@ void strSafePrintV(laSafeString **ss, char *Format, va_list args){
 void strSafeDump(){
 void strSafeDump(){
     laSafeString*ss;
     laSafeString*ss;
     while(ss=lstPopItem(&SSC.SafeStrings)){
     while(ss=lstPopItem(&SSC.SafeStrings)){
-        if(ss->Ptr) printf("[String not freed] \"%s\"\n", ss->Ptr);
+        //if(ss->Ptr) printf("[String not freed] \"%s\"\n", ss->Ptr);
     }
     }
 }
 }
 
 

+ 7 - 2
resources/la_properties.c

@@ -762,6 +762,10 @@ laPropContainer* tnsget_ObjectType(tnsObject* o){
     }
     }
 }
 }
 
 
+void lareset_Main(void* Unused){
+    return;
+}
+
 laPropContainer* LA_PC_SOCKET_IN;
 laPropContainer* LA_PC_SOCKET_IN;
 laPropContainer* LA_PC_SOCKET_OUT;
 laPropContainer* LA_PC_SOCKET_OUT;
 laPropContainer* LA_PROP_SOCKET_SOURCE;
 laPropContainer* LA_PROP_SOCKET_SOURCE;
@@ -1030,6 +1034,7 @@ void la_RegisterInternalProps(){
         // USER PREF ========================================================
         // USER PREF ========================================================
 
 
         p = laAddPropertyContainer("la_user_preference", "User Preference", "Kernel settings for LA main structure", L'⚙', 0, sizeof(LA), lapost_UserPreferences, 0, 2|LA_PROP_OTHER_ALLOC);{
         p = laAddPropertyContainer("la_user_preference", "User Preference", "Kernel settings for LA main structure", L'⚙', 0, sizeof(LA), lapost_UserPreferences, 0, 2|LA_PROP_OTHER_ALLOC);{
+            laPropContainerExtraFunctions(p,0,lareset_Main,0,0,0);
             laAddFloatProperty(p, "idle_time", "Idle time", "Time out on no input to show tooltips", 0, 0, 0, 2.0, 0.3, 0.05, 0.75, 0, offsetof(LA, IdleTime), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
             laAddFloatProperty(p, "idle_time", "Idle time", "Time out on no input to show tooltips", 0, 0, 0, 2.0, 0.3, 0.05, 0.75, 0, offsetof(LA, IdleTime), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
             laAddIntProperty(p, "top_framerate", "Top Framerate", "Framerate limiter for drawing the user interface", 0, 0, 0, 60, 25, 1, 60, 0, offsetof(LA, TopFramerate), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
             laAddIntProperty(p, "top_framerate", "Top Framerate", "Framerate limiter for drawing the user interface", 0, 0, 0, 60, 25, 1, 60, 0, offsetof(LA, TopFramerate), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
             laAddIntProperty(p, "valuator_threshold", "Valuator Threshold", "Drag How Many Pixels Trigger A Change In Valuator", 0, 0, 0, 10, 1, 1, 3, 0, offsetof(LA, ValuatorThreshold), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
             laAddIntProperty(p, "valuator_threshold", "Valuator Threshold", "Drag How Many Pixels Trigger A Change In Valuator", 0, 0, 0, 10, 1, 1, 3, 0, offsetof(LA, ValuatorThreshold), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
@@ -1068,8 +1073,8 @@ void la_RegisterInternalProps(){
                 laAddEnumItemAs(ep, "FILES", "Files", "All Files", 1, 0);
                 laAddEnumItemAs(ep, "FILES", "Files", "All Files", 1, 0);
             }
             }
         
         
-            laAddIntProperty(p, "wacom_device_stylus", "Stylus Device", "Wacom stylus device ID", LA_WIDGET_INT_PLAIN, 0, 0, 0, 0, 0, 0, 0, offsetof(LA, WacomDeviceStylus), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, LA_READ_ONLY);
-            laAddIntProperty(p, "wacom_device_eraser", "Eraser Device", "Wacom eraser device ID", LA_WIDGET_INT_PLAIN, 0, 0, 0, 0, 0, 0, 0, offsetof(LA, WacomDeviceEraser), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, LA_READ_ONLY);
+            laAddIntProperty(p, "wacom_device_stylus", "Stylus Device", "Wacom stylus device ID", LA_WIDGET_INT_PLAIN, 0, 0, 0, 0, 0, 0, 0, offsetof(LA, WacomDeviceStylus), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, LA_READ_ONLY|LA_UDF_IGNORE);
+            laAddIntProperty(p, "wacom_device_eraser", "Eraser Device", "Wacom eraser device ID", LA_WIDGET_INT_PLAIN, 0, 0, 0, 0, 0, 0, 0, offsetof(LA, WacomDeviceEraser), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, LA_READ_ONLY|LA_UDF_IGNORE);
         }
         }
 
 
         p = laAddPropertyContainer("la_translation_language", "Language", "Translation language pack", 0, 0, sizeof(laTranslationNode), 0, 0, 2);{
         p = laAddPropertyContainer("la_translation_language", "Language", "Translation language pack", 0, 0, sizeof(laTranslationNode), 0, 0, 2);{

+ 3 - 1
resources/la_widgets.c

@@ -2172,6 +2172,7 @@ int OPMOD_EnumSelector(laOperator *a, laEvent *e){
             laSetEnumArrayIndexed(&ui->PP, ArrTarget, ei->Index);
             laSetEnumArrayIndexed(&ui->PP, ArrTarget, ei->Index);
             laConfirmInt(a,EnumTarget,LA_CONFIRM_DATA);
             laConfirmInt(a,EnumTarget,LA_CONFIRM_DATA);
             laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
             laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
+            if(ui->Flags&LA_UI_FLAGS_EXIT_WHEN_TRIGGERED) return LA_FINISHED;
         }else{
         }else{
             if(ArrTarget>=ArrLen){ArrTarget=ArrLen-1;} 
             if(ArrTarget>=ArrLen){ArrTarget=ArrLen-1;} 
             if(EnumTarget>=EnumLen){EnumTarget=EnumLen-1;}
             if(EnumTarget>=EnumLen){EnumTarget=EnumLen-1;}
@@ -2279,6 +2280,7 @@ int OPMOD_Button(laOperator *a, laEvent *e){
         }
         }
 
 
         laRedrawCurrentPanel();
         laRedrawCurrentPanel();
+        if(ui->Flags&LA_UI_FLAGS_EXIT_WHEN_TRIGGERED) return LA_FINISHED_PASS;
         return LA_RUNNING_PASS;
         return LA_RUNNING_PASS;
     }
     }
 
 
@@ -2556,7 +2558,7 @@ int OPMOD_Collection(laOperator *a, laEvent *e){
     laLocalToPanel(a, &lx, &ly); if(a->ToPanel && ly<a->ToPanel->TitleBar.B){ return LA_FINISHED_PASS; }
     laLocalToPanel(a, &lx, &ly); if(a->ToPanel && ly<a->ToPanel->TitleBar.B){ return LA_FINISHED_PASS; }
     uil = la_DetectUiListRecursive(ToUil, lx, ly, 10000, 0, 0, 0, 0, 0);
     uil = la_DetectUiListRecursive(ToUil, lx, ly, 10000, 0, 0, 0, 0, 0);
     if (uil != ((laUiListDrawItem *)a->LocalUiLists.pFirst)->Target){
     if (uil != ((laUiListDrawItem *)a->LocalUiLists.pFirst)->Target){
-        printf("EXIT\n");
+        //printf("EXIT\n");
         return LA_FINISHED;
         return LA_FINISHED;
     }
     }