|
@@ -2223,13 +2223,13 @@ int OPMOD_Panel(laOperator *a, laEvent *e){
|
|
|
if(p->PanelTemplate && laKeyMapExecuteEvent(a, &p->PanelTemplate->KeyMap, e)) return RET;
|
|
|
|
|
|
int IsTop=laIsTopPanel(p);
|
|
|
- if (!IsTop && !uid->TargetIndexVali){
|
|
|
+ if ((!IsTop) && (!uid->TargetIndexVali)){
|
|
|
laLocalToWindow(0, p, &x, &y);
|
|
|
dp = laDetectPanel(x, y);
|
|
|
if (dp && dp->Mode && dp != p){
|
|
|
return LA_FINISHED;
|
|
|
}else if ((e->type & LA_MOUSEDOWN) == LA_MOUSEDOWN){
|
|
|
- laPopPanel(p); IsTop=1;
|
|
|
+ laPopPanel(p); laRedrawCurrentWindow(); IsTop=1;
|
|
|
}else if(p->Mode) return LA_RUNNING;
|
|
|
laWindowToLocal(0, p, &x, &y);
|
|
|
}
|
|
@@ -2249,7 +2249,7 @@ int OPMOD_Panel(laOperator *a, laEvent *e){
|
|
|
|
|
|
if(la_ScrollPanel(uid,p,e))return LA_RUNNING;
|
|
|
|
|
|
- if (!p->Mode || (IsTop && !uid->TargetIndexVali)){
|
|
|
+ if ((!p->Mode) || (!uid->TargetIndexVali)){
|
|
|
if(y<p->UI.U){ ui = la_DetectUiItemRecursive(&p->TitleBar, x, y, 10000, &Locals, 0); }
|
|
|
elif (!ui && (!NoPrimaryUI)){
|
|
|
lstClearPointer(&Locals);
|
|
@@ -2259,7 +2259,9 @@ int OPMOD_Panel(laOperator *a, laEvent *e){
|
|
|
if (ui && !a->Child && ui->Type->OperatorType && !la_UiOperatorExists(ui)){
|
|
|
laSetOperatorLocalizer(p);
|
|
|
//laPanelToLocal(a, &t, &UIB);
|
|
|
- if (!(laInvokeUiP(a, ui->Type->OperatorType, e, ui, &Locals, 0) & LA_FINISH)){ laRetriggerOperators(); }
|
|
|
+ if (!(laInvokeUiP(a, ui->Type->OperatorType, e, ui, &Locals, 0) & LA_FINISH)){
|
|
|
+ laRetriggerOperators(); laPopPanel(p); IsTop=1; laRedrawCurrentWindow(); return LA_RUNNING;
|
|
|
+ }
|
|
|
lstClearPointer(&Locals);
|
|
|
//return LA_RUNNING;
|
|
|
}
|
|
@@ -2280,6 +2282,7 @@ int OPMOD_Panel(laOperator *a, laEvent *e){
|
|
|
if (uid->TargetIndexVali == 1){
|
|
|
if (!p->SL && !p->SR) p->TX = p->X + e->x - uid->LastX;
|
|
|
if (!p->ST && !p->SB) p->TY = p->Y + e->y - uid->LastY;
|
|
|
+ laPopPanel(p); laRedrawCurrentWindow(); IsTop=1;
|
|
|
laNotifyUsersPPPath(&p->PP, "position");
|
|
|
la_EnsurePanelSnapping(p, MAIN.CurrentWindow->CW, MAIN.CurrentWindow->CH);
|
|
|
laRecalcCurrentPanel();
|