@@ -649,6 +649,8 @@ void LvglWidgetObjectBase::parseParam(lua_State *L, const char *key)
649649 getSizeFunction = ::getRef (L, LUA_REGISTRYINDEX);
650650 } else if (!strcmp (key, " pos" )) {
651651 getPosFunction = ::getRef (L, LUA_REGISTRYINDEX);
652+ } else if (!strcmp (key, " floating" )) {
653+ floating = getLuaBool (L);
652654 }
653655}
654656
@@ -741,6 +743,7 @@ void LvglWidgetObjectBase::refresh()
741743 setSize (w, h);
742744 setColor (color.flags );
743745 setOpacity (opacity.value );
746+ setFloating (floating);
744747}
745748
746749void LvglWidgetObjectBase::create (lua_State *L, int index)
@@ -772,6 +775,17 @@ void LvglSimpleWidgetObject::setSize(coord_t w, coord_t h)
772775 if (lvobj) lv_obj_set_size (lvobj, w, h);
773776}
774777
778+ void LvglSimpleWidgetObject::setFloating (bool isFloating)
779+ {
780+ floating = isFloating;
781+ if (lvobj) {
782+ if (floating)
783+ lv_obj_add_flag (lvobj, LV_OBJ_FLAG_FLOATING);
784+ else
785+ lv_obj_clear_flag (lvobj, LV_OBJ_FLAG_FLOATING);
786+ }
787+ }
788+
775789void LvglSimpleWidgetObject::show ()
776790{
777791 if (!isVisible ()) lv_obj_clear_flag (lvobj, LV_OBJ_FLAG_HIDDEN);
@@ -862,6 +876,7 @@ void LvglWidgetLabel::build(lua_State *L)
862876 setOpacity (opacity.value );
863877 setFont (font.flags );
864878 setAlign (align.flags );
879+ setFloating (floating);
865880}
866881
867882// -----------------------------------------------------------------------------
@@ -917,6 +932,7 @@ void LvglWidgetLineBase::refresh()
917932{
918933 setColor (color.flags );
919934 setOpacity (opacity.value );
935+ setFloating (floating);
920936 setLine ();
921937 lv_obj_set_style_line_rounded (lvobj, rounded, LV_PART_MAIN);
922938 if (dashGap > 0 && dashWidth > 0 ) {
@@ -1107,6 +1123,7 @@ void LvglWidgetLine::build(lua_State *L)
11071123 setLine ();
11081124 setColor (color.flags );
11091125 setOpacity (opacity.value );
1126+ setFloating (floating);
11101127 }
11111128}
11121129
@@ -1394,8 +1411,9 @@ void LvglWidgetTriangle::build(lua_State *L)
13941411 setPos (x, y);
13951412 LvglSimpleWidgetObject::setSize (w,h);
13961413
1397- // Set color
1414+ // Set properties
13981415 setColor (color.flags );
1416+ setFloating (floating);
13991417 }
14001418}
14011419
@@ -1463,6 +1481,17 @@ void LvglWidgetObject::setSize(coord_t w, coord_t h)
14631481 if (window) window->setSize (w, h);
14641482}
14651483
1484+ void LvglWidgetObject::setFloating (bool isFloating)
1485+ {
1486+ floating = isFloating;
1487+ if (window) {
1488+ if (floating)
1489+ lv_obj_add_flag (window->getLvObj (), LV_OBJ_FLAG_FLOATING);
1490+ else
1491+ lv_obj_clear_flag (window->getLvObj (), LV_OBJ_FLAG_FLOATING);
1492+ }
1493+ }
1494+
14661495bool LvglWidgetObject::setFlex ()
14671496{
14681497 if (customPad) {
@@ -1597,6 +1626,7 @@ void LvglWidgetBox::build(lua_State *L)
15971626 setPosAndSize ();
15981627 setColor (color.flags );
15991628 setOpacity (opacity.value );
1629+ setFloating (floating);
16001630}
16011631
16021632// -----------------------------------------------------------------------------
@@ -1939,6 +1969,7 @@ void LvglWidgetArc::build(lua_State *L)
19391969 setBgColor (bgColor.flags );
19401970 setOpacity (opacity.value );
19411971 setBgOpacity (bgOpacity.value );
1972+ setFloating (floating);
19421973}
19431974
19441975// -----------------------------------------------------------------------------
@@ -1986,6 +2017,7 @@ void LvglWidgetImage::build(lua_State *L)
19862017{
19872018 window = new StaticImage (lvglManager->getCurrentParent (), {x, y, w, h},
19882019 filename.chars (), fillFrame);
2020+ setFloating (floating);
19892021}
19902022
19912023// -----------------------------------------------------------------------------
@@ -2004,6 +2036,7 @@ void LvglWidgetQRCode::parseParam(lua_State *L, const char *key)
20042036void LvglWidgetQRCode::build (lua_State *L)
20052037{
20062038 window = new QRCode (lvglManager->getCurrentParent (), x, y, w, data, colorToRGB (color.flags ), colorToRGB (bgColor));
2039+ setFloating (floating);
20072040}
20082041
20092042// -----------------------------------------------------------------------------
0 commit comments