diff --git a/pkg/cmdrunner/cmdrunner.go b/pkg/cmdrunner/cmdrunner.go index e6adcc74c..c837b31bb 100644 --- a/pkg/cmdrunner/cmdrunner.go +++ b/pkg/cmdrunner/cmdrunner.go @@ -1667,12 +1667,15 @@ func ScreenWebShareCommand(ctx context.Context, pk *scpacket.FeCommandPacketType if err != nil { return nil, fmt.Errorf("cannot create viewkey: %v", err) } - viewKey := base64.RawURLEncoding.EncodeToString(viewKeyBytes) - webShareOpts := sstore.ScreenWebShareOpts{ShareName: shareName, ViewKey: viewKey} screen, err := sstore.GetScreenById(ctx, ids.ScreenId) if err != nil { return nil, fmt.Errorf("cannot get screen: %v", err) } + if shareName == "" { + shareName = screen.Name + } + viewKey := base64.RawURLEncoding.EncodeToString(viewKeyBytes) + webShareOpts := sstore.ScreenWebShareOpts{ShareName: shareName, ViewKey: viewKey} err = sstore.CanScreenWebShare(screen) if err != nil { return nil, err @@ -2226,7 +2229,7 @@ func LineSetHeightCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) if heightVal > 10000 { return nil, fmt.Errorf("/line:setheight invalid height val (too large): %d", heightVal) } - err = sstore.UpdateLineHeight(ctx, lineId, heightVal) + err = sstore.UpdateLineHeight(ctx, ids.ScreenId, lineId, heightVal) if err != nil { return nil, fmt.Errorf("/line:setheight error updating height: %v", err) } diff --git a/pkg/pcloud/pcloud.go b/pkg/pcloud/pcloud.go index eb07022ea..9e42bfa77 100644 --- a/pkg/pcloud/pcloud.go +++ b/pkg/pcloud/pcloud.go @@ -257,12 +257,16 @@ func makeWebShareUpdate(ctx context.Context, update *sstore.ScreenUpdateType) (* case sstore.UpdateType_LineDel: break - case sstore.UpdateType_LineRenderer: + case sstore.UpdateType_LineRenderer, sstore.UpdateType_LineContentHeight: line, err := sstore.GetLineById(ctx, update.ScreenId, update.LineId) if err != nil || line == nil { return nil, fmt.Errorf("error getting line: %v", defaultError(err, "not found")) } - rtn.SVal = line.Renderer + if update.UpdateType == sstore.UpdateType_LineRenderer { + rtn.SVal = line.Renderer + } else if update.UpdateType == sstore.UpdateType_LineContentHeight { + rtn.IVal = line.ContentHeight + } case sstore.UpdateType_CmdStatus: _, cmd, err := sstore.GetLineCmdByLineId(ctx, update.ScreenId, update.LineId) diff --git a/pkg/sstore/dbops.go b/pkg/sstore/dbops.go index 761ba31e6..4b2b9058e 100644 --- a/pkg/sstore/dbops.go +++ b/pkg/sstore/dbops.go @@ -1887,10 +1887,13 @@ func UpdateLineStar(ctx context.Context, lineId string, starVal int) error { return nil } -func UpdateLineHeight(ctx context.Context, lineId string, heightVal int) error { +func UpdateLineHeight(ctx context.Context, screenId string, lineId string, heightVal int) error { txErr := WithTx(ctx, func(tx *TxWrap) error { query := `UPDATE line SET contentheight = ? WHERE lineid = ?` tx.Exec(query, heightVal, lineId) + if isWebShare(tx, screenId) { + insertScreenLineUpdate(tx, screenId, lineId, UpdateType_LineContentHeight) + } return nil }) if txErr != nil { diff --git a/pkg/sstore/sstore.go b/pkg/sstore/sstore.go index ae48f9ff5..7963ae313 100644 --- a/pkg/sstore/sstore.go +++ b/pkg/sstore/sstore.go @@ -88,6 +88,7 @@ const ( UpdateType_LineNew = "line:new" UpdateType_LineDel = "line:del" UpdateType_LineRenderer = "line:renderer" + UpdateType_LineContentHeight = "line:contentheight" UpdateType_CmdStatus = "cmd:status" UpdateType_CmdTermOpts = "cmd:termopts" UpdateType_CmdDoneInfo = "cmd:doneinfo"