*/}}
Browse Source

Read bug fixes including ignore

Yiming Wu 2 years ago
parent
commit
5d6a32c33e
6 changed files with 16 additions and 5 deletions
  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;
                     SubPS.p = subp;
                     SubPS.UseInstance = Instance;
+                    if ((!subp) ||subp->UDFIgnore){la_ExtractFakeProp(udf); continue;}
                     if (subp&&!subp->SubProp){ subp->SubProp = la_ContainerLookup(((laSubProp *)subp)->TargetID); }
                     if (subp&& Parent && subp->PropertyType == LA_PROP_SUB){
                         if (!subp->UDFIsRefer && !IsExceptionNode){
@@ -3224,7 +3225,7 @@ int la_ExtractProp(laUDF *udf, laManagedUDF* mUDF, laPropPack *pp, void *ParentI
                             u64bit ThisSeek;
                             la_ReadString(udf, buf);
                             subp = la_PropLookup(&pc->Props, buf);
-                            if (!subp || subp->UDFIgnore) la_ExtractFakeProp(udf);
+                            if ((!subp) || subp->UDFIgnore) la_ExtractFakeProp(udf);
                             else{
                                 int result; laUDFContentNode *ucn;
                                 ThisSeek = la_Tell(udf);

+ 1 - 0
la_interface.h

@@ -957,6 +957,7 @@ STRUCTURE(laWidget){
 #define LA_TEXT_ONE_LINE       (1<<23)
 #define LA_UI_FLAGS_NO_SCROLL_INACTIVE (1<<24)
 #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_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;
     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;
     //int root_x_return, root_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(){
     laSafeString*ss;
     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_OUT;
 laPropContainer* LA_PROP_SOCKET_SOURCE;
@@ -1030,6 +1034,7 @@ void la_RegisterInternalProps(){
         // 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);{
+            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);
             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);
@@ -1068,8 +1073,8 @@ void la_RegisterInternalProps(){
                 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);{

+ 3 - 1
resources/la_widgets.c

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