Implemented [ Feature Request #5735 ]

Increasing MFactor Resizing Over Time
This commit is contained in:
joten 2014-04-29 15:43:17 +02:00
parent 7117e82e07
commit def6b0f1bf
2 changed files with 42 additions and 4 deletions

View file

@ -69,13 +69,14 @@ Config_init()
Config_continuouslyTraceAreas := False
Config_dynamicTiling := True
Config_ghostWndSubString := " (Not Responding)"
Config_mFactCallInterval := 700
Config_mouseFollowsFocus := True
Config_viewMargins := "0;0;0;0"
Config_newWndPosition := "top"
Config_onActiveHiddenWnds := "view"
Config_shellMsgDelay := 350
Config_syncMonitorViews := 0
Config_viewFollowsTagged := False
Config_viewMargins := "0;0;0;0"
;; Config_rule_#<i> := '<class>;<title>;<style>;<is managed>;<m>;<tags>;<is floating>;<is decorated>;<hide title>;<action>'
Config_rule_#1 := ".*;.*;;1;0;0;0;0;0;" ;; default rule

View file

@ -294,6 +294,40 @@ View_getLayoutSymbol_tile(m, v, n)
Return, stackSym . masterDiv . masterDim
}
View_getMFactorD(m, v, d, dFact) {
Local callD, minD
Static lastCall, mFactD
callD := A_TickCount - lastCall
lastCall := A_TickCount
;; The minimum d, which is reached in 5 steps. maxD is d.
If (dFact < 1)
minD := d * dFact**5
Else
minD := d / dFact**5
If (callD < Config_mFactCallInterval And d * mFactD > 0) {
;; Accelerate mFactD, if the last call is inside the time frame and went in the same direction.
mFactD *= dFact
;; Reset mFactD, if it is out of bounds (d).
If (dFact < 1 And Abs(mFactD) < Abs(minD))
mFactD := minD
Else If (Abs(mFactD) > Abs(d))
mFactD := d
Debug_logMessage("DEBUG[2] View_getMFactorD [on]: callD: " callD ", d: " d ", dFact: " dFact ", mFactD: " mFactD, 2)
} Else {
;; Reset after a timeout or a change of direction.
If (dFact > 1)
mFactD := minD
Else
mFactD := d
Debug_logMessage("DEBUG[2] View_getMFactorD [off]: callD: " callD ", d: " d ", dFact: " dFact ", mFactD: " mFactD, 2)
}
Return, mFactD
}
View_getTiledWndIds(m, v)
{
Local n, tiledWndIds, wndIds
@ -473,7 +507,7 @@ View_setLayout(l)
}
}
View_setMFactor(d)
View_setMFactor(d, dFact=1)
{
Local l, mFact, v
@ -482,11 +516,14 @@ View_setMFactor(d)
If (Config_layoutFunction_#%l% = "tile")
{
mFact := 0
If (d >= 1.05)
If (d > 1)
mFact := d
Else
{
d := View_getMFactorD(Manager_aMonitor, v, d, dFact)
mFact := View_#%Manager_aMonitor%_#%v%_layoutMFact + d
If (mFact >= 0.05 And mFact <= 0.95)
}
If (mFact > 0 And mFact < 1)
{
View_#%Manager_aMonitor%_#%v%_layoutMFact := mFact
View_arrange(Manager_aMonitor, v)