File tree 2 files changed +43
-2
lines changed
2 files changed +43
-2
lines changed Original file line number Diff line number Diff line change @@ -92,14 +92,37 @@ function search_relevance(search, candidate)
92
92
return ret
93
93
end
94
94
95
+ local RESIZE_MIN = {w = 30 , h = 20 }
96
+
97
+ local function sanitize_frame (frame )
98
+ local w , h = dfhack .screen .getWindowSize ()
99
+ local min = RESIZE_MIN
100
+ if frame .t and h - frame .t - (frame .b or 0 ) < min .h then
101
+ frame .t = h - min .h
102
+ frame .b = 0
103
+ end
104
+ if frame .b and h - frame .b - (frame .t or 0 ) < min .h then
105
+ frame .b = h - min .h
106
+ frame .t = 0
107
+ end
108
+ if frame .l and w - frame .l - (frame .r or 0 ) < min .w then
109
+ frame .l = w - min .w
110
+ frame .r = 0
111
+ end
112
+ if frame .r and w - frame .r - (frame .l or 0 ) < min .w then
113
+ frame .r = w - min .w
114
+ frame .l = 0
115
+ end
116
+ return frame
117
+ end
95
118
96
119
GmEditorUi = defclass (GmEditorUi , widgets .Window )
97
120
GmEditorUi .ATTRS {
98
- frame = copyall (config .data .frame or {}),
121
+ frame = sanitize_frame ( copyall (config .data .frame or {}) ),
99
122
frame_title = " GameMaster's editor" ,
100
123
frame_inset = 0 ,
101
124
resizable = true ,
102
- resize_min = { w = 30 , h = 20 } ,
125
+ resize_min = RESIZE_MIN ,
103
126
read_only = (config .data .read_only or false )
104
127
}
105
128
Original file line number Diff line number Diff line change @@ -910,6 +910,24 @@ function LauncherUI:init()
910
910
new_frame [k ] = 0
911
911
end
912
912
end
913
+ local w , h = dfhack .screen .getWindowSize ()
914
+ local min = MainPanel .ATTRS .resize_min
915
+ if new_frame .t and h - new_frame .t - (new_frame .b or 0 ) < min .h then
916
+ new_frame .t = h - min .h
917
+ new_frame .b = 0
918
+ end
919
+ if new_frame .b and h - new_frame .b - (new_frame .t or 0 ) < min .h then
920
+ new_frame .b = h - min .h
921
+ new_frame .t = 0
922
+ end
923
+ if new_frame .l and w - new_frame .l - (new_frame .r or 0 ) < min .w then
924
+ new_frame .l = w - min .w
925
+ new_frame .r = 0
926
+ end
927
+ if new_frame .r and w - new_frame .r - (new_frame .l or 0 ) < min .w then
928
+ new_frame .r = w - min .w
929
+ new_frame .l = 0
930
+ end
913
931
end
914
932
end
915
933
main_panel .frame = new_frame
You can’t perform that action at this time.
0 commit comments